为什么我的对话框是这样的?

Why does my dialog box appear like this?

我在资源文件中创建了一个简单的对话框。当我尝试使用 DialogBox() 生成它时,对话框出现但看起来没有 window。我不知道为什么会这样。有什么建议吗?

运行的时候是这样的,可以看到没有window。复选框、文本和内容没有背景,也没有标题栏。没有。

它应该显示为:

我用来生成它的代码是:

bool mostrarVentanaConfiguracion() {

    DialogBox(GetModuleHandle(0), MAKEINTRESOURCE(ID_DIAG_CONFIG), NULL, (DLGPROC)VentanaConfiguracion);
    return true;
}

这是.rc文件代码:

LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
ID_DIAG_CONFIG DIALOG 260, 200, 339, 203
STYLE DS_3DLOOK | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_BORDER | WS_VISIBLE
CAPTION "Configuración"
FONT 8, "Ms Shell Dlg"
{
    LTEXT           "Pulsar la combinación de teclas.", 0, 218, 18, 102, 9, SS_LEFT, WS_EX_LEFT
    CONTROL         "", ID_CONF_MACRO, HOTKEY_CLASS, WS_TABSTOP, 136, 16, 77, 12, WS_EX_LEFT
    EDITTEXT        ID_CONF_INDICATIVO, 16, 16, 70, 12, ES_AUTOHSCROLL, WS_EX_LEFT
    AUTOCHECKBOX    "Check", ID_A_REUNION, 14, 67, 8, 8, 0, WS_EX_LEFT
    LTEXT           "... avisos de reuniones o 10-80 general.", 0, 28, 67, 125, 9, SS_LEFT, WS_EX_LEFT
    GROUPBOX        "Configuración de los avisos", 0, 5, 36, 328, 142, 0, WS_EX_LEFT
    PUSHBUTTON      "Cancelar", IDCANCEL, 220, 184, 49, 14, 0, WS_EX_LEFT
    DEFPUSHBUTTON   "Guardar\r\n", IDOK, 280, 184, 54, 14, 0, WS_EX_LEFT
    AUTOCHECKBOX    "Check", ID_A_SEISADAM, 14, 80, 8, 8, 0, WS_EX_LEFT
    AUTOCHECKBOX    "Check", ID_A_CODIGOCINCO, 14, 92, 8, 8, 0, WS_EX_LEFT
    AUTOCHECKBOX    "Check", ID_A_CENTRALITA, 14, 105, 8, 8, 0, WS_EX_LEFT
    AUTOCHECKBOX    "Check", ID_A_REP_UNIDADES, 14, 117, 8, 8, 0, WS_EX_LEFT
    AUTOCHECKBOX    "Check", ID_A_PROPIO, 14, 129, 8, 8, 0, WS_EX_LEFT
    AUTOCHECKBOX    "Check", ID_A_PEDIDOS, 14, 141, 8, 8, 0, WS_EX_LEFT
    AUTOCHECKBOX    "Check", ID_A_PEDIDOS_SWAT, 14, 153, 8, 8, 0, WS_EX_LEFT
    AUTOCHECKBOX    "Check", ID_A_SIN_ASIG, 14, 165, 8, 8, 0, WS_EX_LEFT
    AUTOCHECKBOX    "Check", ID_A_PANICO, 187, 67, 8, 8, 0, WS_EX_LEFT
    AUTOCHECKBOX    "Check", ID_A_APOYO, 187, 79, 8, 8, 0, WS_EX_LEFT
    AUTOCHECKBOX    "Check", ID_A_HERIDO, 187, 91, 8, 8, 0, WS_EX_LEFT
    AUTOCHECKBOX    "Check", ID_A_ROBO_COCHE, 187, 103, 8, 8, 0, WS_EX_LEFT
    AUTOCHECKBOX    "Check", ID_A_ROBO_CASA, 187, 115, 8, 8, 0, WS_EX_LEFT
    AUTOCHECKBOX    "Check", ID_A_ROBO_NEG, 187, 127, 8, 8, 0, WS_EX_LEFT
    AUTOCHECKBOX    "Check", ID_A_PAPAFOX, 187, 139, 8, 8, 0, WS_EX_LEFT
    AUTOCHECKBOX    "Check", ID_A_ROBO_BANCO, 187, 151, 8, 8, 0, WS_EX_LEFT
    AUTOCHECKBOX    "Check", ID_A_CUSTODIA, 187, 163, 8, 8, 0, WS_EX_LEFT
    LTEXT           "Recibir notificaciones sonoras para...", 0, 14, 50, 117, 9, SS_LEFT, WS_EX_LEFT
    LTEXT           "... avisos de CÓDIGO 6-ADAM.", 0, 28, 79, 100, 9, SS_LEFT, WS_EX_LEFT
    LTEXT           "... avisos de CÓDIGO 5.", 0, 28, 91, 77, 9, SS_LEFT, WS_EX_LEFT
    LTEXT           "... avisos de centralita roleados.", 0, 28, 103, 100, 9, SS_LEFT, WS_EX_LEFT
    LTEXT           "... pedidos de reportes de unidades.", 0, 28, 115, 114, 9, SS_LEFT, WS_EX_LEFT
    LTEXT           "... avisos a mi propia unidad o nombre.", 0, 28, 127, 122, 9, SS_LEFT, WS_EX_LEFT
    LTEXT           "... avisos de pedidos generales (10-32, 10-37...)", 0, 28, 139, 150, 9, SS_LEFT, WS_EX_LEFT
    LTEXT           "... avisos de pedidos para SWAT", 0, 28, 151, 105, 9, SS_LEFT, WS_EX_LEFT
    LTEXT           "... avisos de agentes sin asignación.", 0, 28, 163, 115, 9, SS_LEFT, WS_EX_LEFT
    LTEXT           "... avisos de botón de pánico.", 0, 201, 67, 94, 9, SS_LEFT, WS_EX_LEFT
    LTEXT           "... avisos de solicitud de apoyo (/ref)", 0, 201, 79, 115, 9, SS_LEFT, WS_EX_LEFT
    LTEXT           "... avisos de herido.", 0, 201, 91, 62, 9, SS_LEFT, WS_EX_LEFT
    LTEXT           "... avisos de robo de vehículo.", 0, 201, 103, 97, 9, SS_LEFT, WS_EX_LEFT
    LTEXT           "... avisos de robo a vivienda. ", 0, 201, 115, 94, 9, SS_LEFT, WS_EX_LEFT
    LTEXT           "... avisos de robo a negocio.", 0, 201, 127, 90, 9, SS_LEFT, WS_EX_LEFT
    LTEXT           "... avisos de alarma de prisión federal.", 0, 201, 139, 119, 9, SS_LEFT, WS_EX_LEFT
    LTEXT           "... avisos de robo a banco.", 0, 201, 151, 85, 9, SS_LEFT, WS_EX_LEFT
    LTEXT           "... avisos de sospechosos bajo custodia.", 0, 201, 163, 128, 9, SS_LEFT, WS_EX_LEFT
    GROUPBOX        "Configuración del indicativo", 0, 7, 4, 114, 28, 0, WS_EX_LEFT
    GROUPBOX        "Macro para desactivar el programa temporalmente", 0, 127, 4, 206, 28, 0, WS_EX_LEFT
}

我已经修好了。我在对话过程中返回 true 而不是 false。

来自 MSDN:

"Typically, the dialog box procedure should return TRUE if it processed the message, and FALSE if it did not. If the dialog box procedure returns FALSE, the dialog manager performs the default dialog operation in response to the message."