调用 DialogBox 会失败解决方法
#include "stdafx.h "
#include "resource.h "
BOOL CALLBACK DialogProc(
HWND hwndDlg, // handle to dialog box
UINT uMsg, // message
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
)
{
switch(uMsg)
{
case WM_INITDIALOG:
return TRUE;
case WM_COMMAND:
if(LOWORD(wParam)==IDOK||LOWORD(wParam)==IDCANCEL)
EndDialog(hwndDlg,LOWORD(wParam));
return TRUE;
}
return false;
}
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
if(DialogBox(hInstance,MAKEINTRESOURCE(IDD_CHAT_DIALOG),NULL,(DLGPROC)DialogProc)==-1)
{
MessageBox(NULL, "Call DialogBox failed. ", "Error ",MB_ICONEXCLAMATION);
return -1;
}
return 0;
}
New-> Win32 Application-> A simple Win32 application-> finish
然后 Insert-> Recource 插入对话框,编译没有错误,可对话框就是不显示,请问这是为什么呢?但我改成 New-> Win32 Application-> A typicl "hello World " application-> finish 就可以显示对话框,这是为什么呢?
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
我写了一个win32的应用程序,自己创建了一个窗口,点击鼠标左键的时候,调用MessageBox会弹出一个窗口来,本来没什么问题。但是我将外部的一个资源(就是windows扫雷的资源)添加进工程以后,就只能听到对话框“嘟”的一声,但是对话框却没有显示,这到底是怎么回事啊?
到弄了几天都没有弄出来,各位大哥帮帮忙吧
--------------------------------------------------------------------------------
无代码,无真相
--------------------------------------------------------------------------------
调用一下:InitCommonControls
--------------------------------------------------------------------------------
楼上太强了,我加了以后就可以了。分先给你。
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
1:包含头文件和库
#include "commctrl.h "
#pragma comment( lib, "comctl32.lib " )
2: 注册HotKey
INITCOMMONCONTROLSEX s;
s.dwSize= sizeof( INITCOMMONCONTROLSEX);
s.dwICC = ICC_HOTKEY_CLASS;
InitCommonControlsEx( &s);
完整代码如下,再试试
#include "stdafx.h "
#include "resource.h "
#include "commctrl.h "
#pragma comment( lib, "comctl32.lib " )
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
INITCOMMONCONTROLSEX s;
s.dwSize= sizeof( INITCOMMONCONTROLSEX);
s.dwICC = ICC_HOTKEY_CLASS;
InitCommonControlsEx( &s);
if(DialogBox(hInstance,MAKEINTRESOURCE(IDD_CHAT_DIALOG),NULL,(DLGPROC)DialogProc)==-1)
{
MessageBox(NULL, "Call DialogBox failed. ", "Error ",MB_ICONEXCLAMATION);
return -1;
}
return 0;
}