◎◎◎求救:AboutBox对话框不显示,什么原因?
#include "resource.h"
..............
LRESULT CALLBACK About(HWND, UINT, WPARAM, LPARAM);
..............
LRESULT CALLBACK MainWndProc(HWND hWnd, UINT message,WPARAM wParam, LPARAM lParam)
{
..............
case IDM_ABOUT:
DialogBox(ghInst, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About);
break;
..............
}
LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_INITDIALOG:
return TRUE;
case WM_COMMAND:
if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
{
EndDialog(hDlg, LOWORD(wParam));
return TRUE;
}
break;
}
return FALSE;
}
请问哪里有问题 ,aboutbox对话筐不显示哦 :(
问题点数:20、回复次数:3Top
1 楼jasonjixiang(吉祥)回复于 2005-06-01 20:17:15 得分 15
因为IDM_ABOUT应为一个COMMAND
所以应该放在case WM_COMMAND中处理
如下:
switch (message)
{
case WM_COMMAND:
wmId = LOWORD(wParam);
wmEvent = HIWORD(wParam);
// Parse the menu selections:
switch (wmId)
{
case IDD_ABOUTBOX:
MessageBox(hWnd,"I was","Good",MB_OK);
DialogBox(hInst, (LPCTSTR)IDD_DIALOG1, hWnd, (DLGPROC)About);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
break;
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
// TODO: Add any drawing code here...
RECT rt;
GetClientRect(hWnd, &rt);
DrawText(hdc, szHello, strlen(szHello), &rt, DT_CENTER);
EndPaint(hWnd, &ps);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
Top
2 楼jasonjixiang(吉祥)回复于 2005-06-01 20:21:39 得分 5
其中IDD_DIALOG1为你定义的对话框资源
对了,现在很少有耐心从SDK编程开始学习了
好好努力,我也是刚学VC的!Top
3 楼ameramer(艾玛尔)回复于 2005-06-01 21:21:36 得分 0
谢谢楼上,不过应该是case IDM_ABOUTBOX: //(菜单对应id)哟~~
一起努力Top




