|
本帖最后由 左右是爱 于 2011-11-28 11:44 编辑
注册消息处理方法后,它执行完总是有错误提示:
Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call. This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention.
并且 MessageFunction得到的参数值都是
lParam=1242076
wEvent=62428
wError=18
不知道如何写才对?
代码大概如下
#define My_Message (WM_USER +2)
WORD wEvent, wError ;
bool CALLBACK BtnDown_EventBtnClick(HELE hEle,HELE hEventEle)
{
HWND hWnd=XWnd_GetHWnd(hWindow);
SendMessage(hWnd,My_Message,(WPARAM)-1,(LPARAM)-1);
return true;
}
void CALLBACK MessageFunction (HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam)
{
wEvent=WSAGETSELECTEVENT(lParam);
wError=WSAGETSELECTERROR(lParam);
MessageBox(NULL,L"Hello",L"title",MB_OK);
}
int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
{
……
HELE btnDown=XWnd_GetEle(hWindow,100100);
//注册事件
XEle_RegisterEvent(btnDown,XE_BNCLICK,BtnDown_EventBtnClick);
//注册消息
XWnd_RegisterMessage(hWindow,My_Message,MessageFunction);
……
}
|
|