Newsgroup: it.comp.programmare.win32
Titolo: Creare Dialog Box

Ciao a tutti. La domanda potrà sembrare banale o di pura pignoleria, ma
la cosa mi disturba molto: esiste un modo per allineare con certezza i
controlli sulle maschere? Esistono delle specifiche sul numero di dialog
base units per separare i controlli? Sto lottando soprattutto per
allineare l'etichetta esterna che descrive un'edit box, con il testo
contenuto all'interno!
Ho inoltre notato con terrore che due controlli separati dallo stesso
numero di dialog base units risultano poi separati da un numero diverso
di pixel a seconda della posizione nella dialog!
Vi prego, ditemi che esiste un modo per avere qualche certezza. :-)
-- 
Costantino Grana (
gr...@dsi.unimo.it
)

 controlli sulle maschere? [...]
Io non ne conosco. Le dialog sono il simbolo dell'uomo pigro, ma sono
anche l'incarnazione di satana. Personalmente se volessi ottenere un
comportamento deterministico e preciso su qualsiasi macchina, scarterei
a priori l'utilizzo delle dialog e creerei tutto a mano (oppure
costruendomi un "toolkit" che funzioni in modo simile a DialogBox(), ma
piu` fedele)... dopotutto le dialog ti semplificano molto la vita in
fase di design, ma a parte quello non c'e` nessuna differenza fra usare
una dialog o una finestra popup opportunamente gestita.
P.S. Hai presente quando parlavamo di X-Comment-To? Se fai caso, nei
miei header compare il tuo nome. In questo modo i gate Fido possono
sapere a chi sto rispondendo senza dover fare il lookup dei message-id.
---
Bye! Lorenzo Lutti
http://www.geocities.com/SiliconValley/Peaks/6258/

 sapere a chi sto rispondendo senza dover fare il lookup dei message-id.
Mi sembra molto utile se uno sta usando un reader che lo supporta, ma
quello che mi sfugge è: tu stai usando Outlook Express, quindi a te non
serve a niente! O mi sbaglio?
-- 
Costantino Grana (
gr...@dsi.unimo.it
)

Tanto per completezza, prova a guardare questa Dialog Box. La prima riga
è fatta di controlli larghi 40 DLU, tutti distanziati di 4 DLU. La
seconda è fatta di controlli larghi 41 DLU, distanziati di 4 DLU. Sul
mio PC, in 1152x864, si nota una bella differenza tra le due righe. 
IDD_DIALOG1 DIALOG DISCARDABLE  0, 0, 328, 157
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Dialog"
FONT 8, "MS Sans Serif"
BEGIN
    DEFPUSHBUTTON   "OK",IDOK,274,8,50,14
    PUSHBUTTON      "Cancel",IDCANCEL,274,24,50,14
    EDITTEXT        IDC_EDIT1,4,8,40,14,ES_AUTOHSCROLL
    EDITTEXT        IDC_EDIT3,48,8,40,14,ES_AUTOHSCROLL
    EDITTEXT        IDC_EDIT4,92,8,40,14,ES_AUTOHSCROLL
    EDITTEXT        IDC_EDIT5,136,8,40,14,ES_AUTOHSCROLL
    EDITTEXT        IDC_EDIT6,4,40,41,14,ES_AUTOHSCROLL
    EDITTEXT        IDC_EDIT7,49,40,41,14,ES_AUTOHSCROLL
    EDITTEXT        IDC_EDIT8,94,40,41,14,ES_AUTOHSCROLL
    EDITTEXT        IDC_EDIT9,140,40,41,14,ES_AUTOHSCROLL
    EDITTEXT        IDC_EDIT2,4,80,40,14,ES_AUTOHSCROLL
    EDITTEXT        IDC_EDIT10,48,81,40,14,ES_AUTOHSCROLL
    EDITTEXT        IDC_EDIT11,92,82,40,14,ES_AUTOHSCROLL
    EDITTEXT        IDC_EDIT12,136,83,40,14,ES_AUTOHSCROLL
END
Avendo l'accortezza di piazzare i controlli in posizioni multiple di 4
per la x e 8 per la y, si possono ottenere risultati deterministici!
L'ultima Dialog che ti mando l'ho creata usando una grid di 4x8 e
lasciando che le edit box facessero lo snap. Dopodiché ho spostato le
etichette 2 DLU più in basso e il risultato è piuttosto soddisfacente,
infatti sono tutte alla stassa distanza (in pixel) dal lato superiore
del controllo di Edit.
IDD_DIALOG1 DIALOG DISCARDABLE  0, 0, 260, 157
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Dialog"
FONT 8, "MS Sans Serif"
BEGIN
    DEFPUSHBUTTON   "OK",IDOK,204,8,50,14
    PUSHBUTTON      "Cancel",IDCANCEL,204,24,50,14
    EDITTEXT        IDC_EDIT1,92,8,40,14,ES_AUTOHSCROLL
    LTEXT           "Etichetta numero uno:",IDC_STATIC,8,10,80,8
    EDITTEXT        IDC_EDIT2,92,32,40,14,ES_AUTOHSCROLL
    LTEXT           "Etichetta numero due:",IDC_STATIC,8,34,80,8
    EDITTEXT        IDC_EDIT3,92,72,40,14,ES_AUTOHSCROLL
    LTEXT           "Etichetta numero tre:",IDC_STATIC,8,74,80,8
    EDITTEXT        IDC_EDIT4,92,88,40,14,ES_AUTOHSCROLL
    LTEXT           "Etichetta numero quattro:",IDC_STATIC,8,90,80,8
END
Tanto per la cronaca e la finezza, sono indeciso sullo spazio da
lasciare in verticale tra i controlli. Saresti per la distanza tra "uno"
e "due" o per quella tra "tre" e "quattro"?
-- 
Costantino Grana (
gr...@dsi.unimo.it
)

Giuro che questo è l'ultimo!
Ho fatto un test con Edit Box alte 12 DLU invece che 14. Così si può
avere una distanza verticale di 4 DLU pur mantenendo la divisibilità (si
dice?) per 8. Esteticamente come ti sembrano?
IDD_DIALOG1 DIALOG DISCARDABLE  0, 0, 204, 77
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Dialog"
FONT 8, "MS Sans Serif"
BEGIN
    DEFPUSHBUTTON   "OK",IDOK,152,8,50,14
    PUSHBUTTON      "Cancel",IDCANCEL,152,24,50,14
    EDITTEXT        IDC_EDIT1,92,8,40,12,ES_AUTOHSCROLL
    LTEXT           "Etichetta numero uno:",IDC_STATIC,8,10,80,8
    EDITTEXT        IDC_EDIT2,92,24,40,12,ES_AUTOHSCROLL
    LTEXT           "Etichetta numero due:",IDC_STATIC,8,26,80,8
    EDITTEXT        IDC_EDIT3,92,40,40,12,ES_AUTOHSCROLL
    LTEXT           "Etichetta numero tre:",IDC_STATIC,8,42,80,8
    EDITTEXT        IDC_EDIT4,92,56,40,12,ES_AUTOHSCROLL
    LTEXT           "Etichetta numero quattro:",IDC_STATIC,8,58,80,8
END
-- 
Costantino Grana (
gr...@dsi.unimo.it
)

 sempre multiple di 4 e 8
Effettivamente io uso uno snap di griglia proprio di 4 unita` logiche...
non ricordavo il motivo, ma mi sembrava giusto farlo. Ora inizio a
capire il perche`. :)


 e "due" o per quella tra "tre" e "quattro"?
Per quella minore... molte volte io uso persino la distanza zero,
perche` tutto sommato rende tutto molto compatto.
P.S. Ho provato a visualizzare le due dialog anche sul mio PC, confermo
tutto quello che hai detto. Tutto OK.


 dice?) per 8. Esteticamente come ti sembrano?
E` esattamente la spaziatura che uso io di solito.
P.S. Un'altra volta pero` assieme agli script spediscimi anche i #define
degli ID... me li sono dovuti fare a mano. :)


 degli ID... me li sono dovuti fare a mano. :)
Me li dimentico sempre!
-- 
Costantino Grana (
gr...@dsi.unimo.it
)