|
TChanForm->컨트롤이름 으로 이용하려는게 아니라...
특별한 사정에 의해; 그냥 '컨트롤이름' 으로 이용해야하거든요 --;;
(TChanForm이라는 폼이 Linked List안에 들어가있음. 동적생성..-_-)
아래는 프로시져 펑션입니다.-_-
LRESULT CALLBACK MainTextEditProc(HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lParam)
{
switch(iMessage)
{
case WM_LBUTTONUP:
{
TempClip = new TClipboard;
char temp11[65535];
//RichEdit1->GetSelTextBuf(temp11, 65535); -->
SendMessage(MainTextEdit, EM_GETSELTEXT, 0, (LPARAM)temp11);
TempClip->SetTextBuf(temp11);
CommandLine->SetFocus();
//RichEdit1->SelStart = RichEdit1->Text.Length(); -->
int ii = SendMessage(MainTextEdit, EM_GETLIMITTEXT, 0, 0);
SendMessage(MainTextEdit, EM_SETSEL, ii, ii); // 맨 끝부분 선택.
delete TempClip;
}
break;
}
return CallWindowProc((int (__stdcall *)())OldEditProc, hWnd, iMessage, wParam, lParam);
}
이경문 님이 쓰신 글 :
: subclassing하려는 function을 class의 member function으로 두지 말고
: friend로 선언해서 사용하세요.
: 류진주 님이 쓰신 글 :
: : void __fastcall TChanForm::FormCreate(TObject *Sender) // 서브클래싱 -__하는거임
: : {
: : GetClassInfo(NULL, RICHEDIT_CLASS, &RichWndClass);
: : RichWndClass.hInstance = Application;
: : RichWndClass.lpszClassName = "IRCScreen";
: : OldEditProc = RichWndClass.lpfnWndProc; // 프로시져 백업-_-
: : RichWndClass.lpfnWndProc = (WNDPROC)MainTextEditProc; //프로시져 바꿔침-_-
: : RegisterClass(&RichWndClass);
: : }
: :
: : TChanForm이라는 클래스 안에서 서브클래싱을 시도했는데-_-
: :
: : 아는분은 아시겠지만 순수 C로만 WinAPI프로그래밍할때 쓰는건데.. 클래스에서 하니 또 안되더군요
: : -_-;;
: :
: :
: :
: : 저렇게하면 프로시져의 포인터가 없다고 나오잖아요-_-a
: :
: :
: : 그렇다고 함수를 static으로 하면 프로시져 안에서
: :
: : TChanForm클래스의 멤버컨트롤들을 조종-_-해야하는데 그게 안되잖아요;;?
: :
: : 그뿐만 아니라 백업-_-하는부분에서도 안될거같은데..
: :
: :
: : 뭐 방법 없을까요?-_- TChanForm클래스의 멤버컨트롤들을 스타틱 프로시져에서 조종-_-하는방법;;
|