SuperDlg
-Krok 2
Přidáme tlačítko Součet, po jehož stisknutí se zobrazí nové dialogové okno.
V nástrojovém panelu klepněte na tlačítko New Dialog-
Jak? V pracovním okně se objeví nové dialogové okno s
titulkem Dialog1. Poklepejte do něj. Tím se zobrazí vlastnosti dialogového
okna.
V kolonce ID změňte IDD_DIALOG1 na IDD_SOUCET a v kolonce
caption napište Součet 2 čísel.
Tím máme vytvořen grafický základ okna, které se zobrazí po stisku tlačítka
Součet v hlavním dialogu. Teď pro toto okno vytvoříme novou třídu CSoucetDlg.
V nabídce View vyberte Class Wizard (nebo
stiskněte CTRL + W). Objeví se dialog Adding a Class.
Nechte zvolenu možnost Create a New Class a klepněte na OK
V dialogu New Class napište jméno třídy - CsoucetDlg a
klepněte na Create.
Zavřete dialog Class Wizarda.
V levém okně se přepněte do Resource View -pokud už
tam, nejste - ,rozbalte složku superdlg resources a poklepejte na ikonku
IDD_SUPERDLG_DIALOG. V pracovním okně se otevře hlavní dialogové okno programu.
Z nástrojového panelu do něj přetáhněte tlačítko (button)
a poklepáním zobrazte jeho vlastnosti.
Změňte identifikátor nového tlačítka z IDC_BUTTON1 na
IDC_SOUCET a popis tlačítka na Součet.
TIP: Pokud před znak v popisu tlačítka napíšete &, zobrazí se tento znak v
tlačítku jako podtržený = klávesová zkratka ALT + podržené písmeno.
Teď přidáme funkci, která se spustí při stisku tlačítka.
Spusťte Class Wizard. Vyberte v kolonce Class name třídu hlavního okna
CsuperdlgDlg (té patří tlačítko) a v seznamu Object Ids vyberte
identifikátor tlačítka Součet -IDC_SOUCET.
Napravo v seznamu Messages se zobrazí seznam zpráv, které umí Class
Wizard ošetřit. Pro tlačítko je to zpráva BN_CLICKED - klepnutí myší a
BN_DOUBLECLICKED - poklepání (dvojklik).
Vyberte BN_CLICKED a klepněte na tlačítko Add Function…
Potvrďte nabízené jméno funkce OnSoucet. A klepněte na
tlačítko Edit Code.
Tím se dostanete do souboru superdlg.cpp, na místo, kam Class wizzard vložil
funkci OnSoucet()
Při stisku tlačítka Součet bude zavolána funkce OnSoucet() a jejím úkolem je zajistit zobrazení dialogového okna Součet 2 čísel, který jsme před chvílí vytvořili. K tomu nejprve vytvoříme objekt třídy CsoucetDlg (což je třída požadovaného okna) a zavoláme její funkci DoModal(), která okno zobrazí.
Vložte do těla funkce OnSoucet() následující kód:
CSoucetDlg dlg; //vytvoření objektu okna Součet 2 čísel
dlg.DoModal(); //zobrazení okna
Funkce DoModal() nevrátí, dokud uživatel nezavře zobrazené okno.
Na začátek souboru superdlg.cpp, za ostatní direktivy
#include vložte #include "soucetdlg.h"
Tento soubor vygeneroval Class Wizzard spolu s soucetdlg.cpp, když jsme
vytvářeli třídu CsoucetDlg pro okno "Součet 2 čísel". Zatím jsme jej
nemuseli vůbec upravovat. Protože v superdlg.cpp používáme v třídu CsoucetDlg,
musíme "zainklůdovat" soubor kde je deklarována.
Přeložte program -klávesová zkratka pro build je F7.
Spusťte program a vyzkoušejte ho. Po stisku tlačítka
Součet se objeví dialogové okno Součet 2 čísel, které ale zatím ještě nic
nedělá. V dalším kroku to napravíme.