2015-04-22 55 views
0

我在資源文件中創建了一個簡單的對話框。當我嘗試使用DialogBox()產生它時,會出現對話框,但它看起來沒有窗口。我不知道爲什麼會發生這種情況。有什麼建議?爲什麼我的對話框像這樣出現?

運行時看起來像這樣,因爲您可以看到沒有窗口。複選框,文本和東西沒有背景,並且沒有標題欄。沒有。

enter image description here

它應該顯示爲這樣:

enter image description here

我用產卵它的代碼是:

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 
} 
+2

目前尚不清楚您使用哪個庫來生成對話框。你應該澄清這一點。 – DavidW

+0

我使用ResEdit來創建資源文件,因爲VS2013 Express不包含資源編輯器。我只是使用標準的Windows API來顯示de對話框。我應該提到應用程序是一個系統托盤應用程序,它會自動啓動系統托盤中的圖標,這就是爲什麼對話框沒有任何父窗口。 –

回答

0

我已經修好了。我在對話框中返回true而不是false。

從MSDN:

「通常情況下,對話框程序應返回TRUE,如果它處理的消息,FALSE如果沒有如果對話框過程返回FALSE,對話管理器執行默認對話框操作迴應信息。「

相關問題