Objekty oken
MFC poskytuje třídu CWnd k zapouzdření HWND
úchytu okna. Objekt CWnd
je objekt okna C++, který se liší od objektu HWND
, který představuje okno Systému Windows, ale obsahuje ho. Slouží CWnd
k odvození vlastních podřízených tříd oken nebo použití jedné z mnoha tříd MFC odvozených z CWnd
. Třída CWnd
je základní třídou pro všechna okna, včetně oken s rámečkem, dialogových oken, podřízených oken, ovládacích prvků a řídicích pruhů, jako jsou panely nástrojů. Dobré porozumění vztahu mezi objektem okna C++ a HWND je zásadní pro efektivní programování pomocí MFC.
MFC poskytuje některé výchozí funkce a správu oken, ale můžete odvodit vlastní třídu a CWnd
použít její členské funkce k přizpůsobení poskytované funkce. Podřízená okna můžete vytvořit tak, že vytvoříte CWnd
objekt a zavoláte jeho funkci Vytvořit člena a potom přizpůsobíte podřízená okna pomocí CWnd
členských funkcí. Objekty odvozené z objektu CView, například zobrazení formuláře nebo stromové zobrazení, můžete vložit do okna rámečku. A můžete podporovat více zobrazení dokumentů prostřednictvím příček rozdělovačů, které poskytuje třída CSplitterWnd.
Každý objekt odvozený z třídy CWnd
obsahuje mapu zpráv, prostřednictvím které můžete mapovat zprávy systému Windows nebo ID příkazů na vlastní obslužné rutiny.
Obecná literatura k programování pro Windows je dobrým zdrojem informací o tom, jak používat CWnd
členské funkce, které zapouzdřují HWND
rozhraní API.
Funkce pro provoz na CWnd
CWnd
a jeho odvozené třídy okna poskytují konstruktory, destruktory a členské funkce pro inicializaci objektu, vytvoření základních struktur Windows a přístup k zapouzdřené HWND
. CWnd
poskytuje také členské funkce, které zapouzdřují rozhraní API systému Windows pro odesílání zpráv, přístup ke stavu okna, převod souřadnic, aktualizace, posouvání, přístup ke schránce a mnoho dalších úloh. Většina rozhraní API pro správu oken systému Windows, která přebírají HWND
argument, jsou zapouzdřena jako členské funkce CWnd
. Názvy funkcí a jejich parametrů se zachovají v CWnd
členské funkci. Podrobnosti o rozhraních API systému Windows zapouzdřené pomocí CWnd
třídy CWnd.
Zprávy CWnd a Windows
Jedním z hlavních účelů CWnd
je poskytnout rozhraní pro zpracování zpráv systému Windows, jako jsou WM_PAINT nebo WM_MOUSEMOVE. Mnoho členských funkcí CWnd
jsou obslužné rutiny pro standardní zprávy – ty, které začínají identifikátorem afx_msg a předponou "Zapnuto", například OnPaint
a OnMouseMove
. Zpracování a mapování zpráv podrobně popisuje zprávy a zpracování zpráv. Tyto informace platí stejně pro okna architektury a pro ty, které vytvoříte pro zvláštní účely.
O čem chcete vědět víc
Kontexty zařízení: objekty, které tvoří nezávislé zařízení výkresu Windows
Grafické objekty: pera, štětce, písma, rastrové obrázky, palety, oblasti