방금 간단한 C++ 창을 만들고 메뉴를 추가했지만 메뉴를 클릭하면 구체적으로 "About"은 MessageBox 만 표시하려고하지만 할 수 없습니다. 왜냐하면 그것은 보여주지 않기 때문입니다. 클릭 할 때 MessageBox 표시
LPCWSTR App_Name = TEXT("TestApp");
LPCWSTR App_Title = TEXT("TestTitle");
const int windowWidth = 480;
const int windowHeight = 480;
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int iCmdShow)
{
WNDCLASS wc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wc.hInstance = hInstance;
wc.lpfnWndProc = WndProc;
wc.lpszClassName = App_Name;
wc.lpszMenuName = MAKEINTRESOURCE(MNU_MAINMENU);
wc.style = CS_HREDRAW | CS_VREDRAW;
RegisterClass(&wc);
RECT rc;
GetWindowRect(GetDesktopWindow(), &rc);
long screenWidth = rc.right;
long screenHeight = rc.bottom;
HWND hwnd = CreateWindow
(
App_Name,
App_Title,
WS_MINIMIZEBOX | WS_SYSMENU,
(screenWidth/2) - (windowWidth/2), (screenHeight/2)-(windowHeight/2),
windowWidth, windowHeight,
NULL, NULL,
hInstance, NULL
);
ShowWindow(hwnd, iCmdShow);
UpdateWindow(hwnd);
MSG msg;
while(GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
및 메시지 박스
... : 나는 종료하고 추가 한 원인LRESULT CALLBACK WndProc(HWND hwnd,UINT message, WPARAM wparam, LPARAM lparam)
{
switch(message)
{
case WM_COMMAND:
id = LOWORD(wparam);
event = LOWORD(wparam);
switch(id)
{
case MNU_HELP_ABOUT:
MessageBox(NULL, TEXT("TEXT"), TEXT("TITLE"), MB_OK | MB_ICONINFORMATION);
break;
}
break;
}
}
메뉴가 작동 나는 그것이 메뉴에서 클릭에 응답 알고 있지만, 그래서 그런 내가 소개를 클릭하면 버튼을 누르면 팝업 소리가 들리지만 MessageBox는 표시되지 않습니다.
아이디어가 있으십니까?
이미 그 결과를 시도했습니다. 기본적으로 마지막 테스트 만 했었습니다. 그래서 ... – Deukalion
OK. SpyXX (여전히 존재한다고 가정)를 실행하고 창 목록에서 메시지 상자를 찾을 수 있는지 확인하십시오. – RobH
아, 로그 메시지 나 유사한 것을 출력하여 MessageBox에 대한 호출이 실제로 이루어 졌는지 확인하십시오. – RobH