ci avevo pensato anch'io però non mi piace tanto... come hai detto tu è la più "sporca".A) Usare una variabile globale. Tanto hai detto che è una dialog "modale", pertanto puoi avere solo una dialog di login per volta e la funzione DialogBox() è "bloccante", termina solo a seguito di una EndDialog nella dialog-procedure.
Questa è la soluzione più "sporca" ma anche la più immediata.
B) Invece di usare DialogBox() si può usare DialogBoxParam() che ha un parametro in più di tipo LPARAM per passare un valore "custom" qualunque. Si può passare ad esempio un puntatore ad una struttura. Il valore LPARAM dwInitParam viene passato solamente al ricevimento del messaggio WM_INITDIALOG e in genere la cosa migliore per "tenerlo vivo" è: 1) usare SetWindowLongPtr/GetWindowLongPtr per avere il valore nell'offset DWLP_USER oppure 2) usare SetProp/GetProp per avere il valore in una property con nome associata alla finestra.
Leggere attentamente la documentazione delle funzioni menzionate (quest'ultima frase sembra quella che si legge sui medicinali ).non ci ho capito molto... soprattutto dal "tenerlo vivo" in poi...
![]()
mi ispira assai!!C) Inviare alla finestra padre (della dialog box) un messaggio custom. Questa sarebbe una comunicazione asincrona, quindi è ovviamente da valutare. I messaggi custom partono da WM_USER in poi.potresti approfondire un po'?
Eh si! il caldo da alla testa!.... (oddio che robe mi vengono in mente in pieno Agosto....)
![]()
abbi pazienza perchè sono un po' duro a capire le cose!
grazie ancora una volta per la disponibilità