المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : Subclass Procedure failed for edit control



C++ Programming
05-12-2012, 10:10 PM
Hi to all, I am subclassing an EDIT Control. But the WM_CREATE is not fired in Subclassed Procedure EditProc. What is wrong, i am unable to find. I had tried WM_NCCREATE also, but failed.

pls help.. http://www.barakasoft.com/script/Forums/Images/smiley_frown.gif http://www.barakasoft.com/script/Forums/Images/smiley_confused.gif

#include #include "resource.h" WNDPROC OldEditProc; HINSTANCE hInst; HFONT hFont; WNDPROC SUBCLASS(HWND hControl,WNDPROC newWindowProc) { return (WNDPROC)SetWindowLong(hControl,GWL_WNDPROC,(LONG)newWindowProc); } LRESULT CALLBACK EditProc(HWND hWnd,UINT Msg, WPARAM wParam, LPARAM lParam) { switch(Msg) { case WM_CREATE: SetWindowText(hWnd,L"Welcome"); break; } return OldEditProc(hWnd,Msg,wParam,lParam); } LRESULT CALLBACK stdEditProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam) { switch(Msg) { case WM_INITDIALOG: OldEditProc = SUBCLASS(GetDlgItem(hWnd,IDC_EDIT1),EditProc); break; case WM_CLOSE: EndDialog(hWnd,TRUE); break; } return FALSE; } INT APIENTRY wWinMain( __in HINSTANCE hInstance, __in_opt HINSTANCE hPrevInstance, __in_opt LPWSTR lpCmdLine, __in int nShowCmd ) { hInst = hInstance; return DialogBox(hInst,MAKEINTRESOURCE(IDD_DIALOG1),NULL,(DLGPROC)stdEditProc); } Regards,
Vishal