Ora funziona, almeno in parte
Allora, ho definito queste tre dialog (la prima č quella che fa da contenitore):
Codice PHP:
// Finestra Principale
DIALOGMAIN DIALOG 10, 10, 400, 250
STYLE WS_POPUPWINDOW|WS_MINIMIZEBOX|WS_VISIBLE
CAPTION "NetBriscola (Developed by Davide Giri)"
FONT 8, "MS Sans Serif"
BEGIN
END
// Finestra Start
DIALOGSTART DIALOG 10, 10, 400, 250
STYLE WS_CHILD
FONT 8, "MS Sans Serif"
BEGIN
CONTROL LOGOIMG, 300, "STATIC", SS_BITMAP, 130, 0, 0, 0
GROUPBOX "Server or Client", SERVERCLIENTBOX, 25, 50, 150, 50
RADIOBUTTON "Modalitā Client", CLIENTRADIOBTN, 30, 65, 120, 12
RADIOBUTTON "Modalitā Server", SERVERADIOBTN, 30, 80, 120, 12
RTEXT "Host:", HOSTEXT, 220, 76, 20, 10
EDITTEXT HOSTEDIT, 245, 75, 65, 12, WS_DISABLED
CTEXT "Inserisci il tuo nome:", INSERTNAMETEXT, 0, 115, 400, 12
EDITTEXT NAMEDIT, 170, 130, 60, 12
DEFPUSHBUTTON "Comincia la Briscola", GOGAMEBTN, 150, 160, 100, 14
END
// Finestra Client
DIALOGCLIENT DIALOG 10, 10, 400, 250
STYLE WS_CHILD
FONT 8, "MS Sans Serif"
BEGIN
CTEXT "Testo Prova", 1010, 0, 0, 400, 12
END
Nella procedure della DIALOGMAIN (in WM_INITDIALOG) vi ho inserito queste righe:
Codice PHP:
HINSTANCE currentInstance = GetModuleHandle(NULL);
hwndDlgStart = CreateDialog(currentInstance , MAKEINTRESOURCE(DIALOGSTART), hwndDlg, DlgStartProc);
hwndDlgClient = CreateDialog(currentInstance , MAKEINTRESOURCE(DIALOGCLIENT), hwndDlg, DlgClientProc);
SetProp(hwndDlg, "DIALOGSTART", (HANDLE)hwndDlgStart);
SetProp(hwndDlg, "DIALOGCLIENT", (HANDLE)hwndDlgClient);
ShowWindow(hwndDlgStart, SW_SHOW);
Dove
hwndDlgStart e
hwndDlgClient sono due variabili globali definite in un foglio a parte.
Fin qui tutto bene, ovvero viene mostrata la DIALOGSTART.
Poi nella procedura della DIALOGSTART (DlgStartProc) in risposta alla pressione di un determinato bottone ho inserito queste righe:
Codice PHP:
HINSTANCE currentInstance = GetModuleHandle(NULL);
hwndDlgClient = CreateDialog(currentInstance , MAKEINTRESOURCE(DIALOGCLIENT), hwndDlg, DlgClientProc);
SetProp(hwndDlg, "DIALOGCLIENT", (HANDLE)hwndDlgClient);
ShowWindow(hwndDlgStart, SW_HIDE);
ShowWindow(hwndDlgClient, SW_SHOW);
Mi nasconde la DIALOGSTART ma invece di mostrarmi poi la DIALOGCLIENT mi mostra la DIALOGMAIN
Come mai poi le dialog figlie non vengono visulizzate dall'angolo superiore sinistro della dialog padre, ma un po' rientrate?
Grazie