16.05.2015 Views

Programowanie w C++ Borland Builder - Wyższa Szkoła Informatyki ...

Programowanie w C++ Borland Builder - Wyższa Szkoła Informatyki ...

Programowanie w C++ Borland Builder - Wyższa Szkoła Informatyki ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

_______________________________________________________________<br />

WM_KEYDOWN Naciśnięto (jakiś) klawisz.<br />

WM_KEYUP Puszczono klawisz.<br />

WM_SYSKEYDOWN Naciśnięto klawisz "systemowy".<br />

WM_SYSKEYUP Puszczono klawisz "systemowy".<br />

WM_CHAR Kod ASCII klawisza.<br />

________________________________________________________________<br />

Klawisz systemowy to np. [Alt]+[Esc], [Alt]+[F4] itp.<br />

________________________________________________________________<br />

Komunikaty Windows możemy wykorzystać w programie.<br />

...<br />

BOOL CanClose();<br />

void WMLButtonDown(RTMessage Msg)= [WM_FIRST + WM_LBUTTONDOWN];<br />

void WMRButtonDown(RTMessage Msg)= [WM_FIRST + WM_RBUTTONDOWN];<br />

};<br />

Nasze Główne_Okno potrafi obsługiwać następujące zdarzenia:<br />

* Funkcja CanClose() zwróciła wynik TRUE/FALSE,<br />

* Naciśnięto lewy/prawy klawisz myszki.<br />

Komunikat Msg zadeklarowany jako zmienna typu RTMessage jest w<br />

klasie macieżystej TWindow wykorzystywany tak:<br />

_CLASSDEF(TWindow)<br />

class _EXPORT TWindow : public TWindowsObject<br />

{<br />

...<br />

protected:<br />

virtual LPSTR GetClassName()<br />

{ return "OWLWindow"; }<br />

virtual void GetWindowClass(WNDCLASS _FAR & AWndClass);<br />

virtual void SetupWindow();<br />

virtual void WMCreate(RTMessage Msg) = [WM_FIRST +<br />

WM_CREATE];<br />

virtual void WMMDIActivate(RTMessage Msg) =<br />

[WM_FIRST + WM_MDIACTIVATE];<br />

...<br />

virtual void WMSize(RTMessage Msg) = [WM_FIRST + WM_SIZE];<br />

virtual void WMMove(RTMessage Msg) = [WM_FIRST + WM_MOVE];<br />

virtual void WMLButtonDown(RTMessage Msg) = [WM_FIRST +<br />

WM_LBUTTONDOWN];<br />

Zwróć uwagę na notację. Zamiast WM_CREATE pojawiło się [WM_FIRST<br />

+ WM_CREATE]. Komunikat WM_FIRST jest predefiniowany w OWLDEF.H<br />

i musi wystąpić w obiektowych aplikacjach w dowolnej klasie<br />

okienkowej, bądź sterującej (window class/controll class), która<br />

winna odpowiadać na określony komunikat. Oto fragment pliku<br />

OWLDEF.H zawierający definicje stałych tej grupy:<br />

- 433-

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!