CreateDialog返回0但获得ERROR_SUCCESS

sim*_*ack 0 c user-interface winapi visual-c++

以下代码返回0到错误wnd之后.对话框没有显示,我不明白这是怎么回事.这是一个控制台项目,如果相关,则在vs2013中创建对话框.CreateDialogERROR_SUCCESS

#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);
    }
}
Run Code Online (Sandbox Code Playgroud)

这必须是一些非常愚蠢的错误,但我看不到它.

Jon*_*ter 5

您需要首先初始化丰富的编辑库 - 如果未加载库,则不会注册该控件,并且对话框创建将失败.

有关呼叫,请参阅http://msdn.microsoft.com/en-us/library/windows/desktop/hh298375(v=vs.85).aspx上的说明LoadLibrary.您需要在创建对话框之前执行此操作.

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