在wm_command 中回應按鈕事件,程式會卡死,按下按鈕可以彈出訊息框,但是之后程式就沒了反映了,代碼如下:
BOOL CALLBACK DlgMain(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch(uMsg)
{
case WM_INITDIALOG:
{
CreateWindowEx(NULL, __TEXT("BUTTON"), __TEXT("Update"),WS_VISIBLE | WS_CHILD , rcDlg.right-100, 0, 50, 20, hwndDlg, NULL, hInst,NULL);
}
return TRUE;
break;
case WM_CLOSE:
{
EndDialog(hwndDlg, 0);
}
return TRUE;
break;
case WM_COMMAND:
{
switch(LOWORD(wParam))
{
case IDGO1:
MessageBox(hwndDlg,__TEXT("xx"),__TEXT("yy"),MB_OK);
break;
}
}
return TRUE;
break;
}
return FALSE;
}
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
hInst=hInstance;
InitCommonControls();
return DialogBox(hInst, MAKEINTRESOURCE(DLG_MAIN), NULL, (DLGPROC)DlgMain);
}
uj5u.com熱心網友回復:
CreateWindowEx(NULL, __TEXT("BUTTON"), __TEXT("Update"),WS_VISIBLE | WS_CHILD , 100, 0, 50, 20, hwndDlg, (HMENU)IDGO1, hInst,NULL);uj5u.com熱心網友回復:
不是這個ID問題,點擊按鈕后messagebox可以彈出來,但是沒多久界面就卡死了,上windbg附加后看堆疊資訊,發現:0:000> k
Child-SP RetAddr Call Site
00000000`0028fd14 00000000`765261a0 USER32!ValidateHwnd+0x19
00000000`0028fd34 00000000`765261a0 USER32!ValidateHwnd+0x19
00000000`0028fd54 00000000`765261a0 USER32!ValidateHwnd+0x19
00000000`0028fd74 00000000`765261a0 USER32!ValidateHwnd+0x19
00000000`0028fd94 00000000`765261a0 USER32!ValidateHwnd+0x19
00000000`0028fdb4 00000000`765261a0 USER32!ValidateHwnd+0x19
00000000`0028fdd4 00000000`765261a0 USER32!ValidateHwnd+0x19
00000000`0028fdf4 00000000`765261a0 USER32!ValidateHwnd+0x19
00000000`0028fe14 00000000`765261a0 USER32!ValidateHwnd+0x19
00000000`0028fe34 00000000`765261a0 USER32!ValidateHwnd+0x19
00000000`0028fe54 00000000`765261a0 USER32!ValidateHwnd+0x19
00000000`0028fe74 00000000`765261a0 USER32!ValidateHwnd+0x19
00000000`0028fe94 00000000`765261a0 USER32!ValidateHwnd+0x19
00000000`0028feb4 00000000`765261a0 USER32!ValidateHwnd+0x19
00000000`0028fed4 00000000`765261a0 USER32!ValidateHwnd+0x19
一直在USER32里轉悠,貌似訊息回圈被卡死了:
0:000> k
Child-SP RetAddr Call Site
00000000`0028fc40 00000000`765262b7 USER32!MapKernelClientFnToClientFn+0x5c
00000000`0028fc60 00000000`765262b7 USER32!MapKernelClientFnToClientFn+0x5c
00000000`0028fc80 00000000`765262b7 USER32!MapKernelClientFnToClientFn+0x5c
00000000`0028fca0 00000000`765262b7 USER32!MapKernelClientFnToClientFn+0x5c
00000000`0028fcc0 00000000`765262b7 USER32!MapKernelClientFnToClientFn+0x5c
00000000`0028fce0 00000000`765262b7 USER32!MapKernelClientFnToClientFn+0x5c
00000000`0028fd00 00000000`765262b7 USER32!MapKernelClientFnToClientFn+0x5c
00000000`0028fd20 00000000`765262b7 USER32!MapKernelClientFnToClientFn+0x5c
00000000`0028fd40 00000000`765262b7 USER32!MapKernelClientFnToClientFn+0x5c
00000000`0028fd60 00000000`765262b7 USER32!MapKernelClientFnToClientFn+0x5c
00000000`0028fd80 00000000`765262b7 USER32!MapKernelClientFnToClientFn+0x5c
00000000`0028fda0 00000000`765262b7 USER32!MapKernelClientFnToClientFn+0x5c
00000000`0028fdc0 00000000`765262b7 USER32!MapKernelClientFnToClientFn+0x5c
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/142585.html
標籤:界面
