下面的代码返回0到wnd,但就在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);
    }
}

这肯定是个愚蠢的错误,但我看不出来。

最佳答案

您需要首先初始化富编辑库-如果库未加载,控件将不会注册,对话框创建将失败。
请参见http://msdn.microsoft.com/en-us/library/windows/desktop/hh298375(v=vs.85).aspx中关于调用LoadLibrary的说明。在创建对话框之前需要执行此操作。
另外,设置DS_NOFAILCREATE样式应该允许创建对话框,尽管不会显示富编辑控件。

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

10-11 17:53