Image
7.6.2016 0 Comments

ASSEMBLER pod Windows: Funkcie na prácu s dialógovým oknom (13. časť)

Späť na úvod >> Späť na programovanie >> Späť na seriál

Novinky zo sveta Assemblera

  • Firma Borland uvoľnila program Turbo Debugger Version 5.5. Tento nástroj vám môže výrazne pomôcť pri hľadaní chýb v kóde. Veľkosť súboru je asi 650 KB, stiahnuť si ho môžete na adrese http://www.borland.com/bcppbuilder/turbodebugger/turbodebug55steps.html.
  • Ďalšou novinkou je stránka http://www.movsd.com/, kde nájdete rôzne návody, nástroje a zdrojové kódy.
     

CheckDlgButton

Windows NT

Win 95

Win32s

Lib

Include

Áno

Áno

Áno

user32.lib

user32.inc

 

Funkcia sa používa pri ovládacom prvku typu checkbox na vkladanie a odstraňovanie značky zaškrtnutia.

Syntax: BOOL CheckDlgButton, HWND hwndDlg, int idButton, UINT uCheck

HWND hwndDlg: Handle dialógového okna, ktoré obsahuje ovládací prvok.

int idButton: Identifikátor ovládacieho prvku typu checkbox, ktorý sa má modifikovať.

UINT uCheck: Stav zaškrtnutia prepínača. Ak je tento parameter nenulový, funkcia prepínač zaškrtáva. Keď je tento parameter nula, funkcia zaškrtnutie prepínača odstraňuje. Pre 3-stavové zaškrtávacie pole platí, že pokiaľ je uCheck 2 [BST_INDETERMINATE] – prepínač je sivý, keď je uCheck 1 [BST_CHECKED] – prepínač je zaškrtnutý a v prípade, že je uCheck 0 [BST_UNCHECKED] – zaškrtnutie je odstránené.

MESSAGE: BM_SETCHECK

Výsledok funkcie: BOOL: Po úspešnom vykonaní funkcie sa vráti hodnota TRUE. V ostatných prípadoch sa vráti hodnota FALSE. Na získanie rozšírenej informácie o chybe môžete použiť funkciu GetLastError.

 

CheckRadioButton

Windows NT

Win 95

Win32s

Lib

Include

Áno

Áno

Áno

user32.lib

user32.inc

Ovládacie prvky RadioButton sa používajú v skupinách, aby ukazovali výber zo skupiny vzájomne sa vylučujúcich možností. Funkcia zaškrtáva značku zaškrtnutia k danému prepínaču v skupine a odstraňuje značku zaškrtnutia zo všetkých ostatných prepínačov v danej skupine.

Syntax: BOOL CheckRadioButton, HWND hwndDlg, int idFirstButton,  int idLastButton,  int idCheckButton

HWND hwndDlg: Handle dialógového okna, ktoré obsahuje ovládací prvok.

int idFirstButton: Identifikátor prvého prepínača v skupine.

int idLastButton: Identifikátor posledného prepínača v skupine.

int idCheckButton: Identifikátor prepínača, ktorý sa má vybrať.

MESSAGE: BM_SETCHECK

Výsledok funkcie: BOOL: Po úspešnom vykonaní funkcie sa vráti hodnota TRUE. V ostatných prípadoch sa vráti hodnota FALSE. Na získanie rozšírenej informácie o chybe môžete použiť funkciu GetLastError.

 

CreateDialogParam

Windows NT

Win 95

Win32s

Lib

Include

Áno

Áno

Áno

user32.lib

user32.inc

Funkcia vytvára nemodálne dialógové okno z resource súboru, v ktorom je definované príkazom šablóny dialógového okna – DIALOG. Dôležitým parametrom v šablóne dialógového okna je štýl WS_VISIBLE. Pokiaľ nie je tento štýl zadaný, bude potrebné nemodálne dialógové okno zobraziť pomocou funkcie ShowWindow. Funkcia CreateDialogParam okamžite vráti handle vytvoreného dialógového okna. CreateDialogParam v porovnaní s funkciou CreateDialog obsahuje navyše jeden parameter. Tento parameter umožňuje, aby bola pri spustení odovzdaná funkcii dialógového okna 32-bitová hodnota (napr. handle do pamäte).

Syntax: HWND CreateDialogParam HINSTANCE hInstance, LPCTSTR lpTemplateName, HWND hWndParent, DLGPROC lpDialogFunc,      LPARAM dwInitParam

HINSTANCE hInstance: Handle inštancie modulu získate pomocou funkcie GetModuleHandle.

LPCTSTR lpTemplateName: Ukazovateľ na znakový reťazec obsahujúci názov šablóny dialógového okna v resource súbore.

HWND hWndParent: Handle materského okna.

DLGPROC lpDialogFunc: Ukazovateľ na procedúru dialógového okna. Procedúra dialógového okna spracúva správy pre dialógové okno.

LPARAM dwInitParam: 32-bitová hodnota odovzdaná funkcii DlgProc v správe WM_INITDIALOG ako hodnota lParam.

MESSAGE: WM_INITDIALOG

Výsledok funkcie: HWND: Po úspešnom vykonaní funkcie sa vráti handle dialógového okna. V ostatných prípadoch sa vráti hodnota NULL.

 

GetDlgItem

Windows NT

Win 95

Win32s

Lib

Include

Áno

Áno

Áno

user32.lib

user32.inc

Funkcia vyhľadá handle ovládacieho prvku v danom dialógovom okne.

Syntax: HWND GetDlgItem, HWND hDlg,  int nIDDlgItem

HWND hDlg: Handle dialógového okna, ktoré obsahuje zadaný ovládací prvok.

int nIDDlgItem: Identifikátor ovládacieho prvku, ktorého handle sa má získať.

Výsledok funkcie: HWND: Po úspešnom vykonaní funkcie sa vráti handle daného ovládacieho prvku. V ostatných prípadoch sa vráti hodnota NULL.

 

GetDlgItemInt

Windows NT

Win 95

Win32s

Lib

Include

Áno

Áno

Áno

user32.lib

user32.inc

Funkcia načíta hodnotu typu integer z ovládacieho prvku v dialógovom okne. Táto funkcia je ekvivalentom použitia správy WM_GETTEXT. Textové znaky v editovateľnom ovládacom prvku sú prevedené na hodnotu integer, počínajúc znakom, ktorý je úplne vľavo. Prvý nenumerický znak proces čítania zastaví.

Syntax: UINT GetDlgItemInt, HWND hDlg, int nIDDlgItem, BOOL *lpTranslated, BOOL bSigned

HWND hDlg: Handle dialógového okna.

int nIDDlgItem: Identifikátor editovateľného ovládacieho prvku.

BOOL *lpTranslated: Ukazovateľ na premennú typu BOOL. Je nastavený na TRUE, ak bol obsah editovateľného poľa riadne prevedený na typ integer. V prípade, že došlo k chybe, je nastavený na FALSE.

BOOL bSigned: Je TRUE, ak má byť hodnota, ktorá sa má načítať, typu integer so znamienkom. Bez znamienka FALSE.

MESSAGE: WM_GETTEXT

Výsledok funkcie: UINT: Po úspešnom vykonaní funkcie sa vráti integer hodnota textu v editovateľnom ovládacom prvku. Keďže nula je platnou návratovou hodnotou, na zistenie chyby používajte parameter lpTranslated. Ak je bSigned nastavený na TRUE, aplikácia by mala návratovú hodnotu previesť na integer so znamienkom.

 

GetDlgItemText

Windows NT

Win 95

Win32s

Lib

Include

Áno

Áno

Áno

user32.lib

user32.inc

Funkcia vyhľadá titulok alebo text zviazaný s ovládacím prvkom v dialógovom okne.

Syntax: UINT GetDlgItemText, HWND hDlg, int nIDDlgItem, LPTSTR lpString, int nMaxCount

HWND hDlg: Handle dialógového okna.

int nIDDlgItem: Identifikátor ovládacieho prvku.

LPTSTR lpString: Ukazovateľ na vyrovnávaciu pamäť, do ktorej sa vloží získaný text alebo titulok.

int nMaxCount: Maximálna dĺžka reťazca, ktorý sa má skopírovať do vyrovnávacej pamäte, na ktorú ukazuje lpString. V prípade, že dĺžka reťazca prekročí limit, reťazec je skrátený.

MESSAGE: WM_GETTEXT

Výsledok funkcie: UINT: Po úspešnom vykonaní funkcie sa vráti počet znakov skopírovaných do vyrovnávacej pamäte, v opačnom prípade sa vráti nula.

 

GetNextDlgGroupItem

Windows NT

Win 95

Win32s

Lib

Include

Áno

Áno

Áno

user32.lib

user32.inc

Funkcia vyhľadá v skupine ovládacích prvkov nasledujúci (resp. predchádzajúci) handle okna ovládacieho prvku dialógového okna, ktorý prijme zvýraznenie, keď používateľ stlačí jeden z klávesov ‹, ^, ›, ˇ.

Syntax: HWND GetNextDlgGroupItem, HWND hDlg, HWND hCtl, BOOL bPrevious

HWND hDlg: Handle dialógového okna.

HWND hCtl: Handle ovládacieho prvku, ktorý sa má použiť ako počiatočný bod na vyhľadávanie. Ak je NULL, funkcia použije ako počiatočný parameter bod na vyhľadávanie – posledný (resp. prvý) ovládací prvok v dialógovom okne.

BOOL bPrevious: V prípade, že chcete nájsť predchádzajúci ovládací prvok v skupine, nastavte túto hodnotu na TRUE. Toto je položka, ktorá bude mať zvýraznenie, keď používateľ stlačí kláves so šípkou vľavo alebo dole. Ak chcete nájsť nasledujúci ovládací prvok v skupine, nastavte túto hodnotu na FALSE. Toto je položka, ktorá bude mať zvýraznenie, keď používateľ stlačí kláves so šípkou vpravo alebo hore.

MESSAGE: WM_GETTEXT

Výsledok funkcie: HWND: Po úspešnom vykonaní funkcie sa vráti handle nasledujúceho alebo predchádzajúceho ovládacieho prvku dialógového okna v skupine ovládacích prvkov.

 

GetNextDlgTabItem

Windows NT

Win 95

Win32s

Lib

Include

Áno

Áno

Áno

user32.lib

user32.inc

Funkcia vyhľadáva predchádzajúci (resp. nasledujúci) handle okna ovládacieho prvku, ktorý prijme zvýraznenie, keď používateľ stlačí kláves Tab. Stlačenie klávesu Tab presúva zvýraznenie na nasledujúcu položku so štýlom WS_TABSTOP. Stlačenie kombinácie klávesov Shift + Tab presúva zvýraznenie opačným smerom. GetNextDlgTabItem vráti handle ovládacieho prvku, ktorý prijme ako ďalšie zvýraznenie, pokiaľ bude použitý kláves Tab.

Syntax: HWND GetNextDlgTabItem, HWND hDlg, HWND hCtl, BOOL bPrevious

HWND hDlg: Handle dialógového okna.

HWND hCtl: Handle ovládacieho prvku, ktorý sa má použiť ako počiatočný bod na vyhľadávanie. Ak je zadaná hodnota NULL, funkcia použije ako počiatočný bod na vyhľadanie posledný (resp. prvý) ovládací prvok v dialógovom okne.

BOOL bPrevious: Ak chcete vyhľadať predchádzajúci ovládací prvok so štýlom WS_TABSTOP, nastavte túto hodnotu na TRUE. Toto je položka, ktorá bude mať zvýraznenie, keď používateľ stlačí kombináciu klávesov Shift + Tab. V prípade, že hľadáte nasledujúci ovládací prvok s WS_TABSTOP, nastavte túto hodnotu na FALSE. Toto je položka, ktorá bude mať zvýraznenie, keď používateľ stlačí kláves Tab.

Výsledok funkcie: HWND: Po úspešnom vykonaní funkcie sa vráti handle nasledujúceho alebo predchádzajúceho ovládacieho prvku dialógového okna, ktorý bude vybraný, keď bude použitý kláves Tab alebo kombinácia Shift + Tab.

 

IsDlgButtonChecked

Windows NT

Win 95

Win32s

Lib

Include

Áno

Áno

Áno

user32.lib

user32.inc

Funkcia zistí, či má ovládací prvok typu checkbox alebo radiobutton vedľa seba značku zaškrtnutia, alebo je ovládací prvok typu checkbox sivý, zaškrtnutý alebo ani jedno z toho.

Syntax: UINT IsDlgButtonChecked, HWND hDlg, int nIDButton       

HWND hDlg: Handle dialógového okna.

int nIDButton: Identifikátor ovládacieho prvku typu checkbox alebo radiobutton.

MESSAGE: BM_SETCHECK, BM_GETCHECK

Výsledok funkcie: UINT: Po úspešnom vykonaní funkcie sa vráti aktuálny stav zaškrtnutia. 0 – ak prepínač nie je zaškrtnutý, 1 – ak prepínač je zaškrtnutý, a 2 – ak prepínač nie je presne vymedzený (platí iba vtedy, keď má prepínač štýl BS_3STATE alebo BS_AUTO3STATE).

 

SendDlgItemMessage

Windows NT

Win 95

Win32s

Lib

Include

Áno

Áno

Áno

user32.lib

user32.inc

Funkcia je skrátenou metódou na poslanie správy ovládaciemu prvku dialógového okna. Je rovnocenná volaniu funkcie GetDlgItem. Podobne ako SendMessage funkcia SendDlgItemMessage posiela správu priamo funkcii dialógového okna, pričom obchádza front pre správy. Funkciu používajte iba na menej bežné činnosti, napr. pridávanie položiek do ovládacieho prvku typu zoznam a pod.

Syntax: LONG SendDlgItemMessage, HWND hDlg, int nIDDlgItem, UINT Msg, WPARAM wParam,    LPARAM lParam

HWND hDlg: Handle dialógového okna.

int nIDDlgItem: Identifikátor ovládacieho prvku, ktorý dostane správu.

UINT Msg: Správa, ktorú ovládací prvok prijme.

WPARAM wParam: Rozširujúce informácie, závislé od správy.

LPARAM lParam: Rozširujúce informácie, závislé od správy.

 

SetDlgItemInt

Windows NT

Win 95

Win32s

Lib

Include

Áno

Áno

Áno

user32.lib

user32.inc

Funkcia nastaví text daného ovládacieho prvku v dialógovom okne.

Syntax: BOOL SetDlgItemInt, HWND hDlg, int nIDDlgItem, UINT uValue, BOOL bSigned        

HWND hDlg: Handle dialógového okna.

int nIDDlgItem: Identifikátor ovládacieho prvku, ktorý sa  má meniť.

UINT uValue: Hodnota typu integer, ktorá sa má nastaviť ako text v ovládacom prvku.

BOOL bSigned: TRUE, pokiaľ je parameter uValue so znamienkom, a FALSE, keď je bez znamienka.

MESSAGE: WM_SETTEXT

Výsledok funkcie: BOOL: Po úspešnom vykonaní funkcie sa vráti TRUE, inak FALSE.

 

SetDlgItemText

Windows NT

Win 95

Win32s

Lib

Include

Áno

Áno

Áno

user32.lib

user32.inc

Funkcia nastaví titulok alebo text ovládacieho prvku.

Syntax: BOOL SetDlgItemText, HWND hDlg, int nIDDlgItem, LPCTSTR lpString

HWND hDlg: Handle dialógového okna.

int nIDDlgItem: Identifikátor ovládacieho prvku, ktorý sa má meniť.

LPCTSTR lpString: Ukazovateľ na nulou zakončený reťazec, ktorý sa má skopírovať do ovládacieho prvku.

MESSAGE: WM_SETTEXT

Výsledok funkcie: BOOL: Po úspešnom vykonaní funkcie sa vráti TRUE, inak FALSE.

V praktickom príklade, ktorý nájdete na www.pcrevue.sk v sekcii Programujeme, sa budeme venovať ovládaniu menu a ovládacím prvkom checkbox.

Literatúra

[1]  Simon, R. J. – Gouker, M. – Barnes, B. C.: Win32 API. Zväzok 1, 2, 3. UNIS publishing, Brno 1997.

[2]  Richter, J.: Windows pro pokročilé a experty. Computer Press, Praha 1997.

[3]  Petzold, Ch.: Programování ve Windows – Win32 API. Computer Press, Praha 1999.


Nechajte si posielať prehľad najdôležitejších správ emailom

Mohlo by Vás zaujímať

Ako na to

Tipy a triky: Ako na snímku obrazovky na akomkoľvek počítači s Windows?

02.12.2016 00:13

Ak snímky obrazovky robíte často apotrebujete napríklad funkcie na posun stránok alebo snímanie zobrazenia pri vyššom rozlíšení displeja, zrejme používate nejakú špecializovanú aplikáciu. Väčšina použ ...

Ako na to 1

Tipy a triky: Ako aplikácii prednastaviť spúšťanie s administrátorskými právami?

30.11.2016 00:10

Väčšina aspoň trochu skúsenejších používateľov vie, že aj keď máte na operačnom systéme Windows vytvorený administrátorský účet, aplikácie pre bezpečnosť nefungujú vždy splnými administrátorskými práv ...

Ako na to 2

Tipy a triky: Ako vypnúť uzamykaciu obrazovku vo Windows 10?

29.11.2016 00:10

Rozčuľuje vás, že pred každým prihlásením doúčtu vášho počítača musíte prejsť uzamykacou obrazovkou? Windows 10 na tejto obrazovke ukazuje čas,dátum anejakú zaujímavú fotografiu zrôznych kútov sveta. ...

Žiadne komentáre

Vyhľadávanie

Kyocera - prve-zariadenia-formatu-a4-s-vykonom-a3

Najnovšie videá