最近在學習MFC底層,通過看書受到啓發,決定拋開書自己來獨立寫一下主要核心代碼!
先定義一個MYMSGSTRUCT消息結構體和一個MYMSG宏.
......
mymsgstruct mymsg[]={WM_COMMOD,OnCommod,WM_CHAR,OnChar,....}
mymsgstruct commodmsg[]={IDM_ABOUT,OnAbout,IDM_SAVEAS,OnSaveas....}
....
LRESULT CALLBACK WindowProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
{
for(int i=0;i<MYMSG(mymsg);i++)
{
if(uMsg==mymsg[i].mymessage)
return mymsg[i].ptr( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam );
return DefWindowProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam );
}
}
LONG OnCommod( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
{
for(int i=0;i<MYMSG(commodmsg);i++)
{
if((LOWORD)wParam==commodmsg[i].mymessage)
return commodmsg[i].ptr( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam );
return DefWindowProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam );
}
}
LONG OnChar( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
{
....
}
....
通過函數指針來實現類中的成員函數!