调用 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;
}

 

转载于:https://www.cnblogs.com/luoyaoquan/archive/2011/04/23/2025921.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值