Filozofia jest sztuką życia. Cyceron

Obiekty kontrolne

Obiekty kontrolne, C++

[ Pobierz całość w formacie PDF ]
Obiekty kontrolne
Obiekty kontrolne to np. przyciski, pola wyboru i opcji, pola tekstowe, listy. Odpowiadają
one za odbieranie zdarzeń generowanych przez użytkownika. Tworzy się je identycznie jak
okno wykorzystując funkcję CreateWindowsEx(). Należy jedynie wprowadzić drobne zmiany
parametrach funkcji. W zależności od rodzaju kontrolki może to być:
1.
BUTTON (przycisk, ramka, pole wyboru i opcji)
·
BS_RADIOBUTTON ( pole opcji)
·
BS_GROUPBOX (ramka)
2.
COMBOX (lista rozwijana)
3.
SCROLLBAR (pasek przewijania)
4.
EDIT (pole tekstowe)
5.
LISTBOX (lista)
Drugim parametrem, który ulega zmianie jest styl WS_CHILD. Oznacza on, że kontrolka jest
oknem potomnym okna głównego. Kolejne parametry to tekst znajdujący się na kontrolce, jej
rozmiar oraz położęnie ( współrzędne x i y) od lewego górnego rogu.
Otwórzmy Code:Block, utwórzmy nowy projekt Win 32 Gui Project, (Frame based) i
przećwiczmy wstawianie obiektów kontrolnych:
A. Przycisk:
przycisk = CreateWindowEx(
0,
"BUTTON",
"Przycisk",
WS_CHILD |
WS_VISIBLE,
100,
100,
120,
30,
hwnd,
NULL,
hThisInstance,
NULL);
Każdy parametr tej funkcji musi znajdować się na swoim miejscu. Zapis WS_CHILD |
WS_VISIBLE informuje kompilator że przycisk jest elementem pochodnym okna,
Kolejne parametry to rozmiar przycisku i jego położenie od lewego górnego rogu.
Instrukcje te należy wprowadzić zaraz po instrukcji tworzenia głównego okna (hwnd =
CreateWindowEx (
parametry
);
Nazwa naszego przycisku to „przycisk”, należy więc pamiętać, aby zdefiniować globalną
zmienną o tej nazwie. Umieść komendę
hwnd przycisk;
w odpowiednim miejscu. Zasada
deklarowania zmiennych obowiązywała we wszystkich naszych dotychczasowych
programach i tak jest nadal.
1
BS_CHECKBOX (pole wyboru)
·
Ćwiczenie 1 :
Utwórz okno z 2 przyciskami rozmieszczonymi jak na rysunku poniżej.
Zapisz swój
projekt, gdyż będzie on potrzebny na następnych zajęciach
Na razie nie będziemy definiować akcji dla tych przycisków.
B. Pole wyboru
Pole_wyboru = CreateWindowEx(
0,
"BUTTON",
"Pole wyboru",
WS_CHILD |
BS_CHECKBOX|
WS_VISIBLE,
10,
30,
10,
30,
hwnd,
NULL,
hThisInstance,
NULL);
Cały czas pamiętaj, aby deklarować zmienne, których używasz, obok komendy
hwnd
przycisk,
dopisz jeszcze jedną zmienną
Pole_wyboru
.
Ćwiczenie 2:
Umieść pole wyboru w takim miejscu, jak na rysunku:
2
C. Pole opcji
Pole_opcji = CreateWindowEx(
0,
"BUTTON",
"Pole opcji",
WS_CHILD |
BS_RADIOBUTTON|
WS_VISIBLE,
10,
30,
10,
30,
hwnd,
NULL,
hThisInstance,
NULL);
Ćwiczenie 3:
Umieść pole opcji w takim miejscu , jak na rysunku:
D. Pole tekstowe
3
Pole_tekstowe = CreateWindowEx(
WS_EX_CLIENTEDGE,
"EDIT",
NULL,
WS_CHILD |
WS_BORDER|
WS_VISIBLE,
20,
30,
10,
30,
hwnd,
NULL,
hThisInstance,
NULL);
E. Ramka
Ramka = CreateWindowEx(
0,
"BUTTON",
"Ramka",
WS_CHILD |
BS_GROUPBOX|
WS_VISIBLE,
10,
5,
300,
180,
hwnd,
NULL,
hThisInstance,
NULL);
Ćwiczenie 4:
Umieść obiekty kontrolne tak, jak na rysunku:
F. Lista rozwijana
4
Stworzymy sobie teraz listę rozwijaną, składa się ona z 2 elementów, deklaracji:
Lista_rozwijana = CreateWindowEx(
WS_EX_CLIENTEDGE,
"COMBOBOX",
NULL,
WS_CHILD |
WS_BORDER|
WS_VISIBLE|
CBS_DROPDOWN,
20,
30,
30,
20,
hwnd,
NULL,
hThisInstance,
NULL);
Oraz definicji elementów:
SendMessage(Lista_rozwijana, CB_ADDSTRING, 0, (LPARAM) "Opcja 1");
SendMessage(Lista_rozwijana, CB_ADDSTRING, 0, (LPARAM) "Opcja 2");
SendMessage(Lista_rozwijana, CB_ADDSTRING, 0, (LPARAM) "Opcja 3");
Całość teraz powinna wyglądać następująco:
Na koniec nauczymy się dodawać akcje do kontrolek, dzięki czemu uzyskujemy
interakcję z użytkownikiem:
Przykładowo naciśnięcie przycisku OK., spowoduje wyświetlenie komuniktu. Dodajemy
do instrukcji
switch()
zdarzenie
WM_COMMAND:
case WM_COMMAND:
if((HWND)lParam == przycisk)
MessageBox(hwnd, "Nacisnieto przycisk!", "Komunikat",
MB_ICONINFORMATION);
break;
5
[ Pobierz całość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • happyhour.opx.pl
  • Tematy

    Cytat


    Facil(e) omnes, cum valemus, recta consili(a) aegrotis damus - my wszyscy, kiedy jesteśmy zdrowi, łatwo dajemy dobre rady chorym.
    A miłość daje to czego nie daje więcej niż myślisz bo cała jest Stamtąd a śmierć to ciekawostka że trzeba iść dalej. Ks. Jan Twardowski
    Ad leones - lwom (na pożarcie). (na pożarcie). (na pożarcie)
    Egzorcyzmy pomagają tylko tym, którzy wierzą w złego ducha.
    Gdy tylko coś się nie udaje, to mówi się, że był to eksperyment. Robert Penn Warren