CreateDialog 返回 0 但得到 ERROR_SUCCESS

标签 c winapi visual-c++ user-interface

以下代码向 wnd 返回 0,但紧接在 CreateDialog 之后,错误为 ERROR_SUCCESS。该对话框没有显示,我不明白这是怎么可能的。这是一个控制台项目,如果相关的话,对话框是在 vs2013 中创建的。

#include <windows.h>
#include "resource.h"

int main(){
    HWND wnd = CreateDialog(NULL, MAKEINTRESOURCE(IDD_DIALOG1), NULL, NULL);
    ShowWindow(wnd, SW_SHOWDEFAULT);
    UpdateWindow(wnd);
    MSG msg;
    while(GetMessage(&msg, NULL, 0, 0)){
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
}

这一定是一些非常愚蠢的错误,但我看不出。

最佳答案

您需要先初始化 Rich Edit 库 - 如果未加载该库,则不会注册控件并且对话框创建将失败。

请参阅 http://msdn.microsoft.com/en-us/library/windows/desktop/hh298375(v=vs.85).aspx 处的注释关于调用 LoadLibrary。您需要在创建对话框之前执行此操作。

或者设置 DS_NOFAILCREATE 样式应该允许创建对话框,尽管丰富的编辑控件不会显示。

关于CreateDialog 返回 0 但得到 ERROR_SUCCESS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27613229/

相关文章:

c程序功能困惑

c - 简单的计数程序问题

wpf - 处理 WM_GETMINMAXINFO 时如何考虑帧大小

visual-studio-2010 - 视觉 C++ 2010 : Including boost in several projects in a solution?

c++ - 如何理解充满宏的大型 C/C++ 代码?

c++ - Alpha 混合说明

c++ - 从大文件中读取格式化数据的最有效方法是什么?

c++ - 如何将文件从回收站还原到特定位置?

c++ - 两个过滤器之间是否自动添加了解码器?

visual-c++ - 使用 Visual C++ 2013 在 Visual Studio 2013 上开始使用 HDF5