当我使用 SDK 7.1 编译它时,我的对话框没有显示
my dialog box did not show up when I compile it using sdk 7.1,
我想使用 sdk 7.1 构建一个 win32 应用程序,我使用 Visual C++ 2012 资源编辑器创建对话框,我将 resource.rc 和 resource.h 复制到我的文件夹中,然后编写这个简单的 main.cpp 文件:
#include <windowsx.h>
#include <Windows.h>
#include <tchar.h>
#include "resource.h"
#define my_PROCESS_MESSAGE(hWnd, message, fn)
case(message):
return(
SetDlgMsgResult(hWnd, uMsg,
HANDLE_##message((hWnd), (wParam), (lParam), (fn)) ))
LRESULT CALLBACK DlgProc(HWND, UINT, WPARAM, LPARAM);
BOOL Cls_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam);
void Cls_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify);
int WINAPI _tWinMain( HINSTANCE hInstance,
HINSTANCE,
LPTSTR,
int iCmdLine )
{
DialogBoxParam( hInstance,
MAKEINTRESOURCE(IDD_INJECTOR),
NULL,
(DLGPROC) DlgProc,
NULL
);
return FALSE;
}
LRESULT CALLBACK DlgProc( HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam )
{
switch (uMsg)
{
my_PROCESS_MESSAGE(hwnd, WM_INITDIALOG, Cls_OnInitDialog);
my_PROCESS_MESSAGE(hwnd, WM_COMMAND, Cls_OnCommand);
default:
break;
}
return DefWindowProc(hwnd, uMsg, wParam, lParam);
}
BOOL Cls_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam)
{
return TRUE;
}
void Cls_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
{
switch(id)
{
case IDCANCEL:
EndDialog(hwnd, id);
break;
default:
break;
}
}
然后我使用以下命令行来编译我的代码,我在这个论坛上找到
cl main.cpp /link /SUBSYSTEM:WINDOWS user32.lib
我的问题是我的对话框没有显示,当我使用 procexp 查看会发生什么时,我发现我的应用程序已创建然后同时关闭,让我想知道的是它在 Visual C++ 2012 上工作正常。
我的 sdk 7.1,安装正确,我在没有任何资源文件的基本窗口上测试它
您需要使用资源编译器"编译"资源文件:
rc -r resource.rc
那会给你resource.res
.创建可执行文件时,您需要将其链接在:
cl main.cpp resource.res /link /SUBSYSTEM:WINDOWS user32.lib
我还没有测试你的代码看看它是否有效,但至少在链接.res
文件的情况下,它至少有机会工作。
这不是您唯一的问题,但是,来自 MSDN:
尽管对话框过程类似于窗口过程,但它不得调用 DefWindowProc 函数来处理不需要的消息。不需要的消息由对话框窗口过程在内部处理。
[着重号后加。
相关文章:
- 如何在 VC6 中的对话框中将图标设置为按钮
- 如何在主窗口标签的对话框中显示QLineEdit的输入
- 静态库中的对话框资源
- 连接类实例和另一个类实例中的对话框之间的槽和信号
- 注销侏儒会话时如何从Qt应用程序执行"confirm" gnome会话管理器的对话框(不使用QSessionManager)
- C 从回调函数中的对话框获取并设置值
- 从QT中的对话框中声明指向主窗口的指针
- 从QT中的对话框访问主窗口
- 创建不会阻止主应用 MFC 的对话框
- MFC C++中的对话框
- c++ qt 主窗口设置图像后的对话框"确定"按钮
- VC++2010:显示打开的对话框挂起
- 如何从 MFC 中的对话框头文件访问静态变量
- 从Qt中的对话框获取数据并在Ui中使用
- 在C++资源中的对话框上的左上角图标
- 关闭其他线程的对话框后无法从主窗口聚焦
- 为什么我的对话框在 MFC 中没有响应 OnRButtonDown()?
- 当我使用 SDK 7.1 编译它时,我的对话框没有显示
- 当我在win32项目c++应用程序中单击菜单项时,如何编写代码来加载一个特殊的对话框?
- 可视"我的"对话框未显示在 MFC C++中