hbutton2=CreateWindow(.....);
old=(WNDPROC)SetWindowLong(hbutton1,GWL_WNDPROC,(LONG)MyButton);LRESULT CALLBACK MyButton(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam)
{
switch(msg)
{
case WM_LBUTTONDOWN:
MessageBox(hwnd,"你点击了我","子类化按钮单击通知",MB_OK);
return 0;
}
return CallWindowProc(old, hwnd, msg, wParam, lParam);
}为什么当我点击按钮时没有下压下去就弹出了那个消息框?
old=(WNDPROC)SetWindowLong(hbutton1,GWL_WNDPROC,(LONG)MyButton);LRESULT CALLBACK MyButton(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam)
{
switch(msg)
{
case WM_LBUTTONDOWN:
MessageBox(hwnd,"你点击了我","子类化按钮单击通知",MB_OK);
return 0;
}
return CallWindowProc(old, hwnd, msg, wParam, lParam);
}为什么当我点击按钮时没有下压下去就弹出了那个消息框?
if(0==CallWindowProc(old, hwnd, msg, wParam, lParam))
return自然不会调用系统默认的处理先进入你的处理MyButton,再CallWindowProc
old=GetWindowLong(hbutton1,GWL_WNDPROC);
SetWindowLong(hbutton1,GWL_WNDPROC,(LONG)MyButton);
LRESULT CALLBACK MyButton(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam)
{
switch(msg)
{
case WM_LBUTTONDOWN:
MessageBox(hwnd,"你点击了我","子类化按钮单击通知",MB_OK);
return 0;
default:
return CallWindowProc(old, hwnd, msg, wParam, lParam);
}
return CallWindowProc(old, hwnd, msg, wParam, lParam);//偶通常不加(hehe)
}
yPos = HIWORD(lParam); // vertical position of cursor PtInRect判断你的鼠标是否飞出去了