|
|
建了个空的 Window C++项目完后又添加了个默认Dialog控件(RC), 并在主执行文件写下了这些代码:
int PASCAL WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR szCmdLine, int nCmdShow)
{
WNDCLASS wc;
MSG Msg;
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = WindowProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = DLGWINDOWEXTRA;
wc.hInstance = hInst;
wc.hIcon = LoadIcon(hInst, IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)(COLOR_BTNFACE + 1);
wc.lpszMenuName = NULL;
wc.lpszClassName = g_szClass;
RegisterClass(&wc);
g_hWnd = CreateDialog( hInst, MAKEINTRESOURCE( IDD_DLG_TEST ), 0, NULL );
UpdateWindow( g_hWnd );
ShowWindow( g_hWnd, nCmdShow );
while( GetMessage( &Msg, NULL, 0, 0 ))
{
TranslateMessage( &Msg );
DispatchMessage( &Msg );
}
UnregisterClass(g_szClass, hInst);
return 0;
}
LRESULT CALLBACK WindowProc( HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch( msg )
{
case WM_INITDIALOG:
return TRUE;
case WM_COMMAND:
switch( LOWORD( wParam ))
{
case IDOK:
MessageBox( hDlg, L"这是一个测试", L"测试", MB_OK );
return TRUE;
case IDCANCEL:
EndDialog( hDlg, FALSE );
return TRUE;
}
case WM_DESTROY:
PostQuitMessage(0);
return TRUE;
default: return DefWindowProc(hDlg, msg, wParam, lParam);
}
return 0;
}
可是, Dialog控件也出现了但就是不执行控件事件, 请问还要改哪里和设置哪里( VS2003), 谢谢
|
|