Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Poskytuje základní funkce všech tříd oken v knihovně tříd Microsoft Foundation.
Syntaxe
class CWnd : public CCmdTarget
Členové
Veřejné konstruktory
| Název | Popis |
|---|---|
CWnd::CWnd |
CWnd Vytvoří objekt. |
Veřejné metody
| Název | Popis |
|---|---|
CWnd::accDoDefaultAction |
Volá se rozhraním k provedení výchozí akce objektu. |
CWnd::accHitTest |
Volá se rozhraním pro načtení podřízeného elementu nebo podřízeného objektu v daném bodě na obrazovce. |
CWnd::accLocation |
Volá se rozhraním pro načtení aktuálního umístění obrazovky zadaného objektu. |
CWnd::accNavigate |
Volal rozhraní pro přechod k jinému prvku uživatelského rozhraní v kontejneru a pokud je to možné, načtěte objekt. |
CWnd::accSelect |
Volá se rozhraním pro úpravu výběru nebo přesunutí fokusu klávesnice zadaného objektu. |
CWnd::AnimateWindow |
Animuje přidružený objekt okna. |
CWnd::ArrangeIconicWindows |
Uspořádá všechna minimalizovaná (ikonická) podřízená okna. |
CWnd::Attach |
Připojí úchyt systému Windows k objektu CWnd . |
CWnd::BeginModalState |
Voláním této členské funkce nastavíte modální okno rámce. |
CWnd::BeginPaint |
CWnd Připravuje se na malování. |
CWnd::BindDefaultProperty |
Vytvoří vazbu výchozí jednoduché vázané vlastnosti volajícího objektu označeného v knihovně typů k kurzoru přidruženému k ovládacímu prvku zdroje dat. |
CWnd::BindProperty |
Vytvoří vazbu vlastnosti vázané na kurzor u ovládacího prvku vázaného na data na ovládací prvek zdroje dat a zaregistruje tuto relaci se správcem vazeb MFC. |
CWnd::BringWindowToTop |
Přenese CWnd do horní části zásobníku překrývajících se oken. |
CWnd::CalcWindowRect |
Volá se k výpočtu obdélníku okna z obdélníku klienta. |
CWnd::CancelToolTips |
Zakáže ovládací prvek popisku. |
CWnd::CenterWindow |
Zacentruje okno vzhledem k nadřazené sadě. |
CWnd::ChangeClipboardChain |
Odebere CWnd se z řetězu prohlížečů schránky. |
CWnd::CheckDlgButton |
Umístí značku zaškrtnutí vedle ovládacího prvku tlačítka nebo ji odebere. |
CWnd::CheckRadioButton |
Zkontroluje zadaný přepínač a odebere značku zaškrtnutí ze všech ostatních přepínačů v zadané skupině tlačítek. |
CWnd::ChildWindowFromPoint |
Určuje, která podřízená okna ( pokud existuje) obsahuje zadaný bod. |
CWnd::ClientToScreen |
Převede souřadnice klienta daného bodu nebo obdélníku na displeji na souřadnice obrazovky. |
CWnd::CloseWindow |
Minimalizuje okno. |
CWnd::ContinueModal |
Pokračuje v modálním stavu okna. |
CWnd::Create |
Vytvoří a inicializuje podřízené okno přidružené k objektu CWnd . |
CWnd::CreateAccessibleProxy |
Vytvoří proxy server aktivní přístupnosti pro zadaný objekt. |
CWnd::CreateCaret |
Vytvoří nový obrazec pro stříšku systému a získá vlastnictví stříšky. |
CWnd::CreateControl |
Vytvořte ovládací prvek ActiveX, který bude reprezentován v programu MFC objektem CWnd . |
CWnd::CreateEx |
Vytvoří překrývající se, automaticky otevírané okno nebo podřízené okno Windows a připojí ho k objektu CWnd . |
CWnd::CreateGrayCaret |
Vytvoří šedý blok pro stříšku systému a získá vlastnictví stříšky. |
CWnd::CreateSolidCaret |
Vytvoří pevný blok pro stříšku systému a získá vlastnictví stříšky. |
CWnd::DeleteTempMap |
Volá se automaticky obslužnou rutinou CWinApp nečinnosti a odstraní všechny dočasné CWnd objekty vytvořené FromHandle. |
CWnd::DestroyWindow |
Zničí připojené okno Windows. |
CWnd::Detach |
Odpojte úchyt systému Windows od objektu CWnd a vrátí popisovač. |
CWnd::DlgDirList |
Vyplní seznamem se seznamem souborů nebo adresářů. |
CWnd::DlgDirListComboBox |
Vyplní seznam pole se seznamem souborem nebo seznamem adresářů. |
CWnd::DlgDirSelect |
Načte aktuální výběr ze seznamu. |
CWnd::DlgDirSelectComboBox |
Načte aktuální výběr ze seznamu pole se seznamem. |
CWnd::DragAcceptFiles |
Označuje, že okno bude přijímat přetažené soubory. |
CWnd::DragDetect |
Zachytí myš a sleduje jeho pohyb, dokud uživatel nespustí levé tlačítko, stiskne klávesu ESC nebo přesune myš mimo obdélník přetažení kolem zadaného bodu. |
CWnd::DrawAnimatedRects |
Nakreslí obdélník drátěného rámečku a animuje ho, aby označí otevření ikony nebo minimalizaci nebo maximalizaci okna. |
CWnd::DrawCaption |
Nakreslí titulek. |
CWnd::DrawMenuBar |
Překreslí řádek nabídek. |
CWnd::EnableActiveAccessibility |
Povolí uživatelem definované Active Accessibility funkce. |
CWnd::EnableDynamicLayout |
Umožňuje dynamicky upravit umístění a velikost podřízených oken, když uživatel změní velikost okna. |
CWnd::EnableD2DSupport |
Povolí nebo zakáže podporu oken D2D . Tuto metodu zavolejte před inicializaci hlavního okna. |
CWnd::EnableScrollBar |
Povolí nebo zakáže jednu nebo obě šipky posuvníku. |
CWnd::EnableScrollBarCtrl |
Povolí nebo zakáže ovládací prvek posuvníku na stejné platformě. |
CWnd::EnableToolTips |
Povolí ovládací prvek popisku. |
CWnd::EnableTrackingToolTips |
Povolí ovládací prvek popisku v režimu sledování. |
CWnd::EnableWindow |
Povolí nebo zakáže vstup myši a klávesnice. |
CWnd::EndModalLoop |
Ukončí modální stav okna. |
CWnd::EndModalState |
Voláním této členské funkce změníte okno rámce z modální na bezmodální. |
CWnd::EndPaint |
Označí konec malování. |
CWnd::ExecuteDlgInit |
Inicializuje prostředek dialogového okna. |
CWnd::FilterToolTipMessage |
Načte název nebo text přidružený k ovládacímu prvku v dialogovém okně. |
CWnd::FindWindow |
Vrátí popisovač okna, který je identifikován názvem okna a třídou okna. |
CWnd::FindWindowEx |
Vrátí popisovač okna, který je identifikován názvem okna a třídou okna. |
CWnd::FlashWindow |
Jednou problikne okno. |
CWnd::FlashWindowEx |
Bliká okno s dalšími funkcemi. |
CWnd::FromHandle |
Vrátí ukazatel na CWnd objekt při zadání úchytu do okna. CWnd Pokud objekt není připojený k popisovači, vytvoří se dočasný CWnd objekt a připojí se. |
CWnd::FromHandlePermanent |
Vrátí ukazatel na CWnd objekt při zadání úchytu do okna. |
CWnd::get_accChild |
Volal rozhraní pro načtení adresy IDispatch rozhraní pro zadané podřízené. |
CWnd::get_accChildCount |
Volá se rozhraním k načtení počtu podřízených objektů patřících tomuto objektu. |
CWnd::get_accDefaultAction |
Volá se rozhraním pro načtení řetězce, který popisuje výchozí akci objektu. |
CWnd::get_accDescription |
Volá se podle architektury k načtení řetězce, který popisuje vizuální vzhled zadaného objektu. |
CWnd::get_accFocus |
Volá se rozhraním pro načtení objektu, který má fokus klávesnice. |
CWnd::get_accHelp |
Volá se rozhraním pro načtení řetězce vlastnosti nápovědy objektu. |
CWnd::get_accHelpTopic |
Volá se rozhraním pro načtení úplné cesty WinHelp k souboru přidruženému k zadanému objektu a identifikátoru příslušného tématu v daném souboru. |
CWnd::get_accKeyboardShortcut |
Volá se rozhraním pro načtení klávesové zkratky nebo přístupové klávesy zadaného objektu. |
CWnd::get_accName |
Volá se rozhraním pro načtení názvu zadaného objektu. |
CWnd::get_accParent |
Volá se rozhraní IDispatch nadřazeného objektu. |
CWnd::get_accRole |
Volá se rozhraním pro načtení informací, které popisují roli zadaného objektu. |
CWnd::get_accSelection |
Volá se rozhraním pro načtení vybraných podřízených objektů tohoto objektu. |
CWnd::get_accState |
Volá se rozhraním pro načtení aktuálního stavu zadaného objektu. |
CWnd::get_accValue |
Volá se rozhraním pro načtení hodnoty zadaného objektu. |
CWnd::GetActiveWindow |
Načte aktivní okno. |
CWnd::GetAncestor |
Načte objekt nadřazeného okna zadaného okna. |
CWnd::GetCapture |
Načte záznam CWnd myši. |
CWnd::GetCaretPos |
Načte souřadnice klienta aktuální pozice kurzoru. |
CWnd::GetCheckedRadioButton |
Vrátí ID aktuálně kontrolovaného přepínače ve skupině tlačítek. |
CWnd::GetClientRect |
Získá rozměry CWnd klientské oblasti. |
CWnd::GetClipboardOwner |
Načte ukazatel na aktuálního vlastníka schránky. |
CWnd::GetClipboardViewer |
Načte ukazatel na první okno v řetězu prohlížečů schránky. |
CWnd::GetControlUnknown |
Načte ukazatel na neznámý ovládací prvek ActiveX. |
CWnd::GetDC |
Načte kontext zobrazení pro klientskou oblast. |
CWnd::GetDCEx |
Načte kontext zobrazení pro oblast klienta a povolí výřez při kreslení. |
CWnd::GetDCRenderTarget |
Načte cíl vykreslení kontextu zařízení (DC) pro CWnd okno. |
CWnd::GetDescendantWindow |
Vyhledá všechna okna potomků a vrátí okno se zadaným ID. |
CWnd::GetDesktopWindow |
Načte okno plochy systému Windows. |
CWnd::GetDlgCtrlID |
CWnd Pokud je podřízené okno, vrátí volání této funkce hodnotu ID. |
CWnd::GetDlgItem |
Načte ovládací prvek se zadaným ID ze zadaného dialogového okna. |
CWnd::GetDlgItemInt |
Přeloží text ovládacího prvku v daném dialogovém okně na celočíselnou hodnotu. |
CWnd::GetDlgItemText |
Načte titulek nebo text přidružený k ovládacímu prvku. |
CWnd::GetDSCCursor |
Načte ukazatel na podkladový kurzor, který je definován vlastnostmi DataSource, UserName, Password a SQL ovládacího prvku zdroje dat. |
CWnd::GetDynamicLayout |
Načte ukazatel na objekt správce dynamického rozložení. |
CWnd::GetExStyle |
Vrátí rozšířený styl okna. |
CWnd::GetFocus |
Načte aktuálně zadaný fokus CWnd . |
CWnd::GetFont |
Načte aktuální písmo. |
CWnd::GetForegroundWindow |
Vrátí ukazatel na okno popředí (okno nejvyšší úrovně, se kterým právě pracuje uživatel). |
CWnd::GetIcon |
Načte úchyt na ikonu. |
CWnd::GetLastActivePopup |
Určuje, které automaticky otevírané okno vlastněné CWnd naposledy aktivní. |
CWnd::GetLayeredWindowAttributes |
Načte barevný klíč neprůhlednosti a průhlednosti vrstveného okna. |
CWnd::GetMenu |
Načte ukazatel na zadanou nabídku. |
CWnd::GetNextDlgGroupItem |
Vyhledá další (nebo předchozí) ovládací prvek ve skupině ovládacích prvků. |
CWnd::GetNextDlgTabItem |
Načte první ovládací prvek se stylem WS_TABSTOP , který následuje (nebo předchází) zadanému ovládacímu prvku. |
CWnd::GetNextWindow |
Vrátí další (nebo předchozí) okno v seznamu správce oken. |
CWnd::GetOleControlSite |
Načte vlastní web pro zadaný ovládací prvek ActiveX. |
CWnd::GetOpenClipboardWindow |
Načte ukazatel na okno, které má aktuálně otevřenou schránku. |
CWnd::GetOwner |
Načte ukazatel na vlastníka .CWnd |
CWnd::GetParent |
Načte nadřazené okno CWnd (pokud existuje). |
CWnd::GetParentFrame |
CWnd Načte nadřazené okno rámce objektu. |
CWnd::GetParentOwner |
Vrátí ukazatel na nadřazené okno podřízeného okna. |
CWnd::GetProperty |
Načte vlastnost ovládacího prvku ActiveX. |
CWnd::GetRenderTarget |
Získá cíl vykreslení, který je přidružen k tomuto okně. |
CWnd::GetSafeHwnd |
Vrátí m_hWndhodnotu NULL nebo NULL, pokud this je ukazatel NULL. |
CWnd::GetSafeOwner |
Načte bezpečného vlastníka daného okna. |
CWnd::GetScrollBarCtrl |
Vrátí ovládací prvek posuvníku na stejné stejné sadě. |
CWnd::GetScrollBarInfo |
Načte informace o zadaném posuvníku. |
CWnd::GetScrollInfo |
Načte informace, které SCROLLINFO struktura udržuje o posuvníku. |
CWnd::GetScrollLimit |
Načte limit posuvníku. |
CWnd::GetScrollPos |
Načte aktuální pozici posuvníku. |
CWnd::GetScrollRange |
Zkopíruje aktuální minimální a maximální umístění posuvníku pro daný posuvník. |
CWnd::GetStyle |
Vrátí aktuální styl okna. |
CWnd::GetSystemMenu |
Umožňuje aplikaci přístup k nabídce Řízení pro kopírování a úpravy. |
CWnd::GetTitleBarInfo |
Načte informace o zadaném záhlaví. |
CWnd::GetTopLevelFrame |
Načte okno rámce nejvyšší úrovně okna. |
CWnd::GetTopLevelOwner |
Načte okno nejvyšší úrovně. |
CWnd::GetTopLevelParent |
Načte nadřazený objekt nejvyšší úrovně okna. |
CWnd::GetTopWindow |
Vrátí první podřízené okno, které patří do objektu CWnd. |
CWnd::GetUpdateRect |
Načte souřadnice nejmenšího obdélníku, který zcela uzavře CWnd oblast aktualizace. |
CWnd::GetUpdateRgn |
CWnd Načte oblast aktualizace. |
CWnd::GetWindow |
Vrátí okno se zadanou relací k tomuto okně. |
CWnd::GetWindowContextHelpId |
Načte identifikátor kontextu nápovědy. |
CWnd::GetWindowDC |
Načte kontext zobrazení pro celé okno, včetně řádku titulků, nabídek a posuvníků. |
CWnd::GetWindowedChildCount |
Vrátí počet přidružených podřízených oken. |
CWnd::GetWindowInfo |
Vrátí informace o okně. |
CWnd::GetWindowlessChildCount |
Vrátí počet přidružených podřízených oken bez oken bez oken. |
CWnd::GetWindowPlacement |
Načte stav zobrazení a normální (obnovené), minimalizované a maximalizované pozice okna. |
CWnd::GetWindowRect |
Získá souřadnice CWndobrazovky . |
CWnd::GetWindowRgn |
Načte kopii oblasti okna. |
CWnd::GetWindowText |
Vrátí text okna nebo název titulku (pokud ho obsahuje). |
CWnd::GetWindowTextLength |
Vrátí délku textu nebo názvu titulku okna. |
CWnd::HideCaret |
Skryje stříšku odebráním z obrazovky zobrazení. |
CWnd::HiliteMenuItem |
Zvýrazní nebo odebere zvýraznění z položky nabídky nejvyšší úrovně (řádek nabídek). |
CWnd::HtmlHelp |
Volá se k inicializaci aplikace HTMLHelp. |
CWnd::Invalidate |
Zneplatní celou oblast klienta. |
CWnd::InvalidateRect |
Zruší platnost oblasti klienta v daném obdélníku přidáním tohoto obdélníku do aktuální oblasti aktualizace. |
CWnd::InvalidateRgn |
Zruší platnost oblasti klienta v dané oblasti přidáním této oblasti do aktuální oblasti aktualizace. |
CWnd::InvokeHelper |
Vyvolá metodu nebo vlastnost ovládacího prvku ActiveX. |
CWnd::IsChild |
Určuje, zda CWnd je podřízené okno nebo jiný přímý potomek zadaného okna. |
CWnd::IsD2DSupportEnabled |
Určuje, zda je povolena podpora D2D. |
CWnd::IsDialogMessage |
Určuje, zda je daná zpráva určena pro bezmodální dialogové okno, a pokud ano, zpracuje ji. |
CWnd::IsDlgButtonChecked |
Určuje, zda je ovládací prvek tlačítka zaškrtnut. |
CWnd::IsDynamicLayoutEnabled |
Určuje, zda je v tomto okně povolené dynamické rozložení. Pokud je povolené dynamické rozložení, může se umístění a velikost podřízených oken změnit, když uživatel změní velikost nadřazeného okna. |
CWnd::IsIconic |
Určuje, zda CWnd je minimalizovaný (ikonický). |
CWnd::IsTouchWindow |
Určuje, jestli CWnd má podporu dotykového ovládání. |
CWnd::IsWindowEnabled |
Určuje, zda je okno povolené pro vstup myši a klávesnice. |
CWnd::IsWindowVisible |
Určuje, zda je okno viditelné. |
CWnd::IsZoomed |
Určuje, zda CWnd je maximalizován. |
CWnd::KillTimer |
Zabije systémový časovač. |
CWnd::LockWindowUpdate |
Zakáže nebo znovu povolí kreslení v daném okně. |
CWnd::MapWindowPoints |
Převede (mapy) sadu bodů ze souřadnicového prostoru CWnd souřadnice na souřadnicový prostor jiného okna. |
CWnd::MessageBox |
Vytvoří a zobrazí okno, které obsahuje zprávu a titulek zadaný aplikací. |
CWnd::ModifyStyle |
Upraví aktuální styl okna. |
CWnd::ModifyStyleEx |
Upraví rozšířený styl okna. |
CWnd::MoveWindow |
Změní pozici a rozměry CWnd. |
CWnd::NotifyWinEvent |
Signalizuje systém, že došlo k předdefinované události. |
CWnd::OnAmbientProperty |
Implementujte hodnoty okolních vlastností. |
CWnd::OnDrawIconicThumbnailOrLivePreview |
Volané architekturou, když potřebuje získat rastr, který se má zobrazit na kartě Windows 7 miniatury, nebo v klientovi pro náhled aplikace. |
CWnd::OnHelp |
Zpracovává nápovědu F1 v aplikaci (pomocí aktuálního kontextu). |
CWnd::OnHelpFinder |
Zpracovává příkazy ID_HELP_FINDER a ID_DEFAULT_HELP příkazy. |
CWnd::OnHelpIndex |
Zpracovává příkaz a poskytuje výchozí téma nápovědy ID_HELP_INDEX . |
CWnd::OnHelpUsing |
ID_HELP_USING Zpracuje příkaz. |
CWnd::OnToolHitTest |
Určuje, zda je bod v ohraničující obdélník zadaného nástroje a načte informace o nástroji. |
CWnd::OpenClipboard |
Otevře schránku. Jiné aplikace nebudou moci upravovat schránku, dokud nebude volána funkce Systému Windows CloseClipboard . |
CWnd::PaintWindowlessControls |
Nakreslí ovládací prvky bez oken v kontejneru ovládacího prvku. |
CWnd::PostMessage |
Umístí zprávu do fronty aplikace a pak se vrátí bez čekání na zpracování zprávy v okně. |
CWnd::PreCreateWindow |
Volá se před vytvořením okna Windows připojeného k tomuto CWnd objektu. |
CWnd::PreSubclassWindow |
Umožňuje, aby před zavoláním došlo k SubclassWindow dalším nezbytným podtřídám. |
CWnd::PreTranslateMessage |
CWinApp Slouží k filtrování zpráv oken před jejich odesláním TranslateMessage do funkcí systému Windows a DispatchMessage Windows. |
CWnd::Print |
Nakreslí aktuální okno v zadaném kontextu zařízení. |
CWnd::PrintClient |
Nakreslí libovolné okno v zadaném kontextu zařízení (obvykle kontext zařízení tiskárny). |
CWnd::PrintWindow |
Zkopíruje okno vizuálu do zadaného kontextu zařízení, obvykle řadiče domény tiskárny. |
CWnd::RedrawWindow |
Aktualizuje zadaný obdélník nebo oblast v klientské oblasti. |
CWnd::RegisterTouchWindow |
Podpora dotykového ovládání v okně Registrace nebo zrušení registrace systému Windows |
CWnd::ReleaseDC |
Uvolní kontexty zařízení klienta a okna a uvolní je pro použití jinými aplikacemi. |
CWnd::RepositionBars |
Přemísťuje řídicí panely v klientské oblasti. |
CWnd::RunModalLoop |
Načte, překládá nebo odesílá zprávy pro okno, které je v modálním stavu. |
CWnd::ScreenToClient |
Převede souřadnice obrazovky daného bodu nebo obdélníku na displeji na souřadnice klienta. |
CWnd::ScrollWindow |
Posune obsah klientské oblasti. |
CWnd::ScrollWindowEx |
Posune obsah klientské oblasti. ScrollWindowPodobně jako v případě , s dalšími funkcemi. |
CWnd::SendChildNotifyLastMsg |
Poskytuje zprávu s oznámením podřízeného okna z nadřazeného okna, aby podřízené okno zvládlo úlohu. |
CWnd::SendDlgItemMessage |
Odešle zprávu zadanému ovládacímu prvku. |
CWnd::SendMessage |
Odešle zprávu do objektu CWnd a nevrátí se, dokud zprávu nezpracuje. |
CWnd::SendMessageToDescendants |
Odešle zprávu do všech následnických oken okna. |
CWnd::SendNotifyMessage |
Odešle zadanou zprávu do okna a vrátí co nejdříve v závislosti na tom, jestli volající vlákno vytvořilo okno. |
CWnd::SetActiveWindow |
Aktivuje okno. |
CWnd::SetCapture |
Způsobí, že všechny následné vstupy myši budou odeslány CWnddo . |
CWnd::SetCaretPos |
Přesune kurzor na zadanou pozici. |
CWnd::SetClipboardViewer |
Přidá CWnd do řetězu oken, která jsou upozorněna při každé změně obsahu schránky. |
CWnd::SetDlgCtrlID |
Nastaví id okna nebo ovládacího prvku pro okno (může to být jakékoli podřízené okno, nejen ovládací prvek v dialogovém okně). |
CWnd::SetDlgItemInt |
Nastaví text ovládacího prvku na řetězec, který představuje celočíselnou hodnotu. |
CWnd::SetDlgItemText |
Nastaví titulek nebo text ovládacího prvku v zadaném dialogovém okně. |
CWnd::SetFocus |
Deklaruje vstupní fokus. |
CWnd::SetFont |
Nastaví aktuální písmo. |
CWnd::SetForegroundWindow |
Vloží vlákno, které vytvořilo okno do popředí a aktivuje okno. |
CWnd::SetIcon |
Nastaví úchyt na konkrétní ikonu. |
CWnd::SetLayeredWindowAttributes |
Nastaví barevný klíč neprůhlednosti a průhlednosti vrstveného okna. |
CWnd::SetMenu |
Nastaví nabídku na zadanou nabídku. |
CWnd::SetOwner |
Změní vlastníka souboru CWnd. |
CWnd::SetParent |
Změní nadřazené okno. |
CWnd::SetProperty |
Nastaví vlastnost ovládacího prvku ActiveX. |
CWnd::SetRedraw |
Umožňuje překreslit změny CWnd nebo zabránit překreslení změn. |
CWnd::SetScrollInfo |
Nastaví informace o posuvníku. |
CWnd::SetScrollPos |
Nastaví aktuální pozici posuvníku a v případě zadání překreslí posuvník tak, aby odrážel novou pozici. |
CWnd::SetScrollRange |
Nastaví minimální a maximální hodnoty pozice pro daný posuvník. |
CWnd::SetTimer |
Nainstaluje systémový časovač, který odešle WM_TIMER zprávu při aktivaci. |
CWnd::SetWindowContextHelpId |
Nastaví identifikátor kontextu nápovědy. |
CWnd::SetWindowPlacement |
Nastaví stav zobrazení a normální (obnovené), minimalizované a maximalizované pozice pro okno. |
CWnd::SetWindowPos |
Změní velikost, umístění a řazení podřízených oken, automaticky otevíraných oken a oken nejvyšší úrovně. |
CWnd::SetWindowRgn |
Nastaví oblast okna. |
CWnd::SetWindowText |
Nastaví text okna nebo název titulku (pokud ho obsahuje) na zadaný text. |
CWnd::ShowCaret |
Zobrazuje kurzor na displeji v aktuální pozici kurzoru. Po zobrazení začne stříška blikat automaticky. |
CWnd::ShowOwnedPopups |
Zobrazí nebo skryje všechna automaticky otevíraná okna vlastněná oknem. |
CWnd::ShowScrollBar |
Zobrazí nebo skryje posuvník. |
CWnd::ShowWindow |
Zobrazí nebo skryje okno. |
CWnd::SubclassDlgItem |
Připojí ovládací prvek Windows k objektu CWnd a směruje zprávy přes CWndmapu zpráv. |
CWnd::SubclassWindow |
Připojí okno k objektu CWnd a směruje zprávy přes CWndmapu zpráv. |
CWnd::UnlockWindowUpdate |
Odemkne okno, které bylo uzamčeno CWnd::LockWindowUpdate. |
CWnd::UnsubclassWindow |
Odpojení okna od objektu CWnd |
CWnd::UpdateData |
Inicializuje nebo načte data z dialogového okna. |
CWnd::UpdateDialogControls |
Volání pro aktualizaci stavu tlačítek dialogového okna a dalších ovládacích prvků |
CWnd::UpdateLayeredWindow |
Aktualizuje pozici, velikost, tvar, obsah a průsvitnost vrstveného okna. |
CWnd::UpdateWindow |
Aktualizuje oblast klienta. |
CWnd::ValidateRect |
Ověří klientskou oblast v daném obdélníku odebráním obdélníku z aktuální oblasti aktualizace. |
CWnd::ValidateRgn |
Ověří oblast klienta v dané oblasti odebráním oblasti z aktuální oblasti aktualizace. |
CWnd::WindowFromPoint |
Identifikuje okno, které obsahuje daný bod. |
CWnd::WinHelp |
Volá se k inicializaci aplikace WinHelp. |
Chráněné metody
| Název | Popis |
|---|---|
CWnd::Default |
Volá výchozí proceduru okna, která poskytuje výchozí zpracování pro všechny zprávy okna, které aplikace nezpracová. |
CWnd::DefWindowProc |
Volá výchozí proceduru okna, která poskytuje výchozí zpracování pro všechny zprávy okna, které aplikace nezpracová. |
CWnd::DoDataExchange |
Pro výměnu a ověření dat dialogového okna. Volal .UpdateData |
CWnd::GetCurrentMessage |
Vrátí ukazatel na zprávu, která právě zpracovává toto okno. Měla by být volána pouze v případě, OnMessage že je v členské funkci obslužné rutiny zprávy. |
CWnd::InitDynamicLayout |
Volá se rozhraním pro inicializaci dynamického rozložení okna. |
CWnd::LoadDynamicLayoutResource |
Načte informace o dynamickém rozložení ze souboru prostředků. |
CWnd::OnActivate |
Volá se při CWnd aktivaci nebo deaktivaci. |
CWnd::OnActivateApp |
Volá se, když se aplikace chystá aktivovat nebo deaktivovat. |
CWnd::OnAppCommand |
Volá se, když uživatel vygeneruje událost příkazu aplikace. |
CWnd::OnAskCbFormatName |
Volá aplikace prohlížeče schránky, když vlastník schránky zobrazí obsah schránky. |
CWnd::OnCancelMode |
Volá se, aby bylo možné CWnd zrušit všechny interní režimy, jako je zachycení myši. |
CWnd::OnCaptureChanged |
Odešle zprávu do okna, které ztrácí zachytávání myši. |
CWnd::OnChangeCbChain |
Upozorní, že se zadané okno odebere z řetězu. |
CWnd::OnChangeUIState |
Volá se při změně stavu uživatelského rozhraní (UI). |
CWnd::OnChar |
Volá se, když se stisknutí klávesy přeloží na nesystémový znak. |
CWnd::OnCharToItem |
Volal podřízený seznam se stylem LBS_WANTKEYBOARDINPUT v reakci na WM_CHAR zprávu. |
CWnd::OnChildActivate |
Volá se pro více podřízených CWnd oken rozhraní dokumentů (MDI), kdykoli se změní velikost nebo umístění změn nebo CWnd je aktivováno. |
CWnd::OnChildNotify |
Zavolá se nadřazeným oknem, aby ovládací prvek upozorňování mohl reagovat na oznámení o ovládacím prvku. |
CWnd::OnClipboardUpdate |
Volá se při změně obsahu schránky. |
CWnd::OnClose |
Volá se jako signál, který CWnd by měl být uzavřen. |
CWnd::OnColorizationColorChanged |
Volá se, když se změnily zásady vykreslování pro oblast, která není klientem. |
CWnd::OnCommand |
Volá se, když uživatel vybere příkaz. |
CWnd::OnCompacting |
Volá se, když systém Windows zjistí, že systémová paměť je nízká. |
CWnd::OnCompareItem |
Volána k určení relativní pozice nové položky v podřízené seřazené pole se seznamem vlastník-kreslení se seznamem nebo seznamem. |
CWnd::OnCompositionChanged |
Volá se pro všechna okna nejvyšší úrovně, když je povolená nebo zakázaná skladba Desktop Window Manager (DWM). |
CWnd::OnContextMenu |
Volá se, když uživatel klikne na pravé tlačítko myši v okně. |
CWnd::OnCopyData |
Zkopíruje data z jedné aplikace do druhé. |
CWnd::OnCreate |
Volá se jako součást vytváření okna. |
CWnd::OnCtlColor |
Volá se, pokud CWnd je nadřazený ovládací prvek, když se má ovládací prvek vykreslit. |
CWnd::OnDeadChar |
Volá se, když se stisknutí klávesy přeloží na nesystémový mrtvý znak (například zvýrazňující znaky). |
CWnd::OnDeleteItem |
Volá se při zničení podřízeného seznamu nebo pole se seznamem vlastníka nebo při odebrání položek z ovládacího prvku. |
CWnd::OnDestroy |
Volá se, když CWnd je zničen. |
CWnd::OnDestroyClipboard |
Volá se, když je schránka vyprázdněna voláním funkce Windows EmptyClipboard . |
CWnd::OnDeviceChange |
Upozorní aplikaci nebo ovladač zařízení na změnu konfigurace hardwaru zařízení nebo počítače. |
CWnd::OnDevModeChange |
Volá se pro všechna okna nejvyšší úrovně, když uživatel změní nastavení režimu zařízení. |
CWnd::OnDrawClipboard |
Volá se při změně obsahu schránky. |
CWnd::OnDrawItem |
Volá se, když je potřeba nakreslit vizuální aspekt ovládacího prvku podřízeného tlačítka vlastníka, ovládací prvek se seznamem, ovládací prvek seznam nebo nabídku. |
CWnd::OnDropFiles |
Volá se, když uživatel uvolní levé tlačítko myši přes okno, které se zaregistrovalo jako příjemce vynechaných souborů. |
CWnd::OnEnable |
Volá se, když CWnd je povolená nebo zakázaná. |
CWnd::OnEndSession |
Volá se při ukončení relace. |
CWnd::OnEnterIdle |
Volá se k informování hlavního okna aplikace, že modální dialogové okno nebo nabídka zadává stav nečinnosti. |
CWnd::OnEnterMenuLoop |
Volá se, když byla zadána modální smyčka nabídky. |
CWnd::OnEnterSizeMove |
Volá se po ovlivněném okně přejde do modální smyčky pro přesunutí nebo změnu velikosti. |
CWnd::OnEraseBkgnd |
Volá se, když pozadí okna potřebuje vymazat. |
CWnd::OnExitMenuLoop |
Volá se při ukončení modální smyčky nabídky. |
CWnd::OnExitSizeMove |
Volána po ovlivněném okně ukončí pohybovou nebo změnu velikosti modální smyčky. |
CWnd::OnFontChange |
Volá se při změně fondu prostředků písem. |
CWnd::OnGetDlgCode |
Volal se pro ovládací prvek, aby ovládací prvek mohl zpracovat samotný vstup se šipkami a klávesou TAB. |
CWnd::OnGetMinMaxInfo |
Volá se vždy, když systém Windows potřebuje znát maximalizovanou pozici nebo rozměry nebo minimální nebo maximální velikost sledování. |
CWnd::OnHelpInfo |
Volá se rozhraním, když uživatel stiskne klávesu F1. |
CWnd::OnHotKey |
Volá se, když uživatel stiskne systémovou klávesu. |
CWnd::OnHScroll |
Volá se, když uživatel klikne na vodorovný posuvník .CWnd |
CWnd::OnHScrollClipboard |
Volá se, když by se měl vlastník schránky posunout obrázek schránky, zneplatnit příslušný oddíl a aktualizovat hodnoty posuvníku. |
CWnd::OnIconEraseBkgnd |
Volá se, když CWnd je minimalizovaný (ikonický) a pozadí ikony musí být vyplněno před nakreslením ikony. |
CWnd::OnInitMenu |
Volá se, když se nabídka stane aktivní. |
CWnd::OnInitMenuPopup |
Volá se, když se chystáte aktivovat místní nabídku. |
CWnd::OnInputDeviceChange |
Volá se při přidání nebo odebrání vstupně-výstupního zařízení ze systému. |
CWnd::OnInputLangChange |
Volá se po změně jazyka zadávání aplikace. |
CWnd::OnInputLangChangeRequest |
Volá se, když uživatel zvolí nový jazyk zadávání. |
CWnd::OnKeyDown |
Volá se při stisknutí nesystémové klávesy. |
CWnd::OnKeyUp |
Volá se při uvolnění nesystémového klíče. |
CWnd::OnKillFocus |
Volá se bezprostředně před CWnd ztrátou vstupního fokusu. |
CWnd::OnLButtonDblClk |
Volá se, když uživatel dvakrát klikne na levé tlačítko myši. |
CWnd::OnLButtonDown |
Volá se, když uživatel stiskne levé tlačítko myši. |
CWnd::OnLButtonUp |
Volá se, když uživatel uvolní levé tlačítko myši. |
CWnd::OnMButtonDblClk |
Volá se, když uživatel dvakrát klikne na prostřední tlačítko myši. |
CWnd::OnMButtonDown |
Volá se, když uživatel stiskne prostřední tlačítko myši. |
CWnd::OnMButtonUp |
Volá se, když uživatel uvolní prostřední tlačítko myši. |
CWnd::OnMDIActivate |
Volá se při aktivaci nebo deaktivaci podřízeného okna MDI. |
CWnd::OnMeasureItem |
Při vytváření ovládacího prvku bylo volána podřízená pole se seznamem vlastníka, seznam nebo položka nabídky. CWnd informuje systém Windows o rozměrech ovládacího prvku. |
CWnd::OnMenuChar |
Volá se, když uživatel stiskne znak nabídky, který neodpovídá žádné z předdefinovaných mnemonics v aktuální nabídce. |
CWnd::OnMenuDrag |
Volá se, když uživatel začne přetahovat položku nabídky. |
CWnd::OnMenuGetObject |
Volá se, když kurzor myši zadá položku nabídky nebo se přesune ze středu položky do horní nebo dolní části položky. |
CWnd::OnMenuRButtonUp |
Volá se, když uživatel uvolní pravé tlačítko myši, zatímco kurzor je na položce nabídky. |
CWnd::OnMenuSelect |
Volá se, když uživatel vybere položku nabídky. |
CWnd::OnMouseActivate |
Volá se, když je kurzor v neaktivním okně a uživatel stiskne tlačítko myši. |
CWnd::OnMouseHover |
Volá se, když kurzor najede na klientskou oblast okna po dobu uvedenou v předchozím volání TrackMouseEvent. |
CWnd::OnMouseHWheel |
Volá se, když je vodorovné kolečko myši nakloněné nebo otočené. |
CWnd::OnMouseLeave |
Volá se, když kurzor opustí klientskou oblast okna určenou před voláním TrackMouseEvent. |
CWnd::OnMouseMove |
Volá se, když se kurzor myši přesune. |
CWnd::OnMouseWheel |
Volá se, když uživatel otočí kolečko myši. Používá systém Windows NT zpracování zpráv 4.0. |
CWnd::OnMove |
Volá se po změně pozice objektu CWnd . |
CWnd::OnMoving |
Označuje, že uživatel přesouvá CWnd objekt. |
CWnd::OnNcActivate |
Volá se, když je potřeba změnit oblast, která není klientem, aby označí aktivní nebo neaktivní stav. |
CWnd::OnNcCalcSize |
Volá se, když je potřeba vypočítat velikost a umístění klientské oblasti. |
CWnd::OnNcCreate |
Volá se před OnCreate vytvořením oblasti, která není klientem. |
CWnd::OnNcDestroy |
Volá se při zničení oblasti, která není klientem. |
CWnd::OnNcHitTest |
Volá se systémem Windows při každém přesunutí myši, pokud CWnd obsahuje kurzor nebo zachytil vstup myši s SetCapture. |
CWnd::OnNcLButtonDblClk |
Volá se, když uživatel dvakrát klikne na levé tlačítko myši, zatímco kurzor je v jiné než klientské oblasti CWnd. |
CWnd::OnNcLButtonDown |
Volá se, když uživatel stiskne levé tlačítko myši, zatímco kurzor je v jiné než klientské oblasti CWnd. |
CWnd::OnNcLButtonUp |
Volá se, když uživatel uvolní levé tlačítko myši, zatímco kurzor je v jiné než klientské oblasti CWnd. |
CWnd::OnNcMButtonDblClk |
Volá se, když uživatel dvakrát klikne na prostřední tlačítko myši, zatímco kurzor je v oblasti, která není klientem CWnd. |
CWnd::OnNcMButtonDown |
Volá se, když uživatel stiskne prostřední tlačítko myši, zatímco kurzor je v jiné než klientské oblasti CWnd. |
CWnd::OnNcMButtonUp |
Volá se, když uživatel uvolní prostřední tlačítko myši, zatímco kurzor je v jiné než klientské oblasti CWnd. |
CWnd::OnNcMouseHover |
Volá se, když kurzor najede do jiné než klientské oblasti okna po dobu uvedenou v předchozím volání TrackMouseEvent. |
CWnd::OnNcMouseLeave |
Architektura volá tuto členskou funkci, když kurzor opustí neklimovanou oblast okna určenou před voláním TrackMouseEvent. |
CWnd::OnNcMouseMove |
Volá se při přesunutí kurzoru do jiné než klientské oblasti CWnd. |
CWnd::OnNcPaint |
Volá se, když oblast, která není klientem, potřebuje malování. |
CWnd::OnNcRButtonDblClk |
Volá se, když uživatel dvakrát klikne na pravé tlačítko myši, zatímco kurzor je v jiné než klientské oblasti CWnd. |
CWnd::OnNcRButtonDown |
Volá se, když uživatel stiskne pravé tlačítko myši, zatímco kurzor je v jiné než klientské oblasti CWnd. |
CWnd::OnNcRButtonUp |
Volá se, když uživatel uvolní pravé tlačítko myši, zatímco kurzor je v jiné než klientské oblasti CWnd. |
CWnd::OnNcRenderingChanged |
Volá se, když se změnily zásady vykreslování pro oblast, která není klientem. |
CWnd::OnNcXButtonDblClk |
Volá se, když uživatel poklikne XBUTTON1 nebo XBUTTON2 když je kurzor v jiné než klientské oblasti okna. |
CWnd::OnNcXButtonDown |
Volá se, když uživatel stiskne XBUTTON1 nebo XBUTTON2 z myši, zatímco kurzor je v nekližní oblasti okna. |
CWnd::OnNcXButtonUp |
Volá se, když uživatel uvolní XBUTTON1 nebo XBUTTON2 myš, zatímco kurzor je v nekližní oblasti okna. |
CWnd::OnNextMenu |
Volá se, když se k přepínání mezi řádkem nabídek a systémovou nabídkou používá klávesa se šipkou doprava nebo doleva. |
CWnd::OnNotify |
Volá se rozhraním, které informuje nadřazené okno, že došlo k události v některém z jeho ovládacích prvků nebo že ovládací prvek potřebuje informace. |
CWnd::OnNotifyFormat |
Volá se k určení, zda aktuální okno přijímá struktury ANSI nebo Unicode v WM_NOTIFY oznamovací zprávě. |
CWnd::OnPaint |
Volá se k překreslení části okna. |
CWnd::OnPaintClipboard |
Volá se, když klientská oblast prohlížeče schránky potřebuje překreslit. |
CWnd::OnPaletteChanged |
Volá se, aby okna, která používají barevnou paletu, zjistila logické palety a aktualizovala jejich klientské oblasti. |
CWnd::OnPaletteIsChanging |
Informuje ostatní aplikace, když si aplikace uvědomí svou logickou paletu. |
CWnd::OnParentNotify |
Volá se při vytvoření nebo zničení podřízeného okna nebo když uživatel klikne na tlačítko myši, zatímco kurzor je nad podřízeným oknem. |
CWnd::OnPowerBroadcast |
Volá se, když dojde k události řízení spotřeby. |
CWnd::OnQueryDragIcon |
Volá se, když uživatel přetáhne minimalizovaný (ikonický). CWnd |
CWnd::OnQueryEndSession |
Volá se, když se uživatel rozhodne ukončit relaci Systému Windows. |
CWnd::OnQueryNewPalette |
Informuje, že se chystá přijmout vstupní fokus CWnd . |
CWnd::OnQueryOpen |
Volá se, když CWnd je ikona a uživatel požádá o otevření ikony. |
CWnd::OnQueryUIState |
Volá se k načtení stavu uživatelského rozhraní (UI) pro okno. |
CWnd::OnRawInput |
Volá se, když aktuální okno získá nezpracovaný vstup. |
CWnd::OnRButtonDblClk |
Volá se, když uživatel dvakrát klikne na pravé tlačítko myši. |
CWnd::OnRButtonDown |
Volá se, když uživatel stiskne pravé tlačítko myši. |
CWnd::OnRButtonUp |
Volá se, když uživatel uvolní pravé tlačítko myši. |
CWnd::OnRenderAllFormats |
Volá se, když je aplikace vlastníka zničena a potřebuje vykreslit všechny její formáty. |
CWnd::OnRenderFormat |
Volá se pro vlastníka schránky, když je potřeba vykreslit konkrétní formát s zpožděným vykreslováním. |
CWnd::OnSessionChange |
Volá se k upozorňovat aplikaci na změnu stavu relace. |
CWnd::OnSetCursor |
Volá se, pokud se nezachytí vstup myši a myš způsobí pohyb kurzoru v okně. |
CWnd::OnSetFocus |
Volá se po CWnd zvýšení vstupního fokusu. |
CWnd::OnSettingChange |
Volá se, když funkce Win32 SystemParametersInfo změní systémové nastavení. |
CWnd::OnShowWindow |
Volá se, kdy CWnd má být skrytý nebo zobrazený. |
CWnd::OnSize |
Volá se po změně velikosti CWnd . |
CWnd::OnSizeClipboard |
Volá se, když se změnila velikost klientské oblasti okna prohlížeče schránky. |
CWnd::OnSizing |
Označuje, že uživatel přetěžuje obdélník. |
CWnd::OnSpoolerStatus |
Volá se ze Správce tisku při každém přidání nebo odebrání úlohy z fronty Správce tisku. |
CWnd::OnStyleChanged |
Označuje, že SetWindowLong funkce Windows změnila jeden nebo více stylů okna. |
CWnd::OnStyleChanging |
Označuje, že SetWindowLong funkce Windows se chystá změnit jeden nebo více stylů okna. |
CWnd::OnSysChar |
Volá se, když se stisknutí klávesy přeloží na systémový znak. |
CWnd::OnSysColorChange |
Volá se pro všechna okna nejvyšší úrovně při změně v nastavení barvy systému. |
CWnd::OnSysCommand |
Volá se, když uživatel vybere příkaz z nabídky Ovládací prvek nebo když uživatel vybere tlačítko Maximalizovat nebo Minimalizovat. |
CWnd::OnSysDeadChar |
Volá se, když se stisknutí klávesy přeloží na systémový mrtvý znak (například znaky zvýraznění). |
CWnd::OnSysKeyDown |
Volá se, když uživatel stiskne klávesu ALT a pak stiskne jinou klávesu. |
CWnd::OnSysKeyUp |
Volá se, když uživatel uvolní stisknutou klávesu, když byla klávesa ALT přidržována. |
CWnd::OnTCard |
Volá se, když uživatel klikne na tlačítko s možností vytváření. |
CWnd::OnTimeChange |
Volala se pro všechna okna nejvyšší úrovně po změně systémového času. |
CWnd::OnTimer |
Volá se po každém intervalu zadaném v SetTimer. |
CWnd::OnTouchInput |
Zpracování jednoho vstupu z dotykového ovládání Windows |
CWnd::OnTouchInputs |
Zpracování vstupů z dotykového ovládání Windows |
CWnd::OnUniChar |
Volá se při stisknutí klávesy. To znamená, že aktuální okno má fokus klávesnice a WM_KEYDOWN funkce přeloží TranslateMessage zprávu. |
CWnd::OnUnInitMenuPopup |
Volá se při zničení rozevírací nabídky nebo podnabídky. |
CWnd::OnUpdateUIState |
Volá se ke změně stavu uživatelského rozhraní pro zadané okno a všechna jeho podřízená okna. |
CWnd::OnUserChanged |
Volá se po přihlášení nebo vypnutí uživatele. |
CWnd::OnVKeyToItem |
Volá se seznamem vlastněným CWnd v reakci na WM_KEYDOWN zprávu. |
CWnd::OnVScroll |
Volá se, když uživatel klikne na svislý posuvník okna. |
CWnd::OnVScrollClipboard |
Volá se, když by se měl vlastník posunout obrázek schránky, zneplatnit příslušný oddíl a aktualizovat hodnoty posuvníku. |
CWnd::OnWindowPosChanged |
Volá se, když se velikost, pozice nebo pořadí Z změnila v důsledku volání SetWindowPos nebo jiné funkce správy oken. |
CWnd::OnWindowPosChanging |
Volá se, když se velikost, pozice nebo pořadí Z změní v důsledku volání SetWindowPos nebo jiné funkce správy oken. |
CWnd::OnWinIniChange |
Volá se pro všechna okna nejvyšší úrovně po inicializačním souboru Systému Windows, WIN.INIje změněna. |
CWnd::OnWndMsg |
Označuje, jestli byla zpracována zpráva okna. |
CWnd::OnXButtonDblClk |
Volá se, když uživatel poklikne XBUTTON1 nebo XBUTTON2 když je kurzor v klientské oblasti okna. |
CWnd::OnXButtonDown |
Volá se, když uživatel stiskne XBUTTON1 nebo XBUTTON2 když je kurzor v klientské oblasti okna. |
CWnd::OnXButtonUp |
Volá se, když uživatel uvolní XBUTTON1 nebo XBUTTON2 když je kurzor v klientské oblasti okna. |
CWnd::PostNcDestroy |
Tato virtuální funkce je volána výchozí funkcí OnNcDestroy po zničení okna. |
CWnd::ReflectChildNotify |
Pomocná funkce, která odráží zprávu ke zdroji. |
CWnd::ReflectLastMsg |
Zobrazuje poslední zprávu do podřízeného okna. |
CWnd::ResizeDynamicLayout |
Volá se podle architektury, když se velikost okna změní tak, aby se upravilo rozložení podřízených oken, pokud je pro okno povolené dynamické rozložení. |
CWnd::WindowProc |
Poskytuje proceduru okna pro .CWnd Výchozí odesílá zprávy prostřednictvím mapy zpráv. |
Veřejné operátory
| Název | Popis |
|---|---|
CWnd::operator HWND |
Volání pro získání popisovače do okna |
CWnd::operator != |
Určuje, zda okno není stejné jako okno, jehož popisovač je m_hWnd. |
CWnd::operator == |
Určuje, zda je okno stejné jako okno, jehož úchyt je m_hWnd. |
Veřejné datové členy
| Název | Popis |
|---|---|
CWnd::m_hWnd |
Označuje HWND připojený k tomuto CWnd. |
Poznámky
Objekt CWnd se liší od okna Windows, ale oba objekty jsou úzce propojené. Objekt CWnd je vytvořen nebo zničen CWnd konstruktorem a destruktorem. Naproti tomu okno Windows je datová struktura interní pro Windows, která je vytvořená Create členovou funkcí a zničena CWnd virtuální destruktoru. Funkce DestroyWindow zničí okno Systému Windows bez zničení objektu.
Třída CWnd a mechanismus mapování zpráv funkci skryjí WndProc . Příchozí zprávy oznámení systému Windows se automaticky směrují přes mapu zpráv na správné členské funkce ZprávyCWnd. Přepíšete členskou funkci OnMessage , která bude zpracovávat konkrétní zprávu člena v odvozených třídách.
Třída CWnd také umožňuje vytvořit podřízené okno windows pro vaši aplikaci. Odvodit třídu z CWnda pak přidat členské proměnné do odvozené třídy pro ukládání dat specifických pro vaši aplikaci. Implementujte členské funkce obslužné rutiny zpráv a mapu zpráv v odvozené třídě a určete, co se stane, když jsou zprávy směrovány do okna.
Podřízené okno vytvoříte ve dvou krocích. Nejprve zavolejte konstruktor CWnd , který vytvoří CWnd objekt, a pak zavolá Create člen funkce pro vytvoření podřízeného okna a připojí ho k objektu CWnd .
Když uživatel ukončí vaše podřízené okno, zničí CWnd objekt nebo zavolá DestroyWindow členovou funkci, aby se okno odebralo a zničilo jeho datové struktury.
V rámci knihovny tříd Microsoft Foundation jsou další třídy odvozeny z CWnd poskytování konkrétních typů oken. Mnohé z těchto tříd, včetně CFrameWnd, , CMDIChildWndCMDIFrameWndCView, a CDialog, jsou určeny pro další odvození. Kontrolní třídy odvozené z CWnd, například CButton, lze použít přímo nebo lze použít pro další odvození tříd.
Další informace o použití CWnd, viz Frame Windows a window objekty.
Hierarchie dědičnosti
CWnd
Požadavky
Hlavička: afxwin.h
CWnd::accDoDefaultAction
Volá se rozhraním k provedení výchozí akce objektu.
virtual HRESULT accDoDefaultAction(VARIANT varChild);
Parametry
varChild
Určuje, zda je výchozí akce, která má být vyvolána, je objekt nebo jeden z podřízených prvků objektu. Tento parametr může být buď CHILDID_SELF (k provedení výchozí akce objektu), nebo podřízeného ID (k provedení výchozí akce jednoho z podřízených prvků objektu).
Návratová hodnota
Vrátí S_OK při úspěchu, kód chyby modelu COM při selhání. Viz Návratové hodnoty v IAccessible::accDoDefaultAction v sadě Windows SDK.
Poznámky
Tato funkce je součástí podpory aktivní přístupnosti mfc.
Tuto funkci v CWndodvozené třídě přepište, aby se provedla výchozí akce objektu. Další informace naleznete v tématu IAccessible::accDoDefaultAction v sadě Windows SDK.
CWnd::accHitTest
Volá se rozhraním pro načtení podřízeného elementu nebo podřízeného objektu v daném bodě na obrazovce.
virtual HRESULT accHitTest(
long xLeft,
long yTop,
VARIANT* pvarChild);
Parametry
xLeft
Souřadnice X bodu, který se má testovat (v jednotkách obrazovky).
yTop
Souřadnice Y bodu, který se má testovat (v jednotkách obrazovky).
pvarChild
Přijímá informace o identifikaci objektu v bodě určeném parametrem xLeft a yTop. Viz pvarID v IAccessible::accHitTest sadě Windows SDK.
Návratová hodnota
Vrátí S_OK kód chyby MODELU COM při selhání. Viz návratové hodnoty v IAccessible::accHitTest sadě Windows SDK.
Poznámky
Tato funkce je součástí podpory aktivní přístupnosti mfc.
Tuto funkci přepište ve své CWnd-odvozené třídě, pokud máte newindowed prvky uživatelského rozhraní (jiné než ovládací prvky ActiveX bez oken, které MFC zpracovává).
Další informace najdete IAccessible::accHitTest v sadě Windows SDK.
CWnd::accLocation
Volá se rozhraním pro načtení aktuálního umístění obrazovky zadaného objektu.
virtual HRESULT accLocation(
long* pxLeft,
long* pyTop,
long* pcxWidth,
long* pcyHeight,
VARIANT varChild);
Parametry
pxLeft
Přijme souřadnici x levého horního rohu objektu (v jednotkách obrazovky).
pyTop
Přijme souřadnici y levého horního rohu objektu (v jednotkách obrazovky).
pcxWidth
Přijímá šířku objektu (v jednotkách obrazovky).
pcyHeight
Přijímá výšku objektu (v jednotkách obrazovky).
varChild
Určuje, zda umístění, které se má načíst, je objekt nebo jeden z podřízených prvků objektu. Tento parametr může být buď CHILDID_SELF (pro získání informací o objektu) nebo podřízené ID (k získání informací o podřízené elementu objektu).
Návratová hodnota
Vrátí S_OK při úspěchu, kód chyby modelu COM při selhání. Viz návratové hodnoty v IAccessible::accLocation sadě Windows SDK.
Poznámky
Tuto funkci přepište ve své CWnd-odvozené třídě, pokud máte newindowed prvky uživatelského rozhraní (jiné než ovládací prvky ActiveX bez oken, které MFC zpracovává).
Další informace najdete IAccessible::accLocation v sadě Windows SDK.
CWnd::accNavigate
Volal rozhraní pro přechod k jinému prvku uživatelského rozhraní v kontejneru a pokud je to možné, načtěte objekt.
virtual HRESULT accNavigate(
long navDir,
VARIANT varStart,
VARIANT* pvarEndUpAt);
Parametry
navDir
Určuje směr navigace. Viz navDir v IAccessible::accNavigate sadě Windows SDK.
varStart
Určuje počáteční objekt. Viz varStart v IAccessible::accNavigate sadě Windows SDK.
pvarEndUpAt
Přijímá informace o cílovém objektu uživatelského rozhraní. Viz pvarEnd v IAccessible::accNavigate sadě Windows SDK.
Návratová hodnota
Vrátí S_OK kód chyby MODELU COM při selhání. Viz návratové hodnoty v IAccessible::accNavigate sadě Windows SDK.
Poznámky
Tato funkce je součástí podpory aktivní přístupnosti mfc.
Tuto funkci přepište ve své CWnd-odvozené třídě, pokud máte newindowed prvky uživatelského rozhraní (jiné než ovládací prvky ActiveX bez oken, které MFC zpracovává).
Další informace najdete IAccessible::accNavigate v sadě Windows SDK.
CWnd::accSelect
Volá se rozhraním pro úpravu výběru nebo přesunutí fokusu klávesnice zadaného objektu.
virtual HRESULT accSelect(
long flagsSelect,
VARIANT varChild);
Parametry
flagsSelect
Určuje, jak změnit aktuální výběr nebo fokus. Viz flagsSelect v IAccessible::accSelect sadě Windows SDK.
varChild
Určuje objekt, který se má vybrat. Tento parametr může být buď CHILDID_SELF (pro výběr samotného objektu), nebo podřízeného ID (pro výběr jedné z podřízených objektů).
Návratová hodnota
Vrátí S_OK kód chyby MODELU COM při selhání. Viz návratové hodnoty v IAccessible::accSelect sadě Windows SDK.
Poznámky
Tato funkce je součástí podpory aktivní přístupnosti mfc.
Tuto funkci přepište ve své CWnd-odvozené třídě, pokud máte newindowed prvky uživatelského rozhraní (jiné než ovládací prvky ActiveX bez oken, které MFC zpracovává).
Další informace najdete IAccessible::accSelect v sadě Windows SDK.
CWnd::AnimateWindow
Vytvoří zvláštní efekty při zobrazení nebo skrytí oken.
BOOL AnimateWindow(
DWORD dwTime,
DWORD dwFlags);
Parametry
dwTime
Určuje, jak dlouho trvá přehrávání animace v milisekundách. Animace obvykle trvá přehrávání 200 milisekund.
dwFlags
Určuje typ animace. Úplný seznam možných hodnot najdete v tématu AnimateWindow.
Návratová hodnota
Nenulové, pokud je funkce úspěšná; jinak 0.
Poznámky
Tato členová funkce emuluje funkce funkce AnimateWindow, jak je popsáno v sadě Windows SDK.
CWnd::ArrangeIconicWindows
Uspořádá všechna minimalizovaná (ikonická) podřízená okna.
UINT ArrangeIconicWindows();
Návratová hodnota
Výška jednoho řádku ikon, pokud je funkce úspěšná; jinak 0.
Poznámky
Tato členová funkce také uspořádá ikony v okně plochy, která pokrývá celou obrazovku. Členová GetDesktopWindow funkce načte ukazatel na objekt okna plochy.
Pokud chcete uspořádat ikonická podřízená okna MDI v okně klienta MDI, zavolejte CMDIFrameWnd::MDIIconArrange.
Příklad
// arrange minimized MDI child windows
// called from menu item; CMdiChildFrame is derived from CMDIChildWnd
void CMdiChildFrame::OnActionArrangeIconicWindows()
{
UINT height = GetParent()->ArrangeIconicWindows();
TRACE(_T("height = %d\n"), height);
}
CWnd::Attach
Připojí okno Windows k objektu CWnd .
BOOL Attach(HWND hWndNew);
Parametry
hWndNew
Určuje popisovač okna Windows.
Návratová hodnota
Nenulové, pokud je úspěšné; jinak 0.
Příklad
Tento příklad ukazuje, jak používat Attach a Detach mapovat do okna klienta MDI.
// Declare a CWnd member of CMainFrame
public:
CWnd m_wndMDIClient;
// detach MDI client window in CMainFrame destructor
m_wndMDIClient.Detach();
// In CMainFrame::OnCreate, attach MDI client window
if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;
// attach MDI client window
if (m_wndMDIClient.Attach(m_hWndMDIClient) == 0)
{
TRACE(_T("Failed to attach MDIClient.\n"));
return -1; // fail to create
}
CWnd::BeginModalState
Voláním této členské funkce nastavíte modální okno rámce.
virtual void BeginModalState();
CWnd::BeginPaint
CWnd Připravuje se na malování a vyplní datovou PAINTSTRUCT strukturu informacemi o obrazu.
CDC* BeginPaint(LPPAINTSTRUCT lpPaint);
Parametry
lpPaint
Odkazuje na PAINTSTRUCT strukturu, která má přijímat informace o obrazu.
Návratová hodnota
Identifikuje kontext zařízení pro CWnd. Ukazatel může být dočasný a neměl by být uložen nad rámec rozsahu EndPaint.
Poznámky
Struktura malování obsahuje datovou RECT strukturu, která má nejmenší obdélník, který zcela uzavře oblast aktualizace, a příznak, který určuje, zda bylo pozadí vymazáno.
Oblast aktualizace je nastavena Invalidatefunkcemi , InvalidateRectnebo InvalidateRgn členy a systémem po jeho velikosti, přesunu, vytvoření, posouvání nebo provedení jakékoli jiné operace, která má vliv na klientskou oblast. Pokud je oblast aktualizace označená k vymazání, BeginPaint odešle WM_ONERASEBKGND zprávu.
Nevolejte členovou BeginPaint funkci s výjimkou odpovědi na WM_PAINT zprávu. Každé volání BeginPaint členské funkce musí mít odpovídající volání EndPaint členské funkce. Pokud je stříška v oblasti, kterou chcete malovat, BeginPaint členová funkce automaticky skryje stříšku, aby se zabránilo vymazání.
Příklad
// Use BeginPaint and EndPaint when responding to WM_PAINT message
// An alternative method is to use CPaintDC in place of
// BeginPaint and EndPaint
void CMdiView::OnPaint()
{
PAINTSTRUCT ps;
CDC *pDC = BeginPaint(&ps);
pDC->Rectangle(CRect(0, 0, 100, 100));
EndPaint(&ps);
// Do not call CView::OnPaint() for painting messages
}
CWnd::BindDefaultProperty
Vytvoří vazbu výchozí jednoduché vázané vlastnosti volajícího objektu (například ovládací prvek pro úpravy), jak je označeno v knihovně typů, k podkladovému kurzoru, který je definován pomocí DataSource, UserNamePassworda SQL vlastnosti ovládacího prvku zdroje dat.
void BindDefaultProperty(
DISPID dwDispID,
VARTYPE vtProp,
LPCTSTR szFieldName,
CWnd* pDSCWnd);
Parametry
dwDispID
Určuje DISPID vlastnost ovládacího prvku vázaného na data, který má být vázán na ovládací prvek zdroje dat.
vtProp
Určuje typ vlastnosti, která má být vázána. Například , VT_BSTRVT_VARIANTa tak dále.
szFieldName
Určuje název sloupce v kurzoru poskytnutém ovládacím prvek zdroje dat, ke kterému bude vlastnost vázána.
pDSCWnd
Odkazuje na okno, které je hostitelem ovládacího prvku zdroje dat, ke kterému bude vlastnost vázána. Voláním GetDlgItem s ID prostředku okna hostitele DCS načtěte tento ukazatel.
Poznámky
Objekt CWnd , na kterém tuto funkci voláte, musí být ovládací prvek vázaný na data.
Příklad
BindDefaultProperty lze použít v následujícím kontextu:
BOOL CMyDlg::OnInitDialog()
{
CWnd *pDSC = GetDlgItem(IDC_DATASOURCE);
CWnd *pMyBound = GetDlgItem(IDC_MYBOUNDCTRL1);
pMyBound->BindDefaultProperty(0x1, VT_BSTR, _T("ContactFirstName"), pDSC);
return TRUE;
}
CWnd::BindProperty
Vytvoří vazbu vlastnosti vázané na kurzor u ovládacího prvku vázaného na data (například ovládací prvek mřížky) na ovládací prvek zdroje dat a zaregistruje tuto relaci se správcem vazeb MFC.
void BindProperty(
DISPID dwDispId,
CWnd* pWndDSC);
Parametry
dwDispId
Určuje DISPID vlastnost ovládacího prvku vázaného na data, který má být vázán na ovládací prvek zdroje dat.
pWndDSC
Odkazuje na okno, které je hostitelem ovládacího prvku zdroje dat, ke kterému bude vlastnost vázána. Voláním GetDlgItem s ID prostředku okna hostitele DCS načtěte tento ukazatel.
Poznámky
Objekt CWnd , na kterém tuto funkci voláte, musí být ovládací prvek vázaný na data.
Příklad
BindProperty lze použít v následujícím kontextu:
BOOL CMyDlg::OnInitDialog()
{
CWnd *pDSC = GetDlgItem(IDC_DATASOURCE);
CWnd *pMyBound = GetDlgItem(IDC_MYBOUNDCTRL2);
pMyBound->BindProperty(0x1, pDSC);
return TRUE;
}
CWnd::BringWindowToTop
Přenese CWnd do horní části zásobníku překrývajících se oken.
void BringWindowToTop();
Poznámky
Kromě toho BringWindowToTop aktivuje automaticky otevírané okno, nejvyšší úroveň a podřízená okna MDI. Členová BringWindowToTop funkce by měla být použita k odhalení libovolného okna, které je částečně nebo zcela zakryté všemi překrývajícími se okny.
Tato funkce pouze volá funkci Win32 BringWindowToTop . Voláním SetWindowPos funkce změníte pozici okna v pořadí Z. Funkce BringWindowToTop nezmění styl okna tak, aby byla okno nejvyšší úrovně. Další informace najdete v tématu Jaký je rozdíl mezi HWND_TOP a HWND_TOPMOST
Příklad
// Moves MDI child windows to the top when a mouse passes
// over it. CMdiView is derived from CView.
void CMdiView::OnMouseMove(UINT nFlags, CPoint point)
{
UNREFERENCED_PARAMETER(nFlags);
UNREFERENCED_PARAMETER(point);
GetParentFrame()->BringWindowToTop();
}
CWnd::CalcWindowRect
Vypočítá obdélník okna, který může obsahovat zadaný obdélník klienta.
virtual void CalcWindowRect(
LPRECT lpClientRect,
UINT nAdjustType = adjustBorder);
Parametry
lpClientRect
[in, out] Ukazatel na strukturu obdélníku Na vstupu tato struktura obsahuje obdélník klienta. Po dokončení metody tato struktura obsahuje obdélník okna, který může obsahovat zadaný obdélník klienta.
nAdjustType
[v] Slouží CWnd::adjustBorder k výpočtu souřadnic oken bez WS_EX_CLIENTEDGE stylu; jinak použijte CWnd::adjustOutside.
Poznámky
Velikost obdélníku počítaného okna neobsahuje mezeru pro řádek nabídek.
Další omezení využití najdete v tématu AdjustWindowRectEx.
Příklad
// Uses CalcWindowRect to determine size for new CFrameWnd
// based on the size of the current view. The end result is a
// top level frame window of the same size as CMdiView's frame.
void CMdiView::OnMyCreateFrame()
{
CFrameWnd *pFrameWnd = new CFrameWnd;
CRect myRect;
GetClientRect(myRect);
pFrameWnd->Create(NULL, _T("My Frame"));
pFrameWnd->CalcWindowRect(&myRect, CWnd::adjustBorder);
pFrameWnd->MoveWindow(0, 0, myRect.Width(), myRect.Height());
pFrameWnd->ShowWindow(SW_SHOW);
}
CWnd::CancelToolTips
Voláním této členské funkce odeberete popisek nástroje z obrazovky, pokud je aktuálně zobrazen popis.
static void PASCAL CancelToolTips(BOOL bKeys = FALSE);
Parametry
bKeys
TRUE pokud chcete zrušit popisy nástrojů při stisknutí klávesy a nastavit text stavového řádku na výchozí; jinak FALSE.
Poznámky
Poznámka:
Použití této členské funkce nemá žádný vliv na popisy nástrojů spravované vaším kódem. Ovlivňuje pouze ovládací prvek popisku nástroje spravovaného CWnd::EnableToolTipsnástrojem .
Příklad
// In this example, tool tips were set up to
// pop up when the user moves the mouse
// over this edit control.
// If the mouse is moved to the upper left-hand
// corner, the tool tip would disappear because of
// calling CancelToolTips.
void CMyEdit::OnMouseMove(UINT nFlags, CPoint point)
{
CRect corner(0, 0, 10, 10);
if (corner.PtInRect(point))
CancelToolTips();
CEdit::OnMouseMove(nFlags, point);
}
CWnd::CenterWindow
Zacentruje okno vzhledem k nadřazené sadě.
void CenterWindow(CWnd* pAlternateOwner = NULL);
Parametry
pAlternateOwner
Ukazatel na alternativní okno vzhledem k tomu, na které bude zarovnané na střed (jiné než nadřazené okno).
Poznámky
Obvykle se volá z CDialog::OnInitDialog dialogových oken do středu vzhledem k hlavnímu okně aplikace. Ve výchozím nastavení funkce zacentruje podřízená okna vzhledem k nadřazeným oknu a automaticky otevíraná okna vzhledem k jejich vlastníkovi. Pokud automaticky otevírané okno nepatří, je na střed vzhledem k obrazovce. Pokud chcete okno zacentrovat vzhledem k určitému okně, které není vlastníkem nebo nadřazeným objektem, pAlternateOwner může být parametr nastaven na platné okno. Pokud chcete vynutit střed vzhledem k obrazovce, předejte hodnotu vrácenou CWnd::GetDesktopWindow jako pAlternateOwner.
Příklad
BOOL CAboutDlg::OnInitDialog()
{
CDialog::OnInitDialog();
CenterWindow();
return TRUE;
}
CWnd::ChangeClipboardChain
Odebere CWnd z řetězce prohlížečů schránky a vytvoří okno určené hWndNext potomkem CWnd nadřazeného objektu v řetězci.
BOOL ChangeClipboardChain(HWND hWndNext);
Parametry
hWndNext
Identifikuje okno, které následuje CWnd v řetězci prohlížeče schránky.
Návratová hodnota
Nenulové, pokud je úspěšné; jinak 0.
CWnd::CheckDlgButton
Vybere tlačítko (umístí značku zaškrtnutí vedle) nebo zruší zaškrtnutí (odebere značku zaškrtnutí) nebo změní stav tlačítka se třemi stavy.
void CheckDlgButton(
int nIDButton,
UINT nCheck);
Parametry
nIDButton
Určuje tlačítko, které se má upravit.
nCheck
Určuje akci, která se má provést. Pokud je nenulová, CheckDlgButton členová funkce umístí značku zaškrtnutí vedle tlačítka. Pokud nCheck je 0, značka zaškrtnutí se odebere. U třístavových tlačítek je stav tlačítka neurčitý, pokud nCheck je 2.
Poznámky
Funkce CheckDlgButton odešle BM_SETCHECK zprávu na zadané tlačítko.
Příklad
// Sets 3 check buttons in various ways. Note BST_INDETERMINATE
// requires BS_3STATE or BS_AUTO3STATE in the button's style.
void CMyDlg::OnMarkButtons()
{
CheckDlgButton(IDC_CHECK1, BST_UNCHECKED); // 0
CheckDlgButton(IDC_CHECK2, BST_CHECKED); // 1
CheckDlgButton(IDC_CHECK3, BST_INDETERMINATE); // 2
}
CWnd::CheckRadioButton
Vybere (přidá značku zaškrtnutí) dané přepínače ve skupině a zruší zaškrtnutí (odebere značku zaškrtnutí) všechna ostatní přepínače ve skupině.
void CheckRadioButton(
int nIDFirstButton,
int nIDLastButton,
int nIDCheckButton);
Parametry
nIDFirstButton
Určuje celočíselnou identifikátor prvního přepínače ve skupině.
nIDLastButton
Určuje celočíselnou identifikátor posledního přepínače ve skupině.
nIDCheckButton
Určuje celočíselnou identifikátor přepínače, který se má zkontrolovat.
Poznámky
Funkce CheckRadioButton odešle BM_SETCHECK zprávu zadanému přepínači.
Příklad
// Of the 4 radio buttons, selects radio button 3.
void CMyDlg::OnMarkRadio()
{
CheckRadioButton(IDC_RADIO1, IDC_RADIO4, IDC_RADIO3);
}
CWnd::ChildWindowFromPoint
Určuje, která podřízená okna, která patří do CWnd některého z podřízených oken, obsahuje zadaný bod.
CWnd* ChildWindowFromPoint(POINT point) const;
CWnd* ChildWindowFromPoint(
POINT point,
UINT nFlags) const;
Parametry
point
Určuje souřadnice klienta bodu, který se má testovat.
nflags
Určuje, která podřízená okna se mají přeskočit. Tento parametr může být kombinací následujících hodnot:
| Hodnota | Význam |
|---|---|
CWP_ALL |
Nepřeskakujte žádná podřízená okna. |
CWP_SKIPINVISIBLE |
Přeskočit neviditelná podřízená okna |
CWP_SKIPDISABLED |
Přeskočit zakázaná podřízená okna |
CWP_SKIPTRANSPARENT |
Přeskočit průhledná podřízená okna |
Návratová hodnota
Identifikuje podřízené okno, které obsahuje bod. NULL Je-li daný bod umístěn mimo oblast klienta. Pokud je bod v klientské oblasti, ale není obsažen v žádném podřízeném okně, CWnd vrátí se.
Tato členová funkce vrátí skryté nebo zakázané podřízené okno, které obsahuje zadaný bod.
Daný bod může obsahovat více než jedno okno. Tato funkce však vrátí pouze CWnd* prvního okna, které obsahuje bod.
Vrácená CWndhodnota * může být dočasná a neměla by být uložena pro pozdější použití.
Příklad
void CMyDlg::OnFindCenterChild()
{
CRect rect;
GetClientRect(&rect);
CWnd* pWnd = ChildWindowFromPoint(
CPoint(rect.Width()/2, rect.Height()/2),
// Top left is always 0, 0.
CWP_SKIPINVISIBLE);
TRACE(_T("Center window is 0x%08x\n"), pWnd->m_hWnd);
}
CWnd::ClientToScreen
Převede souřadnice klienta daného bodu nebo obdélníku na displeji na souřadnice obrazovky.
void ClientToScreen(LPPOINT lpPoint) const;
void ClientToScreen(LPRECT lpRect) const;
Parametry
lpPoint
Odkazuje na POINT strukturu nebo CPoint objekt, který obsahuje souřadnice klienta, které se mají převést.
lpRect
Odkazuje na RECT strukturu nebo CRect objekt, který obsahuje souřadnice klienta, které se mají převést.
Poznámky
Členská ClientToScreen funkce používá souřadnice klienta ve POINT struktuře, RECT struktuře nebo objektu CPoint CRect , na který lpPoint odkazuje, nebo lpRect k výpočtu nových souřadnic obrazovky. Potom nahradí souřadnice ve struktuře novými souřadnicemi. Nové souřadnice obrazovky jsou relativní vzhledem k levému hornímu rohu zobrazení systému.
Členská ClientToScreen funkce předpokládá, že daný bod nebo obdélník je v souřadnicích klienta.
Příklad
// resize dialog to client's size
void CMyDlg::OnSizeToClient()
{
CRect myRect;
GetClientRect(&myRect);
ClientToScreen(myRect);
MoveWindow(myRect.left, myRect.top,
myRect.Width(), myRect.Height());
}
CWnd::CloseWindow
Minimalizuje okno.
void CloseWindow();
Poznámky
Tato členová funkce emuluje funkce funkce CloseWindow, jak je popsáno v sadě Windows SDK.
CWnd::ContinueModal
Tato členová funkce je volána, RunModalLoop aby určila, kdy má být modální stav ukončen.
virtual BOOL ContinueModal();
Návratová hodnota
Nenulová, pokud modální smyčka bude pokračovat; 0, když EndModalLoop je volána.
Poznámky
Ve výchozím nastavení vrátí nenulu, dokud EndModalLoop se nevolá.
CWnd::Create
Vytvoří zadané podřízené okno a připojí ho k objektu CWnd .
virtual BOOL Create(
LPCTSTR lpszClassName,
LPCTSTR lpszWindowName,
DWORD dwStyle,
Const RECT& rect,
CWnd* pParentWnd,
UINT nID,
CCreateContext* pContext = NULL);
Parametry
lpszClassName
[v] Ukazatel na řetězec ukončený hodnotou null, který obsahuje název registrované třídy systémového okna; nebo název předdefinované třídy okna systému.
lpszWindowName
[v] Ukazatel na řetězec ukončený hodnotou null, který obsahuje zobrazovaný název okna; jinak NULL pro žádný zobrazovaný název okna.
dwStyle
[v] Bitová kombinace (OR) stylů oken Tato WS_POPUP možnost není platný styl.
rect
[v] Velikost a umístění okna vzhledem k levému hornímu rohu nadřazeného okna.
pParentWnd
[v] Ukazatel na nadřazené okno
nID
[v] ID okna.
pContext
[v] Ukazatel na CCreateContext strukturu, která se používá k přizpůsobení architektury zobrazení dokumentu pro aplikaci.
Návratová hodnota
TRUE pokud byla metoda úspěšná; jinak FALSE.
Poznámky
Upozorňující
CWnd::PreCreateWindow nyní přiřadí hMenu člena jeho CREATESTRUCT parametru this ukazatel, pokud je NULL nabídka a styl obsahuje WS_CHILD. Pro správné funkce se ujistěte, že ovládací prvek dialogového okna má ID, které není NULL.
Tato změna opravuje chybové ukončení ve scénářích spravované/nativní spolupráce. Prohlášení TRACE v CWnd::Create upozorněních vývojáře problému.
AfxRegisterWndClass Pomocí funkce zaregistrujte třídy oken. Uživatelem definované třídy oken jsou k dispozici v modulu, kde jsou registrovány.
Metoda CWnd::OnCreate se volá před vrácením Create metody a před zobrazením okna.
Příklad
// Dynamically create static control using CWnd::Create,
// instead of with CStatic::Create, which doesn't
// need the "STATIC" class name.
void CMyDlg::OnCreateStatic()
{
// m_pWndStatic is a CWnd* member of CMyDlg
m_pWndStatic = new CWnd;
m_pWndStatic->Create(_T("STATIC"), _T("Hi"), WS_CHILD | WS_VISIBLE,
CRect(0, 0, 20, 20), this, 1234);
}
CWnd::CreateAccessibleProxy
Vytvoří proxy server aktivní přístupnosti pro zadaný objekt.
virtual HRESULT CreateAccessibleProxy(
WPARAM wParam,
LPARAM lParam,
LRESULT* pResult);
Parametry
wParam
Identifikuje objekt přístupný proxy serverem aktivní přístupnosti. Může to být jedna z následujících hodnot.
| Hodnota | Význam |
|---|---|
OBJID_CLIENT |
Odkazuje na oblast klienta okna. |
lParam
Poskytuje další informace závislé na zprávách.
pResult
Ukazatel na LRESULT kód výsledku, který ukládá kód výsledku.
Poznámky
Vytvoří proxy server aktivní přístupnosti pro zadaný objekt.
CWnd::CreateCaret
Vytvoří nový obrazec pro stříšku systému a nároky vlastnictví stříšky.
void CreateCaret(CBitmap* pBitmap);
Parametry
pBitmap
Identifikuje rastrový obrázek, který definuje obrazec stříšky.
Poznámky
Rastrový obrázek musí být vytvořen dříve členovou CBitmap::CreateBitmap funkcí, CreateDIBitmap funkcí Systému Windows nebo členovou CBitmap::LoadBitmap funkcí.
CreateCaret automaticky zničí předchozí stříšku, pokud existuje, bez ohledu na to, které okno vlastní stříšku. Po vytvoření je stříška zpočátku skrytá. Chcete-li zobrazit stříšku, ShowCaret musí být volána členová funkce.
Stříška systému je sdílený prostředek. CWnd by měla vytvořit stříšku pouze v případě, že má vstupní fokus nebo je aktivní. Měla by zničit stříšku předtím, než ztratí vstupní fokus nebo se stane neaktivním.
Příklad
// Changes the caret of the edit control in this dialog box
void CMyDlg::OnChangeCaret()
{
m_pBitmapCaret = new CBitmap;
m_pBitmapCaret->LoadBitmap(IDB_HAPPY_BITMAP);
m_MyEdit.CreateCaret(m_pBitmapCaret);
m_MyEdit.ShowCaret();
}
CWnd::CreateControl
Pomocí této členské funkce vytvořte ovládací prvek ActiveX, který bude reprezentován v programu MFC objektem CWnd .
BOOL CreateControl(
LPCTSTR pszClass,
LPCTSTR pszWindowName,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID,
CFile* pPersist = NULL,
BOOL bStorage = FALSE,
BSTR bstrLicKey = NULL);
BOOL CreateControl(
REFCLSID clsid,
LPCTSTR pszWindowName,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID,
CFile* pPersist = NULL,
BOOL bStorage = FALSE,
BSTR bstrLicKey = NULL);
BOOL CreateControl(
REFCLSID clsid,
LPCTSTR pszWindowName,
DWORD dwStyle,
const POINT* ppt,
const SIZE* psize,
CWnd* pParentWnd,
UINT nID,
CFile* pPersist = NULL,
BOOL bStorage = FALSE,
BSTR bstrLicKey = NULL);
Parametry
pszClass
Tento řetězec může obsahovat ole "krátký název" (ProgID) pro třídu. Například "CIRC3.Circ3Ctrl.1". Název musí odpovídat stejnému názvu, který ovládací prvek zaregistroval. Případně může řetězec obsahovat řetězcovou formu , obsaženou CLSIDve složených závorkách. Například "{9DBAFCCF-592F-101B-85CE-00608CEC297B}". V obou případech CreateControl převede řetězec na odpovídající ID třídy.
pszWindowName
Ukazatel na text, který se má v ovládacím prvku zobrazit. Nastaví hodnotu vlastnosti Caption nebo Text ovládacího prvku (pokud existuje). Pokud NULLse vlastnost Caption nebo Text ovládacího prvku nezmění.
dwStyle
Styly Windows. Dostupné styly jsou uvedeny v části Poznámky.
rect
Určuje velikost a umístění ovládacího prvku. Může to být CRect objekt nebo RECT struktura.
ppt
Odkazuje na POINT strukturu nebo CPoint objekt, který obsahuje levý horní roh ovládacího prvku.
pSize
Odkazuje na SIZE strukturu nebo CSize objekt obsahující velikost ovládacího prvku.
pParentWnd
Určuje nadřazené okno ovládacího prvku. Nesmí to být NULL.
nID
Určuje ID ovládacího prvku.
pPersist
Ukazatel na CFile obsahující trvalý stav ovládacího prvku. Výchozí hodnota znamená NULL, že ovládací prvek inicializuje sám sebe bez obnovení stavu z jakéhokoli trvalého úložiště. Pokud ne NULL, měl by to být ukazatel na -odvozený CFileobjekt, který obsahuje trvalá data ovládacího prvku ve formě datového proudu nebo úložiště. Tato data mohla být uložena v předchozí aktivaci klienta. Může CFile obsahovat jiná data, ale musí mít ukazatel pro čtení i zápis nastavený na první bajt trvalých dat v době volání CreateControl.
bStorage
Určuje, jestli se mají data pPersist interpretovat jako IStorage nebo IStream data. Pokud jsou data v pPersist úložišti, bStorage měla by být TRUE. Pokud jsou data v pPersist datovém proudu, bStorage měla by být FALSE. Výchozí hodnota je FALSE.
bstrLicKey
Nepovinná data licenčního klíče. Tato data jsou potřebná pouze pro vytváření ovládacích prvků, které vyžadují licenční klíč za běhu. Pokud ovládací prvek podporuje licencování, musíte zadat licenční klíč pro úspěšné vytvoření ovládacího prvku. Výchozí hodnota je NULL.
clsid
Jedinečné ID třídy ovládacího prvku.
Návratová hodnota
Nenulové, pokud je úspěšné; jinak 0.
Poznámky
CreateControl je přímá analogie CWnd::Create funkce, která vytvoří okno pro funkci CWnd. CreateControl vytvoří ovládací prvek ActiveX místo běžného okna.
Podporují CreateControlse pouze podmnožina příznaků WindowsdwStyle:
WS_VISIBLEVytvoří okno, které je zpočátku viditelné. Vyžaduje se, pokud chcete, aby byl ovládací prvek viditelný okamžitě, například běžná okna.WS_DISABLEDVytvoří okno, které je původně zakázáno. Zakázané okno nemůže přijímat vstup od uživatele. Lze nastavit, pokud má ovládací prvek vlastnost Enabled.WS_BORDERVytvoří okno s tenkým ohraničením. Lze nastavit, pokud máBorderStyleovládací prvek vlastnost.WS_GROUPUrčuje první ovládací prvek skupiny ovládacích prvků. Uživatel může změnit fokus klávesnice z jednoho ovládacího prvku ve skupině na další pomocí směrových kláves. Všechny ovládací prvky definované stylemWS_GROUPpo prvním ovládacím prvku patří do stejné skupiny. Další ovládací prvek se stylemWS_GROUPukončí skupinu a spustí další skupinu.WS_TABSTOPUrčuje ovládací prvek, který může dostat fokus klávesnice, když uživatel stiskne klávesu TAB. Stisknutím klávesy TAB změníte fokus klávesnice na další ovládací prvekWS_TABSTOPstylu.
Příklad
class CGenocx : public CWnd
{
protected:
DECLARE_DYNCREATE(CGenocx)
public:
CLSID const &GetClsid()
{
static CLSID const clsid = {0x20DD1B9E, 0x87C4, 0x11D1, {0x8B, 0xE3, 0x0, 0x0, 0xF8, 0x75, 0x4D, 0xA1}};
return clsid;
}
// This code is generated by the Control Wizard.
// It wraps the call to CreateControl in the call to Create.
virtual BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle,
const RECT &rect, CWnd *pParentWnd, UINT nID,
CCreateContext *pContext = NULL)
{
UNREFERENCED_PARAMETER(pContext);
UNREFERENCED_PARAMETER(lpszClassName);
return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID);
}
// remainder of class declaration omitted...
CWnd::CreateEx
Vytvoří zadané okno a připojí ho k objektu CWnd .
virtual BOOL CreateEx(
DWORD dwExStyle,
LPCTSTR lpszClassName,
LPCTSTR lpszWindowName,
DWORD dwStyle,
int x,
int y,
int nWidth,
int nHeight,
HWND hWndParent,
HMENU nIDorHMenu,
LPVOID lpParam = NULL);
virtual BOOL CreateEx(
DWORD dwExStyle,
LPCTSTR lpszClassName,
LPCTSTR lpszWindowName,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID,
LPVOID lpParam = NULL);
Parametry
dwExStyle
Bitová kombinace (OR) rozšířených stylů oken, jinak NULL pro výchozí rozšířený styl okna.
lpszClassName
Ukazatel na řetězec ukončený hodnotou null, který obsahuje název registrované třídy systémového okna; nebo název předdefinované třídy okna systému.
lpszWindowName
Ukazatel na řetězec ukončený hodnotou null, který obsahuje zobrazovaný název okna; jinak NULL pro žádný zobrazovaný název okna.
dwStyle
Bitová kombinace (OR) stylů oken, jinak NULL pro výchozí styl okna.
x
Počáteční vodorovná vzdálenost okna od levé strany obrazovky nebo nadřazeného okna.
y
Počáteční svislá vzdálenost okna od horní části obrazovky nebo nadřazeného okna.
nWidth
Šířka okna v pixelech.
nHeight
Výška okna v pixelech.
hwndParent
U podřízeného okna je úchyt nadřazeného okna; jinak popisovač okna vlastníka, pokud má okno vlastníka.
nIDorHMenu
Pro podřízené okno ID okna; v opačném případě ID nabídky pro okno.
lpParam
Ukazatel na uživatelská data, která jsou předána CWnd::OnCreate metodě v lpCreateParams poli.
rect
Velikost a umístění okna vzhledem k obrazovce nebo nadřazeného okna.
pParentWnd
U podřízeného okna najeďte ukazatelem na nadřazené okno; jinak najeďte myší na okno vlastníka, pokud má okno vlastníka.
nID
Pro podřízené okno ID okna; v opačném případě ID nabídky pro okno.
Návratová hodnota
TRUE pokud byla metoda úspěšná; jinak FALSE.
Poznámky
Upozorňující
CWnd::PreCreateWindow nyní přiřadí hMenu člena jeho CREATESTRUCT parametru this ukazatel, pokud je NULL nabídka a styl obsahuje WS_CHILD. Pro správné funkce se ujistěte, že ovládací prvek dialogového okna má ID, které není NULL.
Tato změna opravuje chybové ukončení ve scénářích spravované/nativní spolupráce. Prohlášení TRACE v CWnd::Create upozorněních vývojáře problému.
Výchozí rozšířený styl okna je WS_EX_LEFT. Výchozí styl okna je WS_OVERLAPPED.
AfxRegisterWndClass Pomocí funkce zaregistrujte třídy oken. Uživatelem definované třídy oken jsou k dispozici v modulu, kde jsou registrovány.
Rozměry podřízených oken jsou relativní vzhledem k levému hornímu rohu klientské oblasti nadřazeného okna. Rozměry oken nejvyšší úrovně jsou relativní vzhledem k levému hornímu rohu obrazovky.
Metoda CWnd::OnCreate se volá před vrácením CreateEx metody a před zobrazením okna.
Příklad
void CMyDlg::OnCreateExtendedControl()
{
// m_pWndStaticEx is a CWnd* member of CMyDlg
m_pWndStaticEx = new CStatic;
m_pWndStaticEx->CreateEx(WS_EX_CLIENTEDGE, // Make a client edge label.
_T("STATIC"), _T("Hi"),
WS_CHILD | WS_TABSTOP | WS_VISIBLE,
5, 5, 30, 30, m_hWnd, (HMENU)2345);
}
CWnd::CreateGrayCaret
Vytvoří šedý obdélník pro stříšku systému a vlastnictví stříšky.
void CreateGrayCaret(
int nWidth,
int nHeight);
Parametry
nWidth
Určuje šířku stříšky (v logických jednotkách). Pokud je tento parametr 0, je šířka nastavená na šířku ohraničení okna definovanou systémem.
nHeight
Určuje výšku stříšky (v logických jednotkách). Pokud je tento parametr 0, nastaví se výška na výšku ohraničení okna definovanou systémem.
Poznámky
Stříškou může být čára nebo blok.
Parametry nWidth a nHeight určení šířky a výšky stříšky (v logických jednotkách), přesná šířka a výška (v pixelech) závisí na režimu mapování.
Šířku nebo výšku ohraničení okna systému může načíst GetSystemMetrics funkce Windows s SM_CXBORDER indexy a SM_CYBORDER indexy. Pomocí šířky nebo výšky ohraničení okna zajistíte, že bude stříška viditelná na displeji s vysokým rozlišením.
Členová CreateGrayCaret funkce automaticky zničí předchozí stříšku, pokud existuje, bez ohledu na to, které okno vlastní stříšku. Po vytvoření je stříška zpočátku skrytá. Chcete-li zobrazit stříšku, ShowCaret musí být volána členová funkce.
Stříška systému je sdílený prostředek. CWnd by měla vytvořit stříšku pouze v případě, že má vstupní fokus nebo je aktivní. Měla by zničit stříšku předtím, než ztratí vstupní fokus nebo se stane neaktivním.
Příklad
// Create a 5x10 gray caret in the edit control.
void CMyDlg::OnCreateGrayCaret()
{
m_MyEdit.CreateGrayCaret(5, 10);
m_MyEdit.ShowCaret();
}
CWnd::CreateSolidCaret
Vytvoří plný obdélník pro stříšku systému a nároky vlastnictví stříšky.
void CreateSolidCaret(
int nWidth,
int nHeight);
Parametry
nWidth
Určuje šířku stříšky (v logických jednotkách). Pokud je tento parametr 0, je šířka nastavená na šířku ohraničení okna definovanou systémem.
nHeight
Určuje výšku stříšky (v logických jednotkách). Pokud je tento parametr 0, nastaví se výška na výšku ohraničení okna definovanou systémem.
Poznámky
Stříškou může být čára nebo blok.
Parametry nWidth a nHeight určení šířky a výšky stříšky (v logických jednotkách), přesná šířka a výška (v pixelech) závisí na režimu mapování.
Šířku nebo výšku ohraničení okna systému může načíst GetSystemMetrics funkce Windows s SM_CXBORDER indexy a SM_CYBORDER indexy. Pomocí šířky nebo výšky ohraničení okna zajistíte, že bude stříška viditelná na displeji s vysokým rozlišením.
Členová CreateSolidCaret funkce automaticky zničí předchozí stříšku, pokud existuje, bez ohledu na to, které okno vlastní stříšku. Po vytvoření je stříška zpočátku skrytá. Chcete-li zobrazit stříšku, ShowCaret musí být volána členová funkce.
Stříška systému je sdílený prostředek. CWnd by měla vytvořit stříšku pouze v případě, že má vstupní fokus nebo je aktivní. Měla by zničit stříšku předtím, než ztratí vstupní fokus nebo se stane neaktivním.
Příklad
// Create a 5x10 solid caret in the edit control.
void CMyDlg::OnCreateSolidCaret()
{
m_MyEdit.CreateSolidCaret(5, 10);
m_MyEdit.ShowCaret();
}
CWnd::CWnd
CWnd Vytvoří objekt.
CWnd();
Poznámky
Okno Windows se nevytvořilo a nepřipevní, dokud CreateEx se nevolá funkce nebo Create člena.
CWnd::Default
Volá výchozí proceduru okna.
LRESULT Default();
Návratová hodnota
Závisí na odeslané zprávě.
Poznámky
Výchozí procedura okna poskytuje výchozí zpracování pro všechny zprávy okna, které aplikace nezpracová. Tato členová funkce zajišťuje, že se zpracuje každá zpráva.
Příklad
// This sample shows how to avoid any button handling in base class,
// if any, and call the default window procedure directly.
void CMyDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
UNREFERENCED_PARAMETER(nFlags);
UNREFERENCED_PARAMETER(point);
CWnd::Default();
}
CWnd::DefWindowProc
Volá výchozí proceduru okna, která poskytuje výchozí zpracování pro všechny zprávy okna, které aplikace nezpracová.
virtual LRESULT DefWindowProc(
UINT message,
WPARAM wParam,
LPARAM lParam);
Parametry
message
Určuje zprávu systému Windows, která se má zpracovat.
wParam
Určuje další informace závislé na zprávách.
lParam
Určuje další informace závislé na zprávách.
Návratová hodnota
Závisí na odeslané zprávě.
Poznámky
Tato členová funkce zajišťuje, že se zpracuje každá zpráva. Měla by se volat se stejnými parametry jako ty, které procedura okna přijala.
CWnd::DeleteTempMap
Volá se automaticky obslužnou rutinou doby nečinnosti objektu CWinApp .
static void PASCAL DeleteTempMap();
Poznámky
Odstraní všechny dočasné CWnd objekty vytvořené členkou FromHandle funkce.
Příklad
// DeleteTempMap() is a static member and does not need
// to be called within the scope of an instantiated CWnd object.
CWnd::DeleteTempMap();
CWnd::DestroyWindow
Zničí okno Windows připojené k objektu CWnd .
virtual BOOL DestroyWindow();
Návratová hodnota
Nenulové, pokud je okno zničeno; jinak 0.
Poznámky
Členová DestroyWindow funkce odešle příslušné zprávy do okna, aby ho deaktivovala a odebrala vstupní fokus. Také zničí nabídku okna, vyprázdní frontu aplikace, zničí nevyřízené časovače, odebere vlastnictví schránky a přeruší řetěz prohlížeče schránky, pokud CWnd je v horní části řetězce prohlížeče. WM_DESTROY Odesílá zprávy WM_NCDESTROY do okna. Nezničí CWnd objekt.
DestroyWindow je držitel místa pro vyčištění. Protože DestroyWindow je virtuální funkce, je zobrazena v libovolné CWnd-odvozené třídě v zobrazení třídy. Ale i když tuto funkci přepíšete ve své CWnd-odvozené třídě, DestroyWindow není nutně volána. Pokud DestroyWindow není v kódu MFC volána, musíte ho explicitně volat ve vlastním kódu, pokud ho chcete volat.
Předpokládejme například, že jste přepsli DestroyWindow v odvozené CViewtřídě . Vzhledem k tomu, že zdrojový kód MFC není volána DestroyWindow v žádné z jeho CFrameWnd-odvozených tříd, vaše přepsání DestroyWindow nebude volána, pokud ho explicitně nezavoláte.
Pokud je okno nadřazeným objektem všech oken, tato podřízená okna se při zničení nadřazeného okna automaticky zničí. Členová DestroyWindow funkce nejprve zničí podřízená okna a pak samotné okno.
Člen funkce DestroyWindow také zničí bezmodální dialogová okna vytvořená CDialog::Create.
CWnd Pokud je zničení podřízené okno a nemá WS_EX_NOPARENTNOTIFY sadu stylů, WM_PARENTNOTIFY zpráva se odešle nadřazené sadě.
Příklad
// CModeless is a CDialog class representing a modeless dialog
// Destruction of the modeless dialog involves calling DestroyWindow in
// OnOK() & OnCancel() handlers
void CModeless::OnOK()
{
if (!UpdateData(TRUE))
{
TRACE(_T("UpdateData failed during dialog termination\n"));
// The UpdateData routine will set focus to correct item
return;
}
DestroyWindow();
}
void CModeless::OnCancel()
{
DestroyWindow();
}
CWnd::Detach
Odpojte úchyt systému Windows od objektu CWnd a vrátí popisovač.
HWND Detach();
Návratová hodnota
A HWND k objektu Windows.
Příklad
Podívejte se na příklad pro CWnd::Attach.
CWnd::DlgDirList
Vyplní seznamem se seznamem souborů nebo adresářů.
int DlgDirList(
LPTSTR lpPathSpec,
int nIDListBox,
int nIDStaticPath,
UINT nFileType);
Parametry
lpPathSpec
Odkazuje na řetězec ukončený hodnotou null, který obsahuje cestu nebo název souboru. DlgDirList upraví tento řetězec, který by měl být dostatečně dlouhý, aby obsahoval úpravy. Další informace najdete v následující části Poznámky.
nIDListBox
Určuje identifikátor seznamu. Pokud nIDListBox je hodnota 0, předpokládá se, DlgDirList že neexistuje žádné pole seznamu a nepokoušá se ho vyplnit.
nIDStaticPath
Určuje identifikátor ovládacího prvku statického textu sloužícího k zobrazení aktuální jednotky a adresáře. Pokud nIDStaticPath je hodnota 0, předpokládá se, DlgDirList že neexistuje žádný takový ovládací prvek textu.
nFileType
Určuje atributy souborů, které se mají zobrazit. Může se jednat o libovolnou kombinaci následujících hodnot:
DDL_READWRITEDatové soubory pro čtení i zápis bez dalších atributůDDL_READONLYSoubory jen pro čtení.DDL_HIDDENSkryté soubory.DDL_SYSTEMSystémové soubory.DDL_DIRECTORYAdresáře.DDL_ARCHIVEArchiv.DDL_POSTMSGSLB_DIRvlajka.LB_DIRPokud je příznak nastavený, systém Windows umístí zprávy vygenerovanéDlgDirListve frontě aplikace, jinak se odešlou přímo do procedury dialogového okna.DDL_DRIVESŽene.DDL_DRIVESPokud je příznak nastavený,DDL_EXCLUSIVEpříznak se nastaví automaticky. Pokud tedy chcete vytvořit výpis adresáře, který obsahuje jednotky a soubory, musíte zavolatDlgDirListdvakrát: jednou sDDL_DRIVESnastaveným příznakem a jednou s příznaky pro zbytek seznamu.DDL_EXCLUSIVEExkluzivní bit. Pokud je nastaven exkluzivní bit, jsou uvedeny pouze soubory zadaného typu; v opačném případě jsou uvedeny normální soubory a soubory zadaného typu.
Návratová hodnota
Nenulové, pokud je funkce úspěšná; jinak 0.
Poznámky
DlgDirListLB_RESETCONTENT odesílá zprávy LB_DIR do seznamu. Vyplní seznam určený nIDListBox názvy všech souborů, které odpovídají cestě zadané .lpPathSpec
Parametr lpPathSpec má následující formulář:
[drive:] [ [\u]directory[\idirectory]...\u] [filename]
V tomto příkladu drive je písmeno jednotky, directory je platný název adresáře a filename je platný název souboru, který musí obsahovat alespoň jeden zástupný znak. Zástupné znaky jsou otazník (?), což znamená, že odpovídají jakémukoli znaku a hvězdičkě (*), což znamená, že odpovídá libovolnému počtu znaků.
Pokud zadáte řetězec s délkou 0 nebo lpPathSpeczadáte pouze název adresáře, ale nezadáte žádnou specifikaci souboru, řetězec se změní na *.*.
Pokud lpPathSpec obsahuje název jednotky nebo adresáře, aktuální jednotka a adresář se před vyplněním seznamu změní na určenou jednotku a adresář. Ovládací prvek textu identifikovaný nIDStaticPath uživatelem je také aktualizován názvem nové jednotky nebo adresáře.
Po vyplnění lpPathSpec seznamu se aktualizuje odebráním jednotky nebo části cesty adresáře.
Příklad
// If pDialog points to a CDialog object with a list box
// with the identifier IDC_DIRLIST, this call will populate
// the box with only the non-hidden subdirectories in the root
// directory of the C:\ drive.
TCHAR path[MAX_PATH];
_tcscpy_s(path, MAX_PATH, _T("C:\\"));
pDialog->DlgDirList(path, IDC_DIRLIST, 0, DDL_EXCLUSIVE | DDL_DIRECTORY);
CWnd::DlgDirListComboBox
Vyplní seznam pole se seznamem souborem nebo seznamem adresářů.
int DlgDirListComboBox(
LPTSTR lpPathSpec,
int nIDComboBox,
int nIDStaticPath,
UINT nFileType);
Parametry
lpPathSpec
Odkazuje na řetězec ukončený hodnotou null, který obsahuje cestu nebo název souboru. DlgDirListComboBox upraví tento řetězec, takže tato data by neměla být ve formě řetězcového literálu. Viz následující část Poznámky.
nIDComboBox
Určuje identifikátor pole se seznamem v dialogovém okně. Pokud nIDComboBox je 0, předpokládá, DlgDirListComboBox že neexistuje žádné pole se seznamem a nepokoušá se ho vyplnit.
nIDStaticPath
Určuje identifikátor ovládacího prvku statického textu sloužícího k zobrazení aktuální jednotky a adresáře. Pokud nIDStaticPath je hodnota 0, předpokládá se, DlgDirListComboBox že neexistuje žádný takový ovládací prvek textu.
nFileType
Určuje atributy souboru DOS souborů, které se mají zobrazit. Může se jednat o libovolnou kombinaci následujících hodnot:
DDL_READWRITEDatové soubory pro čtení i zápis bez dalších atributůDDL_READONLYSoubory jen pro čtení.DDL_HIDDENSkryté soubory.DDL_SYSTEMSystémové soubory.DDL_DIRECTORYAdresáře.DDL_ARCHIVEArchiv.DDL_POSTMSGSCB_DIRvlajka.CB_DIRPokud je příznak nastavený, systém Windows umístí zprávy vygenerovanéDlgDirListComboBoxve frontě aplikace, jinak se odešlou přímo do procedury dialogového okna.DDL_DRIVESŽene.DDL_DRIVESPokud je příznak nastavený,DDL_EXCLUSIVEpříznak se nastaví automaticky. Pokud tedy chcete vytvořit výpis adresáře, který obsahuje jednotky a soubory, musíte zavolatDlgDirListComboBoxdvakrát: jednou sDDL_DRIVESnastaveným příznakem a jednou s příznaky pro zbytek seznamu.DDL_EXCLUSIVEExkluzivní bit. Pokud je nastaven exkluzivní bit, jsou uvedeny pouze soubory zadaného typu; v opačném případě jsou uvedeny normální soubory a soubory zadaného typu.
Návratová hodnota
Určuje výsledek funkce. Je nenulové, pokud byl výpis proveden, dokonce i prázdný výpis. Vrácená hodnota 0 znamená, že vstupní řetězec neobsahoval platnou cestu hledání.
Poznámky
DlgDirListComboBoxCB_RESETCONTENT odesílá zprávy CB_DIR do pole se seznamem. Vyplní seznam pole se seznamem určeným nIDComboBox názvy všech souborů, které odpovídají cestě zadané .lpPathSpec
Parametr lpPathSpec má následující formulář:
[drive:] [ [\u]directory[\idirectory]...\u] [filename]
V tomto příkladu drive je písmeno jednotky, directory je platný název adresáře a filename je platný název souboru, který musí obsahovat alespoň jeden zástupný znak. Zástupné znaky jsou otazník (?), což znamená, že odpovídají jakémukoli znaku a hvězdičkě (*), což znamená, že odpovídá libovolnému počtu znaků.
Pokud zadáte řetězec lpPathSpecnulové délky , použije se aktuální adresář a lpPathSpec nebude změněn. Pokud zadáte pouze název adresáře, ale nezahrnete žádnou specifikaci souboru, řetězec se změní na "*".
Pokud lpPathSpec obsahuje název jednotky nebo adresáře, aktuální jednotka a adresář se před vyplněním seznamu změní na určenou jednotku a adresář. Ovládací prvek textu identifikovaný nIDStaticPath uživatelem je také aktualizován názvem nové jednotky nebo adresáře.
Po vyplnění lpPathSpec pole se seznamem se seznamem se odebere jednotka nebo část cesty adresáře.
Příklad
// If pDialog points to a CDialog object with a combo box
// with the identifier IDC_DIRCOMBO, this call will populate
// the box with only the non-hidden subdirectories in the root
// directory of the C:\ drive.
TCHAR szPath[MAX_PATH];
_tcsncpy_s(szPath, MAX_PATH, _T("C:\\"), MAX_PATH);
pDialog->DlgDirListComboBox(szPath, IDC_DIRCOMBO, 0, DDL_EXCLUSIVE | DDL_DIRECTORY);
// Note that the first argument is a string and not a string
// literal. This is necessary because DlgDirListComboBox
// modifies the supplied string. Passing a string literal
// will result in an access violation.
CWnd::DlgDirSelect
Načte aktuální výběr ze seznamu.
BOOL DlgDirSelect(
LPTSTR lpString,
int nIDListBox);
Parametry
lpString
Odkazuje na vyrovnávací paměť, která má přijmout aktuální výběr v seznamu.
nIDListBox
Určuje celočíselné ID seznamu v dialogovém okně.
Návratová hodnota
Nenulové, pokud je úspěšné; jinak 0.
Poznámky
Předpokládá se, že seznam je vyplněn DlgDirList funkcí člena a že výběr je písmeno jednotky, soubor nebo název adresáře.
Členová DlgDirSelect funkce zkopíruje výběr do vyrovnávací paměti poskytnuté lpString. Pokud neexistuje žádný výběr, lpString nezmění se.
DlgDirSelectLB_GETCURSEL odesílá zprávy LB_GETTEXT do seznamu.
Nepovoluje vrácení více než jednoho názvu souboru ze seznamu. Seznam nesmí být seznamem s vícenásobným výběrem.
CWnd::DlgDirSelectComboBox
Načte aktuální výběr ze seznamu pole se seznamem.
BOOL DlgDirSelectComboBox(
LPTSTR lpString,
int nIDComboBox);
Parametry
lpString
Odkazuje na vyrovnávací paměť, která přijímá vybranou cestu.
nIDComboBox
Určuje celočíselné ID pole se seznamem v dialogovém okně.
Návratová hodnota
Nenulové, pokud je úspěšné; jinak 0.
Poznámky
Předpokládá se, že seznam je vyplněn DlgDirListComboBox funkcí člena a že výběr je písmeno jednotky, soubor nebo název adresáře.
Členová DlgDirSelectComboBox funkce zkopíruje výběr do zadané vyrovnávací paměti. Pokud není vybrán žádný výběr, obsah vyrovnávací paměti se nezmění.
DlgDirSelectComboBoxCB_GETCURSEL odesílá zprávy CB_GETLBTEXT do pole se seznamem.
Nepovoluje vrácení více než jednoho názvu souboru z pole se seznamem.
CWnd::DoDataExchange
Volá se rozhraním pro výměnu a ověření dat dialogových oken.
virtual void DoDataExchange(CDataExchange* pDX);
Parametry
pDX
Ukazatel na CDataExchange objekt.
Poznámky
Tuto funkci nikdy nevolejte přímo. Volá se členovou UpdateData funkcí. Volání UpdateData pro inicializaci ovládacích prvků dialogového okna nebo načtení dat z dialogového okna
Pokud odvozujete třídu CDialogdialogového okna specifickou pro aplikaci, je nutné tuto členskou funkci přepsat, pokud chcete využít automatickou výměnu a ověření dat architektury. Průvodce přidáním proměnné zapíše přepsanou verzi této členské funkce, která obsahuje požadovanou "datovou mapu" globálních volání funkce výměny dat dialogového okna (DDX) a ověřování (DDV).
Chcete-li automaticky vygenerovat přepsánou verzi této členské funkce, nejprve vytvořte prostředek dialogového okna s editorem dialogového okna a potom odvození třídy dialogového okna specifické pro aplikaci. Potom pomocí průvodce Přidat proměnnou přidružíte proměnné, data a rozsahy ověřování k různým ovládacím prvkům v novém dialogovém okně. Průvodce pak zapíše přepsání DoDataExchange, který obsahuje mapování dat. Následuje příklad bloku kódu DDX/DDV vygenerovaný průvodcem Přidat proměnnou:
void CPenWidthsDlg::DoDataExchange(CDataExchange *pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Text(pDX, IDC_THINPENWIDTH, m_nThinWidth);
DDV_MinMaxInt(pDX, m_nThinWidth, 1, 20);
DDX_Text(pDX, IDC_THICKPENWIDTH, m_nThickWidth);
DDV_MinMaxInt(pDX, m_nThickWidth, 1, 20);
}
Přepsaná DoDataExchange členová funkce musí předcházet příkazům makra ve zdrojovém souboru.
Další informace o výměně a ověřování dat dialogového okna naleznete v tématu Zobrazení a manipulace s daty ve formuláři a dialogovém okně Výměna a ověření dat. Popis DDX_ a DDV_ maker vygenerovaných průvodcem Přidat proměnnou naleznete v technické poznámce 26.
CWnd::DragAcceptFiles
Volání této členské funkce z okna pomocí CWnd ukazatele ve funkci vaší aplikace CWinApp::InitInstance označuje, že okno přijímá vynechané soubory ze Správce souborů systému Windows nebo Průzkumník souborů.
void DragAcceptFiles(BOOL bAccept = TRUE);
Parametry
BAccept
Příznak označující, zda jsou přetaženy soubory přijaty.
Poznámky
Pouze okno, které volá DragAcceptFiles se bAccept sadou TRUE parametrů, které se identifikovalo jako schopné zpracovat zprávu WM_DROPFILESsystému Windows . Pokud se například v aplikaci CMDIFrameWnd MDI použije ukazatel okna ve DragAcceptFiles volání funkce, zobrazí WM_DROPFILES se zpráva pouze v CMDIFrameWnd okně. Tato zpráva se neodesílají do všech otevřených CMDIChildWnd oken. CMDIChildWnd Aby okno obdrželo tuto zprávu, musíte volat DragAcceptFiles ukazatelem CMDIChildWnd okna.
Chcete-li ukončit přijímání přetahovaných souborů, zavolejte členovou funkci s nastavenou bAccept na FALSEhodnotu .
CWnd::DragDetect
Zachytí myš a sleduje jeho pohyb, dokud uživatel nespustí levé tlačítko, stiskne klávesu ESC nebo přesune myš mimo obdélník přetažení kolem zadaného bodu.
BOOL DragDetect(POINT pt) const;
Parametry
pt
Počáteční pozice myši v souřadnicích obrazovky. Funkce určuje souřadnice obdélníku přetažením pomocí tohoto bodu.
Návratová hodnota
Pokud uživatel přesunul myš mimo obdélník přetažení při podržení levého tlačítka, návratová hodnota je nenulová.
Pokud uživatel nepřesunuli myš mimo obdélník přetažení při podržení levého tlačítka, návratová hodnota je nula.
Poznámky
Tato členová funkce emuluje funkce funkce DragDetect, jak je popsáno v sadě Windows SDK.
CWnd::DrawAnimatedRects
Nakreslí obdélník drátěného rámečku a animuje ho, aby označí otevření ikony nebo minimalizaci nebo maximalizaci okna.
BOOL DrawAnimatedRects(
int idAni,
CONST RECT* lprcFrom,
CONST RECT* lprcTo);
Parametry
idAni
Určuje typ animace. Pokud zadáte IDANI_CAPTION, titulek okna se animuje z pozice určené lprcFrom umístěním určeném znakem lprcTo. Efekt je podobný minimalizaci nebo maximalizaci okna.
lprcFrom
Ukazatel na RECT strukturu určující umístění a velikost ikony nebo minimalizovaného okna.
lprcTo
Ukazatel na RECT strukturu určující umístění a velikost obnoveného okna
Návratová hodnota
Nenulové, pokud je funkce úspěšná; jinak 0.
Poznámky
Tato členová funkce emuluje funkce funkce DrawAnimatedRects, jak je popsáno v sadě Windows SDK.
CWnd::DrawCaption
Nakreslí titulek okna.
BOOL DrawCaption(
CDC* pDC,
LPCRECT lprc,
UINT uFlags);
Parametry
pDC
Ukazatel na kontext zařízení. Funkce nakreslí titulek okna do tohoto kontextu zařízení.
lprc
Ukazatel na RECT strukturu, která určuje ohraničující obdélník titulku okna.
uFlags
Určuje možnosti kreslení. Úplný seznam hodnot najdete v tématu DrawCaption.
Návratová hodnota
Nenulové, pokud je funkce úspěšná; jinak 0.
Poznámky
Tato členová funkce emuluje funkce funkce DrawCaption, jak je popsáno v sadě Windows SDK.
CWnd::DrawMenuBar
Překreslí řádek nabídek.
void DrawMenuBar();
Poznámky
Pokud se po vytvoření okna změní řádek nabídek, zavolejte tuto funkci a nakreslete změněný řádek nabídek.
Příklad
Podívejte se na příklad pro CWnd::GetMenu.
CWnd::EnableActiveAccessibility
Povolí uživatelem definované funkce aktivní přístupnosti.
void EnableActiveAccessibility();
Poznámky
Výchozí podpora aktivní přístupnosti mfc je dostatečná pro standardní okna a ovládací prvky včetně ovládacích prvků ActiveX; Pokud však vaše CWnd-odvozená třída obsahuje newindowed prvky uživatelského rozhraní, MFC nemá žádný způsob, jak o nich vědět. V takovém případě musíte přepsat příslušné členské funkce aktivní přístupnosti ve třídě a musíte volat EnableActiveAccessibility konstruktor třídy.
CWnd::EnableDynamicLayout
Povolí nebo zakáže správce dynamického rozložení. Pokud je povolené dynamické rozložení, může se pozice a velikost podřízených oken dynamicky upravovat, když uživatel změní velikost okna.
void EnableDynamicLayout(BOOL bEnable = TRUE);
Parametry
bEnable
TRUE povolení dynamického rozložení; FALSE pro zakázání dynamického rozložení.
Poznámky
Pokud chcete povolit dynamické rozložení, musíte udělat více než jen volání této metody. Musíte také poskytnout informace o dynamickém rozložení, které druhují způsob reakce ovládacích prvků v okně na změny velikosti. Tyto informace můžete zadat v editoru prostředků nebo programově pro každý ovládací prvek. Viz dynamické rozložení.
CWnd::EnableD2DSupport
Povolí nebo zakáže podporu D2D okna. Tuto metodu zavolejte před inicializaci hlavního okna.
void EnableD2DSupport(
BOOL bEnable = TRUE,
BOOL bUseDCRenderTarget = FALSE);
Parametry
bEnable
Určuje, jestli se má zapnout nebo vypnout podpora D2D.
bUseDCRenderTarget
Určuje, zda se má použít cíl CDCRenderTargetvykreslení kontextu zařízení (DC), . Pokud FALSEse použije , CHwndRenderTarget použije se.
CWnd::EnableScrollBar
Povolí nebo zakáže jednu nebo obě šipky posuvníku.
BOOL EnableScrollBar(
int nSBFlags,
UINT nArrowFlags = ESB_ENABLE_BOTH);
Parametry
nSBFlags
Určuje typ posuvníku. Může mít jednu z následujících hodnot:
SB_BOTHPovolí nebo zakáže šipky vodorovných a svislých posuvníků přidružených k oknem.SB_HORZPovolí nebo zakáže šipky vodorovného posuvníku přidruženého k oknem.SB_VERTPovolí nebo zakáže šipky svislého posuvníku přidruženého k oknem.
nArrowFlags
Určuje, jestli jsou šipky posuvníku povolené nebo zakázané a které šipky jsou povolené nebo zakázané. Může mít jednu z následujících hodnot:
ESB_ENABLE_BOTHPovolí obě šipky posuvníku (výchozí).ESB_DISABLE_LTUPZakáže šipku doleva vodorovného posuvníku nebo šipku nahoru svislého posuvníku.ESB_DISABLE_RTDNZakáže šipku doprava vodorovného posuvníku nebo šipku dolů svislého posuvníku.ESB_DISABLE_BOTHZakáže obě šipky posuvníku.
Návratová hodnota
Nenulové, pokud jsou šipky povolené nebo zakázané podle zadané hodnoty. Jinak je to 0, což znamená, že šipky jsou již v požadovaném stavu nebo že došlo k chybě.
CWnd::EnableScrollBarCtrl
Povolí nebo zakáže posuvník pro toto okno.
void EnableScrollBarCtrl(
int nBar,
BOOL bEnable = TRUE);
Parametry
nBar
Identifikátor posuvníku.
bEnable
Určuje, jestli má být posuvník povolený nebo zakázaný.
Poznámky
Pokud má okno ovládací prvek posuvníku na stejné straně, použije se posuvník; v opačném případě se použije vlastní posuvník okna.
CWnd::EnableToolTips
Povolí popisy nástrojů pro dané okno.
BOOL EnableToolTips(BOOL bEnable = TRUE);
Parametry
bEnable
Určuje, jestli je ovládací prvek popisku nástroje povolený nebo zakázaný. TRUE umožňuje řízení; FALSE zakáže ovládací prvek.
Návratová hodnota
TRUE pokud jsou povoleny tipy k nástrojům; jinak FALSE.
Poznámky
Přepsání OnToolHitTest pro poskytnutí TOOLINFO struktury nebo struktur pro okno.
Poznámka:
Některá okna, například CToolBar, poskytují integrovanou implementaci OnToolHitTest.
Další TOOLINFO informace o této struktuře najdete v sadě Windows SDK.
Jednoduché volání EnableToolTips nestačí k zobrazení popisů nástrojů pro podřízené ovládací prvky, pokud nadřazené okno není odvozeno z CFrameWnd. Důvodem je to, že CFrameWnd poskytuje výchozí obslužnou rutinu TTN_NEEDTEXT pro oznámení. Pokud nadřazené okno není odvozeno z CFrameWnd, to znamená, že pokud se jedná o dialogové okno nebo formulářové zobrazení, popisky pro podřízené ovládací prvky se nezobrazí správně, pokud nezadáte obslužnou rutinu pro oznámení popisku TTN_NEEDTEXT nástroje. Podívejte se na popisy nástrojů.
Výchozí popisy nástrojů poskytované pro vaše okna EnableToolTips nemají přidružený text. Chcete-li načíst text popisku, který se má zobrazit, TTN_NEEDTEXT se oznámení odešle do nadřazeného okna ovládacího prvku popisku nástroje těsně před zobrazením okna popisku. Pokud pro tuto zprávu neexistuje žádná obslužná rutina pro přiřazení určité hodnoty pszText členu TOOLTIPTEXT struktury, nezobrazí se pro popis nástroje žádný text.
Příklad
// From message map for CMdiView, a CView-derived class
ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTW, 0, 0xFFFF, &CMdiView::OnToolTipNotify)
ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTA, 0, 0xFFFF, &CMdiView::OnToolTipNotify)
void CMdiView::OnInitialUpdate()
{
CView::OnInitialUpdate();
m_Edit.Create(ES_MULTILINE | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER,
CRect(10, 10, 100, 100), this, IDC_TTEDIT);
EnableToolTips(TRUE); // enable tool tips for view
}
//Notification handler
BOOL CMdiView::OnToolTipNotify(UINT id, NMHDR *pNMHDR, LRESULT *pResult)
{
UNREFERENCED_PARAMETER(id);
UNREFERENCED_PARAMETER(pResult);
// need to handle both ANSI and UNICODE versions of the message
TOOLTIPTEXTA *pTTTA = (TOOLTIPTEXTA*)pNMHDR;
TOOLTIPTEXTW *pTTTW = (TOOLTIPTEXTW*)pNMHDR;
CStringA strTipText;
UINT_PTR nID = pNMHDR->idFrom;
if (pNMHDR->code == TTN_NEEDTEXTA && (pTTTA->uFlags & TTF_IDISHWND) ||
pNMHDR->code == TTN_NEEDTEXTW && (pTTTW->uFlags & TTF_IDISHWND))
{
// idFrom is actually the HWND of the tool
nID = ::GetDlgCtrlID((HWND)nID);
}
if (nID != 0) // will be zero on a separator
strTipText.Format("Control ID = %d", nID);
if (pNMHDR->code == TTN_NEEDTEXTA)
{
strncpy_s(pTTTA->szText, sizeof(pTTTA->szText), strTipText,
strTipText.GetLength() + 1);
}
else
{
::MultiByteToWideChar(CP_ACP, 0, strTipText, strTipText.GetLength() + 1,
pTTTW->szText, sizeof(pTTTW->szText) / (sizeof pTTTW->szText[0]));
}
return TRUE; // message was handled
}
CWnd::EnableTrackingToolTips
Povolí nebo zakáže popisy sledování.
BOOL EnableTrackingToolTips(BOOL bEnable = TRUE);
Parametry
bEnable
Určuje, jestli jsou povolené nebo zakázané tipy pro sledování nástrojů. Pokud je TRUEtento parametr, budou povoleny tipy ke sledování nástrojů. Pokud je FALSEtento parametr, popisy nástrojů pro sledování budou zakázány.
Návratová hodnota
Označuje stav před zavolání EnableWindow členské funkce. Návratová hodnota je nenulová, pokud bylo okno dříve zakázáno. Vrácená hodnota je 0, pokud bylo okno dříve povoleno nebo došlo k chybě.
Poznámky
Tipy ke sledování nástrojů jsou okna s popisem tlačítek, která můžete dynamicky umístit na obrazovku. Díky rychlé aktualizaci pozice se zobrazí okno popisku nástroje, které se hladce přesune nebo "sleduje". Tato funkce může být užitečná, pokud potřebujete, aby text popisu nástroje sledoval pozici ukazatele při přesouvání.
CWnd::EnableWindow
Povolí nebo zakáže vstup myši a klávesnice.
BOOL EnableWindow(BOOL bEnable = TRUE);
Parametry
bEnable
Určuje, jestli se má dané okno povolit nebo zakázat. Pokud je TRUEtento parametr , okno se povolí. Pokud je FALSEtento parametr , okno bude zakázáno.
Návratová hodnota
Označuje stav před zavolání EnableWindow členské funkce. Návratová hodnota je nenulová, pokud bylo okno dříve zakázáno. Vrácená hodnota je 0, pokud bylo okno dříve povoleno nebo došlo k chybě.
Poznámky
Pokud je vstup zakázán, je ignorován vstup, jako jsou kliknutí myší a stisknutí kláves. Když je vstup povolený, okno zpracuje všechny vstupy.
Pokud se povolený stav mění, WM_ENABLE zpráva se odešle před vrácením této funkce.
Pokud jsou zakázaná, jsou všechna podřízená okna implicitně zakázaná, i když se neodesílají WM_ENABLE zprávy.
Před aktivací musí být okno povoleno. Pokud například aplikace zobrazuje bezmodální dialogové okno a zakázala jeho hlavní okno, musí být hlavní okno povoleno před zničením dialogového okna. V opačném případě se fokus vstupu zobrazí v jiném okně a aktivuje se. Pokud je podřízené okno zakázané, bude ignorováno, když se Systém Windows pokusí určit, které okno má dostávat zprávy myši.
Ve výchozím nastavení je okno při vytváření povolené. Aplikace může určit WS_DISABLED styl ve Create funkci nebo CreateEx člena a vytvořit okno, které je původně zakázáno. Po vytvoření okna může aplikace také pomocí EnableWindow členské funkce okno povolit nebo zakázat.
Aplikace může tuto funkci použít k povolení nebo zakázání ovládacího prvku v dialogovém okně. Zakázaný ovládací prvek nemůže získat vstupní fokus ani k němu uživatel nemá přístup.
Příklad
//CMyFileDialog is a CFileDialog-derived class
//OnInitDialog is the handler for WM_INITDIALOG
BOOL CMyFileDialog::OnInitDialog()
{
CFileDialog::OnInitDialog();
CWnd *pWndParent = GetParent();
//make sure you add #include <dlgs.h> for IDs 'edt1' & 'stc3'
//disables the 'file name' edit and static control
//of the standard file open dialog
//get handle of 'file name' combobox control & disable it
CWnd *pWnd = pWndParent->GetDlgItem(cmb13);
pWnd->EnableWindow(FALSE);
//get handle of 'file name' static control & disable it
pWnd = pWndParent->GetDlgItem(stc3);
pWnd->EnableWindow(FALSE);
return TRUE;
}
CWnd::EndModalLoop
Ukončí volání .RunModalLoop
virtual void EndModalLoop(int nResult);
Parametry
nResult
Obsahuje hodnotu, která má být vrácena volajícímu RunModalLoop.
Poznámky
Parametr nResult se rozšíří do návratové hodnoty z RunModalLoop.
CWnd::EndModalState
Voláním této členské funkce změníte okno rámce z modální na bezmodální.
virtual void EndModalState();
CWnd::EndPaint
Označí konec malování v daném okně.
void EndPaint(LPPAINTSTRUCT lpPaint);
Parametry
lpPaint
Odkazuje na PAINTSTRUCT strukturu, která obsahuje informace o obrazu načtené členskou BeginPaint funkcí.
Poznámky
Členské EndPaint funkce je vyžadována pro každé volání BeginPaint členské funkce, ale teprve po dokončení malování.
Pokud byla stříška skryta BeginPaint členkou funkce, EndPaint obnoví stříšku na obrazovku.
Příklad
Podívejte se na příklad pro CWnd::BeginPaint.
CWnd::ExecuteDlgInit
Inicializuje prostředek dialogového okna.
BOOL ExecuteDlgInit(LPCTSTR lpszResourceName);
BOOL ExecuteDlgInit(LPVOID lpResource);
Parametry
lpszResourceName
Ukazatel na řetězec ukončený hodnotou null určující název prostředku.
lpResource
Ukazatel na prostředek.
Návratová hodnota
TRUE pokud je proveden prostředek dialogového okna; jinak FALSE.
Poznámky
ExecuteDlgInit bude používat prostředky vázané na spuštěný modul nebo prostředky z jiných zdrojů. Chcete-li toho dosáhnout, ExecuteDlgInit najde popisovač prostředku voláním AfxFindResourceHandle. Pokud vaše aplikace MFC nepoužívá sdílenou knihovnu DLL (MFCx0[U][D].DLL), AfxFindResourceHandle volání AfxGetResourceHandle, která vrátí aktuální popisovač prostředku pro spustitelný soubor. Pokud vaše aplikace MFC, která používá MFCx0[U][D].DLL, AfxFindResourceHandle prochází CDynLinkLibrary seznam objektů sdílených a rozšiřujících knihoven DLL MFC a hledá správný popisovač prostředků.
CWnd::FilterToolTipMessage
Volá se rozhraním pro zobrazení zpráv popisů tlačítek.
void FilterToolTipMessage(MSG* pMsg);
Parametry
pMsg
Ukazatel na zprávu popisku nástroje.
Poznámky
Ve většině aplikací MFC tato metoda je volána architekturou z PreTranslateMessage a EnableToolTips, a nemusíte ji volat sami.
V některých aplikacích, například některé ovládací prvky ActiveX, tyto metody nemusí být vyvolány architekturou a budete muset volat FilterToolTipMessage sami. Další informace naleznete v tématu Metody vytváření popisů nástrojů.
CWnd::FindWindow
Vrátí nejvyšší úroveň CWnd , jejíž třída okna je uvedena lpszClassName a jehož název okna nebo název je dán lpszWindowName.
static CWnd* PASCAL FindWindow(
LPCTSTR lpszClassName,
LPCTSTR lpszWindowName);
Parametry
lpszClassName
Odkazuje na řetězec ukončený hodnotou null, který určuje název třídy okna ( WNDCLASS strukturu). Pokud lpClassName ano NULL, odpovídají všechny názvy tříd.
lpszWindowName
Odkazuje na řetězec ukončený hodnotou null, který určuje název okna (název okna). Pokud lpWindowName ano NULL, všechny názvy oken se shodují.
Návratová hodnota
Identifikuje okno se zadaným názvem třídy a názvem okna. NULL Není-li nalezeno žádné takové okno.
CWnd* může být dočasný a neměl by být uložen pro pozdější použití.
Poznámky
Tato funkce nehledává podřízená okna.
Příklad
// activate an application with a window with a specific class name
BOOL CMyApp::FirstInstance()
{
CWnd *pWndPrev, *pWndChild;
// Determine if a window with the class name exists...
pWndPrev = CWnd::FindWindow(_T("MyNewClass"), NULL);
if (NULL != pWndPrev)
{
// If so, does it have any popups?
pWndChild = pWndPrev->GetLastActivePopup();
// If iconic, restore the main window
if (pWndPrev->IsIconic())
pWndPrev->ShowWindow(SW_RESTORE);
// Bring the main window or its popup to the foreground
pWndChild->SetForegroundWindow();
// and you are done activating the other application
return FALSE;
}
return TRUE;
}
CWnd::FindWindowEx
Načte objekt okna, jehož název třídy a název okna odpovídají zadaným řetězcům.
static CWnd* FindWindowEx(
HWND hwndParent,
HWND hwndChildAfter,
LPCTSTR lpszClass,
LPCTSTR lpszWindow);
Parametry
hwndParent
Popisovač nadřazeného okna, jehož podřízená okna se mají prohledávat.
hwndChildAfter
Popisovač podřízeného okna Hledání začíná dalším podřízeným oknem v pořadí Z. Podřízené okno musí být přímým podřízeným oknem hwndParent, nikoli pouze potomkem.
lpszClass
Ukazatel na řetězec ukončený hodnotou null, který určuje název třídy nebo atom třídy vytvořený předchozím voláním nebo RegisterClass RegisterClassEx.
lpszWindow
Ukazatel na řetězec ukončený hodnotou null, který určuje název okna (název okna). Pokud je NULLtento parametr, všechny názvy oken se shodují.
Návratová hodnota
Pokud je funkce úspěšná, návratová hodnota je ukazatel na objekt okna se zadanými názvy tříd a oken. Pokud funkce selže, návratová hodnota je NULL.
Poznámky
Tato členová funkce emuluje funkce funkce FindWindowEx, jak je popsáno v sadě Windows SDK.
CWnd::FlashWindow
Jednou problikne dané okno.
BOOL FlashWindow(BOOL bInvert);
Parametry
bInvert
Určuje, zda CWnd má být blikající nebo vrácen do původního stavu. Je CWnd blikající z jednoho stavu na druhý, pokud bInvert je TRUE. Pokud bInvert ano FALSE, vrátí se okno do původního stavu (aktivní nebo neaktivní).
Návratová hodnota
Nenulové, pokud bylo okno aktivní před voláním FlashWindow členské funkce; jinak 0.
Poznámky
Pro následné blikání vytvořte systémový časovač a opakovaně volejte FlashWindow. Blikající CWnd prostředky mění vzhled záhlaví, jako by CWnd se měnily z neaktivního na aktivní stav nebo naopak. (Neaktivní záhlaví se změní na aktivní záhlaví; aktivní záhlaví se změní na neaktivní záhlaví.)
Obvykle se okno bliká, aby uživatele informovalo, že vyžaduje pozornost, ale že aktuálně nemá vstupní fokus.
Parametr by měl být FALSE pouze v případě, že okno získává fokus vstupu a už nebude blikat. Mělo bInvert by se TRUE jednat o následná volání při čekání na získání vstupního fokusu.
Tato funkce vždy vrací nenulové pro minimalizovaná okna. Pokud je okno minimalizované, FlashWindow bliká na ikonu okna. bInvert Pro minimalizovaná okna se ignoruje.
Příklad
BOOL CPenWidthsDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// set timer to cause dialog to flash
SetTimer(1, 500, NULL);
return TRUE; // return TRUE unless you set the focus to a control
}
void CPenWidthsDlg::OnTimer(UINT_PTR nIDEvent)
{
// cause the dialog to flash
FlashWindow(TRUE);
CDialog::OnTimer(nIDEvent);
}
CWnd::FlashWindowEx
Bliká na dané okno.
BOOL FlashWindowEx(
DWORD dwFlags,
UINT uCount,
DWORD dwTimeout);
Parametry
dwFlags
Určuje stav blesku. Úplný seznam hodnot najdete ve struktuře FLASHWINFO .
uCount
Určuje, kolikrát má okno blikat.
dwTimeout
Určuje rychlost v milisekundách, při které bude okno bliknuto. Pokud dwTimeout je nula, funkce použije výchozí rychlost bliká kurzoru.
Návratová hodnota
Vrácená hodnota určuje stav okna před voláním FlashWindowEx funkce. Pokud byl titulek okna vykreslen jako aktivní před voláním, návratová hodnota je nenulová. V opačném případě je vrácená hodnota nula.
Poznámky
Tato metoda emuluje funkce funkce FlashWindowEx, jak je popsáno v sadě Windows SDK.
CWnd::FromHandle
Vrátí ukazatel na CWnd objekt při zadání úchytu do okna. CWnd Pokud objekt není připojený k popisovači, vytvoří se dočasný CWnd objekt a připojí se.
static CWnd* PASCAL FromHandle(HWND hWnd);
Parametry
hWnd
Okno HWND Windows
Návratová hodnota
Vrátí ukazatel na CWnd objekt při zadání úchytu do okna. CWnd Pokud objekt není připojený k popisovači, vytvoří se dočasný CWnd objekt a připojí se.
Ukazatel může být dočasný a neměl by být uložen pro pozdější použití.
CWnd::FromHandlePermanent
Vrátí ukazatel na CWnd objekt při zadání úchytu do okna.
static CWnd* PASCAL FromHandlePermanent(HWND hWnd);
Parametry
hWnd
Okno HWND Windows
Návratová hodnota
Ukazatel na CWnd objekt.
Poznámky
CWnd Pokud objekt není připojený k popisovači, NULL vrátí se.
Tato funkce na rozdíl od FromHandlefunkce nevytvoří dočasné objekty.
CWnd::get_accChild
Volal rozhraní pro načtení adresy IDispatch rozhraní pro zadané podřízené.
virtual HRESULT get_accChild(
VARIANT varChild,
IDispatch** ppdispChild);
Parametry
varChild
Identifikuje podřízenou, jejíž IDispatch rozhraní se má načíst.
ppdispChild
Přijme adresu rozhraní podřízeného objektu IDispatch .
Návratová hodnota
Vrátí S_OK kód chyby MODELU COM při selhání. Viz návratové hodnoty v IAccessible::get_accChild sadě Windows SDK.
Poznámky
Tato funkce je součástí podpory aktivní přístupnosti mfc.
Tuto funkci přepište ve své CWnd-odvozené třídě, pokud máte newindowed prvky uživatelského rozhraní (jiné než ovládací prvky ActiveX bez oken, které MFC zpracovává).
Další informace najdete IAccessible::get_accChild v sadě Windows SDK.
CWnd::get_accChildCount
Volá se rozhraním k načtení počtu podřízených objektů patřících tomuto objektu.
virtual HRESULT get_accChildCount(long* pcountChildren);
Parametry
pcountChildren
Přijme počet podřízených položek.
Návratová hodnota
Vrátí S_OK kód chyby MODELU COM při selhání. Viz návratové hodnoty v IAccessible::get_accChildCount sadě Windows SDK.
Poznámky
Tato funkce je součástí podpory aktivní přístupnosti mfc.
Tuto funkci přepište ve své CWnd-odvozené třídě, pokud máte newindowed prvky uživatelského rozhraní (jiné než ovládací prvky ActiveX bez oken, které MFC zpracovává). Zavolejte verzi základní třídy a přidejte podřízené elementy, které nejsouwindowed.
Další informace najdete IAccessible::get_accChildCount v sadě Windows SDK.
CWnd::get_accDefaultAction
Volá se rozhraním pro načtení řetězce, který popisuje výchozí akci objektu.
virtual HRESULT get_accDefaultAction(
VARIANT varChild,
BSTR* pszDefaultAction);
Parametry
varChild
Určuje, zda je výchozí akce, která má být načtena, je objekt nebo jeden z podřízených prvků objektu. Tento parametr může být buď CHILDID_SELF (pro získání informací o objektu) nebo podřízené ID (k získání informací o podřízené elementu objektu).
pszDefaultAction
Adresa objektu BSTR , který obdrží lokalizovaný řetězec popisující výchozí akci pro zadaný objekt, nebo NULL pokud tento objekt nemá žádnou výchozí akci.
Návratová hodnota
Vrátí S_OK při úspěchu, kód chyby modelu COM při selhání. Viz Návratové hodnoty nepřístupné ::get_accDefaultAction v sadě Windows SDK.
Poznámky
Tato funkce je součástí podpory aktivní přístupnosti mfc.
Tuto funkci v CWndodvozené třídě přepište, abyste popsali výchozí akci objektu.
Další informace najdete IAccessible::get_accDefaultAction v sadě Windows SDK.
CWnd::get_accDescription
Volá se podle architektury k načtení řetězce, který popisuje vizuální vzhled zadaného objektu.
virtual HRESULT get_accDescription(
VARIANT varChild,
BSTR* pszDescription);
Parametry
varChild
Určuje, zda popis, který se má načíst, je objekt nebo jeden z podřízených prvků objektu. Tento parametr může být buď CHILDID_SELF (pro získání informací o objektu) nebo podřízené ID (k získání informací o podřízené elementu objektu).
pszDescription
Adresa objektu BSTR , který obdrží lokalizovaný řetězec popisující zadaný objekt, nebo NULL pokud není pro tento objekt k dispozici žádný popis.
Návratová hodnota
Vrátí S_OK kód chyby MODELU COM při selhání. Viz návratové hodnoty v IAccessible::get_accDescription sadě Windows SDK.
Poznámky
Tato funkce je součástí podpory aktivní přístupnosti mfc.
Přepište tuto funkci ve své CWnd-odvozené třídě popis objektu. Zavolejte verzi základní třídy a přidejte popis.
Další informace najdete IAccessible::get_accDescription v sadě Windows SDK.
CWnd::get_accFocus
Volá se rozhraním pro načtení objektu, který má fokus klávesnice.
virtual HRESULT get_accFocus(VARIANT* pvarChild);
Parametry
pvarChild
Přijímá informace o objektu, který má fokus. Viz pvarID v IAccessible::get_accFocus sadě Windows SDK.
Návratová hodnota
Vrátí S_OK kód chyby MODELU COM při selhání. Viz návratové hodnoty v IAccessible::get_accFocus sadě Windows SDK.
Poznámky
Tato funkce je součástí podpory aktivní přístupnosti mfc.
Tuto funkci přepište ve své CWnd-odvozené třídě, pokud máte newindowed prvky uživatelského rozhraní (jiné než ovládací prvky ActiveX bez oken, které MFC zpracovává).
Další informace najdete IAccessible::get_accFocus v sadě Windows SDK.
CWnd::get_accHelp
Volá se rozhraním pro načtení řetězce vlastnosti nápovědy objektu.
virtual HRESULT get_accHelp(
VARIANT varChild,
BSTR* pszHelp);
Parametry
varChild
Určuje, zda informace nápovědy, které mají být načteny, je objekt nebo jeden z podřízených prvků objektu. Tento parametr může být buď CHILDID_SELF (pro získání informací o objektu) nebo podřízené ID (k získání informací o podřízené elementu objektu).
pszHelp
BSTR Adresa objektu, který obdrží lokalizovaný řetězec obsahující informace nápovědy pro zadaný objekt, nebo NULL pokud nejsou k dispozici žádné informace nápovědy.
Návratová hodnota
Vrátí S_OK kód chyby MODELU COM při selhání. Viz návratové hodnoty v IAccessible::get_accHelp sadě Windows SDK.
Poznámky
Tato funkce je součástí podpory aktivní přístupnosti mfc.
Přepište tuto funkci ve své CWnd-odvozené třídě, aby poskytla text nápovědy pro objekt.
Další informace najdete IAccessible::get_accHelp v sadě Windows SDK.
CWnd::get_accHelpTopic
Volá se rozhraním pro načtení úplné cesty k souboru WinHelp přidruženého k zadanému objektu a identifikátoru příslušného tématu v daném souboru.
virtual HRESULT get_accHelpTopic(
BSTR* pszHelpFile,
VARIANT varChild,
long* pidTopic);
Parametry
pszHelpFile
Adresa objektu BSTR , který obdrží úplnou cestu WinHelp k souboru přidruženému k zadanému objektu, pokud existuje.
varChild
Určuje, zda téma nápovědy, které se má načíst, je objekt nebo jeden z podřízených prvků objektu. Tento parametr může být buď CHILDID_SELF (k získání tématu nápovědy pro objekt) nebo podřízeného ID (k získání tématu nápovědy pro některý z podřízených prvků objektu).
pidTopic
Identifikuje téma souboru nápovědy přidružené k zadanému objektu. Viz pidTopic v IAccessible::get_accHelpTopic sadě Windows SDK.
Návratová hodnota
Vrátí S_OK kód chyby MODELU COM při selhání. Viz návratové hodnoty v IAccessible::get_accHelpTopic sadě Windows SDK.
Poznámky
Tato funkce je součástí podpory aktivní přístupnosti mfc.
Tuto funkci v CWndodvozené třídě přepište, aby poskytovala informace o objektu nápovědy.
Další informace najdete IAccessible::get_accHelpTopic v sadě Windows SDK.
CWnd::get_accKeyboardShortcut
Volá se rozhraním pro načtení klávesové zkratky nebo přístupové klávesy zadaného objektu.
virtual HRESULT get_accKeyboardShortcut(
VARIANT varChild,
BSTR* pszKeyboardShortcut);
Parametry
varChild
Určuje, zda je klávesová zkratka, která se má načíst, objektem nebo jedním z podřízených prvků objektu. Tento parametr může být buď CHILDID_SELF (pro získání informací o objektu) nebo podřízené ID (k získání informací o podřízené elementu objektu).
pszKeyboardShortcut
BSTR Adresa objektu, který obdrží lokalizovaný řetězec identifikující klávesovou zkratku, nebo NULL pokud není k zadanému objektu přidružená žádná klávesová zkratka.
Návratová hodnota
Vrátí S_OK kód chyby MODELU COM při selhání. Viz návratové hodnoty v IAccessible::get_accKeyboardShortcut sadě Windows SDK.
Poznámky
Tato funkce je součástí podpory mfc Active Accessibility .
Tuto funkci v CWndodvozené třídě přepište, abyste identifikovali klávesovou zkratku objektu.
Další informace najdete IAccessible::get_accKeyboardShortcut v sadě Windows SDK.
CWnd::get_accName
Volá se rozhraním pro načtení názvu zadaného objektu.
virtual HRESULT get_accName(
VARIANT varChild,
BSTR* pszName);
Parametry
varChild
Určuje, zda má být načten název objektu nebo jeden z podřízených prvků objektu. Tento parametr může být buď CHILDID_SELF (pro získání informací o objektu) nebo podřízené ID (k získání informací o podřízené elementu objektu).
pszName
Adresa objektu BSTR , který obdrží řetězec obsahující název zadaného objektu.
Návratová hodnota
Vrátí S_OK kód chyby MODELU COM při selhání. Viz návratové hodnoty v IAccessible::get_accName sadě Windows SDK.
Poznámky
Tato funkce je součástí podpory aktivní přístupnosti mfc.
Tuto funkci v CWndodvozené třídě přepište tak, aby vrátila název objektu.
Další informace najdete IAccessible::get_accName v sadě Windows SDK.
CWnd::get_accParent
Volá se rozhraní IDispatch nadřazeného objektu.
virtual HRESULT get_accParent(IDispatch** ppdispParent);
Parametry
ppdispParent
Přijme adresu rozhraní nadřazeného objektu IDispatch . Proměnná je nastavená na NULL , pokud neexistuje žádná nadřazená položka nebo pokud podřízená položka nemá přístup k nadřazené pomůcek.
Návratová hodnota
Vrátí se S_OK při úspěchu, COM kód chyby při selhání. Viz návratové hodnoty v IAccessible::get_accParent sadě Windows SDK.
Poznámky
Tato funkce je součástí podpory aktivní přístupnosti mfc.
Ve většině případů nemusíte tuto funkci přepsat.
Další informace najdete IAccessible::get_accParent v sadě Windows SDK.
CWnd::get_accRole
Volá se rozhraním pro načtení informací, které popisují roli zadaného objektu.
virtual HRESULT get_accRole(
VARIANT varChild,
VARIANT* pvarRole);
Parametry
varChild
Určuje, zda informace role, které mají být načteny, je objekt nebo jeden z podřízených prvků objektu. Tento parametr může být buď CHILDID_SELF (pro získání informací o objektu) nebo podřízené ID (k získání informací o podřízené elementu objektu).
pvarRole
Obdrží informace o roli. Viz pvarRole v IAccessible::get_accRole sadě Windows SDK.
Návratová hodnota
Vrátí S_OK kód chyby MODELU COM při selhání. Viz návratové hodnoty v IAccessible::get_accRole sadě Windows SDK.
Poznámky
Tato funkce je součástí podpory aktivní přístupnosti mfc.
Tuto funkci přepište ve své CWnd-odvozené třídě, pokud máte newindowed prvky uživatelského rozhraní (jiné než ovládací prvky ActiveX bez oken, které MFC zpracovává).
Další informace najdete IAccessible::get_accRole v sadě Windows SDK.
CWnd::get_accSelection
Volá se rozhraním pro načtení vybraných podřízených objektů tohoto objektu.
virtual HRESULT get_accSelection(VARIANT* pvarChildren);
Parametry
pvarChildren
Obdrží informace o tom, které podřízené položky jsou vybrány. Viz pvarChildren v IAccessible::get_accSelection sadě Windows SDK.
Návratová hodnota
Vrátí S_OK při úspěchu, kód chyby modelu COM při selhání. Viz návratové hodnoty v IAccessible::get_accSelection sadě Windows SDK.
Poznámky
Tato funkce je součástí podpory aktivní přístupnosti mfc.
Tuto funkci přepište ve své CWnd-odvozené třídě, pokud máte newindowed prvky uživatelského rozhraní (jiné než ovládací prvky ActiveX bez oken, které MFC zpracovává).
Další informace najdete IAccessible::get_accSelection v sadě Windows SDK.
CWnd::get_accState
Volá se rozhraním pro načtení aktuálního stavu zadaného objektu.
virtual HRESULT get_accState(
VARIANT varChild,
VARIANT* pvarState);
Parametry
varChild
Určuje, zda informace o stavu, které mají být načteny, je objekt nebo jeden z podřízených prvků objektu. Tento parametr může být buď CHILDID_SELF (pro získání informací o objektu) nebo podřízené ID (k získání informací o podřízené elementu objektu).
pvarState
Přijímá informace o stavu objektu. Viz pvarState v IAccessible::get_accState sadě Windows SDK.
Návratová hodnota
Vrátí S_OK kód chyby MODELU COM při selhání. Viz návratové hodnoty v IAccessible::get_accState sadě Windows SDK.
Poznámky
Tato funkce je součástí podpory aktivní přístupnosti mfc.
Tuto funkci přepište ve své CWnd-odvozené třídě, pokud máte newindowed prvky uživatelského rozhraní (jiné než ovládací prvky ActiveX bez oken, které MFC zpracovává).
Další informace najdete IAccessible::get_accState v sadě Windows SDK.
CWnd::get_accValue
Volá se rozhraním pro načtení hodnoty zadaného objektu.
virtual HRESULT get_accValue(
VARIANT varChild,
BSTR* pszValue);
Parametry
varChild
Určuje, zda informace o hodnotě, které mají být načteny, jsou objekt nebo jeden z podřízených prvků objektu. Tento parametr může být buď CHILDID_SELF (pro získání informací o objektu) nebo podřízené ID (k získání informací o podřízené elementu objektu).
pszValue
BSTR Adresa příjemce lokalizovaného řetězce obsahujícího aktuální hodnotu objektu.
Návratová hodnota
Vrátí S_OK kód chyby MODELU COM při selhání. Viz návratové hodnoty v IAccessible::get_accValue sadě Windows SDK.
Poznámky
Tato funkce je součástí podpory aktivní přístupnosti mfc.
Tuto funkci přepište ve své CWnd-odvozené třídě, pokud máte newindowed prvky uživatelského rozhraní (jiné než ovládací prvky ActiveX bez oken, které MFC zpracovává).
Další informace najdete IAccessible::get_accValue v sadě Windows SDK.
CWnd::GetActiveWindow
Načte ukazatel na aktivní okno.
static CWnd* PASCAL GetActiveWindow();
Návratová hodnota
Aktivní okno nebo NULL pokud v době volání nebylo aktivní žádné okno. Ukazatel může být dočasný a neměl by být uložen pro pozdější použití.
Poznámky
Aktivní okno je buď okno, které má aktuální vstupní fokus, nebo okno explicitně aktivované členkou SetActiveWindow funkce.
CWnd::GetAncestor
Načte objekt nadřazeného okna zadaného okna.
CWnd* GetAncestor(UINT gaFlags) const;
Parametry
gaFlags
Určuje nadřazeného předka, který se má načíst. Úplný seznam možných hodnot najdete v tématu GetAncestor.
Návratová hodnota
Pokud je funkce úspěšná, návratová hodnota je ukazatel na objekt nadřazeného okna. Pokud funkce selže, návratová hodnota je NULL.
Poznámky
Tato členová funkce emuluje funkce funkce GetAncestor, jak je popsáno v sadě Windows SDK.
CWnd::GetCapture
Načte okno s zachycením myši.
static CWnd* PASCAL GetCapture();
Návratová hodnota
Identifikuje okno s zachycením myši. Pokud okno neobsahuje zachytávání myši, je NULL to v případě, že žádné okno neobsahuje.
Návratová hodnota může být dočasná a neměla by být uložena pro pozdější použití.
Poznámky
Zachytávání myší má v každém okamžiku pouze jedno okno. Okno obdrží zachytávání myši při zavolání SetCapture členské funkce. Toto okno přijímá vstup myši bez ohledu na to, jestli je kurzor uvnitř jeho ohraničení.
CWnd::GetCaretPos
Načte souřadnice klienta aktuální pozice kurzoru a vrátí je jako CPoint.
static CPoint PASCAL GetCaretPos();
Návratová hodnota
CPoint objekt obsahující souřadnice pozice kurzoru.
Poznámky
Pozice kurzoru je uvedena v souřadnicích CWnd klienta okna.
CWnd::GetCheckedRadioButton
Načte ID aktuálně kontrolovaného přepínače v zadané skupině.
int GetCheckedRadioButton(
int nIDFirstButton,
int nIDLastButton);
Parametry
nIDFirstButton
Určuje celočíselnou identifikátor prvního přepínače ve skupině.
nIDLastButton
Určuje celočíselnou identifikátor posledního přepínače ve skupině.
Návratová hodnota
ID zaškrtnutého přepínače nebo 0, pokud není vybrán žádný.
CWnd::GetClientRect
Zkopíruje souřadnice CWnd klienta oblasti klienta do struktury, na kterou lpRectodkazuje .
void GetClientRect(LPRECT lpRect) const;
Parametry
lpRect
Odkazuje na strukturu nebo CRect objekt pro RECT příjem souřadnic klienta. top Členové left budou 0. bottom Členové right budou obsahovat šířku a výšku okna.
Poznámky
Souřadnice klienta určují levé horní a pravé dolní rohy klientské oblasti. Vzhledem k tomu, že souřadnice klienta jsou relativní vzhledem k levému hornímu rohu CWnd klientské oblasti, souřadnice levého horního rohu jsou (0,0).
Příklad
Podívejte se na příklad pro CWnd::IsIconic.
CWnd::GetClipboardOwner
Načte aktuálního vlastníka schránky.
static CWnd* PASCAL GetClipboardOwner();
Návratová hodnota
Identifikuje okno, které vlastní schránku, pokud je funkce úspěšná. Jinak je NULLto .
Vrácený ukazatel může být dočasný a neměl by být uložen pro pozdější použití.
Poznámky
Schránka může stále obsahovat data, i když aktuálně nepatří.
CWnd::GetClipboardViewer
Načte první okno v řetězu prohlížeče schránky.
static CWnd* PASCAL GetClipboardViewer();
Návratová hodnota
Identifikuje okno, které je aktuálně zodpovědné za zobrazení schránky v případě úspěchu; jinak NULL (například pokud neexistuje žádný prohlížeč).
Vrácený ukazatel může být dočasný a neměl by být uložen pro pozdější použití.
CWnd::GetControlUnknown
Voláním této členské funkce načtěte ukazatel na neznámý ovládací prvek OLE.
LPUNKNOWN GetControlUnknown();
Návratová hodnota
Ukazatel na IUnknown rozhraní ovládacího prvku OLE reprezentovaný tímto CWnd objektem. Pokud tento objekt nepředstavuje ovládací prvek OLE, návratová hodnota je NULL.
Poznámky
Tento ukazatel byste neměli uvolnit IUnknown . Obvykle byste použili k získání konkrétního rozhraní ovládacího prvku.
Ukazatel rozhraní vrácený GetControlUnknown není počítána odkazem. Nezavolejte IUnknown::Release ukazatel, pokud jste ho předtím nevolali IUnknown::AddRef .
Příklad
// The following code fragment is taken from CMyDlg::OnInitDialog
// CMyDlg is a CDialog-derived class.
// IDC_MSACALCTRL1 is the ID of the Calendar control OCX embedded
// on this dialog
CWnd *pWndCal = GetDlgItem(IDC_MSACALCTRL1);
// Use the IUnknown of the control
LPUNKNOWN pUnk = pWndCal->GetControlUnknown();
// From there get the IDispatch interface of control
LPDISPATCH pDisp = NULL;
pUnk->QueryInterface(IID_IDispatch, (LPVOID*)&pDisp);
// use IDispatch method to invoke the control's functionality
CWnd::GetCurrentMessage
Vrátí ukazatel na zprávu, která právě zpracovává toto okno. Měla by být volána pouze v případě, že je v členské funkci obslužné rutiny zprávy zprávy.
static const MSG* PASCAL GetCurrentMessage();
Návratová hodnota
Vrátí ukazatel na MSG strukturu, která obsahuje zprávu, která okno právě zpracovává. Měla by být volána pouze v případě, že je v obslužné rutině zprávy.
Příklad
Podívejte se na příklad pro CMDIFrameWnd::MDICascade.
CWnd::GetDC
Načte ukazatel na běžný kontext, třídu nebo privátního zařízení pro oblast klienta v závislosti na stylu třídy určeném CWndpro objekt .
CDC* GetDC();
Návratová hodnota
V případě úspěchu identifikuje kontext zařízení pro CWnd klientskou oblast. V opačném případě je NULLvrácená hodnota . Ukazatel může být dočasný a neměl by být uložen pro pozdější použití.
Poznámky
U běžných kontextů GetDC zařízení přiřazuje kontext při každém načtení výchozí atributy. U tříd a privátních kontextů GetDC ponechá dříve přiřazené atributy beze změny. Kontext zařízení lze použít v následných funkcích rozhraní grafického zařízení (GDI) k vykreslení v klientské oblasti.
Pokud kontext zařízení nepatří do třídy okna, musí být volána členská funkce, ReleaseDC aby po malování uvolnila kontext.
Kontext zařízení patřící do CWnd třídy je vrácen GetDC členské funkce, pokud CS_CLASSDC, CS_OWNDCnebo CS_PARENTDC byl zadán jako styl ve WNDCLASS struktuře při registraci třídy.
CWnd::GetDCEx
Načte popisovač kontextu zařízení pro CWnd okno.
CDC* GetDCEx(
CRgn* prgnClip,
DWORD flags);
Parametry
prgnClip
Identifikuje oblast výřezu, která se může kombinovat s viditelnou oblastí okna klienta.
flags
Může mít jednu z následujících přednastavených hodnot:
DCX_CACHEVrátí kontext zařízení z mezipaměti, nikoli zOWNDCokna.CLASSDCPřepsáníCS_OWNDCaCS_CLASSDC.DCX_CLIPCHILDRENVyloučí viditelné oblasti všech podřízených oken podCWndoknem.DCX_CLIPSIBLINGSVyloučí viditelné oblasti všech oken naCWndstejné straně nad oknem.DCX_EXCLUDERGNVyloučí oblast výřezu identifikovanouprgnClipz viditelné oblasti vráceného kontextu zařízení.DCX_INTERSECTRGNProtíná oblast výřezu identifikovanáprgnClipv rámci viditelné oblasti vráceného kontextu zařízení.DCX_LOCKWINDOWUPDATEUmožňuje kreslení i v případě, že existujeLockWindowUpdatevolání, které by jinak toto okno vyloučilo. Tato hodnota se používá pro kreslení během sledování.DCX_PARENTCLIPPoužívá viditelnou oblast nadřazeného okna a ignoruje bity aWS_PARENTDCstyl nadřazeného oknaWS_CLIPCHILDREN. Tato hodnota nastaví původ kontextu zařízení do levého horníhoCWndrohu okna.DCX_WINDOWVrátí kontext zařízení, který odpovídá obdélníku okna místo obdélníku klienta.
Návratová hodnota
Kontext zařízení pro zadané okno, pokud je funkce úspěšná; jinak NULL.
Poznámky
Kontext zařízení lze použít v dalších funkcích GDI k vykreslení v klientské oblasti.
Tato funkce, což je rozšíření GetDC funkce, poskytuje aplikaci větší kontrolu nad tím, jak a zda je oříznut kontext zařízení pro okno.
Pokud kontext zařízení nepatří do třídy okna, musí být funkce volána k ReleaseDC uvolnění kontextu po výkresu. Vzhledem k tomu, že v daném okamžiku je k dispozici pouze pět běžných kontextů zařízení, může selhání uvolnění kontextu zařízení zabránit ostatním aplikacím v získání přístupu k kontextu zařízení.
Chcete-li získat kontext zařízení v mezipaměti, musí aplikace zadat DCX_CACHE. Pokud není zadán DCX_CACHE a okno není CS_OWNDC ani CS_CLASSDC, vrátí tato funkce NULL.
Kontext zařízení se zvláštními vlastnostmi GetDCEx je vrácen funkcí, pokud CS_CLASSDCbyla CS_OWNDCv struktuře zadána , nebo CS_PARENTDC styl při WNDCLASS registraci třídy.
Další informace o těchto vlastnostech naleznete v popisu WNDCLASS struktury v sadě Windows SDK.
CWnd::GetDCRenderTarget
Načte cíl vykreslení kontextu zařízení (DC) pro CWnd okno.
CDCRenderTarget* GetDCRenderTarget();
Návratová hodnota
Cíl vykreslení kontextu zařízení pro zadané okno, pokud je funkce úspěšná; jinak NULL.
Poznámky
CWnd::GetDescendantWindow
Voláním této členské funkce vyhledáte potomkové okno určené daným ID.
CWnd* GetDescendantWindow(
int nID,
BOOL bOnlyPerm = FALSE) const;
Parametry
nID
Určuje identifikátor ovládacího prvku nebo podřízeného okna, které se má načíst.
bOnlyPerm
Určuje, jestli může být okno, které se má vrátit, dočasné. Pokud TRUElze vrátit pouze trvalé okno; pokud FALSEfunkce může vrátit dočasné okno. Další informace o dočasných oknech naleznete v technické poznámce 3.
Návratová hodnota
Ukazatel na CWnd objekt nebo NULL pokud se nenajde žádné podřízené okno.
Poznámky
Tato členová funkce prohledává celý strom podřízených oken, nejen okna, která jsou okamžitě podřízená.
CWnd::GetDesktopWindow
Vrátí okno plochy Windows.
static CWnd* PASCAL GetDesktopWindow();
Návratová hodnota
Identifikuje okno plochy Systému Windows. Tento ukazatel může být dočasný a neměl by být uložen pro pozdější použití.
Poznámky
Okno plochy pokrývá celou obrazovku a je oblast, nad kterou jsou malovány všechny ikony a další okna.
CWnd::GetDlgCtrlID
Vrátí hodnotu ID okna nebo ovládacího prvku pro jakékoli podřízené okno, nikoli pouze hodnotu ovládacího prvku v dialogovém okně.
int GetDlgCtrlID() const;
Návratová hodnota
Číselný identifikátor podřízeného CWnd okna, pokud je funkce úspěšná, jinak 0.
Poznámky
Vzhledem k tomu, že okna nejvyšší úrovně nemají hodnotu ID, návratová hodnota této funkce je neplatná, pokud CWnd se jedná o okno nejvyšší úrovně.
Příklad
Podívejte se na příklad pro CWnd::OnCtlColor.
CWnd::GetDlgItem
Načte ukazatel na zadaný ovládací prvek nebo podřízené okno v dialogovém okně nebo jiném okně.
CWnd* GetDlgItem(int nID) const;
void GetDlgItem(
int nID,
HWND* phWnd) const;
Parametry
nID
Určuje identifikátor ovládacího prvku nebo podřízeného okna, které se má načíst.
phWnd
Ukazatel na podřízené okno.
Návratová hodnota
Ukazatel na daný ovládací prvek nebo podřízené okno. Pokud neexistuje žádný ovládací prvek s ID celého čísla zadaného parametrem nID , hodnota je NULL.
Vrácený ukazatel může být dočasný a neměl by být uložen pro pozdější použití.
Poznámky
Vrácený ukazatel je obvykle přetypován na typ ovládacího prvku identifikovaný nID.
Příklad
// uses GetDlgItem to return a pointer to a user interface control
CEdit *pBoxOne;
pBoxOne = (CEdit*)GetDlgItem(IDC_MYEDIT);
GotoDlgCtrl(pBoxOne);
CWnd::GetDlgItemInt
Načte text ovládacího prvku identifikovaného uživatelem nID.
UINT GetDlgItemInt(
int nID,
BOOL* lpTrans = NULL,
BOOL bSigned = TRUE) const;
Parametry
nID
Určuje celočíselnou identifikátor ovládacího prvku dialogového okna, který se má přeložit.
lpTrans
Odkazuje na logickou proměnnou, která přijímá přeložený příznak.
bSigned
Určuje, jestli je hodnota, která se má načíst, podepsaná.
Návratová hodnota
Určuje přeloženou hodnotu textu položky dialogového okna. Vzhledem k tomu, že hodnota 0 je platná návratová hodnota, lpTrans je nutné ji použít ke zjišťování chyb. Pokud je požadovaná návratová hodnota se signedem, přetypujte ji jako int typ.
Funkce vrátí hodnotu 0, pokud je přeložené číslo větší než INT_MAX (pro čísla se znaménky) nebo UINT_MAX (pro nepodepsané číslo).
Pokud dojde k chybám, například dochází k nečíselným znakům a překročení výše uvedeného maxima, GetDlgItemInt zkopíruje 0 do umístění, na které lpTransodkazuje . Pokud nedojde k žádným chybám, lpTrans zobrazí se nenulová hodnota. Pokud lpTrans je , GetDlgItemInt NULLnezobrazí upozornění na chyby.
Poznámky
Přeloží text zadaného ovládacího prvku v daném dialogovém okně na celočíselnou hodnotu tak, že odstraní všechny nadbytečné mezery na začátku textu a převede desítkové číslice. Překlad se zastaví, když dosáhne konce textu nebo narazí na jakýkoli nečíselný znak.
Pokud bSigned ano TRUE, GetDlgItemInt vyhledá na začátku textu znaménko minus (-) a přeloží text na číslo se znaménkem. V opačném případě vytvoří nepodepsanou hodnotu.
WM_GETTEXT Odešle do ovládacího prvku zprávu.
CWnd::GetDlgItemText
Voláním této členské funkce načtěte název nebo text přidružený k ovládacímu prvku v dialogovém okně.
int GetDlgItemText(
int nID,
LPTSTR lpStr,
int nMaxCount) const;
int GetDlgItemText(
int nID,
CString& rString) const;
Parametry
nID
Určuje celočíselnou identifikátor ovládacího prvku, jehož název se má načíst.
lpStr
Odkazuje na vyrovnávací paměť pro příjem názvu nebo textu ovládacího prvku.
nMaxCount
Určuje maximální délku (v znaky) řetězce, do lpStrkteré se má zkopírovat . Pokud je řetězec delší než nMaxCount, zkrátí se.
rString
Odkaz na .CString
Návratová hodnota
Určuje skutečný počet znaků zkopírovaných do vyrovnávací paměti, nikoli ukončující znak null. Hodnota je 0, pokud se nezkopíruje žádný text.
Poznámky
Členová GetDlgItemText funkce zkopíruje text do umístění, na které lpStr odkazuje, a vrátí počet bajtů, na které kopíruje.
CWnd::GetDSCCursor
Voláním této členské funkce načte ukazatel na základní kurzor, který je definován vlastnostmi DataSource, PasswordUserName, a SQL ovládacího prvku zdroje dat.
IUnknown* GetDSCCursor();
Návratová hodnota
Ukazatel na kurzor, který je definován ovládacím prvek zdroje dat. MFC se postará o volání AddRef ukazatele.
Poznámky
Vrácený ukazatel slouží k nastavení ICursor vlastnosti komplexního ovládacího prvku vázaného na data, například ovládacího prvku mřížky vázaného na data. Ovládací prvek zdroje dat nebude aktivní, dokud první vázaný ovládací prvek požádá o kurzor. K tomu může dojít buď explicitně voláním GetDSCCursor , nebo implicitně správcem vazeb MFC. V obou případech můžete vynutit, aby se ovládací prvek zdroje dat stal aktivní voláním GetDSCCursor a následným voláním Release vráceného ukazatele na IUnknown. Aktivace způsobí, že se ovládací prvek zdroje dat pokusí připojit k podkladovému zdroji dat. Vrácený ukazatel se může použít v následujícím kontextu:
Příklad
BOOL CMyDlg::OnInitDialog()
{
// Find the child controls on the dialog
HRESULT hr = E_FAIL;
CWnd *pDSC = GetDlgItem(IDC_DATASOURCE);
CWnd *pListWnd = GetDlgItem(IDC_DBLIST1);
IUnknown *punkList = pListWnd->GetControlUnknown();
IDBList *pList = NULL;
if (NULL != punkList)
{
hr = punkList->QueryInterface(__uuidof(IDBList), (void **)&pList);
}
if (SUCCEEDED(hr))
{
// Tell the MFC binding manager that we are
// binding DISPID 3 to the data-source control.
pListWnd->BindProperty(0x3, pDSC);
// Tell the listbox which field to expose as its bound column
pList->put_BoundColumn(_T("ContactFirstName"));
// Tell the listbox which cursor and column to populate its list from
pList->put_ListField(_T("ContactFirstName"));
IUnknown *punkCursor = pDSC->GetDSCCursor();
if (NULL != punkCursor)
{
punkCursor->Release();
}
pList->Release();
return TRUE;
}
CWnd::GetDynamicLayout
Načte ukazatel na objekt správce dynamického rozložení.
CMFCDynamicLayout* GetDynamicLayout();
Návratová hodnota
Ukazatel na objekt správce dynamického rozložení nebo NULL pokud dynamické rozložení není povolené.
Poznámky
Objekt okna vlastní a spravuje životnost vráceného ukazatele, takže by měl být použit pouze pro přístup k objektu; neodstraňovat ukazatel ani trvale neukládejte ukazatel.
CWnd::GetExStyle
Vrátí rozšířený styl okna.
DWORD GetExStyle() const;
Návratová hodnota
Rozšířený styl okna. Další informace o rozšířených stylech oken používaných v prostředí MFC naleznete v tématu Rozšířené styly oken.
CWnd::GetFocus
Načte ukazatel na CWnd aktuálně zadaný fokus.
static CWnd* PASCAL GetFocus();
Návratová hodnota
Ukazatel na okno, které má aktuální fokus, nebo NULL pokud žádné okno fokusu není.
Ukazatel může být dočasný a neměl by být uložen pro pozdější použití.
CWnd::GetFont
WM_GETFONT Odešle zprávu do okna a načte aktuální písmo.
CFont* GetFont() const;
Návratová hodnota
Ukazatel na CFont objekt, který je připojen k aktuálnímu písmu okna.
Poznámky
Tato metoda nemá žádný vliv, pokud okno nezisekuje WM_GETFONT zprávu. Mnoho tříd MFC odvozených z CWnd procesu této zprávy, protože jsou připojeny k předdefinované třídě okna, která obsahuje obslužnou rutinu zprávy pro WM_GETFONT zprávu. Chcete-li použít tuto metodu, třídy odvozené z CWnd musí definovat obslužnou rutinu WM_GETFONT metody pro zprávu.
CWnd::GetForegroundWindow
Vrátí ukazatel na okno popředí (okno, se kterým právě pracuje uživatel).
static CWnd* PASCAL GetForegroundWindow();
Návratová hodnota
Ukazatel na okno popředí. Může se jednat o dočasný CWnd objekt.
Poznámky
Okno popředí platí pouze pro okna nejvyšší úrovně (okna s rámečkem nebo dialogová okna).
CWnd::GetIcon
Voláním této členské funkce získáte úchyt na velký (32x32) nebo úchyt na malou ikonu (16 × 16), jak je uvedeno bBigIcon.
HICON GetIcon(BOOL bBigIcon) const;
Parametry
bBigIcon
Určuje ikonu 32 pixelů o 32 pixelů, pokud TRUE; určuje ikonu 16 pixelů o 16 pixelů, pokud FALSE.
Návratová hodnota
Úchyt ikony. V případě neúspěchu vrátí hodnotu NULL.
CWnd::GetLastActivePopup
Určuje, které automaticky otevírané okno vlastněné CWnd naposledy aktivní.
CWnd* GetLastActivePopup() const;
Návratová hodnota
Identifikuje naposledy aktivní automaticky otevírané okno. Vrácená hodnota bude samotné okno, pokud jsou splněny některé z následujících podmínek:
Samotné okno bylo naposledy aktivní.
Okno nemá žádná automaticky otevíraná okna.
Okno není okno nejvyšší úrovně nebo je vlastněno jiným oknem.
Ukazatel může být dočasný a neměl by být uložen pro pozdější použití.
Příklad
Podívejte se na příklad pro CWnd::FindWindow.
CWnd::GetLayeredWindowAttributes
Načte barevný klíč neprůhlednosti a průhlednosti vrstveného okna.
BOOL GetLayeredWindowAttributes(
COLORREF* pcrKey,
BYTE* pbAlpha,
DWORD* pdwFlags) const;
Parametry
pcrKey
Ukazatel na COLORREF hodnotu, která obdrží barevný klíč průhlednosti, který se má použít při vytváření vrstveného okna. Všechny pixely malované oknem v této barvě budou průhledné. To může být NULL v případě, že argument není potřeba.
pbAlpha
Ukazatel na hodnotu BYTE Alfa, která obdrží hodnotu Alfa, která popisuje neprůhlednost vrstveného okna. Pokud je proměnná odkazovaná na pbAlpha hodnotu 0, okno je zcela transparentní. Pokud je proměnná odkazovaná na pbAlpha hodnotu 255, okno je neprůzné. To může být NULL v případě, že argument není potřeba.
pdwFlags
Ukazatel na příznak DWORD vrstvení. To může být NULL v případě, že argument není potřeba. Úplný seznam možných hodnot najdete v tématu GetLayeredWindowAttributes.
Návratová hodnota
Nenulové, pokud je funkce úspěšná; jinak 0.
Poznámky
Tato členová funkce emuluje funkce funkce GetLayeredWindowAttributes, jak je popsáno v sadě Windows SDK.
CWnd::GetMenu
Načte ukazatel na nabídku pro toto okno.
CMenu* GetMenu() const;
Návratová hodnota
Identifikuje nabídku. Hodnota je NULL , pokud CWnd nemá žádnou nabídku. Vrácená hodnota není definována, pokud CWnd je podřízené okno.
Vrácený ukazatel může být dočasný a neměl by být uložen pro pozdější použití.
Poznámky
Tato funkce by neměla být použita pro podřízená okna, protože nemají nabídku.
Příklad
void CMainFrame::OnCwndDeletefilemenu()
{
// This example deletes the leftmost popup menu or leftmost
// popup menu item from the application's main window.
CWnd *pMain = AfxGetMainWnd();
// The main window _can_ be NULL, so this code
// doesn't ASSERT and actually tests.
if (pMain != NULL)
{
// Get the main window's menu
CMenu *pMenu = pMain->GetMenu();
// If there is a menu and it has items, we'll
// delete the first one.
if (pMenu != NULL && pMenu->GetMenuItemCount() > 0)
{
pMenu->DeleteMenu(0, MF_BYPOSITION);
// force a redraw of the menu bar
pMain->DrawMenuBar();
}
// No need to delete pMenu because it is an MFC
// temporary object.
}
}
CWnd::GetMenuBarInfo
Načte informace o zadaném řádku nabídek.
BOOL GetMenuBarInfo(
LONG idObject,
LONG idItem,
PMENUBARINFO pmbi) const;
Parametry
idObject
Určuje objekt nabídky. Seznam možných hodnot najdete v tématu GetMenuBarInfo.
idItem
Určuje položku, pro kterou se mají načíst informace. Pokud je tento parametr nula, funkce načte informace o samotné nabídce. Pokud je tento parametr 1, funkce načte informace o první položce v nabídce atd.
pmbi
Ukazatel na MENUBARINFO strukturu, která přijímá informace.
Návratová hodnota
Nenulové, pokud je funkce úspěšná; jinak 0.
Poznámky
Tato členová funkce emuluje funkce funkce GetMenuBarInfo, jak je popsáno v sadě Windows SDK.
CWnd::GetNextDlgGroupItem
Vyhledá předchozí nebo další ovládací prvek ve skupině ovládacích prvků v dialogovém okně.
CWnd* GetNextDlgGroupItem(
CWnd* pWndCtl,
BOOL bPrevious = FALSE) const;
COleControlSiteOrWnd* GetNextDlgGroupItem(
COleControlSiteOrWnd* pCurSiteOrWnd = NULL) const;
Parametry
pWndCtl
Identifikuje ovládací prvek, který se má použít jako výchozí bod hledání.
bPrevious
Určuje, jak má funkce prohledávat skupinu ovládacích prvků v dialogovém okně. Pokud TRUEfunkce vyhledá předchozí ovládací prvek ve skupině; pokud FALSEvyhledá další ovládací prvek ve skupině.
pCurSiteOrWnd
Identifikuje COleControlSiteOrWnd ovládací prvek. Další informace o COleControlSiteOrWndaplikaci naleznete v tématu Poznámky.
Návratová hodnota
Ukazatel na předchozí nebo další ovládací prvek ve skupině, pokud je členová funkce úspěšná.
Vrácený ukazatel může být dočasný a neměl by být uložen pro pozdější použití.
Poznámky
Skupina ovládacích prvků začíná ovládacím prvkům vytvořeným stylem WS_GROUP a končí posledním ovládacím prvku, který nebyl vytvořen stylem WS_GROUP .
Ve výchozím nastavení GetNextDlgGroupItem vrátí členová funkce ukazatel na další ovládací prvek ve skupině. Pokud pWndCtl identifikuje první ovládací prvek ve skupině a bPrevious je TRUE, GetNextDlgGroupItem vrátí ukazatel na poslední ovládací prvek ve skupině.
Poznámka:
Vzhledem k tomu, že mfc podporuje ovládací prvky ActiveX bez oken, standardní ovládací prvky ActiveX a okna, odkazující na ovládací prvek pouze HWND tím, že už nestačí. Objekt COleControlSiteOrWnd obsahuje informace, které objekt identifikují jako ovládací prvek ActiveX s oknem, ovládací prvek ActiveX bez oken nebo okno následujícím způsobem:
| Typ ovládacího prvku nebo okna | Identifikace informací |
|---|---|
| Ovládací prvek ActiveX v okně | Obsahuje objekt HWND COleControlSite a přidruží k němu. Člen m_hWnd COleControlSiteOrWnd je nastaven na HWND ovládací prvek a m_pSite člen odkazuje na ovládací prvek COleControlSite. |
| Ovládací prvek ActiveX bez oken | Neobsahuje číslo HWND. Člen m_pSite COleControlSiteOrWnd bodu na kontrolní prvek COleControlSitea m_hWnd člen je NULL. |
| Standardní okno | Obsahuje pouze hodnotu HWND. Člen m_hWnd je nastaven na HWND okna a m_pSite člen je NULL.COleControlSiteOrWnd |
CWnd::GetNextDlgTabItem
Načte ukazatel na první vytvořený ovládací prvek se stylem WS_TABSTOP , který předchází zadanému ovládacímu prvku nebo následuje za ním.
CWnd* GetNextDlgTabItem(
CWnd* pWndCtl,
BOOL bPrevious = FALSE) const;
COleControlSiteOrWnd* GetNextDlgTabItem(
COleControlSiteOrWnd* pCurSiteOrWnd,
BOOL bPrevious) const;
Parametry
pWndCtl
Identifikuje ovládací prvek, který se má použít jako výchozí bod hledání.
pCurSiteOrWnd
Identifikuje COleControlSiteOrWnd ovládací prvek. Další informace o produktu naleznete v COleControlSiteOrWndtématu CWnd::GetNextDlgGroupItem.
bPrevious
Určuje, jak má funkce prohledávat dialogové okno. Pokud TRUEfunkce vyhledá předchozí ovládací prvek v dialogovém okně; pokud FALSEvyhledá další ovládací prvek.
Návratová hodnota
Ukazatel na předchozí nebo další ovládací prvek, který má WS_TABSTOP styl, pokud je členová funkce úspěšná.
Vrácený ukazatel může být dočasný a neměl by být uložen pro pozdější použití.
Další informace o produktu naleznete v COleControlSiteOrWndtématu CWnd::GetNextDlgGroupItem.
CWnd::GetNextWindow
Vyhledá další (nebo předchozí) okno v seznamu správce oken.
CWnd* GetNextWindow(UINT nFlag = GW_HWNDNEXT) const;
Parametry
nFlag
Určuje, zda funkce vrátí ukazatel na další okno nebo předchozí okno. Může to být buď GW_HWNDNEXT, který vrátí okno, které následuje za CWnd objektem v seznamu správce oken, nebo GW_HWNDPREV, který vrátí předchozí okno v seznamu správce okna.
Návratová hodnota
Identifikuje další (nebo předchozí) okno v seznamu správce oken, pokud je členská funkce úspěšná.
Vrácený ukazatel může být dočasný a neměl by být uložen pro pozdější použití.
Poznámky
Seznam správce oken obsahuje položky pro všechna okna nejvyšší úrovně, jejich přidružená podřízená okna a podřízená okna všech podřízených oken.
Pokud je okno nejvyšší úrovně, funkce vyhledá další (nebo předchozí) okno nejvyšší úrovně. Pokud CWnd CWnd je podřízené okno, funkce vyhledá další (nebo předchozí) podřízené okno.
CWnd::GetOleControlSite
Načte vlastní web pro zadaný ovládací prvek ActiveX.
COleControlSite* GetOleControlSite(UINT idControl) const;
Parametry
idControl
ID ovládacího prvku ActiveX.
CWnd::GetOpenClipboardWindow
Načte popisovač okna, které má aktuálně otevřenou schránku.
static CWnd* PASCAL GetOpenClipboardWindow();
Návratová hodnota
Popisovač okna, které má aktuálně otevřenou schránku, pokud je funkce úspěšná; jinak NULL.
CWnd::GetOwner
Načte ukazatel na vlastníka okna.
CWnd* GetOwner() const;
Návratová hodnota
Ukazatel na CWnd objekt.
Poznámky
Pokud okno nemá žádného vlastníka, vrátí se ve výchozím nastavení ukazatel na nadřazený objekt okna. Všimněte si, že vztah mezi vlastníkem a vlastněným se liší od aspektu nadřazeného-podřízeného v několika důležitých aspektech. Například okno s nadřazeným objektem je omezeno na klientskou oblast nadřazeného okna. Vlastněná okna lze kreslit na libovolném místě na ploše.
Koncept vlastnictví této funkce se liší od konceptu GetWindowvlastnictví .
CWnd::GetParent
Voláním této funkce získáte ukazatel na nadřazené okno podřízeného okna (pokud existuje).
CWnd* GetParent() const;
Návratová hodnota
Viz část Návratové hodnoty v GetParent sadě Windows SDK.
Poznámky
Funkce GetParent vrátí ukazatel na okamžitý nadřazený objekt (pokud existuje). Naproti tomu GetParentOwner funkce vrátí ukazatel na nejbližší nadřazené okno nebo okno vlastníka, které není podřízeným oknem (nemá WS_CHILD styl). Pokud máte podřízené okno v podřízené okně GetParent a GetParentOwner vrátíte jiné výsledky.
CWnd::GetParentFrame
Voláním této členské funkce načtěte nadřazené okno rámce.
CFrameWnd* GetParentFrame() const;
Návratová hodnota
Ukazatel na okno rámečku v případě úspěchu; jinak NULL.
Poznámky
Členová funkce vyhledá nadřazený řetězec, dokud CFrameWnd se nenajde objekt (nebo odvozená třída).
CWnd::GetParentOwner
Voláním této členské funkce získáte ukazatel na nadřazené okno podřízeného okna nebo okna vlastníka.
CWnd* GetParentOwner() const;
Návratová hodnota
Ukazatel na CWnd objekt. CWnd Pokud objekt není připojený k popisovači, vytvoří se dočasný CWnd objekt a připojí se. Ukazatel může být dočasný a neměl by být uložen pro pozdější použití.
Poznámky
GetParentOwner vrátí ukazatel na nejbližší nadřazené okno nebo okno vlastníka, které není podřízeným oknem (nemá WS_CHILD styl). Aktuální okno vlastníka lze nastavit pomocí SetOwner. Ve výchozím nastavení je nadřazeným objektem okna jeho vlastník.
Naproti tomu GetParent funkce vrátí ukazatel na okamžitý nadřazený objekt, ať už se jedná o podřízené okno, nebo ne. Pokud máte podřízené okno v podřízené okně GetParent a GetParentOwner vrátíte jiné výsledky.
CWnd::GetProperty
Voláním této členské funkce získáte vlastnost ovládacího prvku ActiveX určenou parametrem dwDispID.
void GetProperty(
DISPID dwDispID,
VARTYPE vtProp,
void* pvProp)const;
Parametry
dwDispID
Identifikuje vlastnost, která se má načíst.
vtProp
Určuje typ vlastnosti, která se má načíst. Možné hodnoty naleznete v části Poznámky pro COleDispatchDriver::InvokeHelper.
pvProp
Adresa proměnné, která obdrží hodnotu vlastnosti. Musí odpovídat typu určenému parametrem vtProp.
Poznámky
GetProperty vrátí hodnotu prostřednictvím pvProp.
Poznámka:
Tato funkce by měla být volána pouze u objektu CWnd , který představuje ovládací prvek ActiveX.
Další informace o použití této členské funkce s kontejnery ovládacích prvků ActiveX naleznete v článku ActiveX Řídicí kontejnery: Programování ovládacích prvků ActiveX v kontejneru ovládacího prvku ActiveX.
CWnd::GetRenderTarget
Získá cíl vykreslení, který je přidružen k tomuto okně.
CHwndRenderTarget* GetRenderTarget();
Návratová hodnota
Ukazatel na cíl vykreslení nebo NULL.
CWnd::GetSafeHwnd
Vrátí m_hWndhodnotu , nebo NULL je-li this ukazatel NULL.
HWND GetSafeHwnd() const;
Návratová hodnota
Vrátí úchyt okna pro okno. Vrátí NULL , pokud CWnd není připojen k oknem nebo pokud se používá s ukazatelem NULL CWnd .
Příklad
Podívejte se na příklad pro CWnd::SubclassWindow.
CWnd::GetSafeOwner
Voláním této členské funkce načtěte okno vlastníka, které by se mělo použít pro dialogová okna nebo jiná modální okna.
static CWnd* GetSafeOwner(
CWnd* pParent = NULL,
HWND* pWndTop = NULL);
Parametry
pParent
Ukazatel na nadřazené CWnd okno. Může být NULL.
pWndTop
Ukazatel na okno, které je aktuálně nahoře. Může být NULL.
Návratová hodnota
Ukazatel na bezpečného vlastníka daného okna.
Poznámky
Bezpečným vlastníkem je první nadřazené okno jiného než podřízeného objektu pParent. Pokud pParent ano NULL, hlavní okno vlákna (načteno prostřednictvím AfxGetMainWnd) slouží k vyhledání vlastníka.
Poznámka:
Samotná architektura používá tuto funkci k určení správného okna vlastníka pro dialogová okna a seznamy vlastností, kde není zadán vlastník.
CWnd::GetScrollBarCtrl
Voláním této členské funkce získáte ukazatel na zadaný posuvník nebo rozdělovač.
virtual CScrollBar* GetScrollBarCtrl(int nBar) const;
Parametry
nBar
Určuje typ posuvníku. Parametr může mít jednu z následujících hodnot:
SB_HORZNačte pozici vodorovného posuvníku.SB_VERTNačte pozici svislého posuvníku.
Návratová hodnota
Ovládací prvek posuvníku na stejné stejné nebo NULL pokud žádný.
Poznámky
Tato členová funkce nefunguje na posuvníkech vytvořených při WS_HSCROLL vytváření okna nebo WS_VSCROLL bitů. Implementace CWnd této funkce jednoduše vrátí NULL. Odvozené třídy, například CView, implementovat popsané funkce.
CWnd::GetScrollBarInfo
Načte informace o zadaném posuvníku.
BOOL GetScrollBarInfo(
LONG idObject,
PSCROLLBARINFO psbi) const;
Parametry
idObject
Určuje objekt nabídky. Seznam možných hodnot najdete v tématu GetScrollBarInfo.
psbi
Ukazatel na SCROLLBARINFO strukturu, která přijímá informace.
Návratová hodnota
Nenulové, pokud je funkce úspěšná; jinak 0.
Poznámky
Tato členová funkce emuluje funkce funkce GetScrollBarInfo, jak je popsáno v sadě Windows SDK.
CWnd::GetScrollInfo
Voláním této členské funkce načtěte informace, které SCROLLINFO struktura udržuje o posuvníku.
BOOL GetScrollInfo(
int nBar,
LPSCROLLINFO lpScrollInfo,
UINT nMask = SIF_ALL);
Parametry
nBar
Určuje, jestli je posuvník ovládací prvek nebo část oblasti bez klienta okna. Pokud je součástí jiné oblasti než klient, označuje také, nBar zda je posuvník umístěn vodorovně, svisle nebo obojí. Musí to být jedna z těchto věcí:
SB_CTLNačte parametry pro ovládací prvek posuvníku. Datovým_hWndčlen musí být úchytem ovládacího prvku posuvníku.SB_HORZNačte parametry standardního vodorovného posuvníku okna.SB_VERTNačte parametry standardního svislého posuvníku okna.
lpScrollInfo
Ukazatel na SCROLLINFO strukturu. Další informace o této struktuře najdete v sadě Windows SDK.
nMask
Určuje parametry posuvníku, které se mají načíst. Výchozí hodnota určuje kombinaci , SIF_PAGESIF_POS, SIF_TRACKPOS, a SIF_RANGE. Další SCROLLINFO informace o hodnotách nMask .
Návratová hodnota
Pokud zpráva načetla nějaké hodnoty, vrátí se TRUE. Jinak je FALSEto .
Poznámky
GetScrollInfo umožňuje aplikacím používat 32bitové pozice posouvání.
Struktura SCROLLINFO obsahuje informace o posuvníku, včetně minimální a maximální pozice posouvání, velikosti stránky a pozice posuvníku (palce). SCROLLINFO Další informace o změně výchozích hodnot struktury najdete v tématu struktury v sadě Windows SDK.
Obslužné rutiny zpráv MFC systému Windows, které označují umístění posuvníku CWnd ::OnHScroll a CWnd::OnVScroll, poskytují pouze 16 bitů dat pozice. GetScrollInfo a SetScrollInfo poskytuje 32 bitů dat o poloze posuvníku. Aplikace tedy může volat GetScrollInfo při zpracování nebo CWnd::OnHScroll CWnd::OnVScroll získání 32bitových dat umístění posuvníku.
CWnd::GetScrollLimit
Voláním této členské funkce načtěte maximální pozici posouvání posuvníku.
int GetScrollLimit(int nBar);
Parametry
nBar
Určuje typ posuvníku. Parametr může mít jednu z následujících hodnot:
SB_HORZNačte limit posouvání vodorovného posuvníku.SB_VERTNačte limit posouvání svislého posuvníku.
Návratová hodnota
Určuje maximální pozici posuvníku v případě úspěchu; jinak 0.
CWnd::GetScrollPos
Načte aktuální pozici posuvníku.
int GetScrollPos(int nBar) const;
Parametry
nBar
Určuje posuvník, který chcete prozkoumat. Parametr může mít jednu z následujících hodnot:
SB_HORZNačte pozici vodorovného posuvníku.SB_VERTNačte pozici svislého posuvníku.
Návratová hodnota
Určuje aktuální pozici posuvníku v případě úspěchu posuvníku; jinak 0.
Poznámky
Aktuální pozice je relativní hodnota, která závisí na aktuální oblasti posouvání. Pokud je například oblast posouvání 50 až 100 a posuvník je uprostřed pruhu, aktuální pozice je 75.
CWnd::GetScrollRange
Zkopíruje aktuální minimální a maximální umístění posuvníku pro daný posuvník do umístění určených lpMinPos pomocí a lpMaxPos.
void GetScrollRange(
int nBar,
LPINT lpMinPos,
LPINT lpMaxPos) const;
Parametry
nBar
Určuje posuvník, který chcete prozkoumat. Parametr může mít jednu z následujících hodnot:
SB_HORZNačte pozici vodorovného posuvníku.SB_VERTNačte pozici svislého posuvníku.
lpMinPos
Odkazuje na celočíselnou proměnnou, která má přijmout minimální pozici.
lpMaxPos
Odkazuje na celočíselnou proměnnou, která má přijmout maximální pozici.
Poznámky
Pokud CWnd nemá posuvník, GetScrollRange členová funkce zkopíruje 0 do lpMinPos a lpMaxPos.
Výchozí rozsah standardního posuvníku je 0 až 100. Výchozí oblast ovládacího prvku posuvníku je prázdná (obě hodnoty jsou 0).
CWnd::GetStyle
Vrátí aktuální styl okna.
DWORD GetStyle() const;
Návratová hodnota
Styl okna. Další informace o stylech oken použitých v prostředí MFC naleznete v tématu Styly oken.
CWnd::GetSystemMenu
Umožňuje aplikaci přístup k nabídce Řízení pro kopírování a úpravy.
CMenu* GetSystemMenu(BOOL bRevert) const;
Parametry
bRevert
Určuje akci, která se má provést. Pokud bRevert ano FALSE, GetSystemMenu vrátí popisovač kopie nabídky Ovládací prvek, který se právě používá. Tato kopie je zpočátku identická s nabídkou Ovládací prvek, ale lze ji upravit. Pokud bRevert ano TRUE, GetSystemMenu obnoví nabídku Ovládací prvek zpět do výchozího stavu. Předchozí, případně změněná nabídka Control, pokud existuje, je zničena. Vrácená hodnota není v tomto případě definována.
Návratová hodnota
Identifikuje kopii nabídky Ovládací prvek, pokud bRevert je FALSE. Pokud bRevert ano TRUE, návratová hodnota není definována.
Vrácený ukazatel může být dočasný a neměl by být uložen pro pozdější použití.
Poznámky
Každé okno, které nepoužívá GetSystemMenu k vytvoření vlastní kopie nabídky Ovládací prvek obdrží standardní nabídku Ovládací prvek.
Ukazatel vrácený GetSystemMenu členovou funkcí lze použít s CMenu::AppendMenu, CMenu::InsertMenunebo CMenu::ModifyMenu funkce ke změně nabídky Ovládací prvek.
Nabídka Ovládací prvek zpočátku obsahuje položky identifikované různými hodnotami ID, například SC_CLOSE, SC_MOVEa SC_SIZE. Položky v nabídce Řízení generují WM_SYSCOMMAND zprávy. Všechny předdefinované položky nabídky Control mají čísla ID větší než 0xF000. Pokud aplikace přidá položky do nabídky Ovládací prvek, měla by použít čísla ID menší než F000.
Systém Windows může automaticky znepřístupnit položky v standardní nabídce Ovládací prvek. CWnd může provést vlastní výběr nebo nedostupnost tím, že reaguje na WM_INITMENU zprávy, které se odesílají před zobrazením jakékoli nabídky.
Příklad
// The following code fragment is taken from CMyDlg::OnInitDialog
// CMyDlg is derived from CDialog
// Add "About..." menu item to system menu.
// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu *pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUT);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
CWnd::GetTitleBarInfo
Načte informace o zadaném záhlaví.
BOOL GetTitleBarInfo(PTITLEBARINFO pti) const;
Parametry
pti
Ukazatel na TITLEBARINFO strukturu, která přijímá informace.
Poznámky
Tato členová funkce emuluje funkce funkce GetTitleBarInfo, jak je popsáno v sadě Windows SDK.
CWnd::GetTopLevelFrame
Voláním této členské funkce načtěte okno rámce nejvyšší úrovně( pokud existuje).
CFrameWnd* GetTopLevelFrame() const;
Návratová hodnota
Identifikuje okno rámce nejvyšší úrovně okna.
Vrácený ukazatel může být dočasný a neměl by být uložen pro pozdější použití.
Poznámky
Pokud CWnd nemá žádné připojené okno nebo jeho nadřazený objekt nejvyšší úrovně není -odvozený CFrameWndobjekt, vrátí NULLtato funkce .
CWnd::GetTopLevelOwner
Voláním této členské funkce načtěte okno nejvyšší úrovně.
CWnd* GetTopLevelOwner() const;
Návratová hodnota
Identifikuje okno nejvyšší úrovně. Vrácený ukazatel může být dočasný a neměl by být uložen pro pozdější použití.
Poznámky
Okno nejvyšší úrovně je okno, které je podřízené ploše. Pokud CWnd nemá připojené okno, vrátí tato funkce NULL.
CWnd::GetTopLevelParent
Voláním této členské funkce načtěte nadřazený prvek nejvyšší úrovně okna.
CWnd* GetTopLevelParent() const;
Návratová hodnota
Identifikuje nadřazené okno nejvyšší úrovně okna.
Vrácený ukazatel může být dočasný a neměl by být uložen pro pozdější použití.
Poznámky
GetTopLevelParent je podobný hodnotě GetTopLevelFrame a GetTopLevelOwner; ignoruje hodnotu nastavenou jako aktuální okno vlastníka.
CWnd::GetTopWindow
Vyhledá podřízené okno nejvyšší úrovně, do CWndkterého patří .
CWnd* GetTopWindow() const;
Návratová hodnota
Identifikuje podřízené okno nejvyšší úrovně v propojeném CWnd seznamu podřízených oken. Pokud žádná podřízená okna neexistují, hodnota je NULL.
Vrácený ukazatel může být dočasný a neměl by být uložen pro pozdější použití.
Poznámky
Pokud CWnd nemá žádné podřízené položky, vrátí tato funkce NULLhodnotu .
CWnd::GetUpdateRect
Načte souřadnice nejmenšího obdélníku, který zcela uzavře oblast aktualizace.
BOOL GetUpdateRect(
LPRECT lpRect,
BOOL bErase = FALSE);
Parametry
lpRect
Odkazuje na CRect objekt nebo RECT strukturu , která má přijímat souřadnice klienta aktualizace, která uzavře oblast aktualizace.
Nastavte tento parametr tak, aby NULL určil, zda oblast aktualizace existuje v rámci CWnd. Je-li lpRect NULLtomu tak, GetUpdateRect vrátí členová funkce nenulovou hodnotu, pokud existuje oblast aktualizace a 0, pokud neexistuje. To poskytuje způsob, jak určit, jestli WM_PAINT zpráva pochází z neplatné oblasti. Tento parametr NULL nenastavujte ve Windows verze 3.0 a starší.
bErase
Určuje, jestli se má vymazat pozadí v oblasti aktualizace.
Návratová hodnota
Určuje stav oblasti aktualizace. Hodnota je nenulová, pokud oblast aktualizace není prázdná; jinak 0.
lpRect Pokud je parametr nastaven na NULLhodnotu , návratová hodnota je nenulová, pokud existuje oblast aktualizace; jinak 0.
Poznámky
Pokud CWnd byl vytvořen pomocí CS_OWNDC stylu a režim mapování není MM_TEXT, GetUpdateRect členová funkce dává obdélník v logických souřadnicích. GetUpdateRect V opačném případě získáte obdélník v souřadnicích klienta. Pokud neexistuje žádná oblast aktualizace, nastaví obdélník tak, GetUpdateRect aby byl prázdný (nastaví všechny souřadnice na 0).
Parametr bErase určuje, jestli GetUpdateRect má vymazat pozadí oblasti aktualizace. Pokud bErase je TRUE a oblast aktualizace není prázdná, pozadí se vymaže. Pokud chcete vymazat pozadí, GetUpdateRect odešle zprávu WM_ERASEBKGND .
Aktualizační obdélník načtený BeginPaint členkou funkce je identický s tím, který načítá členová GetUpdateRect funkce.
Členová BeginPaint funkce automaticky ověří oblast aktualizace, takže jakékoli volání GetUpdateRect okamžitě po volání načte BeginPaint prázdnou oblast aktualizace.
CWnd::GetUpdateRgn
Načte oblast aktualizace do oblasti identifikované uživatelem pRgn.
int GetUpdateRgn(
CRgn* pRgn,
BOOL bErase = FALSE);
Parametry
pRgn
Identifikuje oblast aktualizace.
bErase
Určuje, zda bude pozadí vymazáno a budou nakresleny jiné oblasti než klientské podřízené okna. Pokud je FALSEhodnota , není dokončen žádný výkres.
Návratová hodnota
Určuje příznak typu short-integer, který označuje typ výsledné oblasti. Hodnota může mít jednu z následujících možností:
SIMPLEREGIONOblast nemá žádné překrývající se ohraničení.COMPLEXREGIONOblast má překrývající se ohraničení.NULLREGIONOblast je prázdná.ERRORNebyla vytvořena žádná oblast.
Poznámky
Souřadnice této oblasti jsou relativní vzhledem k levému hornímu rohu (souřadnice klienta).
Členová BeginPaint funkce automaticky ověří oblast aktualizace, takže jakékoli volání GetUpdateRgn okamžitě po volání načte BeginPaint prázdnou oblast aktualizace.
CWnd::GetWindow
Vrátí ukazatel na požadované okno nebo NULL pokud žádné.
CWnd* GetWindow(UINT nCmd) const;
Parametry
nCmd
Určuje vztah mezi CWnd a vrácenými okny. Může mít jednu z následujících hodnot:
GW_CHILDIdentifikuje první podřízenéCWndokno.GW_HWNDFIRSTPokudCWndje podřízené okno, vrátí první okno na stejné stejné straně. V opačném případě vrátí první okno nejvyšší úrovně v seznamu.GW_HWNDLASTPokudCWndje podřízené okno, vrátí poslední okno na stejné stejné straně. V opačném případě vrátí poslední okno nejvyšší úrovně v seznamu.GW_HWNDNEXTVrátí další okno v seznamu správce oken.GW_HWNDPREVVrátí předchozí okno v seznamu správce oken.GW_OWNERIdentifikuje vlastníkaCWnd.
Návratová hodnota
Vrácený ukazatel může být dočasný a neměl by být uložen pro pozdější použití.
CWnd::GetWindowContextHelpId
Voláním této členské funkce načtěte identifikátor kontextu nápovědy( pokud existuje) přidružený k oknem.
DWORD GetWindowContextHelpId() const;
Návratová hodnota
Identifikátor kontextu nápovědy. Vrátí hodnotu 0, pokud okno nemá žádnou hodnotu.
CWnd::GetWindowedChildCount
Voláním této členské funkce načtěte počet přidružených podřízených oken.
long GetWindowedChildCount();
Návratová hodnota
Počet podřízených oken přidružených k objektu CWnd .
CWnd::GetWindowDC
Načte kontext zobrazení pro celé okno, včetně řádku titulků, nabídek a posuvníků.
CDC* GetWindowDC();
Návratová hodnota
Identifikuje kontext zobrazení pro dané okno, pokud je funkce úspěšná; jinak NULL.
Vrácený ukazatel může být dočasný a neměl by být uložen pro pozdější použití. ReleaseDCby měly být volána jednou pro každé úspěšné volání .GetWindowDC
Poznámky
Kontext zobrazení okna umožňuje malování kdekoli v CWnd, protože původ kontextu je levý horní roh CWnd místo klientské oblasti.
Výchozí atributy se přiřazují k kontextu zobrazení pokaždé, když načte kontext. Předchozí atributy jsou ztraceny.
GetWindowDC je určena k použití pro speciální obrazové efekty v neklientské CWnd oblasti. Malování v jiných než klientských oblastech žádného okna se nedoporučuje.
Funkci GetSystemMetrics Windows lze použít k načtení dimenzí různých částí oblasti, která není klientem, jako je například řádek titulků, nabídka a posuvníky.
Po dokončení malování musí být volána členská funkce, ReleaseDC aby se uvolnil kontext zobrazení. Pokud kontext zobrazení neuvolníte, bude to vážně mít vliv na malování požadované aplikacemi kvůli omezením počtu kontextů zařízení, které je možné otevřít najednou.
CWnd::GetWindowInfo
Načte informace o okně.
BOOL GetWindowInfo(PWINDOWINFO pwi) const;
Parametry
pwi
Ukazatel na WINDOWINFO strukturu.
Poznámky
Tato členová funkce emuluje funkce funkce GetWindowInfo, jak je popsáno v sadě Windows SDK.
CWnd::GetWindowlessChildCount
Načte počet přidružených podřízených oken bez oken.
long GetWindowlessChildCount();
Návratová hodnota
Počet podřízených oken bez oken přidružených k objektu CWnd .
CWnd::GetWindowPlacement
Načte stav zobrazení a normální (obnovené), minimalizované a maximalizované pozice okna.
BOOL GetWindowPlacement(WINDOWPLACEMENT* lpwndpl) const;
Parametry
lpwndpl
Odkazuje na WINDOWPLACEMENT strukturu, která přijímá informace o stavu a pozici zobrazení.
Návratová hodnota
Nenulové, pokud je funkce úspěšná; jinak 0.
Poznámky
WINDOWPLACEMENT Člen flags struktury načtené touto funkcí je vždy 0. Pokud CWnd je maximalizován, showCmd člen WINDOWPLACEMENT je SW_SHOWMAXIMIZED. Pokud je okno minimalizované, je SW_SHOWMINIMIZEDto . V opačném případě.SW_SHOWNORMAL
CWnd::GetWindowRect
Zkopíruje rozměry ohraničujícího obdélníku objektu CWnd do struktury, na kterou lpRectodkazuje .
void GetWindowRect(LPRECT lpRect) const;
Parametry
lpRect
Odkazuje na CRect objekt nebo RECT strukturu , která obdrží souřadnice obrazovky levého horního a pravého dolního rohu.
Poznámky
Rozměry jsou uvedeny v souřadnicích obrazovky vzhledem k levému hornímu rohu obrazovky. Rozměry titulku, ohraničení a posuvníků, pokud jsou k dispozici, jsou zahrnuty.
CWnd::GetWindowRgn
Voláním této členské funkce získáte oblast okna.
int GetWindowRgn(HRGN hRgn)const;
Parametry
hRgn
Popisovač oblasti okna.
Návratová hodnota
Vrácená hodnota určuje typ oblasti, kterou funkce získá. Může to být jedna z následujících hodnot:
NULLREGIONOblast je prázdná.SIMPLEREGIONOblast je jeden obdélník.COMPLEXREGIONOblast je více než jeden obdélník.ERRORDošlo k chybě; oblast není ovlivněna.
Poznámky
Oblast okna určuje oblast v okně, kde operační systém povoluje kreslení. Operační systém nezobrazuje žádnou část okna, která leží mimo oblast okna.
Souřadnice oblasti okna okna jsou relativní vzhledem k levému hornímu rohu okna, nikoli k oblasti klienta okna.
Chcete-li nastavit oblast okna okna, zavolejte CWnd::SetWindowRgn.
CWnd::GetWindowText
Zkopíruje název titulku CWnd (pokud ho obsahuje) do vyrovnávací paměti, na kterou lpszStringBuf odkazuje nebo do cílového řetězce rString.
int GetWindowText(
LPTSTR lpszStringBuf,
int nMaxCount) const;
void GetWindowText(
CString& rString) const;
Parametry
lpszStringBuf
Odkazuje na vyrovnávací paměť, která přijímá zkopírovaný řetězec názvu okna.
nMaxCount
Určuje maximální počet znaků, které se mají zkopírovat do vyrovnávací paměti, včetně ukončujícího znaku null. Pokud je řetězec delší než počet znaků zadaných v nMaxCount, zkrátí se.
rString
Objekt CString , který má přijmout zkopírovaný řetězec názvu okna.
Návratová hodnota
Určuje délku zkopírovaného řetězce v značce, nikoli ukončující znak null. Je 0, pokud CWnd nemá žádný titulek nebo pokud je titulek prázdný.
Poznámky
CWnd Pokud je objektem ovládací prvek, GetWindowText členová funkce zkopíruje text uvnitř ovládacího prvku místo kopírování titulku.
Tato členová funkce způsobí WM_GETTEXT odeslání zprávy do objektu CWnd .
Příklad
Podívejte se na příklad pro CWnd::SetWindowText.
CWnd::GetWindowTextLength
Vrátí délku názvu titulku objektu CWnd .
int GetWindowTextLength() const;
Návratová hodnota
Určuje délku textu ve znaznach, nikoli žádný znak ukončení s hodnotou null. Hodnota je 0, pokud takový text neexistuje.
Poznámky
Pokud CWnd je ovládací prvek, GetWindowTextLength vrátí členová funkce místo titulku délku textu v ovládacím prvku.
Tato členová funkce způsobí WM_GETTEXTLENGTH odeslání zprávy do objektu CWnd .
Příklad
Podívejte se na příklad pro CWnd::SetWindowText.
CWnd::HideCaret
Skryje stříšku odebráním z obrazovky zobrazení.
void HideCaret();
Poznámky
I když se stříška už nezobrazuje, můžete ji znovu zobrazit pomocí ShowCaret členské funkce. Skrytí stříšky nezničí jeho aktuální tvar.
Skrytí je kumulativní. Pokud HideCaret bylo v řádku volána pětkrát, ShowCaret musí být členová funkce volána pětkrát, než se zobrazí stříška.
CWnd::HiliteMenuItem
Zvýrazní nebo odebere zvýraznění z položky nabídky nejvyšší úrovně (řádek nabídek).
BOOL HiliteMenuItem(
CMenu* pMenu,
UINT nIDHiliteItem,
UINT nHilite);
Parametry
pMenu
Identifikuje nabídku nejvyšší úrovně, která obsahuje položku, která se má zvýraznit.
nIDHiliteItem
Určuje položku nabídky, která se má zvýraznit v závislosti na hodnotě parametru nHilite .
nHilite
Určuje, zda je položka nabídky zvýrazněná nebo zvýrazněná. Může to být kombinace MF_HILITE nebo s nebo MF_UNHILITE MF_BYCOMMAND MF_BYPOSITION. Hodnoty lze kombinovat pomocí bitového OR operátoru. Tyto hodnoty mají následující významy:
MF_BYCOMMANDInterpretujenIDHiliteItemse jako ID položky nabídky (výchozí interpretace).MF_BYPOSITIONInterpretujenIDHiliteItemse jako posun na základě nuly položky nabídky.MF_HILITEZvýrazní položku. Pokud tato hodnota není uvedena, zvýraznění se z položky odebere.MF_UNHILITEOdebere zvýraznění z položky.
Návratová hodnota
Určuje, zda byla položka nabídky zvýrazněna. Nenulové, pokud byla položka zvýrazněna; jinak 0.
Poznámky
Příznaky MF_HILITE a MF_UNHILITE příznaky lze použít pouze s touto členovou funkcí. Nelze je použít s členovou CMenu::ModifyMenu funkcí.
CWnd::HtmlHelp
Voláním této členské funkce vyvoláte aplikaci HTMLHelp.
virtual void HtmlHelp(
DWORD_PTR dwData,
UINT nCmd = 0x000F);
Parametry
dwData
Určuje další data. Použitá hodnota závisí na hodnotě parametru nCmd .
nCmd
Určuje typ požadované nápovědy. Seznam možných hodnot a jejich vliv na dwData parametr najdete uCommand v tématu popisovaný v referenčních informacích k rozhraní API nápovědy HTML v sadě Windows SDK.
Poznámky
Další informace naleznete v tématu CWinApp::HtmlHelp.
CWnd::InitDynamicLayout
Volá se rozhraním pro inicializaci dynamického rozložení okna.
void InitDynamicLayout();
Poznámky
Tuto metodu nevolejte přímo.
CWnd::Invalidate
Zruší platnost celé oblasti klienta .CWnd
void Invalidate(BOOL bErase = TRUE);
Parametry
bErase
Určuje, jestli se má vymazat pozadí v rámci oblasti aktualizace.
Poznámky
Klientská oblast je označena pro malování, když dojde k další WM_PAINT zprávě. Oblast je také možné ověřit před výskytem WM_PAINT zprávy pomocí funkce nebo ValidateRgn členaValidateRect.
Parametr bErase určuje, jestli má být při zpracování oblasti aktualizace vymazáno pozadí v oblasti aktualizace. Pokud bErase ano TRUE, pozadí se vymaže, když BeginPaint je volána členová funkce; pokud bErase je FALSE, pozadí zůstane beze změny. Pokud bErase je TRUE pro jakoukoli část oblasti aktualizace, vymaže se pozadí v celé oblasti, nejen v dané části.
Systém Windows odešle WM_PAINT zprávu vždy, když CWnd oblast aktualizace není prázdná a ve frontě aplikace pro toto okno nejsou žádné další zprávy.
Příklad
Podívejte se na příklad pro CWnd::UpdateWindow.
CWnd::InvalidateRect
Zruší platnost oblasti klienta v daném obdélníku přidáním tohoto obdélníku CWnd do oblasti aktualizace.
void InvalidateRect(
LPCRECT lpRect,
BOOL bErase = TRUE);
Parametry
lpRect
Odkazuje na CRect objekt nebo RECT strukturu , která obsahuje obdélník (v souřadnicích klienta), které se mají přidat do oblasti aktualizace. Pokud lpRect ano NULL, přidá se do oblasti celá oblast klienta.
bErase
Určuje, jestli se má vymazat pozadí v rámci oblasti aktualizace.
Poznámky
Neplatný obdélník spolu se všemi ostatními oblastmi v oblasti aktualizace je označen pro malování při odeslání další WM_PAINT zprávy. Neplatné oblasti se hromadí v oblasti aktualizace, dokud se oblast nezpracuje, když dojde k dalšímu WM_PAINT volání, nebo dokud oblast neověří ValidateRect funkce nebo ValidateRgn člena.
Parametr bErase určuje, jestli má být při zpracování oblasti aktualizace vymazáno pozadí v oblasti aktualizace. Pokud bErase ano TRUE, pozadí se vymaže, když BeginPaint je volána členová funkce; pokud bErase je FALSE, pozadí zůstane beze změny. Pokud bErase je TRUE pro jakoukoli část oblasti aktualizace, pozadí v celé oblasti se vymaže, nejen v dané části.
Systém Windows odešle WM_PAINT zprávu vždy, když CWnd oblast aktualizace není prázdná a ve frontě aplikace pro toto okno nejsou žádné další zprávy.
CWnd::InvalidateRgn
Zruší platnost oblasti klienta v dané oblasti přidáním do aktuální oblasti CWndaktualizace .
void InvalidateRgn(
CRgn* pRgn,
BOOL bErase = TRUE);
Parametry
pRgn
Ukazatel na CRgn objekt, který identifikuje oblast, která se má přidat do oblasti aktualizace. Předpokládá se, že oblast má souřadnice klienta. Pokud je NULLtento parametr, přidá se do oblasti aktualizace celá oblast klienta.
bErase
Určuje, jestli se má vymazat pozadí v rámci oblasti aktualizace.
Poznámky
Neplatná oblast spolu se všemi ostatními oblastmi v oblasti aktualizace je označena k malování při WM_PAINT dalším odeslání zprávy. Neplatné oblasti se hromadí v oblasti aktualizace, dokud se oblast nezpracuje při WM_PAINT příštím odeslání zprávy, nebo dokud oblast neověří ValidateRect funkce nebo ValidateRgn člena.
Parametr bErase určuje, jestli má být při zpracování oblasti aktualizace vymazáno pozadí v oblasti aktualizace. Pokud bErase ano TRUE, pozadí se vymaže, když BeginPaint je volána členová funkce; pokud bErase je FALSE, pozadí zůstane beze změny. Pokud bErase je TRUE pro jakoukoli část oblasti aktualizace, vymaže se pozadí v celé oblasti, nejen v dané části.
Systém Windows odešle WM_PAINT zprávu vždy, když CWnd oblast aktualizace není prázdná a ve frontě aplikace pro toto okno nejsou žádné další zprávy.
Daná oblast musí být dříve vytvořená jednou z funkcí oblasti.
CWnd::InvokeHelper
Voláním této členské funkce vyvoláte metodu nebo vlastnost ActiveX Control určenou parametrem dwDispID, v kontextu určeném .wFlags
void AFX_CDECL InvokeHelper(
DISPID dwDispID,
WORD wFlags,
VARTYPE vtRet,
void* pvRet,
const BYTE* pbParamInfo,
... );
Parametry
dwDispID
Identifikuje metodu nebo vlastnost, která se má vyvolat.
wFlags
Příznaky popisující kontext volání IDispatch::Invoke.
vtRet
Určuje typ návratové hodnoty. Možné hodnoty naleznete v části Poznámky pro COleDispatchDriver::InvokeHelper.
pvRet
Adresa proměnné, která obdrží hodnotu vlastnosti nebo návratovou hodnotu. Musí odpovídat typu určenému parametrem vtRet.
pbParamInfo
Ukazatel na řetězec ukončený hodnotou null s bajty určující typy následujících pbParamInfoparametrů . Možné hodnoty naleznete v části Poznámky pro COleDispatchDriver::InvokeHelper.
...
Seznam parametrů proměnných typů zadaných v pbParamInfo.
Poznámky
Parametr pbParamInfo určuje typy parametrů předaných metodě nebo vlastnosti. Seznam argumentů proměnných je reprezentován ... v deklaraci syntaxe.
Tato funkce převede parametry na VARIANTARG hodnoty a potom vyvolá metodu IDispatch::Invoke v ovládacím prvku ActiveX. Pokud volání IDispatch::Invoke selže, tato funkce vyvolá výjimku. SCODE Pokud je DISP_E_EXCEPTIONvrácena (stavový kód), IDispatch::Invoke tato funkce vyvolá COleException objekt, jinak vyvolá COleDispatchExceptionvýjimku .
Poznámka:
Tato funkce by měla být volána pouze u objektu CWnd , který představuje ovládací prvek ActiveX.
Další informace o použití této členské funkce s kontejnery ovládacích prvků ActiveX naleznete v článku ActiveX Řídicí kontejnery: Programování ovládacích prvků ActiveX v kontejneru ovládacího prvku ActiveX.
CWnd::IsChild
Určuje, zda je okno určené pWnd podřízeným oknem nebo jiným přímým potomkem CWnd.
BOOL IsChild(const CWnd* pWnd) const;
Parametry
pWnd
Identifikuje okno, které se má testovat.
Návratová hodnota
Určuje výsledek funkce. Hodnota je nenulová, pokud je okno identifikované pWnd podřízeným oknem CWnd; jinak 0.
Poznámky
Podřízené okno je přímým potomkem CWnd , pokud CWnd je objekt v řetězu nadřazených oken, která vede z původního automaticky otevíraného okna do podřízeného okna.
CWnd::IsD2DSupportEnabled
Určuje, zda je povolena podpora D2D.
BOOL IsD2DSupportEnabled();
Návratová hodnota
TRUE je-li tato funkce povolena; jinak FALSE.
CWnd::IsDialogMessage
Voláním této členské funkce určíte, zda je daná zpráva určena pro bezmodální dialogové okno; pokud ano, tato funkce zpracuje zprávu.
BOOL IsDialogMessage(LPMSG lpMsg);
Parametry
lpMsg
Odkazuje na MSG strukturu, která obsahuje zprávu, která se má zkontrolovat.
Návratová hodnota
Určuje, jestli členová funkce zpracovala danou zprávu. Pokud byla zpráva zpracována, je nenulová; jinak 0. Pokud je návrat 0, zavolejte CWnd::PreTranslateMessage členskou funkci základní třídy, která zprávu zpracuje. V přepsání CWnd::PreTranslateMessage členské funkce kód vypadá takto:
BOOL CAboutDlg::PreTranslateMessage(MSG *pMsg)
{
if (IsDialogMessage(pMsg))
return TRUE;
else
return CDialog::PreTranslateMessage(pMsg);
}
Poznámky
IsDialogMessage Když funkce zpracuje zprávu, zkontroluje zprávy z klávesnice a převede je na příkazy pro výběr odpovídajícího dialogového okna. Například klávesa TAB vybere další ovládací prvek nebo skupinu ovládacích prvků a klávesa ŠIPKA DOLŮ vybere další ovládací prvek ve skupině.
Zprávy zpracovávané funkcemi IsDialogMessage TranslateMessage windows DispatchMessage nesmíte předávat, protože už byla zpracována.
CWnd::IsDlgButtonChecked
Určuje, zda má ovládací prvek tlačítka vedle něj značku zaškrtnutí.
UINT IsDlgButtonChecked(int nIDButton) const;
Parametry
nIDButton
Určuje celočíselnou identifikátor ovládacího prvku tlačítka.
Návratová hodnota
Nenulové, pokud je daný ovládací prvek zaškrtnutý, a 0, pokud není zaškrtnuté. Je možné zaškrtnout pouze přepínače a zaškrtávací políčka. U třístavových tlačítek může být návratová hodnota 2, pokud je tlačítko neurčité. Tato členová funkce vrátí hodnotu 0 pro tlačítko.
Poznámky
Pokud je tlačítko ovládací prvek se třemi stavy, členová funkce určuje, zda je neaktivní, zaškrtnuté nebo ani jedno.
CWnd::IsDynamicLayoutEnabled
Určuje, zda je v tomto okně povolené dynamické rozložení. Pokud je povolené dynamické rozložení, může se umístění a velikost podřízených oken změnit, když uživatel změní velikost nadřazeného okna.
BOOL IsDynamicLayoutEnabled() const;
Návratová hodnota
TRUE je-li povoleno dynamické rozložení; jinak FALSE.
Poznámky
CWnd::IsIconic
Určuje, jestli CWnd je minimalizovaný (ikonický).
BOOL IsIconic() const;
Návratová hodnota
Nenulové, pokud CWnd je minimalizováno; jinak 0.
Příklad
void CAboutDlg::OnPaint()
{
// This code, normally emitted by the Application Wizard for a dialog-
// based project for the dialog's WM_PAINT handler, runs only if the
// window is iconic. The window erases the icon's area, then
// paints the icon referenced by m_hIcon.
if (IsIconic())
{
CPaintDC dc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND, (WPARAM)dc.GetSafeHdc(), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
}
CWnd::IsTouchWindow
Určuje, jestli CWnd má podporu dotykového ovládání.
BOOL IsTouchWindow() const;
Návratová hodnota
TRUE pokud CWnd má podporu dotykového ovládání; jinak FALSE.
Poznámky
CWnd::IsWindowEnabled
Určuje, zda CWnd je povoleno zadávání myši a klávesnice.
BOOL IsWindowEnabled() const;
Návratová hodnota
Nenulové, pokud CWnd je povoleno; jinak 0.
Příklad
//change the background color of an edit control on the dialog
HBRUSH CMyDlg::OnCtlColor(CDC *pDC, CWnd *pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if (pWnd->GetDlgCtrlID() == IDC_MYEDIT)
{
if (pWnd->IsWindowEnabled())
{
// Red brush for the background...
pDC->SetBkColor(RGB(255, 0, 0));
// m_pRedBrush is the CBrush object initialized with a red brush
// using CreateSolidBrush
return (HBRUSH)m_RedBrush.GetSafeHandle();
}
else
{
// Blue brush for the background...
pDC->SetBkColor(RGB(0, 0, 255));
// m_pBlueBrush is the CBrush object initialized with a blue
// brush using CreateSolidBrush
return (HBRUSH)m_BlueBrush.GetSafeHandle();
}
}
return hbr;
}
CWnd::IsWindowVisible
Určuje stav viditelnosti daného okna.
BOOL IsWindowVisible() const;
Návratová hodnota
Nenulové, pokud CWnd je viditelné (má nastavenou WS_VISIBLE bitovou sadu stylů a je viditelné nadřazené okno). Vzhledem k tomu, že vrácená hodnota odráží stav bitu WS_VISIBLE stylu, může být návratová hodnota nenulová, i když CWnd je zcela zakrytá jinými okny.
Poznámky
Okno má stav viditelnosti označený bitem WS_VISIBLE stylu. Pokud je tato bitová část stylu nastavena voláním ShowWindow členské funkce, zobrazí se okno a následné kreslení do okna se zobrazí, pokud má okno nastavenou bitovou sadu stylů.
Jakýkoli výkres do okna, které má WS_VISIBLE styl, se nezobrazí, pokud je okno pokryto jinými okny nebo je oříznuto jeho nadřazeným oknem.
Příklad
// This example uses the CWnd::IsWindowVisible() function to
// determine if a dialog box is visible. If it is not, it calls
// CWnd::ShowWindow with the SW_SHOWNORMAL command.
void CMainFrame::DisplayModeless()
{
if(!m_Modeless.IsWindowVisible())
{
m_Modeless.ShowWindow(SW_SHOWNORMAL);
}
}
// This example uses the CWnd::IsWindowVisible() function to
// determine if a dialog box is visible. If it is, it calls
// CWnd::ShowWindow with the SW_HIDE command.
void CMainFrame::HideModeless()
{
if(m_Modeless.IsWindowVisible())
{
m_Modeless.ShowWindow(SW_HIDE);
}
}
CWnd::IsZoomed
Určuje, zda CWnd byla maximalizována.
BOOL IsZoomed() const;
Návratová hodnota
Nenulové, pokud CWnd je maximalizované; jinak 0.
CWnd::KillTimer
Ukonče událost časovače identifikovanou předchozím voláním nIDEvent SetTimer.
BOOL KillTimer(UINT_PTR nIDEvent);
Parametry
nIDEvent
Hodnota události časovače předaná do SetTimer.
Návratová hodnota
Určuje výsledek funkce. Hodnota je nenulová, pokud byla událost zabita. Je 0, pokud KillTimer členová funkce nemohla najít zadanou událost časovače.
Poznámky
Čekající WM_TIMER zprávy přidružené k časovači se z fronty zpráv neodeberou.
Příklad
Podívejte se na příklad pro CWnd::SetTimer.
CWnd::LoadDynamicLayoutResource
Volá se rozhraním pro načtení informací o dynamickém rozložení ze souboru prostředků.
BOOL LoadDynamicLayoutResource(LPCTSTR lpszResourceName);
Parametry
lpszResourceName
Název prostředku, který obsahuje požadované informace o dynamickém rozložení pro toto okno.
Návratová hodnota
Nenulové, pokud je funkce úspěšná. Pokud dojde k selhání, je to 0.
Poznámky
Tuto metodu nevolejte přímo.
CWnd::LockWindowUpdate
Zakáže kreslení v daném okně.
BOOL LockWindowUpdate();
Návratová hodnota
Nenulové, pokud je funkce úspěšná. Je to 0, pokud dojde k selhání nebo pokud LockWindowUpdate byla funkce použita k uzamčení jiného okna.
Poznámky
Uzamčené okno nelze přesunout. Najednou je možné uzamknout pouze jedno okno. Odemknutí okna uzamčeného voláním LockWindowUpdateUnlockWindowUpdate.
Pokud aplikace s uzamčeným oknem (nebo jakýmkoli uzamčeným podřízeným oknem) volá GetDCfunkci , GetDCExnebo BeginPaint Windows, vrátí volaná funkce kontext zařízení, jehož viditelná oblast je prázdná. K tomu dojde, dokud aplikace odemkne okno voláním UnlockWindowUpdate členské funkce.
I když jsou aktualizace oken uzamčené, systém sleduje ohraničující obdélník všech operací kreslení do kontextů zařízení přidružených k uzamčeným oknu. Při opětovném povolení výkresu se tento ohraničující obdélník v zamknutém okně a jeho podřízených oknech zneplatní, aby se vynutila případná WM_PAINT zpráva k aktualizaci obrazovky. Pokud během uzamčení aktualizací okna nedošlo k žádnému výkresu, není neplatná žádná oblast.
Členová LockWindowUpdate funkce neuvádí dané okno jako neviditelné a nevymaže WS_VISIBLE bit stylu.
CWnd::m_hWnd
Popisovač okna Systému Windows připojený k tomuto CWndobjektu .
HWND m_hWnd;
Poznámky
Datový m_hWnd člen je veřejná proměnná typu HWND.
CWnd::MapWindowPoints
Převede (mapy) sadu bodů ze souřadnicového prostoru CWnd souřadnice na souřadnicový prostor jiného okna.
void MapWindowPoints(
CWnd* pwndTo,
LPRECT lpRect) const;
void MapWindowPoints(
CWnd* pwndTo,
LPPOINT lpPoint,
UINT nCount) const;
Parametry
pwndTo
Identifikuje okno, na které se body převedou. Pokud je NULLtento parametr , body se převedou na souřadnice obrazovky.
lpRect
Určuje obdélník, jehož body se mají převést. První verze této funkce je dostupná pouze pro Windows 3.1 a novější.
lpPoint
Ukazatel na pole POINT struktury , která obsahuje množinu bodů, které se mají převést.
nCount
Určuje počet POINT struktur v matici, na které lpPointodkazuje .
CWnd::MessageBox
Vytvoří a zobrazí okno, které obsahuje zprávu a titulek zadaný aplikací a kombinaci předdefinovaných ikon a tlačítek popsaných v seznamu Styly message-boxu.
int MessageBox(
LPCTSTR lpszText,
LPCTSTR lpszCaption = NULL,
UINT nType = MB_OK);
Parametry
lpszText
Odkazuje na CString objekt nebo řetězec ukončený hodnotou null obsahující zprávu, která se má zobrazit.
lpszCaption
Odkazuje na CString objekt nebo řetězec ukončený hodnotou null, který se má použít pro titulek pole se zprávou. Pokud lpszCaption ano NULL, použije se výchozí titulek Chyba.
nType
Určuje obsah a chování pole zprávy.
Návratová hodnota
Tato metoda využívá funkci definovanou MessageBox v sadě Windows SDK. Tato metoda vrátí výsledek volání této funkce.
Poznámky
Místo této členské funkce použijte globální funkci AfxMessageBox k implementaci pole zprávy ve vaší aplikaci.
V následujícím příkladu jsou uvedeny různé systémové ikony, které lze použít v okně se zprávou:
| Ikona | Makro |
|---|---|
![]() |
MB_ICONHAND, MB_ICONSTOPa MB_ICONERROR |
![]() |
MB_ICONQUESTION |
![]() |
MB_ICONEXCLAMATION a MB_ICONWARNING |
![]() |
MB_ICONASTERISK a MB_ICONINFORMATION |
Příklad
void CMainFrame::OnDisplayErrorMessage()
{
// This displays a message box with the title "Error"
// and the message "Help, Something went wrong."
// The error icon is displayed in the message box, along with
// an OK button.
MessageBox(_T("Help, Something went wrong."), _T("Error"),
MB_ICONERROR | MB_OK);
}
CWnd::ModifyStyle
Voláním této členské funkce upravíte styl okna.
BOOL ModifyStyle(
DWORD dwRemove,
DWORD dwAdd,
UINT nFlags = 0);
Parametry
dwRemove
Určuje styly oken, které se mají odebrat během úprav stylu.
dwAdd
Určuje styly oken, které se mají přidat během úprav stylu.
nFlags
Příznaky, které mají být předány SetWindowPos, nebo nula, pokud SetWindowPos by neměly být volány. Výchozí hodnota je nula. Seznam přednastavených příznaků najdete v části Poznámky.
Návratová hodnota
Nenulové, pokud byl styl úspěšně změněn; jinak, 0.
Poznámky
Styly, které se mají přidat nebo odebrat, lze kombinovat pomocí bitového operátoru OR (|). Informace o dostupných stylech oken najdete v tématech Styly oken a CreateWindow v sadě Windows SDK.
Pokud nFlags je nenulová, ModifyStyle volá funkci SetWindowPos rozhraní API systému Windows a překreslí okno kombinací nFlags následujících čtyř přednastavených příznaků:
SWP_NOSIZEZachová aktuální velikost.SWP_NOMOVEZachová aktuální pozici.SWP_NOZORDERZachová aktuální pořadí Z.SWP_NOACTIVATENeaktivuje okno.
Pokud chcete upravit rozšířené styly okna, přečtěte si téma ModifyStyleEx.
Poznámka:
U některých stylů v určitých ovládacích prvcích ( ES_READONLY například styl v ovládacím prvku pro úpravy) ModifyStyle nemusí správně změnit styl, protože ovládací prvek může potřebovat provést speciální interní zpracování. V těchto případech bude k dispozici odpovídající zpráva ke změně stylu ( EM_SETREADONLY v uvedeném příkladu).
Příklad
// This example adds the WS_CLIPCHILDREN style to the window.
// No Styles are removed from the window.
void CMyView::OnInitialUpdate()
{
CView::OnInitialUpdate();
ModifyStyle(0, WS_CLIPCHILDREN);
}
CWnd::ModifyStyleEx
Voláním této členské funkce můžete upravit rozšířený styl okna.
BOOL ModifyStyleEx(
DWORD dwRemove,
DWORD dwAdd,
UINT nFlags = 0);
Parametry
dwRemove
Určuje rozšířené styly, které se mají odebrat při úpravě stylu.
dwAdd
Určuje rozšířené styly, které se mají přidat během úprav stylu.
nFlags
Příznaky, které mají být předány SetWindowPos, nebo nula, pokud SetWindowPos by neměly být volány. Výchozí hodnota je nula. Seznam přednastavených příznaků najdete v části Poznámky.
Návratová hodnota
Nenulové, pokud byl styl úspěšně změněn; jinak, 0.
Poznámky
Styly, které se mají přidat nebo odebrat, lze kombinovat pomocí bitové operátoru OR (|). Informace o dostupných rozšířených stylech najdete v tématech Rozšířené styly oken v této knize a CreateWindowEx v sadě Windows SDK.
Pokud nFlags je nenulová, ModifyStyleEx volá funkci SetWindowPos rozhraní API systému Windows a překreslí okno kombinací nFlags následujících čtyř přednastavených příznaků:
SWP_NOSIZEZachová aktuální velikost.SWP_NOMOVEZachová aktuální pozici.SWP_NOZORDERZachová aktuální pořadí Z.SWP_NOACTIVATENeaktivuje okno.
Pokud chcete změnit okna pomocí běžných stylů oken, přečtěte si článek ModifyStyle.
Příklad
// This example would make the dialog box transparent by
// changing the dialog window's extended styles.
int CAboutDlg::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CDialog::OnCreate(lpCreateStruct) == -1)
return -1;
ModifyStyleEx(0, WS_EX_TRANSPARENT);
return 0;
}
CWnd::MoveWindow
Změní pozici a rozměry.
void MoveWindow(
int x,
int y,
int nWidth,
int nHeight,
BOOL bRepaint = TRUE);
void MoveWindow(
LPCRECT lpRect,
BOOL bRepaint = TRUE);
Parametry
x
Určuje novou pozici levé strany CWnd.
y
Určuje novou pozici horní části CWnd.
nWidth
Určuje novou šířku CWnd.
nHeight
Určuje novou výšku CWnd.
bRepaint
Určuje, jestli CWnd se má znovu nakreslit. Pokud TRUE, CWnd obdrží WM_PAINT zprávu v jeho OnPaint obslužné rutině zprávy jako obvykle. Pokud je FALSEtento parametr , nedojde k žádnému překreslení jakéhokoli druhu. To platí pro klientskou oblast, oblast mimo klient (včetně nadpisu a posuvníků) a na libovolnou část nadřazeného okna, která byla v důsledku CWndpřesunutí odhalena. Pokud je FALSEtento parametr , aplikace musí explicitně zneplatnit nebo překreslit jakékoli části CWnd a nadřazené okno, které musí být překresleny.
lpRect
Objekt CRect nebo RECT struktura , která určuje novou velikost a umístění.
Poznámky
U objektu x nejvyšší úrovně CWnd jsou parametry y relativní k levému hornímu rohu obrazovky. U podřízeného CWnd objektu jsou relativní vzhledem k levému hornímu rohu klientské oblasti nadřazeného okna.
Funkce MoveWindow odešle WM_GETMINMAXINFO zprávu. Zpracování této zprávy umožňuje CWnd upravit výchozí hodnoty pro největší a nejmenší možná okna. Pokud parametry MoveWindow členské funkce překročí tyto hodnoty, mohou být hodnoty nahrazeny minimálními nebo maximálními hodnotami v obslužné rutině WM_GETMINMAXINFO .
Příklad
Podívejte se na příklad pro CWnd::ClientToScreen.
CWnd::NotifyWinEvent
Signalizuje systém, že došlo k předdefinované události. Pokud některé klientské aplikace zaregistrovaly funkci háku pro událost, systém zavolá funkci háku klienta.
void NotifyWinEvent(
DWORD event,
LONG idObjectType,
LONG idObject);
Parametry
event
Určuje událost, ke které došlo. Tato hodnota musí být jednou z konstant událostí.
idObjectType
Identifikuje typ objektu, který vygeneroval událost. Tato hodnota je jedním z předdefinovaných identifikátorů objektů nebo hodnoty ID vlastního objektu.
idObject
Určuje, zda byla událost vygenerována objektem nebo podřízeným prvkem objektu. Pokud je CHILDID_SELFtato hodnota , událost byla generována samotným objektem. Pokud ne, jedná se o podřízené ID elementu, který událost vygeneroval.
Poznámky
Tato členová funkce emuluje funkce funkce NotifyWinEvent, jak je popsáno v sadě Windows SDK.
CWnd::OnActivate
Architektura volá tuto členovou funkci při aktivaci nebo deaktivaci objektu CWnd .
afx_msg void OnActivate(
UINT nState,
CWnd* pWndOther,
BOOL bMinimized);
Parametry
nState
Určuje, jestli CWnd se aktivuje nebo deaktivuje. Může to být jedna z následujících hodnot:
WA_INACTIVEOkno se deaktivuje.WA_ACTIVEOkno se aktivuje jinou metodou než kliknutím myši (například pomocí rozhraní klávesnice pro výběr okna).WA_CLICKACTIVEOkno se aktivuje kliknutím myši.
pWndOther
Ukazatel na CWnd aktivovanou nebo deaktivovanou akci. Ukazatel může být NULLa může být dočasný.
bMinimized
Určuje minimalizovaný stav CWnd aktivace nebo deaktivace. Hodnota TRUE indikuje, že okno je minimalizované.
Pokud TRUEse aktivuje , aktivuje se CWnd , jinak se deaktivuje.
Poznámky
CWnd Pokud je objekt aktivován kliknutím myši, obdrží také OnMouseActivate volání členské funkce.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnActivateApp
Architektura volá tuto členovou funkci na všechna okna nejvyšší úrovně úlohy, která se aktivují, a pro všechna okna nejvyšší úrovně úlohy, která se deaktivují.
afx_msg void OnActivateApp(
BOOL bActive,
DWORD dwThreadID);
Parametry
bActive
Určuje, jestli CWnd se aktivuje nebo deaktivuje. TRUE znamená, že CWnd se aktivuje. FALSE znamená, že CWnd se deaktivuje.
dwThreadID
Určuje hodnotu ID vlákna. Pokud bActive je TRUE, dwThreadID identifikuje vlákno, které vlastní CWnd deaktivované. Pokud bActive je FALSE, dwThreadID identifikuje vlákno, které vlastní aktivované CWnd .
Poznámky
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnAmbientProperty
Architektura volá tuto členovou funkci k získání okolních vlastností hodnoty z okna, které obsahuje ovládací prvky OLE.
virtual BOOL OnAmbientProperty(
COleControlSite* pSite,
DISPID dispid,
VARIANT* pvar);
Parametry
pSite
Ukazatel na web ovládacího prvku, který požadoval okolí vlastnost.
dispid
ID odeslání požadované vlastnosti okolí.
pvar
Ukazatel na strukturu přidělenou VARIANT volajícím, prostřednictvím které bude vrácena hodnota okolí vlastnosti.
Návratová hodnota
TRUE je-li okolí podporováno; FALSE jestliže ne.
Poznámky
Přepište tuto funkci tak, aby změnila výchozí hodnoty okolní vlastnosti vrácené kontejnerem ovládacího prvku OLE na jeho ovládací prvky. Všechny požadavky okolních vlastností, které nezpracují přepisovací funkce, by měly být předány implementaci základní třídy.
CWnd::OnAppCommand
Architektura volá tuto členovou funkci, když uživatel vygeneruje událost příkazu aplikace. Taková událost nastane, když uživatel klikne na příkazové tlačítko aplikace nebo zadá příkazový klíč aplikace.
afx_msg void OnAppCommand(
CWnd* pWnd,
UINT nCmd,
UINT nDevice,
UINT nKey);
Parametry
pWnd
[v] Ukazatel na CWnd objekt, který představuje okno, ve kterém uživatel klikl na příkazové tlačítko nebo stiskl příkazovou klávesu. Toto okno může být podřízené okno okna, které zprávu obdrží.
nCmd
[v] Označuje příkaz aplikace. Seznam možných hodnot najdete v příkazech v cmd části parametru lParam WM_APPCOMMAND.
nDevice
[v] Vstupní zařízení, které vygenerovalo vstupní událost. Seznam možných hodnot najdete v zařízeních v uDevice části parametru lParam WM_APPCOMMAND.
nKey
[v] Označuje všechny virtuální klávesy, které jsou dole, například klávesu CTRL nebo levé tlačítko myši. Seznam možných hodnot najdete v klíčích v dwKeys části parametru lParam WM_APPCOMMAND. Další informace naleznete v podnadpisu "Parametry zprávy" v části O vstupu myši.
Poznámky
Tato metoda obdrží WM_APPCOMMAND oznámení, které je popsáno v sadě Windows SDK.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnAskCbFormatName
Architektura volá tuto členovou funkci, pokud schránka obsahuje popisovač dat pro CF_OWNERDISPLAY formát (to znamená, když vlastník schránky zobrazí obsah schránky).
afx_msg void OnAskCbFormatName(
UINT nMaxCount,
LPTSTR lpszString);
Parametry
nMaxCount
Určuje maximální počet bajtů, které se mají kopírovat.
lpszString
Odkazuje na vyrovnávací paměť, kde má být uložena kopie názvu formátu.
Poznámky
Vlastník schránky by měl zadat název jeho formátu.
Přepište tuto členovou funkci a zkopírujte název CF_OWNERDISPLAY formátu do zadané vyrovnávací paměti, který nepřekračuje maximální počet zadaných bajtů.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnCancelMode
Architektura volá tuto členovu funkci, aby informovala CWnd o zrušení jakéhokoli interního režimu.
afx_msg void OnCancelMode();
Poznámky
Pokud má CWnd objekt fokus, volá se jeho OnCancelMode členová funkce při zobrazení dialogového okna nebo pole zprávy. Díky tomu můžete CWnd zrušit režimy, jako je zachytávání myší.
Výchozí implementace reaguje voláním ReleaseCapture funkce Systému Windows. Přepište tuto členovu funkci v odvozené třídě tak, aby zpracovávala jiné režimy.
CWnd::OnCaptureChanged
Architektura volá tuto členovu funkci, která upozorní okno, že dojde ke ztrátě zachytávání myši.
afx_msg void OnCaptureChanged(CWnd* pWnd);
Parametry
pWnd
Ukazatel na okno pro získání zachycení myši
Poznámky
Okno obdrží tuto zprávu i v případě, že volá ReleaseCapture sama sebe. Aplikace by se neměla pokoušet nastavit zachytávání myši v reakci na tuto zprávu. Když se zobrazí tato zpráva, mělo by se okno v případě potřeby překreslit, aby odráželo nový stav zachycení myši.
Informace o funkci Windows najdete v sadě ReleaseCapture Windows SDK.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnChangeCbChain
Architektura volá tuto členovou funkci pro každé okno v řetězu prohlížeče schránky, aby ho upozornila, že okno je odebráno z řetězu.
afx_msg void OnChangeCbChain(
HWND hWndRemove,
HWND hWndAfter);
Parametry
hWndRemove
Určuje popisovač okna, který se odebere z řetězu prohlížeče schránky.
hWndAfter
Určuje popisovač okna, který následuje za odebranými okny z řetězu prohlížeče schránky.
Poznámky
Každý CWnd objekt, který přijme OnChangeCbChain volání, by měl použít SendMessage funkci Windows k odeslání WM_CHANGECBCHAIN zprávy do dalšího okna v řetězci prohlížeče schránky (popisovač vrácený SetClipboardViewer). Pokud hWndRemove je další okno v řetězci, okno určené hWndAfter dalším oknem a zprávy schránky se do něj předají.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnChangeUIState
Volá se při změně stavu uživatelského rozhraní (UI).
afx_msg void OnChangeUIState(
UINT nAction,
UINT nUIElement);
Parametry
nAction
Určuje akci, která se má provést. Může to být jedna z následujících hodnot:
UIS_CLEARPrvek stavu uživatelského rozhraní (určenýnUIElement) by měl být skrytý.UIS_INITIALIZEPrvek stavu uživatelského rozhraní (zadanýnUIElement) by měl být změněn na základě poslední vstupní události. Další informace naleznete v části Poznámky v částiWM_CHANGEUISTATE.UIS_SETMěl by být viditelný prvek stavu uživatelského rozhraní (určenýnUIElement) .
nUIElement
Určuje, které prvky stavu uživatelského rozhraní jsou ovlivněny, nebo styl ovládacího prvku. Může to být jedna z následujících hodnot:
UISF_HIDEACCELKlávesové zkratky.UISF_HIDEFOCUSIndikátory zaměření.UISF_ACTIVEWindows XP: Ovládací prvek by měl být nakreslen ve stylu použitém pro aktivní ovládací prvky.
Poznámky
Tato členová funkce emuluje funkce WM_CHANGEUISTATE zprávy, jak je popsáno v sadě Windows SDK.
CWnd::OnChar
Architektura volá tuto členovou funkci, když se stisknutí klávesy přeloží na nesystémový znak.
afx_msg void OnChar(
UINT nChar,
UINT nRepCnt,
UINT nFlags);
Parametry
nChar
Obsahuje hodnotu kódu znaku klíče.
nRepCnt
Obsahuje počet opakování, kolikrát se stisknutí klávesy opakuje, když uživatel stisknul klávesu.
nFlags
Obsahuje kód kontroly, kód přechodu na klíč, předchozí stav klíče a kontextový kód, jak je znázorněno v následujícím seznamu:
| Hodnota | Význam |
|---|---|
| 0-15 | Určuje počet opakování. Hodnota je počet opakování stisknutí klávesy v důsledku toho, že uživatel drží stisknutou klávesu. |
| 16-23 | Určuje kód kontroly. Hodnota závisí na výrobci původního vybavení (OEM) |
| 24 | Určuje, jestli se jedná o rozšířenou klávesu, například klávesy ALT a CTRL vpravo, které se zobrazí na rozšířené klávesnici s 101 klávesami nebo 102 kláves. Hodnota je 1, pokud se jedná o rozšířený klíč; jinak je to 0. |
| 25-28 | Interně používá systém Windows. |
| 29 | Určuje kontextový kód. Hodnota je 1, pokud je klávesa ALT při stisknutí klávesy stisknuta dolů; jinak je hodnota 0. |
| 30 | Určuje předchozí stav klíče. Hodnota je 1, pokud je klíč před odesláním zprávy dolů, nebo je 0, pokud je klíč nahoru. |
| 31 | Určuje stav přechodu. Hodnota je 1, pokud je klávesa uvolněna, nebo je 0, pokud je stisknuta klávesa. |
Poznámky
Tato funkce je volána před OnKeyUp členské funkce a po OnKeyDown zavolání členské funkce. OnChar obsahuje hodnotu klávesy klávesnice, kterou stisknete nebo uvolníte.
Vzhledem k tomu, že mezi klávesami stisknutou klávesou a OnChar vygenerovanými voláními nemusí nutně existovat 1:1, informace obecně nFlags nejsou pro aplikace užitečné. Informace nFlags platí pouze pro poslední volání OnKeyUp členské funkce nebo OnKeyDown členské funkce, která předchází volání OnChar.
U klávesnic IBM Enhanced 101- a 102-key jsou vylepšené klávesy vpravo ALT a pravé klávesy CTRL v hlavní části klávesnice; INS, DEL, HOME, END, PAGE UP, PAGE DOWN a šipkové klávesy v clusterech vlevo od numerické klávesnice; a lomítko (/) a klávesy ENTER na numerické klávesnici. Některé další klávesnice mohou podporovat bit rozšířené klávesy v nFlags.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnCharToItem
Volá se, když seznam se stylem LBS_WANTKEYBOARDINPUT pošle vlastníkovi WM_CHARTOITEM zprávu v odpovědi na WM_CHAR zprávu.
afx_msg int OnCharToItem(
UINT nChar,
CListBox* pListBox,
UINT nIndex);
Parametry
nChar
Určuje hodnotu klávesy, kterou uživatel stiskl.
pListBox
Určuje ukazatel na seznam. Může to být dočasné.
nIndex
Určuje aktuální pozici kurzoru.
Návratová hodnota
Architektura volá tuto členovou funkci k určení akce, kterou aplikace provedla v reakci na volání. Návratová hodnota -2 označuje, že aplikace zpracovala všechny aspekty výběru položky a nechce, aby se seznamem žádná další akce. Návratová hodnota -1 označuje, že seznam by měl provést výchozí akci v reakci na stisknutí klávesy. Návratová hodnota 0 nebo vyšší určuje index položky na základě nuly v seznamu a označuje, že seznam by měl provést výchozí akci pro stisknutí klávesy u dané položky.
Poznámky
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnChildActivate
CWnd Pokud je objekt podřízeným oknem více rozhraní dokumentu (MDI), volá se rozhraním, OnChildActivate když uživatel klikne na záhlaví okna nebo při aktivaci, přesunutí nebo velikosti okna.
afx_msg void OnChildActivate();
CWnd::OnChildNotify
Tato členská funkce je volána nadřazeným oknem tohoto okna, když obdrží zprávu s oznámením, která platí pro toto okno.
virtual BOOL OnChildNotify(
UINT message,
WPARAM wParam,
LPARAM lParam,
LRESULT* pResult);
Parametry
message
Číslo zprávy systému Windows odeslané do nadřazeného okna.
wParam
Wparam spojený se zprávou.
lParam
Lparam přidružený ke zprávě.
pLResult
Ukazatel na hodnotu, která se má vrátit z procedury okna nadřazeného objektu. Tento ukazatel bude NULL , pokud se neočekává žádná návratová hodnota.
Návratová hodnota
Nenulové, pokud je toto okno zodpovědné za zpracování zprávy odeslané nadřazené zprávě; jinak 0.
Poznámky
Tuto členovu funkci nikdy nevolejte přímo.
Výchozí implementace této členské funkce vrátí hodnotu 0, což znamená, že nadřazený objekt by měl zpracovat zprávu.
Přepište tuto členovou funkci tak, aby rozšířil způsob, jakým ovládací prvek reaguje na zprávy s oznámeními.
CWnd::OnClipboardUpdate
Architektura volá tuto členovou funkci, když se změnil obsah schránky.
afx_msg void OnClipboardUpdate();
CWnd::OnClose
Architektura volá tuto členovou funkci jako signál, že CWnd je ukončení aplikace nebo aplikace.
afx_msg void OnClose();
Poznámky
Výchozí volání DestroyWindowimplementace .
CWnd::OnColorizationColorChanged
Architektura volá tohoto člena, když se změnily zásady vykreslování pro oblast nonclient.
afx_msg void OnColorizationColorChanged(
DWORD dwColorizationColor,
BOOL bOpacity);
Parametry
dwColorizationColor
[v] Určuje novou barvu zabarvení. Barevný formát je šestnáctkové číslo formuláře 0xAARRGGBB, kde se každý ze čtyř součástí pohybuje od 0x00 až 0xFF. Komponenta AA je alfa hodnota, RR je barva červená, GG je zelená a BB je modrá.
bOpacity
[v] TRUE je-li nová barva kombinována s neprůhledností; FALSE pokud to není.
Poznámky
Tato metoda obdrží WM_DWMNCRENDERINGCHANGED zprávu s oznámením, která je popsána v sadě Windows SDK.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnCommand
Architektura volá tuto členovou funkci, když uživatel vybere položku z nabídky, když podřízený ovládací prvek odešle zprávu s oznámením nebo při přeložení klávesové zkratky.
virtual BOOL OnCommand(
WPARAM wParam,
LPARAM lParam);
Parametry
wParam
Slovo s nízkým pořadím wParam identifikuje ID příkazu položky nabídky, ovládacího prvku nebo akcelerátoru. Slovo s vysokým pořadím wParam určuje zprávu oznámení, pokud je zpráva z ovládacího prvku. Pokud je zpráva z akcelerátoru, slovo ve vysokém pořadí je 1. Pokud je zpráva z nabídky, slovo ve vysokém pořadí je 0.
lParam
Identifikuje ovládací prvek, který zprávu odešle, pokud je zpráva z ovládacího prvku. lParam Jinak je to 0.
Návratová hodnota
Aplikace vrátí nenulovou hodnotu, pokud zpracuje tuto zprávu; jinak 0.
Poznámky
OnCommand zpracovává mapu zpráv pro řídicí oznámení a ON_COMMAND položky a volá příslušnou členovou funkci.
Přepište tuto členovou funkci v odvozené třídě pro zpracování WM_COMMAND zprávy. Přepsání nezpracuje mapu zpráv, pokud není volána základní třída OnCommand .
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnCompacting
Architektura volá tuto členovou funkci pro všechna okna nejvyšší úrovně, když Systém Windows zjistí, že více než 12,5 % systémového času v průběhu 30 až 60sekundového intervalu se tráví komprimací paměti.
afx_msg void OnCompacting(UINT nCpuTime);
Parametry
nCpuTime
Určuje poměr času procesoru aktuálně stráveného komprimací paměti systému Windows a času stráveného prováděním jiných operací. Například 8000h představuje 50 procent času procesoru stráveného komprimací paměti.
Poznámky
To znamená, že systémová paměť je nízká.
CWnd Když objekt obdrží toto volání, měl by uvolnit co nejvíce paměti, s ohledem na aktuální úroveň aktivity aplikace a celkový počet aplikací spuštěných ve Windows. Aplikace může volat funkci Systému Windows, aby určila, kolik aplikací běží.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnCompareItem
Architektura volá tuto členovou funkci, která určuje relativní pozici nové položky v podřízené seřazené sestavě vlastník-kreslení se seznamem nebo seznamem.
afx_msg int OnCompareItem(
int nIDCtl,
LPCOMPAREITEMSTRUCT lpCompareItemStruct);
Parametry
nIDCtl
Identifikátor ovládacího prvku, který zprávu odeslal WM_COMPAREITEM .
lpCompareItemStruct
Obsahuje dlouhý ukazatel na datovou COMPAREITEMSTRUCT strukturu, která obsahuje identifikátory a data zadaná aplikací pro dvě položky v poli se seznamem nebo seznamem.
Návratová hodnota
Určuje relativní pozici dvou položek. Může se jednat o některou z následujících hodnot:
| Hodnota | Význam |
|---|---|
| -1 | Položka 1 seřadí před položkou 2. |
| 0 | Položka 1 a položka 2 seřadí stejně. |
| 0 | Položka 1 seřadí po položce 2. |
Poznámky
Pokud je pole se seznamem nebo seznam vytvořené pomocí CBS_SORT stylu nebo LBS_SORT stylu, systém Windows odešle vlastníkovi WM_COMPAREITEM se seznamem nebo seznamu zprávu pokaždé, když aplikace přidá novou položku.
Dvě položky v poli se seznamem nebo seznamem jsou reformovány ve COMPAREITEMSTRUCT struktuře, na kterou lpCompareItemStructodkazuje . OnCompareItem by měla vrátit hodnotu, která označuje, které položky by se měly zobrazit před ostatními. Systém Windows obvykle provádí toto volání několikrát, dokud nezjádí přesnou pozici nové položky.
hwndItem Pokud člen COMPAREITEMSTRUCT struktury patří do objektu CListBox nebo CComboBox objektu, CompareItem je volána virtuální funkce příslušné třídy. Přepište CComboBox::CompareItem nebo CListBox::CompareItem v odvozené CListBox nebo CComboBox třídě proveďte porovnání položek.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnCompositionChanged
Architektura volá tuto členovou funkci pro všechna okna nejvyšší úrovně při povolení nebo zakázání složení Správce oken plochy (DWM).
afx_msg void OnCompositionChanged();
Poznámky
Tato metoda obdrží WM_DWMCOMPOSITIONCHANGED oznámení, které je popsáno v sadě Windows SDK.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnContextMenu
Volá se rozhraním, když uživatel v okně kliknul na pravé tlačítko myši (kliknul pravým tlačítkem myši).
afx_msg void OnContextMenu(
CWnd* pWnd,
CPoint pos);
Parametry
pWnd
Úchyt pro okno, ve kterém uživatel klikl pravým tlačítkem myši. Může se jednat o podřízené okno okna, které zprávu obdrží. Další informace o zpracování této zprávy naleznete v části Poznámky.
pos
Pozice kurzoru v souřadnicích obrazovky v době kliknutí myší.
Poznámky
Tuto zprávu můžete zpracovat zobrazením místní nabídky pomocí možnosti TrackPopupMenu.
Pokud nezobrazíte místní nabídku, měli byste tuto zprávu předat funkci DefWindowProc . Pokud je okno podřízené okno, DefWindowProc odešle zprávu nadřazené sadě. V opačném případě se zobrazí výchozí místní nabídka, DefWindowProc pokud je zadaná pozice v titulku okna.
CWnd::OnCopyData
Tato členová funkce je volána rozhraním ke kopírování dat z jedné aplikace do druhé.
afx_msg BOOL OnCopyData(
CWnd* pWnd,
COPYDATASTRUCT* pCopyDataStruct);
Parametry
pWnd
Ukazatel na CWnd objekt, který odesílá data.
pCopyDataStruct
Ukazatel na COPYDATASTRUCT strukturu, která obsahuje odesílaná data.
Návratová hodnota
Vrátí TRUE , pokud přijímající aplikace úspěšně přijme data. V opačném případě vrátí hodnotu FALSE.
Poznámky
Předávaná data nesmí obsahovat ukazatele ani jiné odkazy na objekty, které nejsou přístupné pro aplikaci přijímající data.
Při kopírování dat nesmí být změněna jiným vláknem procesu odesílání.
Přijímající aplikace by měla vzít v úvahu data jen pro čtení. Struktura, na kterou odkazuje parametr pCopyDataStruct , je platná pouze během přenosu dat. Přijímající aplikace by ale neměla uvolnit paměť přidruženou ke struktuře.
Pokud přijímající aplikace potřebuje přístup k datům po vrácení této funkce, musí zkopírovat data přijatá do místní vyrovnávací paměti.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnCreate
Architektura volá tuto členovou funkci, když aplikace požaduje, aby okno Systému Windows bylo vytvořeno voláním Create nebo CreateEx členské funkce.
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
Parametry
lpCreateStruct
Odkazuje na CREATESTRUCT strukturu, která obsahuje informace o objektu, CWnd který se vytváří.
Návratová hodnota
OnCreate musí vrátit hodnotu 0, aby pokračovala ve vytváření objektu CWnd . Pokud aplikace vrátí hodnotu -1, okno bude zničeno.
Poznámky
Objekt CWnd obdrží toto volání po vytvoření okna, ale před jeho zobrazením. OnCreate je volána před vrácením Create členské CreateEx funkce.
Přepište tuto členovou funkci tak, aby prováděla veškerou potřebnou inicializaci odvozené třídy.
Struktura CREATESTRUCT obsahuje kopie parametrů použitých k vytvoření okna.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnCtlColor
Architektura volá tuto členovou funkci, když se chystá nakreslit podřízený ovládací prvek.
afx_msg HBRUSH OnCtlColor(
CDC* pDC,
CWnd* pWnd,
UINT nCtlColor);
Parametry
pDC
Obsahuje ukazatel na kontext zobrazení podřízeného okna. Může být dočasný.
pWnd
Obsahuje ukazatel na ovládací prvek, který žádá o barvu. Může být dočasný.
nCtlColor
Obsahuje jednu z následujících hodnot určující typ ovládacího prvku:
CTLCOLOR_BTNOvládací prvek TlačítkoCTLCOLOR_DLGDialogové oknoCTLCOLOR_EDITUpravit ovládací prvekCTLCOLOR_LISTBOXOvládací prvek SeznamCTLCOLOR_MSGBOXMessage boxCTLCOLOR_SCROLLBAROvládací prvek posuvníkuCTLCOLOR_STATICStatický ovládací prvek
Návratová hodnota
OnCtlColor musí vrátit úchyt na štětec, který se má použít k malování ovládacího prvku pozadí.
Poznámky
Většina ovládacích prvků odešle tuto zprávu rodičům (obvykle dialogové okno) a připraví pDC ovládací prvek na kreslení pomocí správných barev.
Pokud chcete změnit barvu textu, zavolejte členovou SetTextColor funkci s požadovanými červenými, zelenými a modrými hodnotami (RGB).
Pokud chcete změnit barvu pozadí ovládacího prvku pro úpravy s jedním řádkem, nastavte úchyt štětce v kódech CTLCOLOR_EDIT zpráv a CTLCOLOR_MSGBOX zavolejte CDC::SetBkColor funkci v reakci na CTLCOLOR_EDIT kód.
OnCtlColor nebude volána pro seznam rozevíracího seznamu, protože rozevírací seznam je ve skutečnosti podřízený pole se seznamem, nikoli podřízené okno. Pokud chcete změnit barvu rozevíracího seznamu, vytvořte CComboBox v parametru nCtlColor přepsáníOnCtlColor, které kontroluje CTLCOLOR_LISTBOX parametr. V této obslužné rutině SetBkColor musí být členová funkce použita k nastavení barvy pozadí textu.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte. Chcete-li do třídy dialogového okna přidat následující metodu, použijte podokno vlastností sady Visual Studio k přidání obslužné rutiny zprávy pro WM_CTLCOLOR. Alternativně můžete do mapy zpráv přidat ON_WM_CTLCOLOR() položku ručně.
Příklad
// This OnCtlColor handler will change the color of a static control
// with the ID of IDC_MYSTATIC. The code assumes that the CPenWidthsDlg
// class has an initialized and created CBrush member named m_brush.
// The control will be painted with red text and a background
// color of m_brush.
HBRUSH CPenWidthsDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
// Call the base class implementation first! Otherwise, it may
// undo what we're trying to accomplish here.
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// Are we painting the IDC_MYSTATIC control? We can use
// CWnd::GetDlgCtrlID() to perform the most efficient test.
if (pWnd->GetDlgCtrlID() == IDC_MYSTATIC)
{
// Set the text color to red
pDC->SetTextColor(RGB(255, 0, 0));
// Set the background mode for text to transparent
// so background will show thru.
pDC->SetBkMode(TRANSPARENT);
// Return handle to our CBrush object
hbr = m_brush;
}
return hbr;
}
CWnd::OnDeadChar
Architektura volá tuto členovou funkci, pokud OnKeyUp jsou volána členová funkce a OnKeyDown členské funkce.
afx_msg void OnDeadChar(
UINT nChar,
UINT nRepCnt,
UINT nFlags);
Parametry
nChar
Určuje hodnotu znaku dead-key.
nRepCnt
Určuje počet opakování.
nFlags
Určuje kód kontroly, kód přechodu klíče, předchozí stav klíče a kontextový kód, jak je znázorněno v následujícím seznamu:
| Hodnota | Popis |
|---|---|
| 0-7 | Skenování kódu (hodnota závislá na OEM) Nízký bajt slova s vysokým pořadím. |
| 8 | Rozšířená klávesa, například funkční klávesa nebo klávesa na numerické klávesnici (1, pokud se jedná o rozšířený klíč, jinak 0). |
| 9-10 | Nepoužívá se. |
| 11-12 | Interně používá systém Windows. |
| 13 | Kontextový kód (1, pokud je klávesa ALT při stisknutí klávesy stisknutá, jinak 0) |
| 14 | Předchozí stav klíče (1, pokud je klíč před voláním vypnutý, 0, pokud je klíč nahoru). |
| 15 | Stav přechodu (1, pokud je klávesa uvolněna, 0, pokud je stisknutá klávesa). |
Poznámky
Tuto členovou funkci lze použít k určení hodnoty znaku mrtvého klíče. Mrtvý klíč je klíč, například znak umlaut (dvojitá tečka), který se zkombinuje s jinými znaky a vytvoří složený znak. Znak umlaut-O se například skládá z mrtvého klíče, umlaut a klíče O.
Aplikace obvykle používá OnDeadChar k tomu, aby uživateli poskytla zpětnou vazbu o jednotlivých stisknutých klávesách. Aplikace může například zobrazit zvýraznění v aktuální pozici znaku bez přesunutí kurzoru.
Vzhledem k tomu, že mezi stisknutými klávesami a OnDeadChar voláními nemusí nutně existovat 1:1, informace obecně nFlags nejsou pro aplikace užitečné. Informace nFlags platí pouze pro poslední volání OnKeyUp členské funkce nebo OnKeyDown členské funkce, která předchází OnDeadChar volání.
U klávesnic IBM Enhanced 101- a 102-key jsou vylepšené klávesy vpravo ALT a pravé klávesy CTRL v hlavní části klávesnice; INS, DEL, HOME, END, PAGE UP, PAGE DOWN a šipkové klávesy v clusterech vlevo od numerické klávesnice; a lomítko (/) a klávesy ENTER na numerické klávesnici. Některé další klávesnice mohou podporovat bit rozšířené klávesy v nFlags.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnDeleteItem
Architektura volá tuto členovou funkci, aby informovala vlastníka seznamu vlastníka nebo pole se seznamem, že seznam nebo pole se seznamem je zničeno nebo že položky byly odebrány CComboBox::DeleteString, CListBox::DeleteString, CComboBox::ResetContent, nebo CListBox::ResetContent.
afx_msg void OnDeleteItem(
int nIDCtl,
LPDELETEITEMSTRUCT lpDeleteItemStruct);
Parametry
nIDCtl
Identifikátor ovládacího prvku, který zprávu odeslal WM_DELETEITEM .
lpDeleteItemStruct
Určuje dlouhý ukazatel na datovou DELETEITEMSTRUCT strukturu, která obsahuje informace o odstraněné položce seznamu.
Poznámky
hwndItem Pokud člen DELETEITEMSTRUCT struktury patří do pole se seznamem nebo seznamu, DeleteItem je volána virtuální funkce příslušné třídy. DeleteItem Přepište členskou funkci třídy příslušného ovládacího prvku, aby se odstranila data specifická pro položky.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnDestroy
Architektura volá tuto členovu funkci, která informuje CWnd objekt, že je zničen.
afx_msg void OnDestroy();
Poznámky
OnDestroy je volána po CWnd odebrání objektu z obrazovky.
OnDestroy je volána jako první pro CWnd zničení, pak pro podřízená okna CWnd , jak jsou zničeny. Lze předpokládat, že všechna podřízená okna stále existují během OnDestroy spuštění.
CWnd Pokud je objekt zničený součástí řetězce prohlížeče schránky (nastavený voláním SetClipboardViewer členské funkce), CWnd musí se odebrat ze řetězu prohlížeče schránky voláním ChangeClipboardChain členské funkce před vrácením z OnDestroy funkce.
CWnd::OnDestroyClipboard
Architektura volá tuto členovou funkci pro vlastníka schránky, když je schránka vyprázdněna voláním EmptyClipboard funkce Windows.
afx_msg void OnDestroyClipboard();
CWnd::OnDeviceChange
Architektura volá tuto členovou funkci, která informuje aplikaci nebo ovladač zařízení o změně konfigurace hardwaru zařízení nebo počítače.
afx_msg BOOL OnDeviceChange(
UINT nEventType,
DWORD_PTR dwData);
Parametry
nEventType
Typ události. Popis dostupných hodnot najdete v části Poznámky.
dwData
Adresa struktury, která obsahuje data specifická pro události. Jeho význam závisí na dané události.
Poznámky
U zařízení, která nabízejí funkce s možností řízení softwaru, jako je vysunutí a uzamykání, operační systém obvykle odesílá zprávu, která aplikacím DBT_DEVICEREMOVEPENDING a ovladačům zařízení umožní řádné ukončení jejich používání.
Pokud operační systém vynucuje odebrání zařízení, nemusí před tím odeslat DBT_DEVICEQUERYREMOVE zprávu.
Parametrem nEvent může být jedna z těchto hodnot:
DBT_DEVICEARRIVALZařízení bylo vloženo a je nyní k dispozici.DBT_DEVICEQUERYREMOVEVyžaduje se oprávnění k odebrání zařízení. Každá aplikace může tuto žádost odepřít a zrušit odebrání.DBT_DEVICEQUERYREMOVEFAILEDŽádost o odebrání zařízení byla zrušena.DBT_DEVICEREMOVEPENDINGZařízení se chystá odebrat. Nelze zamítnout.DBT_DEVICEREMOVECOMPLETEZařízení bylo odebráno.DBT_DEVICETYPESPECIFICUdálost specifická pro zařízení.DBT_CONFIGCHANGEDAktuální konfigurace se změnila.DBT_DEVNODES_CHANGEDUzel zařízení se změnil.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnDevModeChange
Architektura volá tuto členovou funkci pro všechny objekty nejvyšší úrovně CWnd , když uživatel změní nastavení režimu zařízení.
afx_msg void OnDevModeChange(LPTSTR lpDeviceName);
Parametry
lpDeviceName
Odkazuje na název zařízení zadaný v souboru inicializace systému Windows , WIN.INI.
Poznámky
Aplikace, které zprávu zpracovávají WM_DEVMODECHANGE , mohou znovu inicializovat nastavení režimu zařízení. Aplikace, které funkci Windows ExtDeviceMode používají k ukládání a obnovení nastavení zařízení, obvykle tuto funkci nezpracují.
Tato funkce není volána, když uživatel změní výchozí tiskárnu z Ovládací panely. V tomto případě OnWinIniChange se volá funkce.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnDrawClipboard
Architektura volá tuto členovou funkci pro každé okno v řetězu prohlížeče schránky při změně obsahu schránky.
afx_msg void OnDrawClipboard();
Poznámky
Voláním SetClipboardViewer členské funkce musí na toto volání reagovat pouze aplikace, které se připojily ke řetězu prohlížeče schránky.
Každé okno, které přijme OnDrawClipboard volání, by mělo volat SendMessage funkci Windows, aby předala WM_DRAWCLIPBOARD zprávu do dalšího okna v řetězu prohlížeče schránky. Obslužná rutina dalšího okna je vrácena SetClipboardViewer členovou funkcí; může být změněna v reakci na OnChangeCbChain volání členské funkce.
CWnd::OnDrawIconicThumbnailOrLivePreview
Volané architekturou, když potřebuje získat rastr, který se má zobrazit na kartě Windows 7 miniatury, nebo v klientovi pro náhled aplikace.
virtual void OnDrawIconicThumbnailOrLivePreview(
CDC& dc,
CRect rect,
CSize szRequiredThumbnailSize,
BOOL bIsThumbnail,
BOOL& bAlphaChannelSet);
Parametry
dc
Určuje kontext zařízení.
rect
Určuje ohraničující obdélník oblasti, která se má vykreslit.
szRequiredThumbnailSize
Určuje velikost cílové miniatury. Pokud je , FALSEměl by být ignorován bIsThumbnail .
bIsThumbnail
Určuje, jestli se tato metoda volá pro ikonickou miniaturu nebo dynamický náhled (náhled).
bAlphaChannelSet
[ven] Nastavte ji na TRUE , pokud vaše implementace inicializuje alfa kanál rastru vybraného v dc.
Poznámky
Tuto metodu přepište v odvozené třídě a kreslete na zadaný kontext zařízení, aby bylo možné přizpůsobit miniaturu a náhled. Pokud bThumbnail ano TRUE, szRequiredThumbnailSize můžete ho ignorovat. V tomto případě byste měli vědět, že nakreslíte rastrový obrázek v plné velikosti (to znamená rastrový obrázek, který pokrývá celou oblast klienta). Kontext zařízení (dc) se dodává s vybraným rastrovým obrázkem o 32 bitech. Výchozí implementace odešle WM_PRINT do tohoto okna s PRF_CLIENT, PRF_CHILDRENa PRF_NONCLIENT příznaky.
CWnd::OnDrawItem
Architektura volá tuto členovou funkci pro vlastníka ovládacího prvku tlačítka owner-draw, ovládací prvek se seznamem, ovládací prvek seznam nebo nabídku, pokud došlo ke změně vizuálního aspektu ovládacího prvku nebo nabídky.
afx_msg void OnDrawItem(
int nIDCtl,
LPDRAWITEMSTRUCT lpDrawItemStruct);
Parametry
nIDCtl
Obsahuje identifikátor ovládacího prvku, který zprávu odeslal WM_DRAWITEM . Pokud nabídka odeslala zprávu, nIDCtl obsahuje hodnotu 0.
lpDrawItemStruct
Určuje dlouhý ukazatel na datovou DRAWITEMSTRUCT strukturu, která obsahuje informace o položce, která se má nakreslit, a typ požadovaného výkresu.
Poznámky
Člen itemAction DRAWITEMSTRUCT struktury definuje operaci kreslení, která se má provést. Data v tomto členu umožňují vlastníkovi ovládacího prvku určit, jaká akce výkresu je požadována.
Před návratem ze zpracování této zprávy by aplikace měla zajistit, aby byl kontext zařízení identifikovaný hDC členem DRAWITEMSTRUCT struktury obnoven do výchozího stavu.
hwndItem Pokud člen patří do objektu CButton, , CMenuCListBox, nebo CComboBox, je DrawItem volána virtuální funkce příslušné třídy. DrawItem Přepište členskou funkci třídy příslušného ovládacího prvku a nakreslete položku.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnDropFiles
Architektura volá tuto členovou funkci, když uživatel uvolní levé tlačítko myši přes okno, které se zaregistrovalo jako příjemce vynechaných souborů.
afx_msg void OnDropFiles(HDROP hDropInfo);
Parametry
hDropInfo
Ukazatel na interní datovou strukturu, která popisuje vyřazené soubory. Tento popisovač používá DragFinishfunkce , DragQueryFilea DragQueryPoint Windows k načtení informací o vyřazených souborech.
Poznámky
Odvozená třída bude obvykle navržena tak, aby podporovala vyřazené soubory a zaregistruje se při vytváření oken.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnEnable
Architektura volá tuto členovou funkci, když aplikace změní povolený stav objektu CWnd .
afx_msg void OnEnable(BOOL bEnable);
Parametry
bEnable
Určuje, zda CWnd byl objekt povolen nebo zakázán. Tento parametr je TRUE v případě CWnd , že je povolený. Je FALSE to v případě CWnd , že byl zakázán.
Poznámky
OnEnable je volána před vrácením EnableWindow členské funkce, ale po změně stavu s povoleným oknem (WS_DISABLED bit stylu).
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnEndSession
Architektura volá tuto členovou funkci poté, co CWnd objekt vrátil nenulovou hodnotu z OnQueryEndSession volání členské funkce.
afx_msg void OnEndSession(BOOL bEnding);
Parametry
bEnding
Určuje, jestli je relace ukončena nebo ne. Je-li TRUE relace ukončena, jinak FALSE.
Poznámky
Volání OnEndSession informuje CWnd objekt, zda relace skutečně končí.
Pokud bEnding ano TRUE, systém Windows může kdykoli ukončit, jakmile se všechny aplikace vrátí ze zpracování tohoto volání. V důsledku toho aplikace provádí všechny úlohy potřebné k ukončení v rámci OnEndSession.
Při ukončení relace není nutné volat DestroyWindow členovu funkci ani PostQuitMessage funkci Systému Windows.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnEnterIdle
Architektura volá tuto členskou funkci, která informuje proceduru hlavního okna aplikace, že modální dialogové okno nebo nabídka zadává stav nečinnosti.
afx_msg void OnEnterIdle(
UINT nWhy,
CWnd* pWho);
Parametry
nWhy
Určuje, jestli je zpráva výsledkem dialogového okna nebo zobrazené nabídky. Tento parametr může být jedna z následujících hodnot:
MSGF_DIALOGBOXSystém je nečinný, protože se zobrazuje dialogové okno.MSGF_MENUSystém je nečinný, protože se zobrazuje nabídka.
pWho
Určuje ukazatel na dialogové okno (pokud nWhy je MSGF_DIALOGBOX) nebo okno, které obsahuje zobrazenou nabídku (pokud nWhy je MSGF_MENU). Tento ukazatel může být dočasný a neměl by být uložen pro pozdější použití.
Poznámky
Modální dialogové okno nebo nabídka zadá stav nečinnosti, pokud žádné zprávy čekají ve frontě po zpracování jedné nebo více předchozích zpráv.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnEnterMenuLoop
Architektura volá tuto členovou funkci, pokud byla zadána modální smyčka nabídky.
afx_msg void OnEnterMenuLoop(BOOL bIsTrackPopupMenu);
Parametry
bIsTrackPopupMenu
Určuje, jestli se jedná o místní nabídku. Má nenulovou hodnotu, pokud je funkce úspěšná; jinak 0.
Poznámky
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnEnterSizeMove
Architektura volá tuto členskou funkci jednou poté, co ovlivněné okno přejde do modální smyčky pro přesunutí nebo změnu velikosti.
afx_msg void OnEnterSizeMove();
Poznámky
Tato metoda obdrží WM_ENTERSIZEMOVE oznámení, které je popsáno v sadě Windows SDK.
Okno zadá modální smyčku přesunutí nebo změnu velikosti, když uživatel klikne na záhlaví okna nebo ohraničení velikosti, nebo když okno předá WM_SYSCOMMAND zprávu CWnd::DefWindowProc do funkce a parametr wParam zprávy určuje SC_MOVE nebo SC_SIZE.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnEraseBkgnd
Architektura volá tuto členovu funkci, když pozadí objektu CWnd potřebuje vymazat (například při změně velikosti).
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
Parametry
pDC
Určuje objekt kontextu zařízení.
Návratová hodnota
Nenulové, pokud vymaže pozadí; jinak 0.
Poznámky
Volá se k přípravě zneplatněné oblasti pro malování.
Výchozí implementace vymaže pozadí pomocí štětce třídy okna určeného hbrBackground členem struktury třídy okna.
hbrBackground Pokud je NULLčlenem , vaše přepsáná verze OnEraseBkgnd by měla vymazat barvu pozadí. Vaše verze by měla také zarovnat původ zamýšleného kartáče se CWnd souřadnicemi tím, že nejprve zavoláte UnrealizeObject štětec a pak vyberete štětec.
Přepsání OnEraseBkgnd by mělo vrátit nenulovou odpověď WM_ERASEBKGND , pokud zpracuje zprávu a vymaže pozadí. To znamená, že není nutné nic dalšího mazat. Pokud vrátí hodnotu 0, zůstane okno označené jako nutné vymazat. (Obvykle to znamená, že fErase člen PAINTSTRUCT struktury bude TRUE.)
Systém Windows předpokládá, že pozadí se vypočítá pomocí MM_TEXT režimu mapování. Pokud kontext zařízení používá jiný režim mapování, nemusí být oblast vymazána v viditelné části klientské oblasti.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnExitMenuLoop
Architektura volá tuto členovou funkci, když byla ukončena modální smyčka nabídky.
afx_msg void OnExitMenuLoop(BOOL bIsTrackPopupMenu);
Parametry
bIsTrackPopupMenu
Určuje, jestli se jedná o místní nabídku. Má nenulovou hodnotu, pokud je funkce úspěšná; jinak 0.
Poznámky
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnExitSizeMove
Architektura volá tuto členskou funkci jednou poté, co ovlivněné okno ukončí pohybující se nebo změnu velikosti modální smyčky.
afx_msg void OnExitSizeMove();
Poznámky
Tato metoda obdrží WM_EXITSIZEMOVE oznámení, které je popsáno v sadě Windows SDK.
Okno přejde do modální smyčky přesunutí nebo velikosti, když uživatel klikne na záhlaví okna nebo ohraničení velikosti nebo když okno předá WM_SYSCOMMAND zprávu CWnd::DefWindowProc do funkce a wParam parametr zprávy určuje SC_MOVE nebo SC_SIZE.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnFontChange
Všechna okna nejvyšší úrovně v systému obdrží OnFontChange volání z architektury poté, co aplikace změní fond prostředků písem.
afx_msg void OnFontChange();
Poznámky
Aplikace, která přidává nebo odebírá písma ze systému (například prostřednictvím AddFontResource RemoveFontResource funkce Windows), by měla zprávu odeslat WM_FONTCHANGE do všech oken nejvyšší úrovně.
Chcete-li odeslat tuto zprávu, použijte SendMessage funkci Windows s parametrem hWnd nastaveným na HWND_BROADCAST.
CWnd::OnGetDlgCode
Volal se pro ovládací prvek, aby ovládací prvek mohl zpracovat samotný vstup se šipkami a klávesou TAB.
afx_msg UINT OnGetDlgCode();
Návratová hodnota
Jedna nebo více následujících hodnot označujících typ vstupu procesů aplikace:
DLGC_BUTTONTlačítko (obecné)DLGC_DEFPUSHBUTTONVýchozí tlačítko.DLGC_HASSETSELEM_SETSELzprávy.DLGC_UNDEFPUSHBUTTONŽádné výchozí zpracování tlačítka. (Aplikace může tento příznakDLGC_BUTTONpoužít k označení, že zpracovává vstup tlačítka, ale spoléhá na systém pro výchozí zpracování tlačítka.)DLGC_RADIOBUTTONPřepínač.DLGC_STATICStatický ovládací prvek.DLGC_WANTALLKEYSVšechny vstupy z klávesnice.DLGC_WANTARROWSŠipky.DLGC_WANTCHARSWM_CHARzprávy.DLGC_WANTMESSAGEVšechny vstupy z klávesnice. Aplikace předá tuto zprávu ovládacímu prvku.DLGC_WANTTABKlávesa TAB.
Poznámky
Systém Windows za normálních okolností zpracovává všechny klávesy se šipkami a klávesou CWnd TAB vstup do ovládacího prvku. Přepsáním OnGetDlgCodemůže CWnd ovládací prvek zvolit konkrétní typ vstupu, který se má zpracovat sám.
Výchozí OnGetDlgCode funkce pro předdefinované třídy ovládacích prvků vrací kód vhodný pro každou třídu.
CWnd::OnGetMinMaxInfo
Tato členová funkce volá vždy, když Systém Windows potřebuje znát maximalizovanou pozici nebo rozměry nebo minimální nebo maximální velikost sledování.
afx_msg void OnGetMinMaxInfo(MINMAXINFO* lpMMI);
Parametry
lpMMI
Odkazuje na MINMAXINFO strukturu, která obsahuje informace o maximalizované velikosti a poloze okna a minimální a maximální velikosti sledování. Další informace o této struktuře najdete v této struktuře MINMAXINFO .
Poznámky
Maximalizovaná velikost je velikost okna, když jsou ohraničení plně rozšířena. Maximální velikost sledování okna je největší velikost okna, kterou lze dosáhnout pomocí ohraničení k nastavení velikosti okna. Minimální velikost sledování okna je nejmenší velikost okna, kterou lze dosáhnout pomocí ohraničení k nastavení velikosti okna.
Okna vyplní matici bodů určující výchozí hodnoty pro různé pozice a rozměry. Aplikace může tyto hodnoty změnit v OnGetMinMaxInfo.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnHelp
Zpracovává nápovědu F1 v aplikaci (pomocí aktuálního kontextu).
afx_msg void OnHelp();
Poznámky
Další informace naleznete v tématu CWinApp::OnHelp.
CWnd::OnHelpFinder
Zpracovává příkazy ID_HELP_FINDER a ID_DEFAULT_HELP příkazy.
afx_msg void OnHelpFinder();
Poznámky
Další informace naleznete v tématu CWinApp::OnHelpFinder.
CWnd::OnHelpIndex
Zpracovává příkaz a poskytuje výchozí téma nápovědy ID_HELP_INDEX .
afx_msg void OnHelpIndex();
Poznámky
Další informace naleznete v tématu CWinApp::OnHelpIndex.
CWnd::OnHelpInfo
Volá se rozhraním, když uživatel stiskne klávesu F1.
afx_msg BOOL OnHelpInfo(HELPINFO* lpHelpInfo);
Parametry
lpHelpInfo
Ukazatel na HELPINFO strukturu, která obsahuje informace o položce nabídky, ovládacím prvku, dialogovém okně nebo okně, pro které je požadována nápověda.
Návratová hodnota
Vrátí TRUE , pokud má okno fokus klávesnice nebo pokud je v okně aktivní nabídka. Pokud žádné okno nemá fokus klávesnice, vrátí hodnotu FALSE.
Poznámky
Pokud je při stisknutí klávesy F1 aktivní nabídka, WM_HELP odešle se do okna přidruženého k nabídce. V opačném případě se odešle do okna s WM_HELP fokusem klávesnice. Pokud žádné okno nemá fokus klávesnice, WM_HELP odešle se do aktuálně aktivního okna.
CWnd::OnHelpUsing
ID_HELP_USING Zpracuje příkaz.
afx_msg void OnHelpUsing();
Poznámky
Další informace naleznete v tématu CWinApp::OnHelpUsing.
CWnd::OnHotKey
Architektura volá tuto členovou funkci, když uživatel stiskne systémovou klávesu.
afx_msg void OnHotKey(
UINT nHotKeyId,
UINT nKey1,
UINT nKey2);
Parametry
nHotKeyId
[v] Identifikátor klávesové zkratky, která zprávu vygenerovala. Pokud zprávu vygenerovala systémově definovaná klávesová zkratka, bude tento parametr jednou z následujících hodnot:
IDHOT_SNAPDESKTOP- Přichycená stolní klávesa byla stisknuta.IDHOT_SNAPWINDOW- Byla stisknuta klávesa s oknem přichycení.
nKey1
[v] Bitové kombinace (OR) příznaků, které označují klávesy, které byly stisknuty v kombinaci s klávesou určenou parametrem nKey2 . Možné hodnoty:
MOD_ALT- Podržela se klávesa ALT.MOD_CONTROL– Podržení klávesy CTRLMOD_SHIFT- Podržela se klávesa SHIFT.MOD_WIN- Buď klíč windows byl podržděný. Tyto klíče jsou označené logem Microsoft Windows.
nKey2
[v] Kód virtuálního klíče klávesové zkratky.
Poznámky
Tato metoda obdrží WM_HOTKEY oznámení, které je popsáno v sadě Windows SDK. Tato zpráva je umístěna v horní části fronty zpráv přidružené k vláknu, které zaregistrovalo horký klíč. RegisterHotKey Pomocí funkce zaregistrujte klávesovou zkratku pro celý systém.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnHScroll
Architektura volá tuto členskou funkci, když uživatel klikne na vodorovný posuvník okna.
afx_msg void OnHScroll(
UINT nSBCode,
UINT nPos,
CScrollBar* pScrollBar);
Parametry
nSBCode
Určuje posuvníkový kód, který označuje požadavek uživatele na posouvání. Tento parametr může být jeden z následujících:
SB_LEFTPosuňte se úplně doleva.SB_ENDSCROLLUkončete posouvání.SB_LINELEFTPosuňte se doleva.SB_LINERIGHTPosuňte se doprava.SB_PAGELEFTPosuňte se o jednu stránku doleva.SB_PAGERIGHTPosuňte se o jednu stránku doprava.SB_RIGHTPosuňte se úplně doprava.SB_THUMBPOSITIONPosuňte se na absolutní pozici. Aktuální pozice je určena parametremnPos.SB_THUMBTRACKPřetáhněte posuvník na zadanou pozici. Aktuální pozice je určena parametremnPos.
nPos
Určuje pozici posuvníku, pokud je SB_THUMBPOSITION kód posuvníku nebo SB_THUMBTRACK; jinak se nepoužívá. V závislosti na počátečním rozsahu nPos posouvání může být záporné a v případě potřeby by mělo být přetypování na řadu int .
pScrollBar
Pokud zpráva posouvání pochází z ovládacího prvku posuvníku, obsahuje ukazatel na ovládací prvek. Pokud uživatel klikl na posuvník okna, je NULLtento parametr . Ukazatel může být dočasný a neměl by být uložen pro pozdější použití.
Poznámky
Kód SB_THUMBTRACK posuvníku obvykle používají aplikace, které při přetahování posuvníku poskytují zpětnou vazbu.
Pokud aplikace posune obsah řízený posuvníkem, musí také obnovit umístění posuvníku pomocí SetScrollPos členské funkce.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
Příklad
void CMdiView::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar *pScrollBar)
{
// Get the minimum and maximum scroll-bar positions.
int minpos;
int maxpos;
GetScrollRange(SB_HORZ, &minpos, &maxpos);
maxpos = GetScrollLimit(SB_HORZ);
// Get the current position of scroll box.
int curpos = GetScrollPos(SB_HORZ);
// Determine the new position of scroll box.
switch (nSBCode)
{
case SB_LEFT: // Scroll to far left.
curpos = minpos;
break;
case SB_RIGHT: // Scroll to far right.
curpos = maxpos;
break;
case SB_ENDSCROLL: // End scroll.
break;
case SB_LINELEFT: // Scroll left.
if (curpos > minpos)
curpos--;
break;
case SB_LINERIGHT: // Scroll right.
if (curpos < maxpos)
curpos++;
break;
case SB_PAGELEFT: // Scroll one page left.
{
// Get the page size.
SCROLLINFO info;
GetScrollInfo(SB_HORZ, &info, SIF_ALL);
if (curpos > minpos)
curpos = max(minpos, curpos - (int)info.nPage);
}
break;
case SB_PAGERIGHT: // Scroll one page right.
{
// Get the page size.
SCROLLINFO info;
GetScrollInfo(SB_HORZ, &info, SIF_ALL);
if (curpos < maxpos)
curpos = min(maxpos, curpos + (int)info.nPage);
}
break;
case SB_THUMBPOSITION: // Scroll to absolute position. nPos is the position
curpos = nPos; // of the scroll box at the end of the drag operation.
break;
case SB_THUMBTRACK: // Drag scroll box to specified position. nPos is the
curpos = nPos; // position that the scroll box has been dragged to.
break;
}
// Set the new position of the thumb (scroll box).
SetScrollPos(SB_HORZ, curpos);
CView::OnHScroll(nSBCode, nPos, pScrollBar);
}
CWnd::OnHScrollClipboard
Členská funkce vlastníka OnHScrollClipboard schránky je volána prohlížečem schránky, pokud data schránky mají CF_OWNERDISPLAY formát a v vodorovném posuvníku prohlížeče schránky je událost.
afx_msg void OnHScrollClipboard(
CWnd* pClipAppWnd,
UINT nSBCode,
UINT nPos);
Parametry
pClipAppWnd
Určuje ukazatel na okno prohlížeče schránky. Ukazatel může být dočasný a neměl by být uložen pro pozdější použití.
nSBCode
Určuje jeden z následujících kódů posuvníků ve slově s nízkým pořadím:
SB_BOTTOMPosuňte se doprava dolů.SB_ENDSCROLLUkončete posouvání.SB_LINEDOWNPosuňte se o jeden řádek dolů.SB_LINEUPPosuňte se o jeden řádek nahoru.SB_PAGEDOWNPosuňte se o jednu stránku dolů.SB_PAGEUPPosuňte se o jednu stránku nahoru.SB_THUMBPOSITIONPosuňte se na absolutní pozici. Aktuální pozice je uvedena vnPos.SB_TOPPosuňte se doleva nahoru.
nPos
Obsahuje pozici posuvníku, pokud je SB_THUMBPOSITIONkód posuvníku ; jinak se nepoužívá.
Poznámky
Vlastník by měl posunout obrázek schránky, zneplatnit příslušný oddíl a aktualizovat hodnoty posuvníku.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnIconEraseBkgnd
Architektura volá tuto členskou funkci pro minimalizovaný (ikonický) CWnd objekt, když pozadí ikony musí být vyplněno před nakreslením ikony.
afx_msg void OnIconEraseBkgnd(CDC* pDC);
Parametry
pDC
Určuje objekt kontextu zařízení ikony. Může být dočasný a neměl by být uložen pro pozdější použití.
Poznámky
CWnd přijímá toto volání pouze v případě, že je definována ikona třídy pro výchozí implementaci okna; jinak OnEraseBkgnd je volána.
Členová DefWindowProc funkce vyplní pozadí ikony štětcem pozadí nadřazeného okna.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnInitMenu
Architektura volá tuto členovou funkci, když se nabídka chystá aktivovat.
afx_msg void OnInitMenu(CMenu* pMenu);
Parametry
pMenu
Určuje nabídku, která se má inicializovat. Může být dočasný a neměl by být uložen pro pozdější použití.
Poznámky
OnInitMenu je volána, když uživatel klikne na položku na řádku nabídek nebo stiskne klávesu nabídky. Přepište tuto členovu funkci tak, aby před zobrazením upravovala nabídku.
OnInitMenu je volána pouze jednou, když se k nabídce poprvé přistupuje (například když uživatel klikne na položku na řádku nabídek). Tato metoda neposkytuje informace o položkách nabídky. Když se uživatel přesune k položkám v nabídce (například přesunutím myši přes několik položek nabídky), funkce se znovu nevolá. Jakmile uživatel opustí nabídku (například kliknutím na oblast klienta aplikace) a později klikne na položku na řádku nabídek, funkce se znovu zavolá.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnInitMenuPopup
Architektura volá tuto členovou funkci, když se chystá aktivovat místní nabídka.
afx_msg void OnInitMenuPopup(
CMenu* pPopupMenu,
UINT nIndex,
BOOL bSysMenu);
Parametry
pPopupMenu
Určuje objekt nabídky místní nabídky. Může být dočasný a neměl by být uložen pro pozdější použití.
nIndex
Určuje index místní nabídky v hlavní nabídce.
bSysMenu
TRUE pokud místní nabídka je nabídka Řízení; jinak FALSE.
Poznámky
Aplikace tak může před zobrazením upravit místní nabídku, aniž by změnila celou nabídku.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnInputDeviceChange
Architektura volá tuto členovou funkci při přidání nebo odebrání vstupně-výstupního zařízení ze systému.
afx_msg void OnInputDeviceChange(unsigned short uFlag);
Parametry
uFlag
[v] Tento příznak může obsahovat následující hodnoty:
GIDC_ARRIVAL- Do systému se přidalo nové zařízení.GIDC_REMOVAL- Zařízení bylo odebráno ze systému.
Poznámky
Tato metoda obdrží WM_INPUT_DEVICE_CHANGE oznámení, které je popsáno v sadě Windows SDK. Jedná se o obecnou zprávu o vstupním zařízení.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnInputLangChange
Architektura volá tohoto člena pro nejvíce ovlivněné okno po změně jazyka zadávání aplikace.
afx_msg void OnInputLangChange(
UINT nCharSet,
UINT nLocaleId);
Parametry
nCharSet
[v] Znaková sada nového národního prostředí. Další informace naleznete v lfCharSet parametru LOGFONT struktury.
nLocaleId
[v] Vstupní identifikátor národního prostředí. Další informace naleznete v tématu Konstanty a řetězce identifikátoru jazyka.
Poznámky
Tato metoda obdrží WM_INPUTLANGCHANGE zprávu s oznámením, která je popsána v sadě Windows SDK.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnInputLangChangeRequest
Architektura volá tohoto člena pro okno s fokusem, když uživatel zvolí nový jazyk zadávání.
afx_msg void OnInputLangChangeRequest(
UINT nFlags,
UINT nLocaleId);
Parametry
nFlags
[v] Bitové (OR) kombinace příznaků, které označují, že nové národní prostředí bylo vybráno z předchozího nebo dalšího národního prostředí v nainstalovaném seznamu národních prostředí nebo že nové rozložení klávesnice vstupního národního prostředí lze použít se systémovou znakovou sadou. Hodnoty pole jsou INPUTLANGCHANGE_BACKWARD, INPUTLANGCHANGE_FORWARD a INPUTLANGCHANGE_SYSCHARSET.
nLocaleId
[v] Vstupní identifikátor národního prostředí. Další informace naleznete v tématu Konstanty a řetězce identifikátoru jazyka.
Poznámky
Tato metoda obdrží WM_INPUTLANGCHANGEREQUEST zprávu s oznámením, která je popsána v sadě Windows SDK. Tato zpráva se publikuje, když uživatel zvolí nový jazyk zadávání pomocí klávesové zkratky zadané v aplikaci ovládacích panelů klávesnice nebo z indikátoru na hlavním panelu systému.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnKeyDown
Architektura volá tuto členovou funkci, když je stisknuta nesystémová klávesa.
afx_msg void OnKeyDown(
UINT nChar,
UINT nRepCnt,
UINT nFlags);
Parametry
nChar
Určuje kód virtuálního klíče daného klíče. Seznam standardních kódů virtuálních klíčů najdete v tématu Winuser.h
nRepCnt
Počet opakování (počet opakování stisknutí klávesy se opakuje v důsledku toho, že uživatel drží stisknutou klávesu).
nFlags
Určuje kód kontroly, kód přechodu klíče, předchozí stav klíče a kontextový kód, jak je znázorněno v následujícím seznamu:
| Hodnota | Popis |
|---|---|
| 0-7 | Skenování kódu (hodnota závislá na OEM) |
| 8 | Rozšířená klávesa, například funkční klávesa nebo klávesa na numerické klávesnici (1, pokud se jedná o rozšířený klíč). |
| 9-10 | Nepoužívá se. |
| 11-12 | Interně používá systém Windows. |
| 13 | Kontextový kód (1, pokud je klávesa ALT při stisknutí klávesy stisknutá, jinak 0) |
| 14 | Předchozí stav klíče (1, pokud je klíč před voláním vypnutý, 0, pokud je klíč nahoru). |
| 15 | Stav přechodu (1, pokud je klávesa uvolněna, 0, pokud je stisknutá klávesa). |
WM_KEYDOWN U zprávy je bit přechodu klíče (bit 15) 0 a bit kódu kontextu (bit 13) je 0.
Poznámky
Nesystémová klávesa je klávesa klávesnice, která se stiskne, když není stisknutá klávesa ALT, nebo klávesová klávesa, která se stiskne, když CWnd je fokus na vstupu.
Kvůli automatickému opakování může před voláním OnKeyUp členské funkce dojít k více než jednomu OnKeyDown volání. Bit, který označuje předchozí stav klíče, lze použít k určení, zda OnKeyDown je volání prvním přechodem dolů nebo opakovaným přechodem dolů.
U klávesnic IBM Enhanced 101- a 102-key jsou vylepšené klávesy vpravo ALT a pravé klávesy CTRL v hlavní části klávesnice; INS, DEL, HOME, END, PAGE UP, PAGE DOWN a šipkové klávesy v clusterech vlevo od numerické klávesnice; a lomítko (/) a klávesy ENTER na numerické klávesnici. Některé další klávesnice mohou podporovat bit rozšířené klávesy v nFlags.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnKeyUp
Architektura volá tuto členovou funkci při uvolnění nesystémového klíče.
afx_msg void OnKeyUp(
UINT nChar,
UINT nRepCnt,
UINT nFlags);
Parametry
nChar
Určuje kód virtuálního klíče daného klíče. Seznam standardních kódů virtuálních klíčů najdete v tématu . Winuser.h
nRepCnt
Počet opakování (počet opakování stisknutí klávesy se opakuje v důsledku toho, že uživatel drží stisknutou klávesu).
nFlags
Určuje kód kontroly, kód přechodu klíče, předchozí stav klíče a kontextový kód, jak je znázorněno v následujícím seznamu:
| Hodnota | Popis |
|---|---|
| 0-7 | Skenování kódu (hodnota závislá na OEM) Nízký bajt slova s vysokým pořadím. |
| 8 | Rozšířená klávesa, například funkční klávesa nebo klávesa na numerické klávesnici (1, pokud se jedná o rozšířený klíč, jinak 0). |
| 9-10 | Nepoužívá se. |
| 11-12 | Interně používá systém Windows. |
| 13 | Kontextový kód (1, pokud je klávesa ALT při stisknutí klávesy stisknutá, jinak 0) |
| 14 | Předchozí stav klíče (1, pokud je klíč před voláním vypnutý, 0, pokud je klíč nahoru). |
| 15 | Stav přechodu (1, pokud je klávesa uvolněna, 0, pokud je stisknutá klávesa). |
WM_KEYUP U zprávy je bit přechodu klíče (bit 15) 1 a bit kódu kontextu (bit 13) je 0.
Poznámky
Nesystémová klávesa je klávesa klávesnice, která se stiskne, když není stisknutá klávesa ALT, nebo klávesová klávesa, která se stiskne, když CWnd je fokus vstupu.
U klávesnic IBM Enhanced 101- a 102-key jsou vylepšené klávesy vpravo ALT a pravé klávesy CTRL v hlavní části klávesnice; INS, DEL, HOME, END, PAGE UP, PAGE DOWN a šipkové klávesy v clusterech vlevo od numerické klávesnice; a lomítko (/) a klávesy ENTER na numerické klávesnici. Některé další klávesnice můžou podporovat bit rozšířených kláves v nFlags.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnKillFocus
Architektura volá tuto členovu funkci bezprostředně před ztrátou vstupního fokusu.
afx_msg void OnKillFocus(CWnd* pNewWnd);
Parametry
pNewWnd
Určuje ukazatel na okno, které přijímá vstupní fokus (může být nebo může být NULL dočasný).
Poznámky
CWnd Pokud objekt zobrazuje stříšku, měla by být v tomto okamžiku zničena stříška.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnLButtonDblClk
Architektura volá tuto členovou funkci, když uživatel dvakrát klikne na levé tlačítko myši.
afx_msg void OnLButtonDblClk(
UINT nFlags,
CPoint point);
Parametry
nFlags
Určuje, jestli jsou různé virtuální klíče v výpadku. Tento parametr může být libovolná kombinace následujících hodnot:
MK_CONTROLNastavte, jestli je klávesa CTRL dole.MK_LBUTTONNastavte, pokud je levé tlačítko myši dole.MK_MBUTTONNastavte, jestli je prostřední tlačítko myši dole.MK_RBUTTONNastavte, jestli je pravé tlačítko myši dole.MK_SHIFTNastavte, jestli je klávesa SHIFT nižší.
point
Určuje souřadnici x a y kurzoru. Tyto souřadnice jsou vždy relativní vzhledem k levému hornímu rohu okna.
Poznámky
Volání budou přijímat OnLButtonDblClk pouze okna, která mají CS_DBLCLKS WNDCLASS styl. Toto je výchozí nastavení pro okna třídy Microsoft Foundation. Systém Windows volá OnLButtonDblClk , když uživatel stiskne, uvolní a potom znovu stiskne levé tlačítko myši v rámci časového limitu poklikání systému. Poklikáním na levé tlačítko myši ve skutečnosti vygenerujete čtyři události: WM_LBUTTONDOWNzprávy WM_LBUTTONUP , WM_LBUTTONDBLCLK volání a další WM_LBUTTONUP zprávu při uvolnění tlačítka.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnLButtonDown
Architektura volá tuto členovou funkci, když uživatel stiskne levé tlačítko myši.
afx_msg void OnLButtonDown(
UINT nFlags,
CPoint point);
Parametry
nFlags
Určuje, jestli jsou různé virtuální klíče v výpadku. Tento parametr může být libovolná kombinace následujících hodnot:
MK_CONTROLNastavte, jestli je klávesa CTRL dole.MK_LBUTTONNastavte, pokud je levé tlačítko myši dole.MK_MBUTTONNastavte, jestli je prostřední tlačítko myši dole.MK_RBUTTONNastavte, jestli je pravé tlačítko myši dole.MK_SHIFTNastavte, jestli je klávesa SHIFT nižší.
point
Určuje souřadnici x a y kurzoru. Tyto souřadnice jsou vždy relativní vzhledem k levému hornímu rohu okna.
Poznámky
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnLButtonUp
Architektura volá tuto členovu funkci, když uživatel uvolní levé tlačítko myši.
afx_msg void OnLButtonUp(
UINT nFlags,
CPoint point);
Parametry
nFlags
Určuje, jestli jsou různé virtuální klíče v výpadku. Tento parametr může být libovolná kombinace následujících hodnot:
MK_CONTROLNastavte, jestli je klávesa CTRL dole.MK_MBUTTONNastavte, jestli je prostřední tlačítko myši dole.MK_RBUTTONNastavte, jestli je pravé tlačítko myši dole.MK_SHIFTNastavte, jestli je klávesa SHIFT nižší.
point
Určuje souřadnici x a y kurzoru. Tyto souřadnice jsou vždy relativní vzhledem k levému hornímu rohu okna.
Poznámky
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnMButtonDblClk
Architektura volá tuto členovou funkci, když uživatel dvakrát klikne na prostřední tlačítko myši.
afx_msg void OnMButtonDblClk(
UINT nFlags,
CPoint point);
Parametry
nFlags
Určuje, jestli jsou různé virtuální klíče v výpadku. Tento parametr může být libovolná kombinace následujících hodnot:
MK_CONTROLNastavte, jestli je klávesa CTRL dole.MK_LBUTTONNastavte, pokud je levé tlačítko myši dole.MK_MBUTTONNastavte, jestli je prostřední tlačítko myši dole.MK_RBUTTONNastavte, jestli je pravé tlačítko myši dole.MK_SHIFTNastavte, jestli je klávesa SHIFT nižší.
point
Určuje souřadnici x a y kurzoru. Tyto souřadnice jsou vždy relativní vzhledem k levému hornímu rohu okna.
Poznámky
Volání budou přijímat OnMButtonDblClk pouze okna, která mají CS_DBLCLKS WNDCLASS styl. Toto je výchozí hodnota pro všechna okna třídy Microsoft Foundation. Systém Windows vygeneruje OnMButtonDblClk volání, když uživatel stiskne, uvolní a potom znovu stiskne prostřední tlačítko myši v rámci časového limitu poklikání systému. Poklikáním na prostřední tlačítko myši se ve skutečnosti generují čtyři události: WM_MBUTTONDOWN a zprávy, WM_MBUTTONDBLCLK volání a další WM_MBUTTONUP WM_MBUTTONUP zpráva.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnMButtonDown
Rozhraní volá tuto členovou funkci, když uživatel stiskne prostřední tlačítko myši.
afx_msg void OnMButtonDown(
UINT nFlags,
CPoint point);
Parametry
nFlags
Určuje, jestli jsou různé virtuální klíče v výpadku. Tento parametr může být libovolná kombinace následujících hodnot:
MK_CONTROLNastavte, jestli je klávesa CTRL dole.MK_LBUTTONNastavte, pokud je levé tlačítko myši dole.MK_MBUTTONNastavte, jestli je prostřední tlačítko myši dole.MK_RBUTTONNastavte, jestli je pravé tlačítko myši dole.MK_SHIFTNastavte, jestli je klávesa SHIFT nižší.
point
Určuje souřadnici x a y kurzoru. Tyto souřadnice jsou vždy relativní vzhledem k levému hornímu rohu okna.
Poznámky
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnMButtonUp
Rozhraní volá tuto členovu funkci, když uživatel uvolní prostřední tlačítko myši.
afx_msg void OnMButtonUp(
UINT nFlags,
CPoint point);
Parametry
nFlags
Určuje, jestli jsou různé virtuální klíče v výpadku. Tento parametr může být libovolná kombinace následujících hodnot:
MK_CONTROLNastavte, jestli je klávesa CTRL dole.MK_LBUTTONNastavte, pokud je levé tlačítko myši dole.MK_RBUTTONNastavte, jestli je pravé tlačítko myši dole.MK_SHIFTNastavte, jestli je klávesa SHIFT nižší.
point
Určuje souřadnici x a y kurzoru. Tyto souřadnice jsou vždy relativní vzhledem k levému hornímu rohu okna.
Poznámky
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnMDIActivate
Architektura volá tuto členovu funkci pro deaktivované podřízené okno a aktivované podřízené okno.
afx_msg void OnMDIActivate(
BOOL bActivate,
CWnd* pActivateWnd,
CWnd* pDeactivateWnd);
Parametry
bActivate
TRUE pokud je dítě aktivováno a FALSE pokud je deaktivováno.
pActivateWnd
Obsahuje ukazatel na podřízené okno MDI, které se má aktivovat. Při přijetí podřízeným oknem pActivateWnd MDI obsahuje ukazatel na aktivované podřízené okno. Tento ukazatel může být dočasný a neměl by být uložen pro pozdější použití.
pDeactivateWnd
Obsahuje ukazatel na deaktivované podřízené okno MDI. Tento ukazatel může být dočasný a neměl by být uložen pro pozdější použití.
Poznámky
Podřízené okno MDI je aktivováno nezávisle na okně rámce MDI. Když se rámec aktivuje, zobrazí se podřízené okno, které bylo naposledy WM_NCACTIVATE aktivováno volánímOnMDIActivate, zprávu o vykreslení aktivního rámečku okna a panelu titulků, ale neobdrží další OnMDIActivate volání.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnMeasureItem
Architektura volá tuto členovou funkci podle architektury pro vlastníka tlačítka pro kreslení vlastníka, pole se seznamem, seznamem nebo položku nabídky při vytvoření ovládacího prvku.
afx_msg void OnMeasureItem(
int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStruct);
Parametry
nIDCtl
ID ovládacího prvku.
lpMeasureItemStruct
Odkazuje na datovou MEASUREITEMSTRUCT strukturu, která obsahuje rozměry ovládacího prvku owner-draw.
Poznámky
Přepište tuto členovou funkci a vyplňte MEASUREITEMSTRUCT datovou strukturu, na kterou lpMeasureItemStruct odkazuje a na kterou se vrátí. To informuje Systém Windows o rozměrech ovládacího prvku a umožňuje systému Windows správně zpracovávat interakci uživatele s ovládacím prvku.
Pokud je seznam nebo pole se seznamem vytvořené pomocí LBS_OWNERDRAWVARIABLE stylu nebo CBS_OWNERDRAWVARIABLE stylu, architektura volá tuto funkci pro vlastníka pro každou položku v ovládacím prvku; jinak se tato funkce volá jednou.
Systém Windows zahájí volání OnMeasureItem vlastníka polí se seznamem a seznamů vytvořených pomocí OWNERDRAWFIXED stylu před odesláním WM_INITDIALOG zprávy. V důsledku toho, když vlastník obdrží toto volání, Systém Windows ještě nezomešil výšku a šířku písma použitého v ovládacím prvku; volání funkcí a výpočty, které vyžadují tyto hodnoty, by měly nastat v hlavní funkci aplikace nebo knihovny.
Pokud je měřená položka objekt nebo CMenuCListBox CComboBox , MeasureItem je volána virtuální funkce příslušné třídy. MeasureItem Přepište členskou funkci třídy příslušného ovládacího prvku, která vypočítá a nastaví velikost každé položky.
OnMeasureItembude volána pouze v případě, že je třída ovládacího prvku vytvořena za běhu nebo je vytvořena pomocí LBS_OWNERDRAWVARIABLE stylu.CBS_OWNERDRAWVARIABLE Pokud je ovládací prvek vytvořen editorem dialogového okna, OnMeasureItem nebude volána. Důvodem je to, že WM_MEASUREITEM zpráva se odesílá v rané fázi procesu vytváření ovládacího prvku. Pokud podtřídu použijete , DDX_ControlSubclassDlgItemnebo SubclassWindow, podtřídy obvykle nastane po vytvoření procesu. Proto neexistuje způsob, jak zpracovat WM_MEASUREITEM zprávu ve funkci ovládacího prvku OnChildNotify , což je mechanismus MFC používá k implementaci ON_WM_MEASUREITEM_REFLECT.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnMenuChar
Architektura volá tuto členskou funkci, když uživatel stiskne znak nabídky mnemonic, který neodpovídá žádnému z předdefinovaných mnemonics v aktuální nabídce.
afx_msg LRESULT OnMenuChar(
UINT nChar,
UINT nFlags,
CMenu* pMenu);
Parametry
nChar
V závislosti na nastavení sestavení určuje znak ANSI nebo Unicode, který uživatel stiskl.
nFlags
MF_POPUP Obsahuje příznak, pokud je nabídka místní nabídkou. MF_SYSMENU Obsahuje příznak, pokud se jedná o nabídku Ovládací prvek.
pMenu
Obsahuje ukazatel na vybranou CMenumožnost . Ukazatel může být dočasný a neměl by být uložený.
Návratová hodnota
Slovo s vysokým pořadím návratové hodnoty by mělo obsahovat jeden z následujících kódů příkazů:
| Hodnota | Popis |
|---|---|
| 0 | Řekne systému Windows, aby zahodil znak, který uživatel stiskl, a vytvoří na systémovém reproduktoru krátkou pípnutí. |
| 0 | Řekne systému Windows, aby zavřel aktuální nabídku. |
| 2 | Informuje Systém Windows, že slovo s nízkým pořadím návratové hodnoty obsahuje číslo položky pro určitou položku. Tato položka je vybrána systémem Windows. |
Slovo s nízkým pořadím je ignorováno, pokud slovo s vysokým pořadím obsahuje hodnotu 0 nebo 1. Aplikace by měly tuto zprávu zpracovat, když jsou klávesy akcelerátoru (klávesové zkratky) použity k výběru rastrových obrázků umístěných v nabídce.
Poznámky
Odešle se do CWnd nabídky, která vlastní nabídku. OnMenuChar je volána také, když uživatel stiskne klávesu ALT a jakoukoli jinou klávesu, i když klávesa neodpovídá měmnickému znaku. V tomto případě pMenu odkazuje na nabídku vlastněnou CWndnFlags a je 0.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnMenuDrag
Architektura volá tuto členovou funkci aktuální nabídky přetažení, když uživatel začne přetahovat položku nabídky.
afx_msg UINT OnMenuDrag(
UINT nPos,
CMenu* pMenu);
Parametry
nPos
[v] Umístění indexu položky nabídky při zahájení operace přetažení.
pMenu
[v] Ukazatel na CMenu objekt, který obsahuje položku nabídky.
Návratová hodnota
| Návratová hodnota | Význam |
|---|---|
MND_CONTINUE |
Nabídka by měla zůstat aktivní. Pokud je myš uvolněna, měla by být ignorována. |
MND_ENDMENU |
Nabídka by měla být ukončena. |
Poznámky
Tato metoda obdrží WM_MENUDRAG oznámení, které je popsáno v sadě Windows SDK.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnMenuGetObject
Architektura volá tuto členovou funkci aktuální nabídky přetažení, když kurzor myši zadá položku nabídky nebo se přesune ze středu položky do horní nebo dolní části položky.
afx_msg UINT OnMenuGetObject(MENUGETOBJECTINFO* pMenuGetObjectInfo);
Parametry
pMenu
[v] Ukazatel na MENUGETOBJECTINFO strukturu obsahující informace o nabídce přetažení, na které je kurzor myši zapnutý.
Návratová hodnota
| Návratová hodnota | Význam |
|---|---|
MNGO_NOERROR |
Ukazatel rozhraní, který podporuje operace přetažení a přetažení, se vrátí ve pvObj členu MENUGETOBJECTINFO struktury. V současné době se podporuje pouze IDropTarget rozhraní. |
MNGO_NOINTERFACE |
Nepodporuje se žádné přetahování a přetahování rozhraní. |
Poznámky
Tato metoda obdrží WM_MENUGETOBJECT oznámení, které je popsáno v sadě Windows SDK.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnMenuRButtonUp
Architektura volá tuto členovou funkci, když uživatel uvolní pravé tlačítko myši, zatímco kurzor je na položce nabídky.
afx_msg void OnMenuRButtonUp(
UINT nPos,
CMenu* pMenu);
Parametry
nPos
[v] Umístění indexu položky nabídky při uvolnění pravého tlačítka myši.
pMenu
[v] Ukazatel na CMenu objekt, který obsahuje položku nabídky.
Poznámky
Tato metoda obdrží WM_MENURBUTTONUP oznámení, které je popsáno v sadě Windows SDK. Tato WM_MENURBUTTONUP zpráva umožňuje aplikaci poskytnout místní nabídku pro položku nabídky zadanou ve zprávě.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnMenuSelect
CWnd Pokud je objekt přidružen k nabídce, je volána rozhraním, OnMenuSelect když uživatel vybere položku nabídky.
afx_msg void OnMenuSelect(
UINT nItemID,
UINT nFlags,
HMENU hSysMenu);
Parametry
nItemID
Identifikuje vybranou položku. Pokud je vybraná položka položkou nabídky, nItemID obsahuje ID položky nabídky. Pokud vybraná položka obsahuje místní nabídku, nItemID obsahuje index místní nabídky a hSysMenu obsahuje úchyt hlavní nabídky (kliknuto).
nFlags
Obsahuje kombinaci následujících příznaků nabídky:
MF_BITMAPPoložka je rastrový obrázek.MF_CHECKEDPoložka je zaškrtnutá.MF_DISABLEDPoložka je zakázaná.MF_GRAYEDPoložka je neaktivní.MF_MOUSESELECTPoložka byla vybrána myší.MF_OWNERDRAWPoložka je položka pro kreslení vlastníkem.MF_POPUPPoložka obsahuje místní nabídku.MF_SEPARATORPoložka je oddělovač položek nabídky.MF_SYSMENUPoložka je obsažena v nabídce Ovládací prvek.
hSysMenu
Pokud nFlags obsahuje MF_SYSMENU, identifikuje nabídku přidruženou ke zprávě. Pokud nFlags obsahuje MF_POPUP, identifikuje popisovač hlavní nabídky. Pokud nFlags neobsahuje ani MF_POPUPMF_SYSMENU , nepoužívá se.
Poznámky
Pokud nFlags obsahuje 0xFFFF a hSysMenu obsahuje hodnotu 0, systém Windows nabídku zavřel, protože uživatel stiskl klávesu ESC nebo kliknul mimo nabídku.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnMouseActivate
Architektura volá tuto členovou funkci, když je kurzor v neaktivním okně a uživatel stiskne tlačítko myši.
afx_msg int OnMouseActivate(
CWnd* pDesktopWnd,
UINT nHitTest,
UINT message);
Parametry
pDesktopWnd
Určuje ukazatel na nadřazené okno nejvyšší úrovně aktivovaného okna. Ukazatel může být dočasný a neměl by být uložený.
nHitTest
Určuje směrové číslo oblasti hit-test . Test hitu je test, který určuje umístění kurzoru.
message
Určuje číslo zprávy myši.
Návratová hodnota
Určuje, zda se má aktivovat CWnd událost myši a zda se má událost myši zahodit. Musí to být jedna z následujících hodnot:
MA_ACTIVATEAktivujteCWndobjekt.MA_NOACTIVATENeaktivujteCWndobjekt.MA_ACTIVATEANDEATAktivujteCWndobjekt a zahoďte událost myši.MA_NOACTIVATEANDEATNeaktivujteCWndobjekt a zahoďte událost myši.
Poznámky
Výchozí implementace předá tuto zprávu nadřazené okno před jakýmkoli zpracováním. Pokud nadřazené okno vrátí hodnotu PRAVDA, zpracování se zastaví.
Popis jednotlivých směrových kódů oblastí hit-test naleznete v OnNcHitTest členské funkci.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
Příklad
// The code fragment below shows how to UI activate an ActiveX control.
// CMyAxCtrl is a COleControl-derived class.
int CMyAxCtrl::OnMouseActivate(CWnd *pDesktopWnd, UINT nHitTest, UINT message)
{
OnActivateInPlace(TRUE, NULL); // OnActivateInPlace() is an undocumented function
return COleControl::OnMouseActivate(pDesktopWnd, nHitTest, message);
}
CWnd::OnMouseHover
Architektura volá tuto členskou funkci, když kurzor najede na klientskou oblast okna po dobu uvedenou v předchozím volání TrackMouseEvent.
afx_msg void OnMouseHover(
UINT nFlags,
CPoint point);
Parametry
nFlags
[v] Bitové kombinace (OR) příznaků, které označují, které modifikační klávesy jsou stisknuty. Příznak například označuje, MK_CONTROL že je stisknuta klávesa CTRL.
point
[v] Objekt CPoint , který určuje x a y souřadnice kurzoru vzhledem k levému hornímu rohu klientské oblasti.
Poznámky
Tato metoda obdrží WM_MOUSEHOVER oznámení, které je popsáno v sadě Windows SDK.
Parametr nFlags může být kombinací modifikačních kláves uvedených v následující tabulce. Další informace naleznete v tématu O vstupu myši.
| Modifikační klávesa | Popis |
|---|---|
MK_CONTROL |
Stisknete klávesu CTRL. |
MK_LBUTTON |
Levé tlačítko myši se stiskne. |
MK_MBUTTON |
Prostřední tlačítko myši se stiskne. |
MK_RBUTTON |
Pravé tlačítko myši se stiskne. |
MK_SHIFT |
Stisknete klávesu SHIFT. |
MK_XBUTTON1 |
Stisknete XBUTTON1 tlačítko myši microsoft IntelliMouse. |
MK_XBUTTON2 |
Stisknete XBUTTON2 tlačítko myši microsoft IntelliMouse. |
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnMouseHWheel
Architektura volá tohoto člena, když je vodorovné kolečko myši nakloněné nebo otočené.
afx_msg void OnMouseHWheel(
UINT nFlags,
short zDelta,
CPoint pt);
Parametry
nFlags
[v] Bitové kombinace (OR) příznaků, které označují, které modifikační klávesy jsou stisknuty. Příznak například označuje, MK_CONTROL že je stisknuta klávesa CTRL. Seznam příznaků naleznete v podnadpisu Parametry zprávy v části O vstupu myši.
zDelta
[v] Označuje vzdálenost, o kterou je kolo otočené, vyjádřené v násobcích nebo děleních WHEEL_DELTA, což je 120. Kladná hodnota označuje, že kolo bylo otočené doprava; záporná hodnota označuje, že kolečko bylo otočené doleva.
pt
[v] Objekt CPoint , který určuje x a y souřadnice kurzoru vzhledem k levému hornímu rohu klientské oblasti.
Poznámky
Tato metoda obdrží WM_MOUSEHWHEEL zprávu s oznámením, která je popsána v sadě Windows SDK. Tato zpráva se odešle do okna s fokusem, když je vodorovné kolečko myši nakloněné nebo otočené.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnMouseLeave
Architektura volá tuto členskou funkci, když kurzor opustí klientskou oblast okna určeného před voláním TrackMouseEvent.
afx_msg void OnMouseLeave();
Poznámky
Tato metoda obdrží WM_MOUSELEAVE oznámení, které je popsáno v sadě Windows SDK.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnMouseMove
Architektura volá tuto členovu funkci, když se přesune kurzor myši.
afx_msg void OnMouseMove(
UINT nFlags,
CPoint point);
Parametry
nFlags
Určuje, jestli jsou různé virtuální klíče v výpadku. Tento parametr může být libovolná kombinace následujících hodnot:
MK_CONTROLNastavte, jestli je klávesa CTRL dole.MK_LBUTTONNastavte, pokud je levé tlačítko myši dole.MK_MBUTTONNastavte, jestli je prostřední tlačítko myši dole.MK_RBUTTONNastavte, jestli je pravé tlačítko myši dole.MK_SHIFTNastavte, jestli je klávesa SHIFT nižší.
point
Určuje souřadnici x a y kurzoru. Tyto souřadnice jsou vždy relativní vzhledem k levému hornímu rohu okna.
Poznámky
Pokud se myš nezachytí, WM_MOUSEMOVE zpráva se přijme objektem CWnd pod kurzorem myši. V opačném případě zpráva přejde do okna, které zachytilo myš.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnMouseWheel
Architektura volá tuto členskou funkci jako uživatel otočí kolečko myši a narazí na další zářez kola.
afx_msg BOOL OnMouseWheel(
UINT nFlags,
short zDelta,
CPoint pt);
Parametry
nFlags
Určuje, jestli jsou různé virtuální klíče v výpadku. Tento parametr může být libovolná kombinace následujících hodnot:
MK_CONTROLNastavte, jestli je klávesa CTRL dole.MK_LBUTTONNastavte, pokud je levé tlačítko myši dole.MK_MBUTTONNastavte, jestli je prostřední tlačítko myši dole.MK_RBUTTONNastavte, jestli je pravé tlačítko myši dole.MK_SHIFTNastavte, jestli je klávesa SHIFT nižší.
zDelta
Označuje vzdálenost otočenou. Hodnota zDelta je vyjádřena v násobcích nebo děleních WHEEL_DELTA, což je 120. Hodnota menší než nula označuje otočení zpět (směrem k uživateli), zatímco hodnota větší než nula označuje otáčení vpřed (mimo uživatele). Uživatel může tuto odpověď obrátit změnou nastavení kolečka v softwaru myši. Další informace o tomto parametru najdete v poznámkách.
pt
Určuje souřadnici x a y kurzoru. Tyto souřadnice jsou vždy relativní vzhledem k levému hornímu rohu obrazovky.
Návratová hodnota
Nenulové, pokud je povoleno posouvání kolečkem myši; jinak 0.
Poznámky
Pokud není přepsáno, OnMouseWheel volá výchozí hodnotu WM_MOUSEWHEEL. Systém Windows automaticky směruje zprávu do ovládacího prvku nebo podřízeného okna s fokusem. Funkce DefWindowProc Win32 rozšíří zprávu o nadřazený řetězec do okna, které ji zpracuje.
Parametr zDelta je násobek WHEEL_DELTA, který je nastaven na 120. Tato hodnota je prahová hodnota pro akci, která se má provést, a jedna taková akce (například posouvání o jeden zářez) by se měla objevit pro každou rozdílovou hodnotu.
WHEEL_DELTA bylo nastaveno na 120, aby bylo možné jemně rozlišovat kolečka, jako je volně rotující kolo bez zářezů. Kolečko s jemným rozlišením odesílá více zpráv na otočení, ale každá zpráva má menší rozdílovou hodnotu. Pokud chcete takové kolečko použít, přidejte příchozí zDelta hodnoty, dokud WHEEL_DELTA nedosáhnete (abyste získali stejnou odpověď pro dané rozdílové otočení), nebo se v odpovědi na častější zprávy posuňte částečné řádky. Můžete také zvolit členitost posouvání a shromáždí rozdíly, dokud WHEEL_DELTA nedosáhnete.
Přepište tuto členovou funkci tak, aby poskytovala vlastní chování posouvání kolečkem myši.
Poznámka:
OnMouseWheelzpracovává zprávy pro systém Windows NT 4.0 a novější verze. Pro Windows 95/98 nebo systém Windows NT zpracování zpráv 3.51 použijte OnRegisteredMouseWheel.
CWnd::OnMove
Architektura volá tuto členovu funkci po přesunutí objektu CWnd .
afx_msg void OnMove(
int x,
int y);
Parametry
x
Určuje nové umístění souřadnic x levého horního rohu klientské oblasti. Toto nové umístění je uvedeno v souřadnicích obrazovky pro překrývaná a automaticky otevíraná okna a souřadnice nadřazeného klienta pro podřízená okna.
y
Určuje nové umístění souřadnic y levého horního rohu klientské oblasti. Toto nové umístění je uvedeno v souřadnicích obrazovky pro překrývaná a automaticky otevíraná okna a souřadnice nadřazeného klienta pro podřízená okna.
Poznámky
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnMoving
Architektura volá tuto členovou funkci, zatímco uživatel přesouvá CWnd objekt.
afx_msg void OnMoving(
UINT nSide,
LPRECT lpRect);
Parametry
nSide
Okraj okna, který se má přesunout.
lpRect
CRect Adresa struktury nebo RECT struktury, která bude obsahovat souřadnice položky
Poznámky
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnNcActivate
Architektura volá tuto členovou funkci, když je třeba změnit oblast mimo klient, aby označí aktivní nebo neaktivní stav.
afx_msg BOOL OnNcActivate(BOOL bActive);
Parametry
bActive
Určuje, kdy je třeba změnit řádek titulků nebo ikonu, aby označí aktivní nebo neaktivní stav. Parametr bActive je TRUE v případě, že se má vykreslit aktivní titulek nebo ikona. Slouží FALSE k neaktivnímu titulku nebo ikoně.
Návratová hodnota
Nenulové, pokud by systém Windows měl pokračovat ve výchozím zpracování; 0, aby se zabránilo deaktivaci panelu titulků nebo ikony.
Poznámky
Výchozí implementace nakreslí záhlaví a text záhlaví v jejich aktivních barvách, pokud bActive je TRUE a v neaktivních barvách, pokud bActive je FALSE.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnNcCalcSize
Architektura volá tuto členskou funkci, pokud je potřeba vypočítat velikost a umístění klientské oblasti.
afx_msg void OnNcCalcSize(
BOOL bCalcValidRects,
NCCALCSIZE_PARAMS* lpncsp);
Parametry
bCalcValidRects
Určuje, zda má aplikace určit, která část klientské oblasti obsahuje platné informace. Systém Windows zkopíruje platné informace do zadané oblasti v rámci nové klientské oblasti. Pokud má tento parametr hodnotu TRUE, měla by aplikace určit, která část klientské oblasti je platná.
lpncsp
Odkazuje na datovou NCCALCSIZE_PARAMS strukturu, která obsahuje informace, které může aplikace použít k výpočtu nové velikosti a umístění obdélníku CWnd (včetně klientské oblasti, ohraničení, titulku, posuvníků atd.).
Poznámky
Při zpracování této zprávy může aplikace řídit obsah klientské oblasti okna, když se změní velikost nebo umístění okna.
Bez ohledu na hodnotu bCalcValidRects, první obdélník v matici určený rgrc člen NCCALCSIZE_PARAMS struktury struktury obsahuje souřadnice okna. V případě podřízeného okna jsou souřadnice relativní vzhledem k klientské oblasti nadřazeného okna. Pro okna nejvyšší úrovně jsou souřadnice obrazovek. Aplikace by měla upravit rgrc[0] obdélník tak, aby odrážela velikost a umístění klientské oblasti.
Obdélníky rgrc[1] jsou rgrc[2] platné pouze v případě, že bCalcValidRects je TRUE. V tomto případě rgrc[1] obdélník obsahuje souřadnice okna před přesunutím nebo změnou velikosti okna. Obdélník rgrc[2] obsahuje souřadnice klientské oblasti okna před přesunutím okna. Všechny souřadnice jsou relativní vzhledem k nadřazenému okně nebo obrazovce.
Výchozí implementace vypočítá velikost klientské oblasti na základě vlastností okna (přítomnost posuvníků, nabídky atd.) a umístí výsledek do lpncsp.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnNcCreate
Architektura volá tuto členovou funkci před zprávou WM_CREATE při prvním vytvoření objektu CWnd .
afx_msg BOOL OnNcCreate(LPCREATESTRUCT lpCreateStruct);
Parametry
lpCreateStruct
Odkazuje na datovou CREATESTRUCT strukturu pro CWnd.
Návratová hodnota
Nenulové, pokud je vytvořena oblast nonclient. Je to 0, pokud dojde k chybě; Create funkce se v tomto případě vrátí failure .
Poznámky
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnNcDestroy
Volané rozhraním při zničení oblasti jiného klienta a je poslední člen funkce volána při zničení okna Systému Windows.
afx_msg void OnNcDestroy();
Poznámky
Výchozí implementace provede určité vyčištění a potom zavolá virtuální člen funkce PostNcDestroy.
Pokud chcete provést vlastní vyčištění, například delete this operaci, přepištePostNcDestroy. Pokud přepíšete OnNcDestroy, musíte volat OnNcDestroy v základní třídě, aby se zajistilo, že veškerá paměť interně přidělená pro okno je uvolněna.
CWnd::OnNcHitTest
Architektura volá tuto členovu funkci pro CWnd objekt, který obsahuje kurzor (nebo CWnd objekt, který použil SetCapture členské funkce k zachycení vstupu myši) při každém přesunutí myši.
afx_msg LRESULT OnNcHitTest(CPoint point);
Parametry
point
Obsahuje souřadnice x a y kurzoru. Tyto souřadnice jsou vždy souřadnice obrazovky.
Návratová hodnota
Jedna z hodnot s výčtem myši hit-test. Podívejte WM_NCHITTEST se na seznam hodnot.
Poznámky
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnNcLButtonDblClk
Architektura volá tuto členovou funkci, když uživatel dvakrát klikne na levé tlačítko myši, zatímco kurzor je v jiné než klientské oblasti CWnd.
afx_msg void OnNcLButtonDblClk(
UINT nHitTest,
CPoint point);
Parametry
nHitTest
Určuje kód hit-test. Test hitu je test, který určuje umístění kurzoru. Podívejte WM_NCHITTEST se na seznam hodnot.
point
Určuje CPoint objekt, který obsahuje souřadnice x a y obrazovky pozice kurzoru. Tyto souřadnice jsou vždy relativní vzhledem k levému hornímu rohu obrazovky.
Poznámky
V případě potřeby WM_SYSCOMMAND se zpráva odešle.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnNcLButtonDown
Architektura volá tuto členovou funkci, když uživatel stiskne levé tlačítko myši, zatímco kurzor je v jiné než klientské oblasti objektu CWnd .
afx_msg void OnNcLButtonDown(
UINT nHitTest,
CPoint point);
Parametry
nHitTest
Určuje kód hit-test. Test hitu je test, který určuje umístění kurzoru. Podívejte WM_NCHITTEST se na seznam hodnot.
point
Určuje CPoint objekt, který obsahuje souřadnice x a y obrazovky pozice kurzoru. Tyto souřadnice jsou vždy relativní vzhledem k levému hornímu rohu obrazovky.
Poznámky
V případě potřeby se WM_SYSCOMMAND odešle.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnNcLButtonUp
Architektura volá tuto členovou funkci, když uživatel uvolní levé tlačítko myši, zatímco kurzor je v jiné oblasti než klient.
afx_msg void OnNcLButtonUp(
UINT nHitTest,
CPoint point);
Parametry
nHitTest
Určuje kód hit-test. Test hitu je test, který určuje umístění kurzoru. Podívejte WM_NCHITTEST se na seznam hodnot.
point
Určuje CPoint objekt, který obsahuje souřadnice x a y obrazovky pozice kurzoru. Tyto souřadnice jsou vždy relativní vzhledem k levému hornímu rohu obrazovky.
Poznámky
V případě potřeby WM_SYSCOMMAND se odešle.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnNcMButtonDblClk
Architektura volá tuto členovou funkci, když uživatel dvakrát klikne na prostřední tlačítko myši, zatímco kurzor je v jiné oblasti než klient.
afx_msg void OnNcMButtonDblClk(
UINT nHitTest,
CPoint point);
Parametry
nHitTest
Určuje kód hit-test. Test hitu je test, který určuje umístění kurzoru.
point
Určuje CPoint objekt, který obsahuje souřadnice x a y obrazovky pozice kurzoru. Tyto souřadnice jsou vždy relativní vzhledem k levému hornímu rohu obrazovky.
Poznámky
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnNcMButtonDown
Architektura volá tuto členovou funkci, když uživatel stiskne prostřední tlačítko myši, zatímco kurzor je v jiné oblasti než klient.
afx_msg void OnNcMButtonDown(
UINT nHitTest,
CPoint point);
Parametry
nHitTest
Určuje kód hit-test. Test hitu je test, který určuje umístění kurzoru.
point
Určuje CPoint objekt, který obsahuje souřadnice x a y obrazovky pozice kurzoru. Tyto souřadnice jsou vždy relativní vzhledem k levému hornímu rohu obrazovky.
Poznámky
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnNcMButtonUp
Architektura volá tuto členovou funkci, když uživatel uvolní prostřední tlačítko myši, zatímco kurzor je v jiné než klientské oblasti.
afx_msg void OnNcMButtonUp(
UINT nHitTest,
CPoint point);
Parametry
nHitTest
Určuje kód hit-test. Test hitu je test, který určuje umístění kurzoru.
point
Určuje CPoint objekt, který obsahuje souřadnice x a y obrazovky pozice kurzoru. Tyto souřadnice jsou vždy relativní vzhledem k levému hornímu rohu obrazovky.
Poznámky
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnNcMouseHover
Architektura volá tuto členovou funkci, když kurzor najede na oblast mimo klient okna po dobu uvedenou v předchozím volání TrackMouseEvent.
afx_msg void OnNcMouseHover(
UINT nHitTest,
CPoint point);
Parametry
nHitTest
[v] Hodnota hit-test vrácená CWnd::DefWindowProc funkcí v důsledku zpracování WM_NCHITTEST zprávy.
point
[v] Objekt CPoint , který určuje souřadnice x a y kurzoru vzhledem k levému hornímu rohu obrazovky.
Poznámky
Tato metoda obdrží WM_NCMOUSEHOVER oznámení, které je popsáno v sadě Windows SDK.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnNcMouseLeave
Architektura volá tuto členovou funkci, když kurzor opustí oblast mimo klient okna určenou před voláním TrackMouseEvent.
afx_msg void OnNcMouseLeave();
Poznámky
Tato metoda obdrží WM_NCMOUSELEAVE oznámení, které je popsáno v sadě Windows SDK.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnNcMouseMove
Architektura volá tuto členovou funkci, když se kurzor přesune v jiné oblasti než klient.
afx_msg void OnNcMouseMove(
UINT nHitTest,
CPoint point);
Parametry
nHitTest
Určuje kód hit-test. Test hitu je test, který určuje umístění kurzoru.
point
Určuje CPoint objekt, který obsahuje souřadnice x a y obrazovky pozice kurzoru. Tyto souřadnice jsou vždy relativní vzhledem k levému hornímu rohu obrazovky.
Poznámky
V případě potřeby WM_SYSCOMMAND se zpráva odešle.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnNcPaint
Architektura volá tuto členovou funkci, když je potřeba nakreslit oblast, která není klient.
afx_msg void OnNcPaint();
Poznámky
Výchozí implementace maluje rámeček okna.
Aplikace může toto volání přepsat a nakreslit vlastní rámec okna. Oblast výřezu je vždy obdélníková, i když je tvar rámečku změněn.
CWnd::OnNcRButtonDblClk
Architektura volá tuto členovou funkci, když uživatel dvakrát klikne na pravé tlačítko myši, zatímco kurzor je v jiné než klientské oblasti CWnd.
afx_msg void OnNcRButtonDblClk(
UINT nHitTest,
CPoint point);
Parametry
nHitTest
Určuje kód hit-test. Test hitu je test, který určuje umístění kurzoru.
point
Určuje CPoint objekt, který obsahuje souřadnice x a y obrazovky pozice kurzoru. Tyto souřadnice jsou vždy relativní vzhledem k levému hornímu rohu obrazovky.
Poznámky
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnNcRButtonDown
Architektura volá tuto členovou funkci, když uživatel stiskne pravé tlačítko myši, zatímco kurzor je v jiné oblasti než klient.
afx_msg void OnNcRButtonDown(
UINT nHitTest,
CPoint point);
Parametry
nHitTest
Určuje kód hit-test. Test hitu je test, který určuje umístění kurzoru.
point
Určuje CPoint objekt, který obsahuje souřadnice x a y obrazovky pozice kurzoru. Tyto souřadnice jsou vždy relativní vzhledem k levému hornímu rohu obrazovky.
Poznámky
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnNcRButtonUp
Architektura volá tuto členovou funkci, když uživatel uvolní pravé tlačítko myši, zatímco kurzor je v jiné než klientské oblasti.
afx_msg void OnNcRButtonUp(
UINT nHitTest,
CPoint point);
Parametry
nHitTest
Určuje kód hit-test. Test hitu je test, který určuje umístění kurzoru.
point
Určuje CPoint objekt, který obsahuje souřadnice x a y obrazovky pozice kurzoru. Tyto souřadnice jsou vždy relativní vzhledem k levému hornímu rohu obrazovky.
Poznámky
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnNcRenderingChanged
Architektura volá tohoto člena, když se změnily zásady vykreslování pro oblast nonclient.
afx_msg void OnNcRenderingChanged(BOOL bIsRendering);
Parametry
bIsRendering
[v] TRUE Pokud je pro oblast okna bez klienta v okně povolené vykreslování Desktop Window Manageru (DWM); FALSE pokud je vykreslování zakázané.
Poznámky
Tato metoda obdrží WM_DWMNCRENDERINGCHANGED oznámení, které je popsáno v sadě Windows SDK.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnNcXButtonDblClk
Architektura volá tuto členovou funkci, když uživatel poklikne XBUTTON1 nebo XBUTTON2 když je kurzor v oblasti mimo klient okna.
void OnNcXButtonDblClk(
short nHitTest,
UINT nButton,
CPoint point);
Parametry
nHitTest
[v] Hodnota hit-test vrácená CWnd::DefWindowProc funkcí v důsledku zpracování WM_NCHITTEST zprávy.
nButton
[v] Hodnota XBUTTON1 , zda je první tlačítko Microsoft Intellimouse X poklikání nebo XBUTTON2 pokud je druhé tlačítko X poklikání.
point
[v] Objekt CPoint , který určuje x a y souřadnice kurzoru vzhledem k levému hornímu rohu klientské oblasti.
Poznámky
Tato metoda obdrží WM_XBUTTONDBLCLK oznámení, které je popsáno v sadě Windows SDK. Tato zpráva se publikuje do okna, které obsahuje kurzor. Pokud okno zachytilo myš, tato zpráva se nezveřejní.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnNcXButtonDown
Architektura volá tuto členovou funkci, když uživatel stiskne XBUTTON1 nebo XBUTTON2 myší, zatímco kurzor je v jiné oblasti okna.
afx_msg void OnNcXButtonDown(
short nHitTest,
UINT nButton,
CPoint point);
Parametry
nHitTest
[v] Hodnota hit-test vrácená CWnd::DefWindowProc funkcí v důsledku zpracování WM_NCHITTEST zprávy.
nButton
[v] Hodnota XBUTTON1 , jestli je stisknuto první tlačítko X myši nebo XBUTTON2 pokud je stisknuto druhé tlačítko X.
point
[v] Objekt CPoint , který určuje x a y souřadnice kurzoru vzhledem k levému hornímu rohu obrazovky.
Poznámky
Tato metoda obdrží WM_NCXBUTTONDOWN oznámení, které je popsáno v sadě Windows SDK. Tato zpráva se publikuje do okna, které obsahuje kurzor. Pokud okno zachytilo myš, tato zpráva se nezveřejní.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnNcXButtonUp
Architektura volá tuto členovou funkci, když uživatel uvolní XBUTTON1 nebo XBUTTON2 myš, zatímco kurzor je v jiné než klientské oblasti okna.
afx_msg void OnNcXButtonUp(
short nHitTest,
UINT nButton,
CPoint point);
Parametry
nHitTest
[v] Hodnota hit-test vrácená CWnd::DefWindowProc funkcí v důsledku zpracování WM_NCHITTEST zprávy.
nButton
[v] Hodnota XBUTTON1 , zda je vydáno první tlačítko myši X nebo XBUTTON2 pokud je vydáno druhé tlačítko X.
point
[v] Objekt CPoint , který určuje souřadnice x a y kurzoru vzhledem k levému hornímu rohu obrazovky.
Poznámky
Tato metoda obdrží WM_NCXBUTTONUP oznámení, které je popsáno v sadě Windows SDK. Tato zpráva se publikuje do okna, které obsahuje kurzor. Pokud okno zachytilo myš, tato zpráva se nezveřejní.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnNextMenu
Architektura volá tuto členovou funkci, když se k přepínání mezi řádkem nabídek a systémovou nabídkou používá klávesa se šipkou doprava nebo doleva.
afx_msg void OnNextMenu(
UINT nKey,
LPMDINEXTMENU lpMdiNextMenu);
Parametry
nKey
[v] Bitové kombinace (OR) příznaků, které označují, které modifikační klávesy jsou stisknuty. Příznak například označuje, MK_CONTROL že je stisknuta klávesa CTRL. Seznam příznaků naleznete v podnadpisu Parametry zprávy v části O vstupu myši.
lpMdiNextMenu
[v] Ukazatel na MDINEXTMENU strukturu, která obsahuje informace o nabídce, která se má aktivovat.
Poznámky
Tato metoda obdrží WM_UNINITMENUPOPUP oznámení, které je popsáno v sadě Windows SDK. V reakci na tuto zprávu může vaše aplikace nastavit hmenuNext člen MDINEXTMENU struktury, aby určil nabídku, na kterou se má přepnout, a hwndNext člen, který určí okno pro příjem zpráv s oznámením nabídky.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnNotify
Architektura volá tuto členovou funkci, která informuje nadřazené okno o ovládacím prvku, že došlo k události v ovládacím prvku nebo že ovládací prvek vyžaduje určitý druh informací.
virtual BOOL OnNotify(
WPARAM wParam,
LPARAM lParam,
LRESULT* pResult);
Parametry
wParam
Identifikuje ovládací prvek, který zprávu odešle, pokud je zpráva z ovládacího prvku. wParam Jinak je to 0.
lParam
Ukazatel na strukturu oznámení (NMHDR), která obsahuje kód oznámení a další informace. U některých zpráv s oznámením tento parametr odkazuje na větší strukturu, která má NMHDR strukturu jako její první člen.
pResult
Ukazatel na proměnnou LRESULT , do které se má uložit kód výsledku, pokud je zpráva zpracována.
Návratová hodnota
Aplikace vrátí nenulovou hodnotu, pokud zpracuje tuto zprávu; jinak 0.
Poznámky
OnNotify zpracovává mapu zpráv pro řídicí oznámení.
Přepište tuto členovou funkci v odvozené třídě pro zpracování WM_NOTIFY zprávy. Přepsání nezpracuje mapu zpráv, pokud není volána základní třída OnNotify .
Další informace o WM_NOTIFY zprávě najdete v technické poznámce 61 (TN061) ON_NOTIFY a WM_NOTIFY zprávách. Můžete také zajímat související témata popsaná v tématech ovládacích prvků ovládacích prvků a TN062, Reflexe zpráv pro ovládací prvky Windows.
CWnd::OnNotifyFormat
Architektura volá tuto členovou funkci k určení, zda aktuální okno přijímá struktury ANSI nebo Unicode v WM_NOTIFY oznamovací zprávě.
afx_msg UINT OnNotifyFormat(
CWnd* pWnd,
UINT nCommand);
Parametry
pWnd
[v] Ukazatel na CWnd objekt, který představuje okno odesílající WM_NOTIFY zprávu. Tento parametr je ukazatel na ovládací prvek, pokud nCommand je NF_QUERYparametr , nebo ukazatel na nadřazené okno ovládacího prvku, pokud nCommand je NF_REQUERY.
nCommand
[v] Hodnota příkazu, která se specializuje na WM_NOTIFY zprávu. Možné hodnoty:
NF_QUERY– Zpráva je dotaz, který určuje, jestli se mají veWM_NOTIFYzprávách používat struktury ANSI nebo Unicode. Tato zpráva se odesílá z ovládacího prvku do nadřazeného okna během vytváření ovládacího prvku a v reakci naNF_REQUERYformu této zprávy.NF_REQUERY- Zpráva je žádost o odeslání formuláře této zprávy do nadřazeného okna ovládacího prvkuNF_QUERY. Tento požadavek se odešle z nadřazeného okna a požádá ovládací prvek o opětovném dotazování nadřazeného objektu o typu struktury, který se má použít veWM_NOTIFYzprávách.nCommandPokud jeNF_REQUERYparametr , návratová hodnota je výsledkem operace opětovného dotazu.
Návratová hodnota
| Vrácená hodnota | Význam |
|---|---|
NFR_ANSI |
Struktury ANSI by měly být použity ve WM_NOTIFY zprávách posílaných ovládacím prvku. |
NFR_UNICODE |
Struktury Unicode by měly být použity ve WM_NOTIFY zprávách posílaných ovládacím prvku. |
| 0 | Došlo k chybě. |
Poznámky
Tato metoda obdrží WM_NOTIFYFORMAT oznámení, které je popsáno v sadě Windows SDK. WM_NOTIFY zprávy se odesílají z běžného ovládacího prvku do nadřazeného okna a z nadřazeného okna do společného ovládacího prvku.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnPaint
Architektura volá tuto členskou funkci, když systém Windows nebo aplikace požádá o opětovné nakreslení části okna aplikace.
afx_msg void OnPaint();
Poznámky
Zpráva WM_PAINT se odešle, když UpdateWindow je volána nebo RedrawWindow členová funkce.
V důsledku volání RedrawWindow členské funkce s RDW_INTERNALPAINT nastaveným příznakem může okno přijímat interní malovací zprávy. V takovém případě okno nemusí mít oblast aktualizace. Aplikace by měla volat GetUpdateRect členovou funkci, aby určila, jestli má okno oblast aktualizace. Pokud GetUpdateRect vrátí hodnotu 0, aplikace by neměla volat BeginPaint funkce a EndPaint členské funkce.
Je zodpovědností aplikace zkontrolovat případné vnitřní překreslení nebo aktualizaci tak, že se podíváte na její interní datové struktury pro každou WM_PAINT zprávu, protože WM_PAINT zpráva mohla být způsobena neplatnou oblastí i voláním RedrawWindow členské funkce se RDW_INTERNALPAINT sadou příznaků.
Systém Windows odešle interní WM_PAINT zprávu pouze jednou. Po odeslání interní WM_PAINT zprávy do okna UpdateWindow členovou funkcí nebudou odeslány ani publikovány žádné další WM_PAINT zprávy, dokud nebude okno zneplatněna nebo dokud RedrawWindow se členová funkce znovu nevolá s nastaveným příznakem RDW_INTERNALPAINT .
Informace o vykreslení obrázku v aplikacích pro dokument/zobrazení naleznete v tématu CView::OnDraw.
Další informace o použití WM_Paintnaleznete v následujících tématech v sadě Windows SDK:
CWnd::OnPaintClipboard
Členská funkce vlastníka OnPaintClipboard schránky je volána prohlížečem schránky, pokud vlastník schránky umístil data do schránky ve CF_OWNERDISPLAY formátu a klientská oblast prohlížeče schránky potřebuje překreslit.
afx_msg void OnPaintClipboard(
CWnd* pClipAppWnd,
HGLOBAL hPaintStruct);
Parametry
pClipAppWnd
Určuje ukazatel na okno aplikace schránka. Ukazatel může být dočasný a neměl by být uložen pro pozdější použití.
hPaintStruct
Identifikuje datovou PAINTSTRUCT strukturu, která definuje, jakou část klientské oblasti se má malovat.
Poznámky
Chcete-li zjistit, zda celá oblast klienta nebo jen část z ní potřebuje překreslit, musí vlastník schránky porovnat rozměry oblasti výkresu zadané ve rcpaint členu PAINTSTRUCT struktury s dimenzemi zadanými v posledním OnSizeClipboard volání členské funkce.
OnPaintClipboard by měla použít GlobalLock funkci Windows k uzamčení paměti obsahující PAINTSTRUCT datovou strukturu a odemknutí této paměti pomocí GlobalUnlock funkce Windows před ukončením.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnPaletteChanged
Architektura volá tuto členovou funkci pro všechna okna nejvyšší úrovně po okně s fokusem vstupu si uvědomila svou logickou paletu, čímž se změní systémová paleta.
afx_msg void OnPaletteChanged(CWnd* pFocusWnd);
Parametry
pFocusWnd
Určuje ukazatel na okno, které způsobilo změnu systémové palety. Ukazatel může být dočasný a neměl by být uložený.
Poznámky
Toto volání umožňuje okno bez vstupního fokusu, který používá paletu barev k realizaci logických palet a aktualizaci oblasti klienta.
Členová OnPaletteChanged funkce se volá pro všechna okna nejvyšší úrovně a překrývající se okna, včetně těch, které změnily systémovou paletu a způsobily WM_PALETTECHANGED odeslání zprávy. Pokud některé podřízené okno používá paletu barev, musí se do ní tato zpráva předat.
Aby nedocházelo k nekonečné smyčce, nemělo by okno realizovat svou paletu, pokud neurčí, že pFocusWnd neobsahuje ukazatel na sebe.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnPaletteIsChanging
Architektura volá tuto členovou funkci, která informuje aplikace, že aplikace bude realizovat svou logickou paletu.
afx_msg void OnPaletteIsChanging(CWnd* pRealizeWnd);
Parametry
pRealizeWnd
Určuje okno, které se chystá realizovat jeho logickou paletu.
Poznámky
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnParentNotify
Členská funkce nadřazeného objektu OnParentNotify je volána architekturou při vytvoření nebo zničení jeho podřízeného okna nebo když uživatel klikne na tlačítko myši, zatímco kurzor je nad podřízeným oknem.
afx_msg void OnParentNotify(
UINT message,
LPARAM lParam);
Parametry
message
Určuje událost, pro kterou je nadřazený objekt upozorněn, a identifikátor podřízeného okna. Událost je slovo messages nízkým pořadím . Pokud je WM_CREATE událost nebo WM_DESTROY, slovo s vysokým pořadím message je identifikátor podřízeného okna; jinak není slovo s vysokým pořadím definováno. Událost (slovo s nízkým pořadím message) může být libovolná z těchto hodnot:
WM_CREATEVytváří se podřízené okno.WM_DESTROYPodřízené okno je zničeno.WM_LBUTTONDOWNUživatel umístil kurzor myši na podřízené okno a kliknul na levé tlačítko myši.WM_MBUTTONDOWNUživatel umístil kurzor myši na podřízené okno a kliknul na prostřední tlačítko myši.WM_RBUTTONDOWNUživatel umístil kurzor myši na podřízené okno a kliknul na pravé tlačítko myši.
lParam
Pokud je událost (slovo s nízkým pořadím) message WM_CREATE nebo WM_DESTROY, lParam určuje úchyt okna podřízeného okna; jinak lParam obsahuje souřadnice x a y kurzoru. Souřadnice x je ve slově nízkého pořadí a souřadnice y je ve slově s vysokým pořadím.
Poznámky
Při vytváření podřízeného okna systém volá OnParentNotify těsně před Create členovou funkcí, která vytvoří okno. Když je podřízené okno zničeno, systém volá OnParentNotify před tím, než dojde ke zpracování ke zničení okna.
OnParentNotify je volána pro všechna nadřazená okna podřízeného okna, včetně okna nejvyšší úrovně.
Všechna podřízená okna s výjimkou těch, které mají styl, odešlou WS_EX_NOPARENTNOTIFY tuto zprávu do nadřazených oken. Ve výchozím nastavení mají WS_EX_NOPARENTNOTIFY podřízená okna v dialogovém okně styl, pokud podřízené okno nebylo vytvořeno bez tohoto stylu voláním CreateEx členské funkce.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnPowerBroadcast
Architektura volá tuto členovou funkci, když dojde k události řízení spotřeby.
afx_msg UINT OnPowerBroadcast(
UINT nPowerEvent,
UINT nEventData);
Parametry
nPowerEvent
[v] Událost řízení spotřeby.
nEventData
[v] Data specifická pro události.
Návratová hodnota
Pokud se jedná o žádost, vraťte TRUE se k žádosti nebo BROADCAST_QUERY_DENY ji odepřete.
Poznámky
Tato metoda obdrží WM_POWERBROADCAST zprávu popsanou v sadě Windows SDK.
Parametr nPowerEvent určuje události, jako je nízká spotřeba baterie, stav napájení se změnil, oprávnění k pozastavení operace se vyžádá nebo odmítne, operace se po události automaticky obnoví, systém pozastaví operaci nebo se po pozastavení operace obnoví. Parametr nEventData se obvykle nepoužívá. Další informace najdete v wParam tématu a lParam parametry WM_POWERBROADCAST zprávy.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnQueryDragIcon
Architektura volá tuto členovou funkci minimalizovaným (ikonickým) oknem, které nemá pro svou třídu definovanou ikonu.
afx_msg HCURSOR OnQueryDragIcon();
Návratová hodnota
Hodnota dvojitého slova, která obsahuje kurzor nebo úchyt ikony ve slově s nízkým pořadím. Kurzor nebo ikona musí být kompatibilní s rozlišením ovladače zobrazení. Pokud aplikace vrátí NULL, systém zobrazí výchozí kurzor. Výchozí návratová hodnota je NULL.
Poznámky
Systém toto volání provede, aby získal kurzor, který se zobrazí, zatímco uživatel přetáhne minimalizované okno. Pokud aplikace vrátí úchyt ikony nebo kurzoru, systém ho převede na černobílý. Pokud aplikace vrátí popisovač, musí popisovač identifikovat monochromatický kurzor nebo ikonu kompatibilní s rozlišením ovladače zobrazení. Aplikace může volat CWinApp::LoadCursor nebo CWinApp::LoadIcon členské funkce k načtení kurzoru nebo ikony z prostředků ve spustitelném souboru a získat tento popisovač.
CWnd::OnQueryEndSession
Architektura volá tuto členovou funkci, když se uživatel rozhodne ukončit relaci Systému Windows nebo když aplikace volá ExitWindows funkci Windows.
afx_msg BOOL OnQueryEndSession();
Návratová hodnota
Nenulové, pokud lze aplikaci pohodlně vypnout; jinak 0.
Poznámky
Pokud některá aplikace vrátí hodnotu 0, relace Windows není ukončena. Systém Windows přestane volat OnQueryEndSession , jakmile jedna aplikace vrátí hodnotu 0 a odešle WM_ENDSESSION zprávu s hodnotou parametru FALSE pro libovolnou aplikaci, která již vrátila nenulovou hodnotu.
CWnd::OnQueryNewPalette
Architektura volá tuto členovou funkci, když CWnd se objekt chystá přijmout vstupní fokus a dává CWnd příležitost realizovat svou logickou paletu, když obdrží fokus.
afx_msg BOOL OnQueryNewPalette();
Návratová hodnota
Nenulové, pokud si uvědomí svou logickou paletu CWnd , jinak 0.
CWnd::OnQueryOpen
Architektura volá tuto členovou funkci, když CWnd je objekt minimalizován a uživatel požaduje, aby CWnd bylo obnoveno na jeho předem určenou velikost a pozici.
afx_msg BOOL OnQueryOpen();
Návratová hodnota
Nenulové, pokud je možné ikonu otevřít, nebo 0, aby se zabránilo otevření ikony.
Poznámky
I když jste v OnQueryOpen, CWnd neměli byste provádět žádnou akci, která by způsobila aktivaci nebo změnu fokusu (například vytvoření dialogového okna).
CWnd::OnQueryUIState
Volá se k načtení stavu uživatelského rozhraní (UI) pro okno.
afx_msg UINT OnQueryUIState();
Návratová hodnota
Návratová hodnota je NULL , pokud jsou viditelné indikátory fokusu a akcelerátory klávesnice. V opačném případě může být vrácená hodnota jedna nebo více z následujících hodnot:
UISF_HIDEFOCUSIndikátory fokusu jsou skryté.UISF_HIDEACCELKlávesové zkratky jsou skryté.UISF_ACTIVEWindows XP: Ovládací prvek by měl být nakreslen ve stylu použitém pro aktivní ovládací prvky.
Poznámky
Tato členová funkce emuluje funkce WM_QUERYUISTATE zprávy, jak je popsáno v sadě Windows SDK.
CWnd::OnRawInput
Architektura volá tuto členovou funkci, když aktuální okno získá nezpracovaný vstup.
afx_msg void OnRawInput(
UINT nInputCode,
HRAWINPUT hRawInput);
Parametry
nInputCode
[v] Vstupní kód, který označuje, zda došlo ke vstupu v době, kdy byla aplikace v popředí, nebo ne. V obou případech musí aplikace volat CWnd::DefWindowProc , aby systém mohl provést vyčištění. Tento parametr může být jedna z následujících hodnot:
RIM_INPUT- Vstup se vyskytl, když byla aplikace v popředí.RIM_INPUTSINK– Vstup se vyskytl, když aplikace nebyla v popředí.
hRawInput
[v] Popisovač RAWINPUT struktury, která obsahuje nezpracovaný vstup ze zařízení
Poznámky
Tato metoda obdrží WM_INPUT oznámení, které je popsáno v sadě Windows SDK.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnRButtonDblClk
Architektura volá tuto členovou funkci, když uživatel dvakrát klikne na pravé tlačítko myši.
afx_msg void OnRButtonDblClk(
UINT nFlags,
CPoint point);
Parametry
nFlags
Určuje, jestli jsou různé virtuální klíče v výpadku. Tento parametr může být libovolná kombinace následujících hodnot:
MK_CONTROLNastavte, jestli je klávesa CTRL dole.MK_LBUTTONNastavte, jestli je levé tlačítko myši dole.MK_MBUTTONNastavte, jestli je prostřední tlačítko myši dole.MK_RBUTTONNastavte, jestli je pravé tlačítko myši dole.MK_SHIFTNastavte, jestli je klávesa SHIFT nižší.
point
Určuje souřadnice x a y kurzoru. Tyto souřadnice jsou vždy relativní vzhledem k levému hornímu rohu okna.
Poznámky
Volání můžou přijímat OnRButtonDblClk pouze okna, která mají styl CS_DBLCLKSWNDCLASS. Toto je výchozí hodnota pro okna v knihovně tříd Microsoft Foundation. Systém Windows volá OnRButtonDblClk , když uživatel stiskne, uvolní a pak znovu stiskne pravé tlačítko myši v rámci časového limitu poklikání systému. Poklikáním pravého tlačítka myši ve skutečnosti vygenerujete čtyři události: WM_RBUTTONDOWN a WM_RBUTTONUP zprávy, OnRButtonDblClk volání a další WM_RBUTTONUP zprávu po uvolnění tlačítka.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnRButtonDown
Architektura volá tuto členovou funkci, když uživatel stiskne pravé tlačítko myši.
afx_msg void OnRButtonDown(
UINT nFlags,
CPoint point);
Parametry
nFlags
Určuje, jestli jsou různé virtuální klíče v výpadku. Tento parametr může být libovolná kombinace následujících hodnot:
MK_CONTROLNastavte, jestli je klávesa CTRL dole.MK_LBUTTONNastavte, jestli je levé tlačítko myši dole.MK_MBUTTONNastavte, jestli je prostřední tlačítko myši dole.MK_RBUTTONNastavte, jestli je pravé tlačítko myši dole.MK_SHIFTNastavte, jestli je klávesa SHIFT nižší.
point
Určuje souřadnice x a y kurzoru. Tyto souřadnice jsou vždy relativní vzhledem k levému hornímu rohu okna.
Poznámky
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnRButtonUp
Architektura volá tuto členovu funkci, když uživatel uvolní pravé tlačítko myši.
afx_msg void OnRButtonUp(
UINT nFlags,
CPoint point);
Parametry
nFlags
Určuje, jestli jsou různé virtuální klíče v výpadku. Tento parametr může být libovolná kombinace následujících hodnot:
MK_CONTROLNastavte, jestli je klávesa CTRL dole.MK_LBUTTONNastavte, jestli je levé tlačítko myši dole.MK_MBUTTONNastavte, jestli je prostřední tlačítko myši dole.MK_SHIFTNastavte, jestli je klávesa SHIFT nižší.
point
Určuje souřadnice x a y kurzoru. Tyto souřadnice jsou vždy relativní vzhledem k levému hornímu rohu okna.
Poznámky
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnRegisteredMouseWheel
Architektura volá tuto členskou funkci jako uživatel otočí kolečko myši a narazí na další zářez kola.
afx_msg LRESULT OnRegisteredMouseWheel(
WPARAM wParam,
LPARAM lParam);
Parametry
wParam
Vodorovná pozice ukazatele
lParam
Svislá pozice ukazatele.
Návratová hodnota
V tuto chvíli je nevýznamný. Vždy nula.
Poznámky
Pokud ji nepřepíšete, OnRegisteredMouseWheel směruje zprávu do příslušného okna (nadřazené okno s fokusem) a zavolá obslužnou rutinu WM_MOUSEWHEEL pro toto okno.
Přepište tuto členovou funkci tak, aby poskytovala vlastní směrování zpráv nebo změnila chování posouvání kolečkem myši.
Poznámka:
OnRegisteredMouseWheelzpracovává zprávy pro Windows 95/98 a systém Windows NT 3.51. Pro zpracování zpráv systém Windows NT 4.0 použijte OnMouseWheel.
CWnd::OnRenderAllFormats
Členská funkce vlastníka OnRenderAllFormats schránky je volána architekturou při zničení aplikace vlastníka.
afx_msg void OnRenderAllFormats();
Poznámky
Vlastník schránky by měl vykreslit data ve všech formátech, které dokáže vygenerovat a předat popisovač dat pro každý formát do schránky voláním SetClipboardData funkce Windows. Tím se zajistí, že schránka obsahuje platná data, i když je aplikace, která vykreslovala data, zničena. Aplikace by měla před voláním funkce Systému Windows volat OpenClipboard členovu SetClipboardData funkci a následně volat CloseClipboard funkci Windows.
CWnd::OnRenderFormat
Členská funkce vlastníka OnRenderFormat schránky je volána architekturou, když je potřeba vykreslit určitý formát s zpožděným vykreslováním.
afx_msg void OnRenderFormat(UINT nFormat);
Parametry
nFormat
Určuje formát schránky.
Poznámky
Příjemce by měl vykreslit data v daném formátu a předat je do schránky voláním SetClipboardData funkce Windows.
Nevolejte členovu OpenClipboard funkci nebo CloseClipboard funkci Systému Windows ze systému OnRenderFormat.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnSessionChange
Architektura volá tuto členovou funkci, která upozorní aplikaci na změnu stavu relace.
afx_msg void OnSessionChange(
UINT nSessionState,
UINT nId);
Parametry
nSessionState
[v] Stavový kód popisuje změnu stavu relace.
nId
[v] Identifikátor relace.
Poznámky
Tato metoda obdrží WM_WTSSESSION_CHANGE oznámení, které je popsáno v sadě Windows SDK.
Parametr nSessionState určuje, že je relace připojená nebo odpojená od konzoly nebo vzdáleného terminálu, uživatel přihlášený nebo vypnutý, relace je uzamčena nebo odemknutá nebo se relace změnila na stav vzdáleného řízení. Další informace najdete v wParam parametru WM_WTSSESSION_CHANGE zprávy.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnSetCursor
Architektura volá tuto členovu funkci, pokud není zachycen vstup myši a myš způsobí pohyb kurzoru uvnitř objektu CWnd .
afx_msg BOOL OnSetCursor(
CWnd* pWnd,
UINT nHitTest,
UINT message);
Parametry
pWnd
Určuje ukazatel na okno, které obsahuje kurzor. Ukazatel může být dočasný a neměl by být uložen pro pozdější použití.
nHitTest
Určuje směrové číslo oblasti hit-test . Test hitu určuje umístění kurzoru.
message
Určuje číslo zprávy myši.
Návratová hodnota
Nenulové zastavení dalšího zpracování nebo pokračování 0.
Poznámky
Výchozí implementace před zpracováním volá nadřazené okno OnSetCursor . Pokud se nadřazené okno vrátí TRUE, další zpracování se zastaví. Volání nadřazeného okna dává nadřazené okno kontrolu nad nastavením kurzoru v podřízené okno.
Výchozí implementace nastaví kurzor na šipku, pokud není v klientské oblasti nebo na kurzor registrované třídy, pokud je.
Pokud nHitTest je a message je HTERROR to zpráva tlačítka myši, MessageBeep je volána členová funkce.
Parametr zprávy je 0 při CWnd přechodu do režimu nabídky.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnSetFocus
Architektura volá tuto členovu funkci po získání vstupního fokusu.
afx_msg void OnSetFocus(CWnd* pOldWnd);
Parametry
pOldWnd
CWnd Obsahuje objekt, který ztratí vstupní fokus (může být NULL). Ukazatel může být dočasný a neměl by být uložen pro pozdější použití.
Poznámky
Chcete-li zobrazit stříšku, CWnd měli byste v tuto chvíli volat příslušné funkce kurzoru.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnSettingChange
Architektura volá OnSettingChange všechna okna nejvyšší úrovně, když funkce Win32 SystemParametersInfo změní nastavení na úrovni systému.
afx_msg void OnSettingChange(
UINT uFlags,
LPCTSTR lpszSection);
Parametry
uFlags
Když systém odešle zprávu jako výsledek SystemParametersInfo volání, tento parametr je příznak, který označuje systémový parametr, který byl změněn. Seznam hodnot najdete SystemParametersInfo v sadě Windows SDK. Když aplikace odešle zprávu, musí být tento parametr 0.
lpszSection
Odkazuje na řetězec, který určuje název oddílu, který se změnil. (Řetězec neobsahuje hranaté závorky, které ohraničují název oddílu.)
Poznámky
Aplikace by měla zprávu odeslat do všech oken nejvyšší úrovně, když provede změny systémových parametrů, a Systém Windows zprávu odešle, pokud uživatel změní nastavení prostřednictvím Ovládací panely.
Zpráva ON_WM_SETTINGCHANGE se podobá ON_WM_WININICHANGE zprávě s následujícím rozdílem:
Používá se
ON_WM_SETTINGCHANGEpři spuštění systém Windows NT 4.0 nebo novější nebo v systému Windows 95/98.Používá se
ON_WININICHANGEpři spuštění systém Windows NT verze 3.51 nebo starší. Tato zpráva je teď zastaralá.
V mapě zpráv byste měli mít jenom jedno z těchto maker. Chcete-li napsat program, který funguje pro systém Windows 95/98 i systém Windows NT 4.0, napište obslužnou rutinu pro ON_WM_SETTINGCHANGE. V části systém Windows NT 3.51 bude obslužná rutina OnSettingChange volána a uFlags vždy bude nula.
CWnd::OnShowWindow
Architektura volá tuto členovu funkci, pokud CWnd se objekt chystá být skrytý nebo zobrazený.
afx_msg void OnShowWindow(
BOOL bShow,
UINT nStatus);
Parametry
bShow
Určuje, jestli se zobrazuje okno. Je TRUE to, pokud se okno zobrazuje. FALSE Je to, pokud je okno skryté.
nStatus
Určuje stav zobrazeného okna. Je to 0, pokud je zpráva odeslána z důvodu ShowWindow volání členské funkce; jinak nStatus je to jedna z těchto věcí:
SW_PARENTCLOSINGNadřazené okno je zavřené (z ikonické) nebo je skryté automaticky otevírané okno.SW_PARENTOPENINGNadřazené okno se otevírá (zobrazuje se) nebo se zobrazuje automaticky otevírané okno.
Poznámky
Okno je skryté nebo zobrazené při ShowWindow zavolání členské funkce, při maximalizaci nebo obnovení překrývajícího se okna nebo zavření překrývajícího se nebo automaticky otevíraného okna (ikonické) nebo otevřené (zobrazené na obrazovce). Při zavření překrývajícího se okna jsou všechna automaticky otevíraná okna přidružená k danému okně skrytá.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnSize
Architektura volá tuto členskou funkci po změně velikosti okna.
afx_msg void OnSize(
UINT nType,
int cx,
int cy);
Parametry
nType
Určuje typ požadované velikosti. Tento parametr může být jedna z následujících hodnot:
SIZE_MAXIMIZEDOkno bylo maximalizováno.SIZE_MINIMIZEDOkno bylo minimalizováno.SIZE_RESTOREDVelikost okna se změnila, ale aniSIZE_MINIMIZEDSIZE_MAXIMIZEDse na ni nepoužádá.SIZE_MAXHIDEZpráva se odešle do všech automaticky otevíraných oken, když se maximalizuje některé jiné okno.SIZE_MAXSHOWZpráva se odešle do všech automaticky otevíraných oken, když bylo obnoveno některé jiné okno do původní velikosti.
cx
Určuje novou šířku oblasti klienta.
cy
Určuje novou výšku oblasti klienta.
Poznámky
SetScrollPos Pokud je volána podřízená MoveWindow funkce z OnSize, bRedraw parametr SetScrollPos nebo MoveWindow by měl být nenulový, aby CWnd bylo možné překreslit.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
Příklad
// Resize the edit control contained in the view to
// fill the entire view when the view's window is
// resized. CMdiView is a CView derived class.
void CMdiView::OnSize(UINT nType, int cx, int cy)
{
CView::OnSize(nType, cx, cy);
// Resize edit to fill the whole view.
// OnSize can be called before OnInitialUpdate
// so make sure the edit control has been created.
if (::IsWindow(m_Edit.GetSafeHwnd()))
{
m_Edit.MoveWindow(0, 0, cx, cy);
}
}
CWnd::OnSizeClipboard
Členská funkce vlastníka OnSizeClipboard schránky je volána prohlížečem schránky, pokud schránka obsahuje data s atributem CF_OWNERDISPLAY a velikost klientské oblasti okna Prohlížeče schránky se změnila.
afx_msg void OnSizeClipboard(
CWnd* pClipAppWnd,
HGLOBAL hRect);
Parametry
pClipAppWnd
Identifikuje okno aplikace schránka. Ukazatel může být dočasný a neměl by být uložený.
hRect
Identifikuje objekt globální paměti. Objekt paměti obsahuje datovou RECT strukturu, která určuje oblast pro vlastníka schránky malování.
Poznámky
Členová OnSizeClipboard funkce je volána s nulovým obdélníkem (0,0,0,0) jako novou velikost, když bude aplikace schránka zničena nebo minimalizovaná. To umožňuje vlastníkovi schránky uvolnit jeho zobrazované prostředky.
Aplikace OnSizeClipboardmusí použít GlobalLock funkci Windows k uzamčení paměti, která obsahuje datovou RECT strukturu. Před tím, než aplikace získá nebo vrátí kontrolu, odemyká paměť pomocí GlobalUnlock funkce Windows.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnSizing
Architektura volá tuto členovu funkci, která označuje, že uživatel přetěžuje obdélník.
afx_msg void OnSizing(
UINT nSide,
LPRECT lpRect);
Parametry
nSide
Okraj okna, který se má přesunout.
lpRect
CRect Adresa struktury nebo RECT struktury, která bude obsahovat souřadnice položky
Poznámky
Při zpracování této zprávy může aplikace monitorovat velikost a umístění obdélníku přetažení a v případě potřeby změnit jeho velikost nebo pozici.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
Příklad
void CSplitChildFrm::OnSizing(UINT fwSide, LPRECT pRect)
{
CMDIChildWnd::OnSizing(fwSide, pRect);
// Resize the splitter window in the frame. m_wndSplitter is of
// type CSplitterWnd
int nWidth = (pRect->right) - (pRect->left);
m_wndSplitter.SetColumnInfo(0, nWidth / 2, 10);
m_wndSplitter.SetColumnInfo(1, nWidth / 2, 10);
m_wndSplitter.RecalcLayout();
}
CWnd::OnSpoolerStatus
Architektura volá tuto členovou funkci ze Správce tisku při každém přidání úlohy do fronty Správce tisku nebo jeho odebrání.
afx_msg void OnSpoolerStatus(
UINT nStatus,
UINT nJobs);
Parametry
nStatus
Určuje SP_JOBSTATUS příznak.
nJobs
Určuje počet zbývajících úloh ve frontě Print Manageru.
Poznámky
Toto volání je určené pouze pro informační účely.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnStyleChanged
Architektura volá tuto členskou funkci poté, co SetWindowLong funkce změnila jeden nebo více stylů okna.
afx_msg void OnStyleChanged(
int nStyleType,
LPSTYLESTRUCT lpStyleStruct);
Parametry
nStyleType
Určuje, jestli se změnily rozšířené nebo neprodloužené styly okna. Tento parametr může být kombinací následujících hodnot:
GWL_EXSTYLERozšířené styly okna se změnily.GWL_STYLENeobslužné styly okna se změnily.
lpStyleStruct
Odkazuje na STYLESTRUCT strukturu, která obsahuje nové styly okna. Aplikace může prozkoumat styly, ale nemůže je změnit.
Poznámky
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnStyleChanging
Architektura volá tuto členskou funkci, pokud SetWindowLong se funkce chystá změnit jeden nebo více stylů okna.
afx_msg void OnStyleChanging(
int nStyleType,
LPSTYLESTRUCT lpStyleStruct);
Parametry
nStyleType
Určuje, jestli se změnily rozšířené nebo neprodloužené styly okna. Tento parametr může být kombinací následujících hodnot:
GWL_EXSTYLERozšířené styly okna se změnily.GWL_STYLENeobslužné styly okna se změnily.
lpStyleStruct
Odkazuje na STYLESTRUCT strukturu, která obsahuje nové styly okna. Aplikace může prozkoumat styly a změnit je.
Poznámky
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnSysChar
Architektura volá tuto členovu funkci, pokud CWnd má vstupní fokus a přeloží se WM_SYSKEYUP zprávy WM_SYSKEYDOWN .
afx_msg void OnSysChar(
UINT nChar,
UINT nRepCnt,
UINT nFlags);
Parametry
nChar
Určuje kód klíče znaku ASCII klávesy Control-menu.
nRepCnt
Určuje počet opakování, tj. počet opakování, kolikrát se stisknutí klávesy opakuje v důsledku toho, že uživatel drží stisknutou klávesu.
nFlags
Parametr nFlags může mít tyto hodnoty:
| Hodnota | Význam |
|---|---|
| 0-15 | Určuje počet opakování. Hodnota je počet opakování stisknutí klávesy v důsledku toho, že uživatel drží stisknutou klávesu. |
| 16-23 | Určuje kód kontroly. Hodnota závisí na výrobci původního vybavení (OEM) |
| 24 | Určuje, jestli se jedná o rozšířenou klávesu, například klávesy ALT a CTRL vpravo, které se zobrazí na rozšířené klávesnici s 101 klávesami nebo 102 kláves. Hodnota je 1, pokud se jedná o rozšířený klíč; jinak je to 0. |
| 25-28 | Interně používá systém Windows. |
| 29 | Určuje kontextový kód. Hodnota je 1, pokud je klávesa ALT při stisknutí klávesy stisknuta dolů; jinak je hodnota 0. |
| 30 | Určuje předchozí stav klíče. Hodnota je 1, pokud je klíč před odesláním zprávy dolů, nebo je 0, pokud je klíč nahoru. |
| 31 | Určuje stav přechodu. Hodnota je 1, pokud je klávesa uvolněna, nebo je 0, pokud je stisknuta klávesa. |
Poznámky
Určuje kód virtuálního klíče klávesy Control-menu. (Seznam standardních kódů virtuálních klíčů najdete v tématu Winuser.h)
Když je kontextový kód 0, WM_SYSCHAR může předat WM_SYSCHAR zprávu TranslateAccelerator funkci Windows, která ji zpracuje, jako by byla normální klíčová zpráva místo systémového znakového klíče. To umožňuje použití kláves akcelerátoru s aktivním oknem i v případě, že aktivní okno nemá vstupní fokus.
U klávesnic IBM Enhanced 101- a 102-key jsou vylepšené klávesy vpravo ALT a pravé klávesy CTRL v hlavní části klávesnice; INS, DEL, HOME, END, PAGE UP, PAGE DOWN a šipkové klávesy v clusterech vlevo od numerické klávesnice; a lomítko (/) a klávesy ENTER na numerické klávesnici. Některé další klávesnice mohou podporovat bit rozšířené klávesy v nFlags.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnSysColorChange
Architektura volá tuto členovou funkci pro všechna okna nejvyšší úrovně při změně v nastavení barvy systému.
afx_msg void OnSysColorChange();
Poznámky
Systém Windows volá OnSysColorChange všechna okna, na která má vliv změna barvy systému.
Aplikace, které používají existující systémové barvy, by měly tyto štětce odstranit a znovu je vytvořit pomocí nových systémových barev.
CWnd::OnSysCommand
Architektura volá tuto členovou funkci, když uživatel vybere příkaz z nabídky Ovládací prvek nebo když uživatel vybere tlačítko Maximalizovat nebo Minimalizovat.
afx_msg void OnSysCommand(
UINT nID,
LPARAM lParam);
Parametry
nID
Určuje typ požadovaného systémového příkazu. Tento parametr může být libovolná z následujících hodnot:
SC_CLOSEZavřeteCWndobjekt.SC_HOTKEYCWndAktivujte objekt přidružený k horkému klíči zadanému aplikací. Slovo s nízkým pořadímlParamidentifikujeHWNDokno, které se má aktivovat.SC_HSCROLLPosunujte vodorovně.SC_KEYMENUNačtěte nabídku pomocí stisknutí klávesy.SC_MAXIMIZE(neboSC_ZOOM)CWndMaximalizujte objekt.SC_MINIMIZE(neboSC_ICON)CWndMinimalizujte objekt.SC_MOUSEMENUNačtěte nabídku kliknutím myší.SC_MOVEPřesunutí objektuCWndSC_NEXTWINDOWPřechod na další oknoSC_PREVWINDOWPřechod na předchozí oknoSC_RESTOREObnovte okno do normální polohy a velikosti.SC_SCREENSAVESpustí aplikaci spořič obrazovky zadanou v částiSYSTEM.INI[boot] souboru.SC_SIZEVelikost objektuCWnd.SC_TASKLISTSpusťte nebo aktivujte aplikaci Správce úloh systému Windows.SC_VSCROLLPosunujte svisle.
lParam
Pokud je příkaz nabídky Control vybrán myší, lParam obsahuje souřadnice kurzoru. Slovo s nízkým pořadím obsahuje souřadnici x a slovo s vysokým pořadím obsahuje souřadnici y. V opačném případě se tento parametr nepoužívá.
SC_HOTKEYAktivujte okno přidružené k klávesové zkratce zadané aplikaci. Slovo s nízkým pořadímlParamidentifikuje okno, které se má aktivovat.SC_SCREENSAVESpusťte aplikaci pro ukládání obrazovky zadanou v části Plocha Ovládací panely.
Poznámky
Ve výchozím nastavení OnSysCommand provede požadavek control-menu pro předdefinované akce zadané v předchozí tabulce.
Vech WM_SYSCOMMAND nID Když aplikace testuje hodnotu nID, musí zkombinovat hodnotu 0xFFF0 s nID hodnotou pomocí bitové operátoru AND získat správný výsledek.
Položky nabídky v nabídce Ovládací prvek lze upravit pomocí GetSystemMenufunkcí , AppendMenu, InsertMenua ModifyMenu členské funkce. Aplikace, které upravují nabídku Řízení, musí zpracovávat WM_SYSCOMMAND zprávy a všechny WM_SYSCOMMAND zprávy, které aplikace nezpracovává, musí být předány do OnSysCommand. Všechny hodnoty příkazů přidané aplikací musí být zpracovány aplikací a nelze je předat OnSysCommand.
Aplikace může kdykoli provést jakýkoli systémový příkaz předáním WM_SYSCOMMAND zprávy .OnSysCommand
Klávesové zkratky (klávesové zkratky), které jsou definované pro výběr položek z nabídky Control, se překládají do OnSysCommand volání. Všechny ostatní klávesové zkratky se překládají do WM_COMMAND zpráv.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnSysDeadChar
Architektura volá tuto členovou funkci, pokud CWnd objekt má vstupní fokus při OnSysKeyUp volání nebo OnSysKeyDown členské funkce.
afx_msg void OnSysDeadChar(
UINT nChar,
UINT nRepCnt,
UINT nFlags);
Parametry
nChar
Určuje hodnotu znaku dead-key.
nRepCnt
Určuje počet opakování.
nFlags
Určuje kód kontroly, kód přechodu klíče, předchozí stav klíče a kontextový kód, jak je znázorněno v následujícím seznamu:
| Hodnota | Význam |
|---|---|
| 0-7 | Skenování kódu (hodnota závislá na OEM) Nízký bajt slova s vysokým pořadím. |
| 8 | Rozšířená klávesa, například funkční klávesa nebo klávesa na numerické klávesnici (1, pokud se jedná o rozšířený klíč, jinak 0). |
| 9-10 | Nepoužívá se. |
| 11-12 | Interně používá systém Windows. |
| 13 | Kontextový kód (1, pokud je klávesa ALT při stisknutí klávesy stisknutá, jinak 0) |
| 14 | Předchozí stav klíče (1, pokud je klíč před voláním vypnutý, 0, pokud je klíč nahoru). |
| 15 | Stav přechodu (1, pokud je klávesa uvolněna, 0, pokud je stisknutá klávesa). |
Poznámky
Určuje hodnotu znaku mrtvého klíče.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnSysKeyDown
Pokud má CWnd objekt vstupní fokus, volá se členová funkce rozhraním, OnSysKeyDown když uživatel drží stisknutou klávesu ALT a pak stiskne další klávesu.
afx_msg void OnSysKeyDown(
UINT nChar,
UINT nRepCnt,
UINT nFlags);
Parametry
nChar
Určuje kód virtuálního klíče stisknuté klávesy. Seznam standardních kódů virtuálních klíčů najdete v tématu Winuser.h
nRepCnt
Určuje počet opakování.
nFlags
Určuje kód kontroly, kód přechodu klíče, předchozí stav klíče a kontextový kód, jak je znázorněno v následujícím seznamu:
| Hodnota | Význam |
|---|---|
| 0-7 | Skenování kódu (hodnota závislá na OEM) Nízký bajt slova s vysokým pořadím. |
| 8 | Rozšířená klávesa, například funkční klávesa nebo klávesa na numerické klávesnici (1, pokud se jedná o rozšířený klíč, jinak 0). |
| 9-10 | Nepoužívá se. |
| 11-12 | Interně používá systém Windows. |
| 13 | Kontextový kód (1, pokud je klávesa ALT při stisknutí klávesy stisknutá, 0 jinak) |
| 14 | Předchozí stav klíče (1, pokud je klíč před odesláním zprávy vypnutý, 0, pokud je klíč nahoru). |
| 15 | Stav přechodu (1, pokud je klávesa uvolněna, 0, pokud je stisknutá klávesa). |
U OnSysKeyDown volání je bit přechodu klíče (bit 15) 0. Bit kontextového kódu (bit 13) je 1, pokud je klávesa ALT mimo provoz při stisknutí klávesy; je 0, pokud je zpráva odeslána do aktivního okna, protože žádné okno nemá vstupní fokus.
Poznámky
Pokud žádné okno aktuálně nemá vstupní fokus, volá se členská funkce aktivního OnSysKeyDown okna. Objekt CWnd , který obdrží zprávu, může rozlišovat mezi těmito dvěma kontexty tím, že zkontroluje kontextový kód v nFlags.
Když je kontextový kód 0, WM_SYSKEYDOWN může být zpráva přijatá OnSysKeyDown funkcí Systému Windows předána TranslateAccelerator , která ji zpracuje, jako by byla normální klíčová zpráva místo zprávy systémového klíče. To umožňuje použití kláves akcelerátoru s aktivním oknem i v případě, že aktivní okno nemá vstupní fokus.
Kvůli automatickému opakování může před přijetí zprávy dojít k WM_SYSKEYUP více než jednomu OnSysKeyDown volání. Předchozí stav klíče (bit 14) lze použít k určení, jestli OnSysKeyDown volání označuje první přechod dolů nebo opakovaný přechod dolů.
Pro klávesnice IBM Enhanced 101- a 102-key jsou vylepšené klávesy vpravo ALT a pravé klávesy CTRL v hlavní části klávesnice; INS, DEL, HOME, END, PAGE UP, PAGE UP, PAGE DOWN a šipkové klávesy v clusterech vlevo od číselné klávesnice; a lomítko (/) a klávesy ENTER v číselné klávesnici. Některé další klávesnice mohou podporovat bit rozšířené klávesy v nFlags.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnSysKeyUp
Pokud má CWnd objekt fokus, členová funkce je volána rozhraním, když uživatel uvolní klávesu, OnSysKeyUp která byla stisknuta, zatímco klávesa ALT byla přidržována.
afx_msg void OnSysKeyUp(
UINT nChar,
UINT nRepCnt,
UINT nFlags);
Parametry
nChar
Určuje kód virtuálního klíče stisknuté klávesy. Seznam standardních kódů virtuálních klíčů najdete v tématu . Winuser.h
nRepCnt
Určuje počet opakování.
nFlags
Určuje kód kontroly, kód přechodu klíče, předchozí stav klíče a kontextový kód, jak je znázorněno v následujícím seznamu:
| Hodnota | Význam |
|---|---|
| 0-7 | Skenování kódu (hodnota závislá na OEM) Nízký bajt slova s vysokým pořadím. |
| 8 | Rozšířená klávesa, například funkční klávesa nebo klávesa na numerické klávesnici (1, pokud se jedná o rozšířený klíč, jinak 0). |
| 9-10 | Nepoužívá se. |
| 11-12 | Interně používá systém Windows. |
| 13 | Kontextový kód (1, pokud je klávesa ALT při stisknutí klávesy stisknutá, 0 jinak) |
| 14 | Předchozí stav klíče (1, pokud je klíč před odesláním zprávy vypnutý, 0, pokud je klíč nahoru). |
| 15 | Stav přechodu (1, pokud je klávesa uvolněna, 0, pokud je stisknutá klávesa). |
U OnSysKeyUp volání je bit přechodu mezi klíči (bit 15) 1. Bit kontextového kódu (bit 13) je 1, pokud je klávesa ALT mimo provoz při stisknutí klávesy; je 0, pokud je zpráva odeslána do aktivního okna, protože žádné okno nemá vstupní fokus.
Poznámky
Pokud žádné okno aktuálně nemá vstupní fokus, volá se členská funkce aktivního OnSysKeyUp okna. Objekt CWnd , který přijímá volání, může rozlišovat mezi těmito dvěma kontexty tím, že zkontroluje kontextový kód v nFlags.
Když je kontextový kód 0, WM_SYSKEYUP může být zpráva přijatá OnSysKeyUp funkcí Systému Windows předána TranslateAccelerator , která ji zpracuje, jako by byla normální klíčová zpráva místo zprávy systémového klíče. To umožňuje použití kláves akcelerátoru (klávesových zkratek) s aktivním oknem, i když aktivní okno nemá fokus vstupu.
U klávesnic IBM Enhanced 101- a 102-key jsou vylepšené klávesy vpravo ALT a pravé klávesy CTRL v hlavní části klávesnice; INS, DEL, HOME, END, PAGE UP, PAGE DOWN a šipkové klávesy v clusterech vlevo od numerické klávesnice; a lomítko (/) a klávesy ENTER na numerické klávesnici. Některé další klávesnice můžou podporovat bit rozšířených kláves v nFlags.
Pro jiné uživatele než USA Vylepšená klávesnice s 102 klávesami, pravá klávesa ALT se zpracovává jako kombinace kláves CTRL+ALT. Následuje posloupnost zpráv a volání, která vedou k tomu, že uživatel stiskne a uvolní tuto klávesu:
| Sequence | Přístup k funkci | Zpráva byla předána. |
|---|---|---|
| 1. | WM_KEYDOWN |
VK_CONTROL |
| 2. | WM_KEYDOWN |
VK_MENU |
| 3. | WM_KEYUP |
VK_CONTROL |
| 4. | WM_SYSKEYUP |
VK_MENU |
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnTCard
Architektura volá tuto členovou funkci, když uživatel klikne na tlačítko s možností vytváření.
afx_msg void OnTCard(
UINT idAction,
DWORD dwActionData);
Parametry
idAction
Označuje akci, která uživatel provedl. Tento parametr může být jednou z těchto hodnot:
IDABORTUživatel klikl na tlačítko pro přerušení, které je možné vytvořit.IDCANCELUživatel kliknul na tlačítko Zrušit, které je možné vytvořit.IDCLOSEUživatel zavřel trénovací kartu.IDHELPUživatel klikl na tlačítko vytvořitelné nápovědy systému Windows.IDIGNOREUživatel klikl na tlačítko Ignorovat s možností autora.IDOKUživatel klikl na tlačítko OK, které je možné vytvořit.IDNOUživatel klikl na tlačítko Ne, které je možné vytvořit.IDRETRYUživatel klikl na tlačítko opakovatelného opakování.HELP_TCARD_DATAUživatel klikl na tlačítko pro vytváření obsahu. ParametrdwActionDataobsahuje dlouhé celé číslo určené autorem nápovědy.HELP_TCARD_NEXTUživatel klikl na tlačítko Další, které je možné vytvořit.HELP_TCARD_OTHER_CALLERJiná aplikace požádala o trénovací karty.IDYESUživatel klikl na tlačítko Ano, které je možné vytvořit.
dwActionData
Pokud idAction zadáte HELP_TCARD_DATA, tento parametr je dlouhé celé číslo určené autorem nápovědy. V opačném případě je tento parametr nula.
Poznámky
Tato funkce se volá pouze v případě, že aplikace iniciovala trénovací kartu pomocí nápovědy systému Windows. Aplikace inicializuje trénovací kartu zadáním HELP_TCARD příkazu ve volání WinHelp funkce.
CWnd::OnTimeChange
Architektura volá tuto členovou funkci po změně systémového času.
afx_msg void OnTimeChange();
Poznámky
Každou aplikaci, která změní systémový čas, odešle tuto zprávu do všech oken nejvyšší úrovně. K odeslání WM_TIMECHANGE zprávy do všech oken nejvyšší úrovně může aplikace použít SendMessage funkci Windows s jeho hwnd parametrem nastaveným na HWND_BROADCAST.
CWnd::OnTimer
Architektura volá tuto členovou funkci po každém intervalu zadaném SetTimer v členské funkci použité k instalaci časovače.
afx_msg void OnTimer(UINT_PTR nIDEvent);
Parametry
nIDEvent
Určuje identifikátor časovače.
Poznámky
Funkce DispatchMessage Windows odešle WM_TIMER zprávu, pokud nejsou žádné jiné zprávy ve frontě zpráv aplikace.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
Příklad
Podívejte se na příklad v souboru CWnd::SetTimer.
CWnd::OnToolHitTest
Architektura volá tuto členovou funkci, která určuje, zda je bod v ohraničující obdélník zadaného nástroje.
virtual INT_PTR OnToolHitTest(
CPoint point,
TOOLINFO* pTI) const;
Parametry
point
Určuje souřadnici x a y kurzoru. Tyto souřadnice jsou vždy relativní vzhledem k levému hornímu rohu okna.
pTI
Ukazatel na TOOLINFO strukturu. Ve výchozím nastavení jsou nastaveny následující hodnoty struktury:
hwnd=m_hWndPopisovač v okněuId=(UINT)hWndChildPopisovač podřízeného oknauFlags|=TTF_IDISHWNDPopisovač nástrojelpszText=LPSTR_TEXTCALLBACKUkazatel na řetězec, který se má zobrazit v zadaném okně
Návratová hodnota
Pokud byl nalezen ovládací prvek popisu, ID ovládacího prvku okna. Pokud nebyl nalezen ovládací prvek popisku, -1.
Poznámky
Pokud je bod v obdélníku, načte informace o nástroji.
Pokud oblast, ke které je popis přidružen, není tlačítko, OnToolHitTest nastaví příznak struktury na TTF_NOTBUTTON a TTF_CENTERTIP.
Přepsání OnToolHitTest za účelem poskytnutí různých informací, než je výchozí nastavení.
Další TOOLINFOinformace o struktuře naleznete v sadě Windows SDK.
CWnd::OnTouchInput
Zpracování jednoho vstupu z dotykového ovládání Windows
virtual BOOL OnTouchInput(
CPoint pt,
int nInputNumber,
int nInputsCount,
PTOUCHINPUT pInput);
Parametry
pt
Bod, kde se obrazovka dotkla (v souřadnicích klienta).
nInputNumber
Počet dotykového vstupu
nInputsCount
Celkový počet dotykových vstupů
pInput
Ukazatel na TOUCHINPUT strukturu.
Návratová hodnota
TRUE v případě, že aplikace zpracovává vstup dotykového ovládání systému Windows; jinak FALSE.
Poznámky
CWnd::OnTouchInputs
Zpracovává vstupy z dotykového ovládání Windows.
virtual BOOL OnTouchInputs(
UINT nInputsCount,
PTOUCHINPUT pInputs);
Parametry
nInputsCount
Celkový počet vstupů dotykového ovládání Windows
pInputs
Pole .TOUCHINPUT
Návratová hodnota
TRUE v případě, že aplikace zpracovává vstupy dotykového ovládání Systému Windows; jinak FALSE.
Poznámky
CWnd::OnUniChar
Architektura volá tuto členovou funkci při stisknutí klávesy. To znamená, že aktuální okno má fokus klávesnice a WM_KEYDOWN funkce přeloží TranslateMessage zprávu.
afx_msg void OnUniChar(
UINT nChar,
UINT nRepCnt,
UINT nFlags);
Parametry
nChar
[v] Určuje kód znaku stisknuté klávesy.
nRepCnt
[v] Určuje počet opakování pro aktuální zprávu. Hodnota je počet automatického stisknutí kláves v důsledku toho, že uživatel drží stisknutou klávesu. Pokud je stisknutí klávesy dostatečně dlouhé, odešle se více zpráv. Počet opakování ale není kumulativní.
nFlags
[v] Příznaky, které určují kód kontroly, rozšířený klíč, kontextový kód, předchozí stav klíče a stav přechodu, jak je znázorněno v následující tabulce:
| Bity příznaků | Popis |
|---|---|
| 0-7 | Určuje kód kontroly. Hodnota závisí na výrobci původního vybavení (OEM). |
| 8 | Určuje rozšířenou klávesu, například klávesy ALT a CTRL vpravo, které se zobrazí na rozšířené klávesnici 101 nebo 102 kláves. Příznak je 1, pokud je klíčem rozšířený klíč; jinak je to 0. |
| 9-12 | Interně používá systém Windows. |
| 13 | Určuje kontextový kód. Příznak je 1, pokud je klávesa ALT při stisknutí klávesy stisknuta. jinak je hodnota 0. |
| 14 Určuje předchozí stav klíče. Příznak je 1, pokud je klíč před odesláním zprávy vypnutý, nebo 0, pokud je klíč nahoru. | |
| 15 | Určuje stav přechodu. Příznak je 1, pokud je klávesa uvolněna, nebo 0, pokud je stisknutá klávesa. |
Poznámky
Tato metoda obdrží WM_UNICHAR oznámení, které je popsáno v sadě Windows SDK. Zpráva WM_UNICHAR je navržená tak, aby do oken ANSI odesílala nebo posílala znaky Unicode. Je ekvivalentem WM_CHAR zprávy, ale používá kódování Unicode Transformation Format-32 (UTF-32), zatímco WM_CHAR zpráva používá UTF-16.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnUnInitMenuPopup
Architektura volá tuto členovou funkci, pokud byla zničena rozevírací nabídka nebo podnabídka.
afx_msg void OnUnInitMenuPopup(
CMenu* pPopupMenu,
UINT nFlags);
Parametry
pMenu
[v] Ukazatel na CMenu objekt, který představuje nabídku nebo podnabídku.
nFlags
[v] Nabídka, která byla zničena. V současné době se může jednat pouze o nabídku MF_SYSMENUokna .
Poznámky
Tato metoda obdrží WM_UNINITMENUPOPUP oznámení, které je popsáno v sadě Windows SDK.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnUpdateUIState
Volá se ke změně stavu uživatelského rozhraní pro zadané okno a všechna jeho podřízená okna.
afx_msg void OnUpdateUIState(
UINT nAction,
UINT nUIElement);
Parametry
nAction
Určuje akci, která se má provést. Může to být jedna z následujících hodnot:
UIS_CLEARPrvek stavu uživatelského rozhraní (určenýnUIElement) by měl být skrytý.UIS_INITIALIZEPrvek stavu uživatelského rozhraní (zadanýnUIElement) by měl být změněn na základě poslední vstupní události. Další informace naleznete v části Poznámky v částiWM_UPDATEISTATE.UIS_SETMěl by být viditelný prvek stavu uživatelského rozhraní (určenýnUIElement) .
nUIElement
Určuje, které prvky stavu uživatelského rozhraní jsou ovlivněny, nebo styl ovládacího prvku. Může to být jedna z následujících hodnot:
UISF_HIDEACCELKlávesové zkratky.UISF_HIDEFOCUSIndikátory zaměření.UISF_ACTIVEWindows XP: Ovládací prvek by měl být nakreslen ve stylu použitém pro aktivní ovládací prvky.
Poznámky
Tato členová funkce emuluje funkce WM_UPDATEUISTATE zprávy, jak je popsáno v sadě Windows SDK.
CWnd::OnUserChanged
Architektura volá tohoto člena pro všechna okna po přihlášení nebo vypnutí uživatele.
afx_msg void OnUserChanged();
Poznámky
Tato metoda obdrží WM_USERCHANGED zprávu s oznámením, která je popsána v sadě Windows SDK. Když se uživatel přihlásí nebo vypne, operační systém aktualizuje nastavení specifické pro uživatele. Systém tuto zprávu odešle okamžitě po aktualizaci nastavení.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnVKeyToItem
CWnd Pokud objekt vlastní seznam se stylemLBS_WANTKEYBOARDINPUT, odešle seznam WM_VKEYTOITEM zprávu v odpovědi na WM_KEYDOWN zprávu.
afx_msg int OnVKeyToItem(
UINT nKey,
CListBox* pListBox,
UINT nIndex);
Parametry
nKey
Určuje kód virtuálního klíče klíče, který uživatel stiskl. Seznam standardních kódů virtuálních klíčů najdete v tématu . Winuser.h
pListBox
Určuje ukazatel na seznam. Ukazatel může být dočasný a neměl by být uložen pro pozdější použití.
nIndex
Určuje aktuální pozici kurzoru.
Návratová hodnota
Určuje akci, kterou aplikace prováděla v reakci na zprávu. Návratová hodnota -2 označuje, že aplikace zpracovala všechny aspekty výběru položky a nevyžaduje žádnou další akci v seznamu. Návratová hodnota -1 označuje, že seznam by měl provést výchozí akci v reakci na stisknutí klávesy. Návratová hodnota 0 nebo vyšší určuje index položky na základě nuly v seznamu a označuje, že seznam by měl provést výchozí akci pro stisknutí klávesy u dané položky.
Poznámky
Tato členová funkce je volána rozhraním pouze pro seznamy, které mají LBS_HASSTRINGS styl.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnVScroll
Architektura volá tuto členskou funkci, když uživatel klikne na svislý posuvník okna.
afx_msg void OnVScroll(
UINT nSBCode,
UINT nPos,
CScrollBar* pScrollBar);
Parametry
nSBCode
Určuje posuvníkový kód, který označuje požadavek uživatele na posouvání. Tento parametr může být jeden z následujících:
SB_BOTTOMPosuňte se dolů.SB_ENDSCROLLUkončete posouvání.SB_LINEDOWNPosuňte se o jeden řádek dolů.SB_LINEUPPosuňte se o jeden řádek nahoru.SB_PAGEDOWNPosuňte se o jednu stránku dolů.SB_PAGEUPPosuňte se o jednu stránku nahoru.SB_THUMBPOSITIONPosuňte se na absolutní pozici. Aktuální pozice je uvedena vnPos.SB_THUMBTRACKPřetáhněte posuvník na zadanou pozici. Aktuální pozice je uvedena vnPos.SB_TOPPosuňte se nahoru.
nPos
Obsahuje aktuální pozici posuvníku, pokud je SB_THUMBPOSITION kód posuvníku nebo SB_THUMBTRACK; jinak se nepoužívá. V závislosti na počátečním rozsahu nPos posouvání může být záporné a v případě potřeby by mělo být přetypování na řadu int .
pScrollBar
Pokud zpráva posouvání pochází z ovládacího prvku posuvníku, obsahuje ukazatel na ovládací prvek. Pokud uživatel klikl na posuvník okna, je NULLtento parametr . Ukazatel může být dočasný a neměl by být uložen pro pozdější použití.
Poznámky
OnVScroll aplikace, které při přetahování posuvníku poskytují zpětnou vazbu, obvykle používají aplikace, které poskytují zpětnou vazbu.
Pokud OnVScroll se posune obsah objektu CWnd , musí také obnovit umístění posuvníku pomocí SetScrollPos členské funkce.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnVScrollClipboard
Členská funkce vlastníka OnVScrollClipboard schránky je volána prohlížečem schránky, pokud data schránky mají CF_OWNERDISPLAY formát a na svislém posuvníku prohlížeče schránky je událost.
afx_msg void OnVScrollClipboard(
CWnd* pClipAppWnd,
UINT nSBCode,
UINT nPos);
Parametry
pClipAppWnd
Určuje ukazatel na okno prohlížeče schránky. Ukazatel může být dočasný a neměl by být uložen pro pozdější použití.
nSBCode
Určuje jednu z následujících hodnot posuvníku:
SB_BOTTOMPosuňte se dolů.SB_ENDSCROLLUkončete posouvání.SB_LINEDOWNPosuňte se o jeden řádek dolů.SB_LINEUPPosuňte se o jeden řádek nahoru.SB_PAGEDOWNPosuňte se o jednu stránku dolů.SB_PAGEUPPosuňte se o jednu stránku nahoru.SB_THUMBPOSITIONPosuňte se na absolutní pozici. Aktuální pozice je uvedena vnPos.SB_TOPPosuňte se nahoru.
nPos
Obsahuje pozici posuvníku, pokud je SB_THUMBPOSITIONkód posuvníku ; jinak nPos se nepoužívá.
Poznámky
Vlastník by měl posunout obrázek schránky, zneplatnit příslušný oddíl a aktualizovat hodnoty posuvníku.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnWindowMaximizedChanged
Architektura volá tohoto člena při maximalizaci aktuálního okna a okno se skládá správcem desktopových oken (DWM).
afx_msg void OnWindowMaximizedChanged(BOOL bIsMaximized);
Parametry
bIsMaximized
[v] TRUE pokud je aktuální okno maximalizované a FALSE pokud ne.
Poznámky
Tato metoda obdrží WM_DWMWINDOWMAXIMIZEDCHANGE zprávu s oznámením, která je popsána v sadě Windows SDK.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnWindowPosChanged
Architektura volá tuto členovou funkci, pokud se velikost, pozice nebo pořadí Z změnila v důsledku volání SetWindowPos členské funkce nebo jiné funkce správy oken.
afx_msg void OnWindowPosChanged(WINDOWPOS* lpwndpos);
Parametry
lpwndpos
Odkazuje na datovou WINDOWPOS strukturu, která obsahuje informace o nové velikosti a umístění okna.
Poznámky
Výchozí implementace odesílá zprávy WM_SIZE WM_MOVE do okna. Tyto zprávy se neodesílají, pokud aplikace zpracovává OnWindowPosChanged volání bez volání své základní třídy. Je efektivnější provádět jakékoli zpracování změn přesunutí nebo velikosti během volání OnWindowPosChanged bez volání své základní třídy.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnWindowPosChanging
Architektura volá tuto členovou funkci, pokud se velikost, pozice nebo pořadí Z mění v důsledku volání SetWindowPos členské funkce nebo jiné funkce správy oken.
afx_msg void OnWindowPosChanging(WINDOWPOS* lpwndpos);
Parametry
lpwndpos
Odkazuje na datovou WINDOWPOS strukturu, která obsahuje informace o nové velikosti a umístění okna.
Poznámky
Aplikace může zabránit změnám okna nastavením nebo vymazáním příslušných bitů ve členu flags WINDOWPOS struktury.
U okna se WS_OVERLAPPED stylem nebo WS_THICKFRAME stylem odešle WM_GETMINMAXINFO výchozí implementace do okna zprávu. Tím ověříte novou velikost a umístění okna a vynutíte CS_BYTEALIGNCLIENT styly klienta CS_BYTEALIGN . Aplikace může tuto funkci přepsat tím, že nevolá svou základní třídu.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnWinIniChange
Architektura volá tuto členovou funkci po provedení změny v inicializačním souboru Systému Windows , WIN.INI.
afx_msg void OnWinIniChange(LPCTSTR lpszSection);
Parametry
lpszSection
Odkazuje na řetězec, který určuje název oddílu, který se změnil. (Řetězec neobsahuje hranaté závorky, které ohraničují název oddílu.)
Poznámky
Funkce SystemParametersInfo Windows volá po OnWinIniChange aplikaci funkci ke změně nastavení v WIN.INI souboru.
K odeslání WM_WININICHANGE zprávy do všech oken nejvyšší úrovně může aplikace použít SendMessage funkci Windows s jeho hwnd parametrem nastaveným na HWND_BROADCAST.
Pokud aplikace současně změní mnoho různých oddílů WIN.INI , měla by aplikace odeslat jednu WM_WININICHANGE zprávu s nastaveným parametrem lpszSection NULL. Jinak by aplikace měla posílat WM_WININICHANGE pokaždé, když provede změnu .WIN.INI
Pokud aplikace obdrží OnWinIniChange volání s nastaveným lpszSection nastavením NULL, měla by aplikace zkontrolovat všechny části win. INI, které ovlivňují aplikaci.
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnWndMsg
Tato členová funkce je volána pomocí WindowProcfunkce , nebo je volána během reflexe zprávy.
virtual BOOL OnWndMsg(
UINT message,
WPARAM wParam,
LPARAM lParam,
LRESULT* pResult);
Parametry
message
Určuje zprávu, která se má odeslat.
wParam
Určuje další informace závislé na zprávách.
lParam
Určuje další informace závislé na zprávách.
pResult
Vrácená hodnota WindowProc. Závisí na zprávě; může být NULL.
Návratová hodnota
TRUE, pokud byla zpráva zpracována; jinak NEPRAVDA.
Poznámky
OnWndMsg určuje typ zprávy a buď volá příslušnou funkci rozhraní (například OnCommand pro WM_COMMAND) nebo vyhledá příslušnou zprávu v mapě zprávy.
Další informace o reflexi zprávy naleznete v tématu Zpracování odražených zpráv.
CWnd::OnXButtonDblClk
Architektura volá tuto členskou funkci, když uživatel poklikne XBUTTON1 nebo XBUTTON2 když je kurzor v klientské oblasti okna.
afx_msg void OnXButtonDblClk(
UINT nFlags,
UINT nButton,
CPoint point);
Parametry
nFlags
[v] Bitové kombinace (OR) příznaků, které označují, které modifikační klávesy jsou stisknuty. Příznak například označuje, MK_CONTROL že je stisknuta klávesa CTRL.
nButton
[v] Hodnota XBUTTON1 , pokud je první tlačítko Microsoft Intellimouse X poklikání nebo XBUTTON2, pokud je druhé tlačítko X poklikání.
point
[v] Objekt CPoint , který určuje x a y souřadnice kurzoru vzhledem k levému hornímu rohu klientské oblasti.
Poznámky
Tato metoda obdrží WM_XBUTTONDBLCLK oznámení, které je popsáno v sadě Windows SDK. Pokud se myš nezachytí, zpráva se publikuje do okna pod kurzorem. V opačném případě se zpráva publikuje do okna, které zachytilo myš.
Parametr nFlags může být kombinací modifikačních kláves uvedených v následující tabulce. Další informace naleznete v tématu O vstupu myši.
| Modifikační klávesa | Popis |
|---|---|
MK_CONTROL |
Stisknete klávesu CTRL. |
MK_LBUTTON |
Levé tlačítko myši se stiskne. |
MK_MBUTTON |
Prostřední tlačítko myši se stiskne. |
MK_RBUTTON |
Pravé tlačítko myši se stiskne. |
MK_SHIFT |
Stisknete klávesu SHIFT. |
MK_XBUTTON1 |
Stisknete XBUTTON1 tlačítko myši microsoft IntelliMouse. |
MK_XBUTTON2 |
Stisknete XBUTTON2 tlačítko myši microsoft IntelliMouse. |
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnXButtonDown
Architektura volá tuto členskou funkci, když uživatel stiskne XBUTTON1 nebo XBUTTON2 když je kurzor v klientské oblasti okna.
afx_msg void OnXButtonDown(
UINT nFlags,
UINT nButton,
CPoint point);
Parametry
nFlags
[v] Bitové kombinace (OR) příznaků, které označují, které modifikační klávesy jsou stisknuty. Příznak například označuje, MK_CONTROL že je stisknuta klávesa CTRL.
nButton
[v] Hodnota XBUTTON1 , jestli bylo na první tlačítko Microsoft Intellimouse X kliknuto nebo XBUTTON2 jestli bylo na druhé tlačítko X kliknuto.
point
[v] Objekt CPoint , který určuje x a y souřadnice kurzoru vzhledem k levému hornímu rohu klientské oblasti.
Poznámky
Tato metoda obdrží WM_XBUTTONDOWN oznámení, které je popsáno v sadě Windows SDK. Pokud se myš nezachytí, zpráva se publikuje do okna pod kurzorem. V opačném případě se zpráva publikuje do okna, které zachytilo myš.
Parametr nFlags může být kombinací modifikačních kláves uvedených v následující tabulce. Další informace naleznete v tématu O vstupu myši.
| Modifikační klávesa | Popis |
|---|---|
MK_CONTROL |
Stisknete klávesu CTRL. |
MK_LBUTTON |
Levé tlačítko myši se stiskne. |
MK_MBUTTON |
Prostřední tlačítko myši se stiskne. |
MK_RBUTTON |
Pravé tlačítko myši se stiskne. |
MK_SHIFT |
Stisknete klávesu SHIFT. |
MK_XBUTTON1 |
Stisknete XBUTTON1 tlačítko myši microsoft IntelliMouse. |
MK_XBUTTON2 |
Stisknete XBUTTON2 tlačítko myši microsoft IntelliMouse. |
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OnXButtonUp
Architektura volá tuto členskou funkci, když uživatel uvolní XBUTTON1 nebo XBUTTON2 když je kurzor v klientské oblasti okna.
afx_msg void OnXButtonUp(
UINT nFlags,
UINT nButton,
CPoint point);
Parametry
nFlags
[v] Bitové kombinace (OR) příznaků, které označují, které modifikační klávesy jsou stisknuty. Příznak například označuje, MK_CONTROL že je stisknuta klávesa CTRL.
nButton
[v] Hodnota XBUTTON1 , jestli bylo poklikáním na první tlačítko Microsoft Intellimouse X nebo XBUTTON2 poklikáním na druhé tlačítko X.
point
[v] Objekt CPoint , který určuje x a y souřadnice kurzoru vzhledem k levému hornímu rohu klientské oblasti.
Poznámky
Tato metoda obdrží WM_XBUTTONUP oznámení, které je popsáno v sadě Windows SDK. Pokud se myš nezachytí, zpráva se publikuje do okna pod kurzorem. V opačném případě se zpráva publikuje do okna, které zachytilo myš.
Parametr nFlags může být kombinací modifikačních kláves uvedených v následující tabulce. Další informace naleznete v tématu O vstupu myši.
| Modifikační klávesa | Popis |
|---|---|
MK_CONTROL |
Stisknete klávesu CTRL. |
MK_LBUTTON |
Levé tlačítko myši se stiskne. |
MK_MBUTTON |
Prostřední tlačítko myši se stiskne. |
MK_RBUTTON |
Pravé tlačítko myši se stiskne. |
MK_SHIFT |
Stisknete klávesu SHIFT. |
MK_XBUTTON1 |
Stisknete XBUTTON1 tlačítko myši microsoft IntelliMouse. |
MK_XBUTTON2 |
Stisknete XBUTTON2 tlačítko myši microsoft IntelliMouse. |
Poznámka:
Tato členová funkce je volána architekturou, která vaší aplikaci umožní zpracovat zprávu systému Windows. Parametry předané vaší funkci odrážejí parametry přijaté architekturou při přijetí zprávy. Pokud zavoláte implementaci této funkce základní třídy, použije tato implementace parametry, které byly původně předány se zprávou, a ne parametry, které do funkce zadáte.
CWnd::OpenClipboard
Otevře schránku.
BOOL OpenClipboard();
Návratová hodnota
Nenulové, pokud je schránka otevřena prostřednictvím CWndnebo 0, pokud je otevřená jiná aplikace nebo okno.
Poznámky
Jiné aplikace nebudou moci upravovat schránku, dokud CloseClipboard nebude volána funkce Systému Windows.
Aktuální CWnd objekt se nestane vlastníkem schránky, dokud EmptyClipboard nebude volána funkce Systému Windows.
Příklad
//handler for Edit | Copy menu
void CMdiView::OnEditCopy()
{
if (!OpenClipboard())
{
AfxMessageBox(_T("Cannot open the Clipboard"));
return;
}
// Remove the current Clipboard contents
if (!EmptyClipboard())
{
AfxMessageBox(_T("Cannot empty the Clipboard"));
return;
}
// Get the currently selected data, hData handle to
// global memory of data
CString str;
m_Edit.GetWindowText(str);
size_t cbStr = (str.GetLength() + 1) * sizeof(TCHAR);
HGLOBAL hData = GlobalAlloc(GMEM_MOVEABLE, cbStr);
memcpy_s(GlobalLock(hData), cbStr, str.LockBuffer(), cbStr);
GlobalUnlock(hData);
str.UnlockBuffer();
// For the appropriate data formats...
UINT uiFormat = (sizeof(TCHAR) == sizeof(WCHAR)) ? CF_UNICODETEXT : CF_TEXT;
if (::SetClipboardData(uiFormat, hData) == NULL)
{
AfxMessageBox(_T("Unable to set Clipboard data"));
CloseClipboard();
return;
}
CloseClipboard();
}
CWnd::operator HWND
Tento operátor slouží k získání popisovače objektu CWnd .
operator HWND() const;
CWnd::operator !=
Porovná dva CWnd objekty a určí, zda nemají stejné m_hWnd.
BOOL operator!=(const CWnd& wnd) const;
Parametry
wnd
Odkaz na CWnd objekt.
Návratová hodnota
Nenulová, pokud je rovna; jinak 0.
CWnd::operator ==
Porovná dva CWnd objekty a určí, zda mají stejné m_hWnd.
BOOL operator==(const CWnd& wnd) const;
Parametry
wnd
Odkaz na CWnd objekt.
Návratová hodnota
Nenulová, pokud je rovna; jinak 0.
CWnd::PaintWindowlessControls
Nakreslí ovládací prvky bez oken v kontejneru ovládacího prvku.
BOOL PaintWindowlessControls(CDC* pDC);
Parametry
pDC
Kontext zařízení, na kterém chcete kreslit ovládací prvky bez oken.
Návratová hodnota
Vrátí TRUE , pokud je kontejner ovládacího prvku a ovládací prvky bez oken jsou úspěšně vykresleny, jinak FALSE.
CWnd::PostMessage
Umístí zprávu do fronty zpráv okna a pak se vrátí bez čekání na zpracování zprávy odpovídajícím oknem.
BOOL PostMessage(
UINT message,
WPARAM wParam = 0,
LPARAM lParam = 0);
Parametry
message
Určuje zprávu, která se má publikovat.
wParam
Určuje další informace o zprávě. Obsah tohoto parametru závisí na publikované zprávě.
lParam
Určuje další informace o zprávě. Obsah tohoto parametru závisí na publikované zprávě.
Návratová hodnota
Nenulové, pokud je zpráva publikována; jinak 0.
Poznámky
Zprávy ve frontě zpráv se načítají voláním GetMessage funkce systému Windows.PeekMessage
Funkci Windows PostMessage lze použít pro přístup k jiné aplikaci.
Příklad
Podívejte se na příklad pro AfxGetMainWnd.
CWnd::PostNcDestroy
Volané podle výchozí OnNcDestroy členské funkce po zničení okna.
virtual void PostNcDestroy();
Poznámky
Odvozené třídy mohou tuto funkci použít pro vlastní vyčištění, jako je odstranění this ukazatele.
CWnd::PreCreateWindow
Volá se rozhraním před vytvořením okna Windows připojeného k tomuto CWnd objektu.
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
Parametry
cs
Struktura CREATESTRUCT .
Návratová hodnota
Nenulové, pokud by vytváření okna mělo pokračovat; 0 značí selhání vytváření.
Poznámky
Upozorňující
CWnd::PreCreateWindow nyní přiřadí člen cs hMenu ukazatel this , pokud je NULL nabídka a styl obsahuje WS_CHILD. Pro správné funkce se ujistěte, že ovládací prvek dialogového okna má ID, které není NULL.
Tato změna opravuje chybové ukončení ve scénářích spravované/nativní spolupráce. Prohlášení TRACE v CWnd::Create upozorněních vývojáře problému.
Tuto funkci nikdy nevolejte přímo.
Výchozí implementace této funkce zkontroluje NULL název třídy okna a nahradí odpovídající výchozí hodnotu. Přepište tuto členovou funkci tak, aby před vytvořením okna změnila CREATESTRUCT strukturu.
Každá třída odvozená z CWnd přidává své vlastní funkce k přepsání PreCreateWindow. Tyto odvození PreCreateWindow nejsou záměrně zdokumentovány. Chcete-li určit styly vhodné pro každou třídu a vzájemné závislosti mezi styly, můžete prozkoumat zdrojový kód MFC pro základní třídu vaší aplikace. Pokud se rozhodnete přepsat PreCreateWindow, , můžete určit, zda styly použité v základní třídě vaší aplikace poskytují funkce, které potřebujete, pomocí informací shromážděných ze zdrojového kódu MFC.
Další informace o změně stylů oken naleznete v tématu Změna stylů okna vytvořeného prostředím MFC.
Příklad
// alter the styles of the mdi frame window
BOOL CMdiChildFrame::PreCreateWindow(CREATESTRUCT &cs)
{
// Create a window without min/max buttons or sizable border
cs.style |= WS_OVERLAPPED | WS_SYSMENU | WS_BORDER;
// Size the window to 1/3 screen size and center it
cs.cy = ::GetSystemMetrics(SM_CYSCREEN) / 3;
cs.cx = ::GetSystemMetrics(SM_CXSCREEN) / 3;
cs.y = ((cs.cy * 3) - cs.cy) / 2;
cs.x = ((cs.cx * 3) - cs.cx) / 2;
return CMDIChildWnd::PreCreateWindow(cs);
}
CWnd::PreSubclassWindow
Tato členová funkce je volána rozhraním, aby před podtřídou bylo možné provést další nezbytné podtřídy.
virtual void PreSubclassWindow();
Poznámky
Přepsání této členské funkce umožňuje dynamické podtřídy ovládacích prvků. Jedná se o pokročilou přepisovatelnou.
CWnd::PreTranslateMessage
CWinApp Třída slouží k překladu zpráv oken před jejich odesláním TranslateMessage do funkcí systému Windows a DispatchMessage Windows.
virtual BOOL PreTranslateMessage(MSG* pMsg);
Parametry
pMsg
Odkazuje na MSG strukturu, která obsahuje zprávu ke zpracování.
Návratová hodnota
Nenulové, pokud byla zpráva přeložena a neměla by být odeslána; 0, pokud zpráva nebyla přeložena a měla by být odeslána.
CWnd::Print
Voláním této členské funkce nakreslete aktuální okno v zadaném kontextu zařízení, které je nejčastěji v kontextu zařízení tiskárny.
void Print(
CDC* pDC,
DWORD dwFlags) const;
Parametry
pDC
Ukazatel na kontext zařízení.
dwFlags
Určuje možnosti výkresu. Tento parametr může být jeden nebo více z těchto příznaků:
PRF_CHECKVISIBLENakreslete okno jenom v případě, že je viditelné.PRF_CHILDRENKreslete všechna viditelná podřízená okna.PRF_CLIENTNakreslete oblast klienta okna.PRF_ERASEBKGNDPřed nakreslením okna vymažte pozadí.PRF_NONCLIENTNakreslete oblast bez klienta okna.PRF_OWNEDNakreslete všechna vlastněná okna.
Poznámky
CWnd::DefWindowProc funkce zpracuje tuto zprávu na základě zadané možnosti výkresu:
Pokud
PRF_CHECKVISIBLEje zadané a okno není viditelné, nic nedělejte.Pokud
PRF_NONCLIENTje zadáno, nakreslete oblast nonclient v daném kontextu zařízení.Pokud
PRF_ERASEBKGNDje zadáno, odešlete oknoWM_ERASEBKGNDzprávu.Pokud
PRF_CLIENTje zadáno, odešlete oknoWM_PRINTCLIENTzprávu.Pokud
PRF_CHILDRENje nastavené, odešlete každé viditelné podřízené oknoWM_PRINTzprávu.Pokud
PRF_OWNEDje nastavené, pošlete každému viditelnémuWM_PRINTokně zprávu.
CWnd::PrintClient
Voláním této členské funkce nakreslete jakékoli okno v zadaném kontextu zařízení (obvykle kontext zařízení tiskárny).
void PrintClient(
CDC* pDC,
DWORD dwFlags) const;
Parametry
pDC
Ukazatel na kontext zařízení.
dwFlags
Určuje možnosti kreslení. Tento parametr může být jeden nebo více z těchto příznaků:
PRF_CHECKVISIBLENakreslete okno jenom v případě, že je viditelné.PRF_CHILDRENKreslete všechna viditelná podřízená okna.PRF_CLIENTNakreslete oblast klienta okna.PRF_ERASEBKGNDPřed nakreslením okna vymažte pozadí.PRF_NONCLIENTNakreslete oblast bez klienta okna.PRF_OWNEDNakreslete všechna vlastněná okna.
CWnd::PrintWindow
Zkopíruje okno vizuálu do zadaného kontextu zařízení, obvykle řadiče domény tiskárny.
BOOL PrintWindow(
CDC* pDC,
UINT nFlags) const;
Parametry
pDC
Ukazatel na kontext zařízení, na který se má vytisknout.
nFlags
Určuje možnosti výkresu. Seznam možných hodnot najdete v tématu PrintWindow.
Návratová hodnota
Nenulové, pokud je funkce úspěšná; jinak 0.
Poznámky
Tato členová funkce emuluje funkce funkce PrintWindow, jak je popsáno v sadě Windows SDK.
CWnd::RedrawWindow
Aktualizuje zadaný obdélník nebo oblast v klientské oblasti daného okna.
BOOL RedrawWindow(
LPCRECT lpRectUpdate = NULL,
CRgn* prgnUpdate = NULL,
UINT flags = RDW_INVALIDATE | RDW_UPDATENOW | RDW_ERASE);
Parametry
lpRectUpdate
Odkazuje na RECT strukturu obsahující souřadnice obdélníku aktualizace. Tento parametr se ignoruje, pokud prgnUpdate obsahuje platný popisovač oblasti.
prgnUpdate
Identifikuje oblast aktualizace. Pokud se jedná o obojí prgnUpdate , lpRectUpdate NULLpřidá se do oblasti aktualizace celá oblast klienta.
flags
K zneplatnění okna se používají následující příznaky:
RDW_ERASEZpůsobí, že okno obdržíWM_ERASEBKGNDzprávu při opětovném nakreslení okna. PříznakRDW_INVALIDATEmusí být zadán také; jinak RDW_ERASE nemá žádný vliv.RDW_FRAMEZpůsobí, že jakákoli část oblasti mimo klient okna, která protíná oblast aktualizace, aby obdrželaWM_NCPAINTzprávu. PříznakRDW_INVALIDATEmusí být zadán také. JinakRDW_FRAMEnemá žádný vliv.RDW_INTERNALPAINTWM_PAINTZpůsobí, že se zpráva odešle do okna bez ohledu na to, jestli okno obsahuje neplatnou oblast.RDW_INVALIDATEZneplatněnílpRectUpdateneboprgnUpdate(pouze jeden nemusí býtNULL). Pokud se jednáNULLo obojí, celé okno se zneplatní.
K ověření okna se používají následující příznaky:
RDW_NOERASEPotlačí všechny čekajícíWM_ERASEBKGNDzprávy.RDW_NOFRAMEPotlačí všechny čekajícíWM_NCPAINTzprávy. Tento příznak musí být použit sRDW_VALIDATEa obvykle se používá sRDW_NOCHILDREN. Tato možnost by měla být použita s opatrností, protože by mohla zabránit správnému malování částí okna.RDW_NOINTERNALPAINTPotlačí všechny čekající interníWM_PAINTzprávy. Tento příznak nemá vliv naWM_PAINTzprávy vyplývající z neplatných oblastí.RDW_VALIDATElpRectUpdateOvěřuje neboprgnUpdate(pouze jeden nemusíNULLbýt ). Pokud se jednáNULLo obojí, ověří se celé okno. Tento příznak nemá vliv na interníWM_PAINTzprávy.
Následující příznaky určují, kdy dojde k překreslení. Malování není provedeno RedrawWindow funkcí, pokud není zadán jeden z těchto bitů.
RDW_ERASENOWZpůsobí, že ovlivněná okna (specifikovaná příznakemRDW_ALLCHILDRENaRDW_NOCHILDRENpříznakem) budou v případě potřeby přijímatWM_NCPAINTaWM_ERASEBKGNDhlásit zprávy před vrácením funkce.WM_PAINTzprávy jsou odloženy.RDW_UPDATENOWZpůsobí, že ovlivněná okna (jak jsou zadányRDW_ALLCHILDRENpříznakyRDW_NOCHILDREN) přijímatWM_NCPAINT,WM_ERASEBKGNDaWM_PAINTzprávy, pokud je to nutné, před vrácením funkce.
Ve výchozím nastavení okna ovlivněná RedrawWindow funkcí závisí na tom, jestli má zadané okno WS_CLIPCHILDREN styl. Podřízená okna WS_CLIPCHILDREN oken nejsou ovlivněna. Tato okna, která nejsou WS_CLIPCHILDREN windows, se však rekurzivně ověřují nebo zneplatní, dokud WS_CLIPCHILDREN se nezobrazí okno. Následující příznaky řídí, která okna jsou ovlivněna RedrawWindow funkcí:
RDW_ALLCHILDRENZahrnuje podřízená okna, pokud existuje, v operaci překreslení.RDW_NOCHILDRENVyloučí podřízená okna, pokud existují, z operace překreslení.
Návratová hodnota
Nenulové, pokud bylo okno úspěšně překresleno; jinak 0.
Poznámky
Pokud se RedrawWindow členová funkce používá k zneplatnění části okna plochy, toto okno neobdrží WM_PAINT zprávu. K opětovnému nakreslení plochy by měla aplikace používat CWnd::ValidateRgn, CWnd::InvalidateRgn, CWnd::UpdateWindow, nebo RedrawWindow
CWnd::ReflectChildNotify
Tato funkce zprávy je volána architekturou z OnChildNotify.
BOOL ReflectChildNotify(
UINT message,
WPARAM wParam,
LPARAM lParam,
LRESULT* pResult);
Parametry
message
Určuje zprávu, která se má promítnout.
wParam
Určuje další informace závislé na zprávách.
lParam
Určuje další informace závislé na zprávách.
pResult
Výsledek vygenerovaný podřízeným oknem, který má vrátit nadřazené okno. Může to být NULL.
Návratová hodnota
TRUE pokud se zpráva projevila; jinak FALSE.
Poznámky
Jedná se o pomocnou funkci, která odráží message jeho zdroj.
Zrcadlené zprávy se odesílají přímo do CWnd::OnWndMsg nebo CCmdTarget::OnCmdMsg.
Další informace o reflexi zprávy naleznete v tématu Zpracování odražených zpráv.
CWnd::ReflectLastMsg
Tato členová funkce je volána rozhraním, aby odrážela poslední zprávu do podřízeného okna.
static BOOL PASCAL ReflectLastMsg(
HWND hWndChild,
LRESULT* pResult = NULL);
Parametry
hWndChild
Popisovač podřízeného okna
pResult
Výsledek vygenerovaný podřízeným oknem, který má vrátit nadřazené okno. Může to být NULL.
Návratová hodnota
Nenulové, pokud byla zpráva zpracována; jinak 0.
Poznámky
Tato členová funkce volá SendChildNotifyLastMsg , pokud je okno identifikované hWndChild ovládacím prvku OLE nebo okno v trvalé mapě.
Další informace o reflexi zprávy naleznete v tématu Zpracování odražených zpráv.
CWnd::ReleaseDC
Uvolní kontext zařízení a uvolní ho pro použití jinými aplikacemi.
int ReleaseDC(CDC* pDC);
Parametry
pDC
Identifikuje kontext zařízení, který se má uvolnit.
Návratová hodnota
Nenulové, pokud je úspěšné; jinak 0.
Poznámky
Účinek ReleaseDC členské funkce závisí na typu kontextu zařízení.
Aplikace musí volat ReleaseDC členovu funkci pro každé volání GetWindowDC členské funkce a pro každé volání GetDC členské funkce.
CWnd::RepositionBars
Volá se změna umístění a změna velikosti řídicích pruhů v klientské oblasti okna.
void RepositionBars(UINT nIDFirst,
UINT nIDLast,
UINT nIDLeftOver,
UINT nFlag = reposDefault,
LPRECT lpRectParam = NULL,
LPCRECT lpRectClient = NULL,
BOOL bStretch = TRUE) ;
Parametry
nIDFirst
ID prvního řídicího pruhu v rozsahu ovládacích pruhů pro změnu umístění a změnu velikosti.
nIDLast
ID posledního řídicího pruhu v rozsahu ovládacích pruhů pro změnu umístění a změnu velikosti.
nIDLeftOver
Určuje ID podokna, které vyplní zbytek klientské oblasti.
nFlag
Může mít jednu z následujících hodnot:
CWnd::reposDefaultProvede rozložení řídicích pruhů.lpRectParamse nepoužívá a může býtNULL.CWnd::reposQueryRozložení řídicích pruhů není hotové; místo toholpRectParamse inicializuje s velikostí klientské oblasti, jako by rozložení skutečně proběhlo.CWnd::reposExtraPřidá hodnotylpRectParamdo klientské oblastinIDLasta také provede rozložení.
lpRectParam
Odkazuje na RECT strukturu; použití, které závisí na hodnotě nFlag.
lpRectClient
Odkazuje na RECT strukturu obsahující dostupnou oblast klienta. Pokud NULLse použije oblast klienta okna.
bStretch
Určuje, zda má být pruh roztažen na velikost rámečku.
Poznámky
nIDLast Parametry nIDFirst definují rozsah ID řídicích pruhů, které se mají přemístit v klientské oblasti. Parametr nIDLeftOver určuje ID podřízeného okna (obvykle zobrazení), které je přemísťováno a změněno tak, aby vyplnilo zbytek klientské oblasti, které nejsou vyplněny ovládacími pruhy.
CWnd::RunModalLoop
Voláním této členské funkce načtete, přeložíte nebo odešlete zprávy, dokud ContinueModal se nevrátí FALSE.
int RunModalLoop(DWORD dwFlags = 0);
Parametry
dwFlags
Určuje zprávu systému Windows, která se má odeslat. Může to být jedna z následujících hodnot:
MLF_NOIDLEMSGNeodesílejteWM_ENTERIDLEzprávy nadřazené sadě.MLF_NOKICKIDLENeodesílejteWM_KICKIDLEzprávy do okna.MLF_SHOWONIDLEZobrazit okno, když fronta zpráv přestane být nečinná.
Návratová hodnota
Určuje hodnotu parametru nResult předaného EndModalLoop členské funkci, která se pak použije k ukončení modální smyčky.
Poznámky
Ve výchozím nastavení ContinueModal se vrátí FALSE po EndModalLoop zavolání. Vrátí hodnotu zadanou jako nResult EndModalLoop.
CWnd::ScreenToClient
Převede souřadnice obrazovky daného bodu nebo obdélníku na displeji na souřadnice klienta.
void ScreenToClient(LPPOINT lpPoint) const;
void ScreenToClient(LPRECT lpRect) const;
Parametry
lpPoint
Odkazuje na CPoint objekt nebo POINT strukturu , která obsahuje souřadnice obrazovky, které se mají převést.
lpRect
Odkazuje na CRect objekt nebo RECT strukturu , která obsahuje souřadnice obrazovky, které se mají převést.
Poznámky
Členská ScreenToClient funkce nahrazuje souřadnice obrazovky zadané v lpPoint souřadnicích klienta nebo lpRect souřadnice klienta. Nové souřadnice jsou relativní vzhledem k levému hornímu CWnd rohu klientské oblasti.
Příklad
Podívejte se na příklad pro CListCtrl::GetItemRect.
CWnd::ScrollWindow
Posune obsah klientské oblasti aktuálního CWnd objektu.
void ScrollWindow(
int xAmount,
int yAmount,
LPCRECT lpRect = NULL,
LPCRECT lpClipRect = NULL);
Parametry
xAmount
Určuje množství vodorovného posouvání v jednotkách zařízení. Tento parametr musí být záporná hodnota, která se má posunout doleva.
yAmount
Určuje velikost vertikálního posouvání v jednotkách zařízení. Tento parametr musí být záporná hodnota, která se má posunout nahoru.
lpRect
Odkazuje na CRect objekt nebo RECT strukturu , která určuje část klientské oblasti, která se má posunout. Pokud lpRect ano NULL, posune se celá oblast klienta. Kurzor se přemísťuje, pokud obdélník kurzoru protíná obdélník posuvníku.
lpClipRect
Odkazuje na CRect objekt nebo RECT strukturu, která určuje obdélník výřezu, který se má posunout. Posunou se jenom bity uvnitř tohoto obdélníku. Bity mimo tento obdélník nejsou ovlivněny, i když jsou v obdélníku lpRect . Pokud lpClipRect ano NULL, na obdélníku posuvníku se neprovádí žádné výřezy.
Poznámky
Pokud je stříška v CWnd posouvání, automaticky skryje stříšku, ScrollWindow aby se zabránilo vymazání stříšky a potom po dokončení posouvání obnoví stříšku. Pozice stříšky se odpovídajícím způsobem upraví.
Oblast odkrytá ScrollWindow členskou funkcí se nepřekreslí, ale zkombinuje se do oblasti aktualizace aktuálního CWnd objektu. Aplikace nakonec obdrží zprávu s oznámením WM_PAINT , že oblast potřebuje překreslit. Chcete-li znovu nakreslit odkrytou oblast současně se posouváním, zavolejte UpdateWindow člena funkce ihned po volání ScrollWindow.
Pokud lpRect ano NULL, pozice všech podřízených oken v okně jsou posunuty o množství určené xAmount a yAmounta všechny neplatné (nezarovnané) oblasti v tomto CWnd okně jsou také posunu. ScrollWindow je rychlejší, pokud lpRect je NULL.
Pokud lpRect není NULL, pozice podřízených oken se nezmění a neplatné oblasti CWnd nejsou posunuty. Chcete-li zabránit aktualizaci problémů, pokud lpRect není NULL, zavolejte UpdateWindow členské funkce, aby se před voláním ScrollWindowznovu nakreslily CWnd .
CWnd::ScrollWindowEx
Posune obsah klientské oblasti okna.
int ScrollWindowEx(
int dx,
int dy,
LPCRECT lpRectScroll,
LPCRECT lpRectClip,
CRgn* prgnUpdate,
LPRECT lpRectUpdate,
UINT flags);
Parametry
dx
Určuje množství vodorovného posouvání v jednotkách zařízení. Aby se tento parametr mohl posunout doleva, musí mít zápornou hodnotu.
dy
Určuje velikost vertikálního posouvání v jednotkách zařízení. Aby se tento parametr mohl posunout nahoru, musí mít zápornou hodnotu.
lpRectScroll
Odkazuje na RECT strukturu , která určuje část klientské oblasti, která se má posunout. Pokud je NULLtento parametr, posune se celá oblast klienta.
lpRectClip
Odkazuje na RECT strukturu, která určuje obdélník výřezu, který se má posunout. Tato struktura má přednost před obdélníkem, na který lpRectScrollodkazuje . Posunou se jenom bity uvnitř tohoto obdélníku. Bity mimo tento obdélník nejsou ovlivněny, i když jsou v obdélníku lpRectScroll . Pokud je NULLtento parametr, neprovádí se žádný výřez na obdélníku posuvníku.
prgnUpdate
Identifikuje oblast upravenou tak, aby oblast byla zrušena posouváním. Tento parametr může být NULL.
lpRectUpdate
Odkazuje na RECT strukturu, která obdrží hranice obdélníku zneplatněné posouváním. Tento parametr může být NULL.
flags
Může mít jednu z následujících hodnot:
SW_ERASEKdyž zadáteSW_INVALIDATEpomocí příkazu , vymaže nově neplatnou oblast odeslánímWM_ERASEBKGNDzprávy do okna.SW_INVALIDATEOblast identifikovanáprgnUpdatepo posouvání zneplatní.SW_SCROLLCHILDRENPosune všechna podřízená okna, která protínají obdélník, na kterýlpRectScrollodkazuje počet pixelů zadaných vdxady. Systém Windows odešleWM_MOVEzprávu do všech podřízených oken, která protínají , i když se nepřesouvajílpRectScroll. Kurzor se přemísťuje při posouvání podřízeného okna a obdélník kurzoru protíná obdélník posuvníku.
Návratová hodnota
Návratová hodnota je SIMPLEREGION (obdélníková neplatná oblast), COMPLEXREGION (nerectangulovaná neplatná oblast; překrývající se obdélníky) nebo NULLREGION (bez neplatných oblastí), pokud je funkce úspěšná; v opačném případě je ERRORvrácená hodnota .
Poznámky
Tato funkce je podobná ScrollWindow funkci s některými dalšími funkcemi.
Pokud SW_INVALIDATE a SW_ERASE nejsou zadány, ScrollWindowEx členová funkce zneplatní oblast, která je posunována směrem od. Pokud je některý z těchto příznaků nastavený, ScrollWindowEx zneplatní tuto oblast. Oblast se neaktualizuje, dokud aplikace nevolá UpdateWindow členovou funkci, zavolá RedrawWindow členovou funkci (určení RDW_UPDATENOW nebo RDW_ERASENOW) nebo načte WM_PAINT zprávu z fronty aplikace.
Pokud má WS_CLIPCHILDREN okno styl, vrácené oblasti určené prgnUpdate a lpRectUpdate představují celkovou oblast posuvného okna, která musí být aktualizována, včetně všech oblastí v podřízených oknech, které potřebují aktualizaci.
SW_SCROLLCHILDREN Pokud je příznak zadán, Systém Windows nebude správně aktualizovat obrazovku, pokud se část podřízeného okna posune. Část posuvného podřízeného okna, která leží mimo zdrojový obdélník, nebude vymazána a nebude správně překreslena v jeho novém cíli. DeferWindowPos Pomocí funkce Windows můžete přesouvat podřízená okna, která nejsou zcela v obdélníkulpRectScroll. Kurzor se přemísťuje, pokud SW_SCROLLCHILDREN je příznak nastaven a stříšku obdélník protíná obdélník posuvníku.
Všechny vstupní a výstupní souřadnice (pro lpRectScroll, lpRectClip, lpRectUpdatea prgnUpdate) se předpokládají v souřadnicích klienta bez ohledu na to, zda má okno CS_OWNDC styl nebo CS_CLASSDC třídy. LPtoDP V případě potřeby můžete pomocí funkcí Windows DPtoLP převést na logické souřadnice a z logických souřadnic.
CWnd::SendChildNotifyLastMsg
Tato členová funkce je volána architekturou, která poskytuje podřízené okno oznámení z nadřazeného okna, takže podřízené okno může zpracovat úlohu.
BOOL SendChildNotifyLastMsg(LRESULT* pResult = NULL);
Parametry
pResult
Výsledek vygenerovaný podřízeným oknem, který má vrátit nadřazené okno.
Návratová hodnota
Nenulové, pokud podřízené okno zpracovalo zprávu poslanou do nadřazeného objektu; jinak 0.
Poznámky
SendChildNotifyLastMsg pokud se jedná o zprávu, která se projeví, odešle aktuální zprávu do zdroje.
Další informace o reflexi zprávy naleznete v tématu Zpracování odražených zpráv.
CWnd::SendDlgItemMessage
Odešle zprávu ovládacímu prvku.
LRESULT SendDlgItemMessage(
int nID,
UINT message,
WPARAM wParam = 0,
LPARAM lParam = 0);
Parametry
nID
Určuje identifikátor ovládacího prvku dialogového okna, který zprávu obdrží.
message
Určuje zprávu, která se má odeslat.
wParam
Určuje další informace závislé na zprávách.
lParam
Určuje další informace závislé na zprávách.
Návratová hodnota
Určuje hodnotu vrácenou procedurou okna ovládacího prvku nebo 0, pokud ovládací prvek nebyl nalezen.
Poznámky
Členová SendDlgItemMessage funkce se nevrátí, dokud nebude zpráva zpracována.
Použití SendDlgItemMessage je stejné jako získání CWnd* pro daný ovládací prvek a volání SendMessage členské funkce.
Příklad
void CMyDlg::SetSpinRange()
{
//set the min and max range of the up/down or spin control
SendDlgItemMessage(IDC_SPIN1, UDM_SETRANGE, 0, (LPARAM)MAKELONG(8, 1));
}
CWnd::SendMessage
Odešle zadanou zprávu do tohoto okna.
LRESULT SendMessage(
UINT message,
WPARAM wParam = 0,
LPARAM lParam = 0);
Parametry
message
Určuje zprávu, která se má odeslat.
wParam
Určuje další informace závislé na zprávách.
lParam
Určuje další informace závislé na zprávách.
Návratová hodnota
Výsledek zpracování zprávy; jeho hodnota závisí na odeslané zprávě.
Poznámky
Člen SendMessage funkce volá proceduru okna přímo a nevrací, dokud tato procedura okna nezpracovala zprávu. To je na rozdíl od PostMessage členské funkce, která zprávu umístí do fronty zpráv okna a vrátí okamžitě.
Příklad
void CAboutDlg::OnPaint()
{
// This code, normally emitted by the Application Wizard for a dialog-
// based project for the dialog's WM_PAINT handler, runs only if the
// window is iconic. The window erases the icon's area, then
// paints the icon referenced by m_hIcon.
if (IsIconic())
{
CPaintDC dc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND, (WPARAM)dc.GetSafeHdc(), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
}
CWnd::SendMessageToDescendants
Voláním této členské funkce odešlete zadanou zprávu systému Windows do všech následnických oken.
void SendMessageToDescendants(
UINT message,
WPARAM wParam = 0,
LPARAM lParam = 0,
BOOL bDeep = TRUE,
BOOL bOnlyPerm = FALSE);
Parametry
message
Určuje zprávu, která se má odeslat.
wParam
Určuje další informace závislé na zprávách.
lParam
Určuje další informace závislé na zprávách.
bDeep
Určuje úroveň, do které se má hledat. Pokud TRUE, rekurzivně hledat všechny děti; pokud FALSE, hledat pouze okamžité děti.
bOnlyPerm
Určuje, zda bude zpráva přijata dočasnými okny. Pokud TRUE, dočasná okna mohou přijmout zprávu; pokud FALSE, pouze trvalá okna obdrží zprávu. Další informace o dočasných oknech naleznete v technické poznámce 3.
Poznámky
Pokud bDeep ano FALSE, zpráva se odešle pouze do bezprostředních podřízených položek okna. V opačném případě se zpráva odešle do všech následnických oken.
Pokud bDeep a bOnlyPerm jsou TRUE, hledání pokračuje pod dočasnými okny. V tomto případě se při hledání zobrazí pouze trvalá okna. Pokud bDeep ano FALSE, zpráva se odešle pouze do bezprostředních podřízených položek okna.
Příklad
// The following code fragment is from CMyDlg::OnInitDialog
// CMyDlg is derived from CDialog.
// change font of child controls of a dialog
LOGFONT lf = {0};
// redraw of child controls not needed in OnInitDialog
// since controls aren't drawn yet.
short int fRedraw = FALSE;
lf.lfHeight = 15; // Request a 15-pixel-high font
// with face name "Arial".
wcscpy_s(lf.lfFaceName, LF_FACESIZE, _T("Arial"));
m_font.CreateFontIndirect(&lf); // Create the font.
SendMessageToDescendants(WM_SETFONT,
(WPARAM)m_font.m_hObject, //handle to font
MAKELONG((WORD)fRedraw, 0),
FALSE); // send to all descendants(TRUE) or
// just children of *this (FALSE)
CWnd::SendNotifyMessage
Odešle zadanou zprávu do okna.
BOOL SendNotifyMessage(
UINT message,
WPARAM wParam,
LPARAM lParam);
Parametry
message
Určuje zprávu, která se má odeslat.
wParam
Určuje další informace závislé na zprávách.
lParam
Určuje další informace závislé na zprávách.
Návratová hodnota
Nenulové, pokud je funkce úspěšná; jinak 0.
Poznámky
Pokud bylo okno vytvořeno volajícím vláknem, volá proceduru okna pro okno a nevrátí se, SendNotifyMessage dokud procedura okna nezpracovala zprávu. Pokud okno vytvořilo jiné vlákno, SendNotifyMessage předá zprávu do procedury okna a vrátí se okamžitě. Nečeká, až proces okna dokončí zpracování zprávy.
CWnd::SetActiveWindow
Nastaví CWnd aktivní okno.
CWnd* SetActiveWindow();
Návratová hodnota
Okno, které bylo dříve aktivní.
Vrácený ukazatel může být dočasný a neměl by být uložen pro pozdější použití.
Poznámky
Členová SetActiveWindow funkce by se měla používat opatrně, protože umožňuje aplikaci libovolně převzít aktivní okno a vstupní fokus. Za normálních okolností se Systém Windows postará o veškerou aktivaci.
CWnd::SetCapture
Způsobí odeslání veškerého následného vstupu myši do aktuálního CWnd objektu bez ohledu na pozici kurzoru.
CWnd* SetCapture();
Návratová hodnota
Ukazatel na objekt okna, který dříve přijal veškerý vstup myši. NULL Je to, pokud tam není takové okno. Vrácený ukazatel může být dočasný a neměl by být uložen pro pozdější použití.
Poznámky
Pokud CWnd už nepotřebujete všechny vstupy myši, aplikace by měla volat ReleaseCapture funkci, aby ostatní okna mohly přijímat vstup myši.
Při zachycení vstupu myší se do aktivního okna neposílají žádné WM_NCHITTEST zprávy nebo WM_SETCURSOR zprávy.
CWnd::SetCaretPos
Nastaví pozici kurzoru.
static void PASCAL SetCaretPos(POINT point);
Parametry
point
Určuje nové souřadnice x a y (v souřadnicích klienta) stříšky.
Poznámky
Členová SetCaretPos funkce přesune stříšku pouze v případě, že je vlastníkem okna v aktuálním úkolu. SetCaretPos přesune stříšku bez ohledu na to, zda je stříška skrytá.
Stříškou je sdílený prostředek. Okno by nemělo přesouvat stříšku, pokud nevlastní stříšku.
Příklad
// The following code snippet shows a caret when the left
// mouse button is pressed, and sets the caret's position to
// the cursor's position.
void CMyView::OnLButtonDown(UINT nFlags, CPoint point)
{
//create a solid caret, the width is 2, the length is 20.
CreateSolidCaret(2, 20);
SetCaretPos(point);
ShowCaret();
CView::OnLButtonDown(nFlags, point);
}
CWnd::SetClipboardViewer
Přidá toto okno do řetězu oken, která jsou upozorněna (prostřednictvím WM_DRAWCLIPBOARD zprávy) při každé změně obsahu schránky.
HWND SetClipboardViewer();
Návratová hodnota
Popisovač dalšího okna v řetězu prohlížeče schránky v případě úspěchu. Aplikace by měly tento popisovač uložit (lze ho uložit jako členovou proměnnou) a použít ho při odpovídání na řetězové zprávy prohlížeče schránky.
Poznámky
Okno, které je součástí řetězce prohlížeče schránky, musí reagovat na WM_DRAWCLIPBOARD, WM_CHANGECBCHAINa WM_DESTROY zprávy a předat zprávu do dalšího okna v řetězci.
Tato členová funkce odešle WM_DRAWCLIPBOARD zprávu do okna. Vzhledem k tomu, že popisovač dalšího okna v řetězu prohlížeče schránky ještě nebyl vrácen, aplikace by neměla předat WM_DRAWCLIPBOARD zprávu, kterou obdrží během volání SetClipboardViewer.
Aby se aplikace odebrala z řetězu prohlížečů schránky, musí volat členovou ChangeClipboardChain funkci.
CWnd::SetDlgCtrlID
Nastaví ID okna nebo ID ovládacího prvku pro okno na novou hodnotu.
int SetDlgCtrlID(int nID);
Parametry
nID
Nová hodnota, která se nastaví pro identifikátor ovládacího prvku.
Návratová hodnota
Předchozí identifikátor okna, pokud byl úspěšný; jinak 0.
Poznámky
Toto okno může být libovolné podřízené okno, nejen ovládací prvek v dialogovém okně. Okno nemůže být okno nejvyšší úrovně.
CWnd::SetDlgItemInt
Nastaví text daného ovládacího prvku v dialogovém okně na řetězcovou reprezentaci zadané celočíselné hodnoty.
void SetDlgItemInt(
int nID,
UINT nValue,
BOOL bSigned = TRUE);
Parametry
nID
Určuje celočíselné ID ovládacího prvku, který se má změnit.
nValue
Určuje celočíselnou hodnotu použitou k vygenerování textu položky.
bSigned
Určuje, zda je celočíselná hodnota podepsána nebo bez znaménka. Pokud je TRUEtento parametr , nValue je podepsán. Pokud je TRUE tento parametr menší nValue než 0, před první číslici v řetězci se umístí znaménko minus. Pokud je FALSEtento parametr , nValue je nepodepsaný.
Poznámky
SetDlgItemIntWM_SETTEXT odešle zprávu danému ovládacímu prvku.
Příklad
Podívejte se na příklad pro CWnd::SetDlgItemText.
CWnd::SetDlgItemText
Nastaví titulek nebo text ovládacího prvku vlastněného oknem nebo dialogovým oknem.
void SetDlgItemText(
int nID,
LPCTSTR lpszString);
Parametry
nID
Identifikuje ovládací prvek, jehož text má být nastaven.
lpszString
Odkazuje na CString objekt nebo řetězec ukončený hodnotou null, který obsahuje text, který se má zkopírovat do ovládacího prvku.
Poznámky
SetDlgItemTextWM_SETTEXT odešle zprávu danému ovládacímu prvku.
Příklad
// The following code fragment is from CMyDlg::OnInitDialog
// CMyDlg is derived from CDialog.
// Initialize dialog controls
SetDlgItemText(IDC_EDITNAME, _T("Type in text"));
SetDlgItemInt(IDC_EDITNUM, 100);
CWnd::SetForegroundWindow
Vloží vlákno, které vytvořilo okno do popředí a aktivuje okno.
BOOL SetForegroundWindow();
Návratová hodnota
Nenulové, pokud je funkce úspěšná; jinak 0.
Poznámky
Vstup pomocí klávesnice se směruje do okna a pro uživatele se mění různé vizuální pomůcky. Okno popředí je okno, se kterým uživatel právě pracuje. Okno popředí se vztahuje pouze na okna nejvyšší úrovně (rámečková okna nebo dialogová okna).
Příklad
Podívejte se na příklad pro CWnd::FindWindow.
CWnd::SetFocus
Deklaruje vstupní fokus.
CWnd* SetFocus();
Návratová hodnota
Ukazatel na objekt okna, který dříve měl vstupní fokus. NULL Je to, pokud tam není takové okno. Vrácený ukazatel může být dočasný a neměl by být uložen.
Poznámky
Fokus vstupu směruje všechny následné vstupy klávesnice do tohoto okna. Jakékoli okno, které dříve mělo vstupní fokus, ho ztratí.
Členová SetFocus funkce odešle WM_KILLFOCUS zprávu do okna, které ztratí vstupní fokus a WM_SETFOCUS zprávu do okna, které obdrží vstupní fokus. Aktivuje se také okno nebo nadřazený objekt.
Pokud je aktuální okno aktivní, ale nemá fokus (to znamená, že fokus neobsahuje žádné okno), při stisknutí libovolné klávesy se vytvoří zprávy WM_SYSCHAR, WM_SYSKEYDOWNnebo WM_SYSKEYUP.
CWnd::SetFont
WM_SETFONT Odešle zprávu do okna, aby používalo zadané písmo.
void SetFont(
CFont* pFont,
BOOL bRedraw = TRUE);
Parametry
pFont
Ukazatel na CFont objekt.
bRedraw
TRUE pro okno překreslit ihned po zpracování WM_SETFONT zprávy; jinak FALSE.
Poznámky
Tato metoda nemá žádný vliv, pokud okno nezisekuje WM_SETFONT zprávu. Mnoho tříd MFC odvozených z CWnd procesu této zprávy, protože jsou připojeny k předdefinované třídě okna, která obsahuje obslužnou rutinu zprávy pro WM_SETFONT zprávu. Chcete-li použít tuto metodu, třídy odvozené z CWnd musí definovat obslužnou rutinu WM_SETFONT metody pro zprávu.
CWnd::SetIcon
Voláním této členské funkce nastavíte popisovač na konkrétní ikonu, jak je identifikováno hIcon.
HICON SetIcon(
HICON hIcon,
BOOL bBigIcon);
Parametry
hIcon
Popisovač předchozí ikony
bBigIcon
Určuje ikonu 32 pixelů o 32 pixelů, pokud TRUE; určuje ikonu 16 pixelů o 16 pixelů, pokud FALSE.
Návratová hodnota
Úchyt ikony.
Poznámky
Když je třída okna zaregistrovaná, vybere ikonu.
Příklad
Podívejte se na příklad pro CWnd::GetSystemMenu.
CWnd::SetLayeredWindowAttributes
Nastaví barevný klíč neprůhlednosti a průhlednosti vrstveného okna.
BOOL SetLayeredWindowAttributes(
COLORREF crKey,
BYTE bAlpha,
DWORD dwFlags);
Parametry
crKey
Ukazatel na COLORREF hodnotu, která určuje barevný klíč průhlednosti, který se má použít při vytváření vrstveného okna. Všechny pixely malované oknem v této barvě budou průhledné. K vygenerování COLORREFRGB použijte makro.
bAlpha
Alfa hodnota použitá k popisu neprůhlednosti vrstveného okna. Další informace najdete v SourceConstantAlpha členu BLENDFUNCTION struktury. Když bAlpha je 0, okno je zcela průhledné. Když bAlpha je 255, okno je neprůžné.
dwFlags
Určuje akci, která se má provést. Tento parametr může být jedna nebo více následujících hodnot. Seznam možných hodnot najdete v tématu SetLayeredWindowAttributes.
Návratová hodnota
Nenulové, pokud je funkce úspěšná; jinak 0.
Poznámky
Tato členová funkce emuluje funkce funkce SetLayeredWindowAttributes, jak je popsáno v sadě Windows SDK.
CWnd::SetMenu
Nastaví aktuální nabídku na zadanou nabídku.
BOOL SetMenu(CMenu* pMenu);
Parametry
pMenu
Identifikuje novou nabídku. Pokud je NULLtento parametr , aktuální nabídka se odebere.
Návratová hodnota
Nenulové, pokud je nabídka změněna; jinak 0.
Poznámky
Způsobí překreslení okna tak, aby odráželo změnu nabídky.
SetMenu nezničí předchozí nabídku. Aplikace by měla volat členovou CMenu::DestroyMenu funkci, která tuto úlohu provede.
Příklad
Podívejte se na příklad pro CMenu::LoadMenu.
CWnd::SetOwner
Nastaví vlastníka aktuálního okna na zadaný objekt okna.
void SetOwner(CWnd* pOwnerWnd);
Parametry
pOwnerWnd
Identifikuje nového vlastníka objektu okna. Pokud je NULLtento parametr, objekt okna nemá žádného vlastníka.
Poznámky
Tento vlastník pak může přijímat zprávy příkazů z aktuálního objektu okna. Ve výchozím nastavení je nadřazeným objektem aktuálního okna jeho vlastník.
Často je užitečné vytvářet propojení mezi objekty okna, které nesouvisejí s hierarchií oken. Například CToolBar odesílá oznámení vlastníkovi místo nadřazeného objektu. Díky tomu se panel nástrojů stane podřízeným oknem jednoho okna (například okno aplikace kontejneru OLE) při odesílání oznámení do jiného okna (například v místním okně rámečku). Kromě toho, když je okno serveru deaktivováno nebo aktivováno během místních úprav, je jakékoli okno vlastněné oknem rámečku skryté nebo zobrazené. Toto vlastnictví je explicitně nastaveno voláním SetOwner.
Koncept vlastnictví této funkce se liší od konceptu GetWindowvlastnictví .
CWnd::SetParent
Změní nadřazené okno podřízeného okna.
CWnd* SetParent(CWnd* pWndNewParent);
Parametry
pWndNewParent
Identifikuje nové nadřazené okno.
Návratová hodnota
Ukazatel na předchozí nadřazený objekt okna, pokud byl úspěšný. Vrácený ukazatel může být dočasný a neměl by být uložen pro pozdější použití.
Poznámky
Pokud je podřízené okno viditelné, windows provede příslušné překreslení a překreslení.
CWnd::SetProperty
Voláním této členské funkce nastavíte vlastnost ovládacího prvku OLE určenou parametrem dwDispID.
void AFX_CDECL SetProperty(
DISPID dwDispID,
VARTYPE vtProp, ...);
Parametry
dwDispID
Identifikuje vlastnost, která se má nastavit.
vtProp
Určuje typ vlastnosti, která se má nastavit. Možné hodnoty naleznete v části Poznámky pro COleDispatchDriver::InvokeHelper.
...
Jeden parametr typu určeného parametrem vtProp.
Poznámky
Poznámka:
Tato funkce by měla být volána pouze u objektu CWnd , který představuje ovládací prvek OLE.
Další informace o použití této členské funkce s kontejnery ovládacích prvků OLE naleznete v článku ActiveX Řídicí kontejnery: Programování ovládacích prvků ActiveX v kontejneru ovládacího prvku ActiveX.
CWnd::SetRedraw
Volání aplikace SetRedraw umožňující překreslit změny nebo zabránit překreslení změn.
void SetRedraw(BOOL bRedraw = TRUE);
Parametry
bRedraw
Určuje stav překreslení příznaku. Pokud je TRUEtento parametr , překreslit příznak je nastaven; pokud FALSE, příznak je vymazán.
Poznámky
Tato členová funkce nastaví nebo vymaže příznak překreslení. Zatímco překreslit příznak je vymazán, obsah se po každé změně neaktualizuje a nebude znovu nakreslen, dokud není nastaven příznak překreslení. Například aplikace, která potřebuje přidat několik položek do seznamu, může vymazat překreslit příznak, přidat položky a pak nastavit překreslit příznak. Aplikace může nakonec volat Invalidate funkci nebo InvalidateRect člena, aby se seznam překresloval.
Příklad
// Updating a control or window with large amounts of data may cause
// flicker. In such cases it may be better to turn off drawing
//m_list is a member of type CListCtrl
m_List.SetRedraw(FALSE); // turn drawing off regardless of list mode
//
// Update control
//
m_List.SetRedraw(TRUE); // turn drawing back on and update the window
// invalidate the entire control, force painting
m_List.Invalidate();
m_List.UpdateWindow();
CWnd::SetScrollInfo
Voláním této členské funkce nastavíte informace, které SCROLLINFO struktura udržuje o posuvníku.
BOOL SetScrollInfo(
int nBar,
LPSCROLLINFO lpScrollInfo,
BOOL bRedraw = TRUE);
Parametry
nBar
Určuje, jestli je posuvník ovládací prvek nebo část oblasti bez klienta okna. Pokud je součástí jiné oblasti než klient, nBar také označuje, zda je posuvník umístěn vodorovně, svisle nebo obojí. Musí to být jedna z těchto věcí:
SB_CTLObsahuje parametry pro ovládací prvek posuvníku. Datovým_hWndčlen musí být úchytem ovládacího prvku posuvníku.SB_HORZUrčuje, že okno je vodorovný posuvník.SB_VERTUrčuje, že okno je svislý posuvník.
lpScrollInfo
Ukazatel na SCROLLINFO strukturu. Další informace o této struktuře najdete v sadě Windows SDK.
bRedraw
Určuje, zda má být posuvník překreslen tak, aby odrážel novou pozici. Pokud bRedraw ano TRUE, posuvník je překreslen. Pokud ano FALSE, není překreslená. Posuvník se ve výchozím nastavení překreslí.
Návratová hodnota
V případě úspěchu je TRUEvrácena hodnota . Jinak je FALSEto .
Poznámky
Struktura SCROLLINFO obsahuje informace o posuvníku, včetně minimální a maximální pozice posouvání, velikosti stránky a pozice posuvníku (palce). SCROLLINFO Další informace o změně výchozích hodnot struktury najdete v tématu struktury v sadě Windows SDK.
Obslužné rutiny zpráv MFC systému Windows označující pozici CWnd::OnHScroll posuvníku a CWnd::OnVScrollposkytují pouze 16 bitů dat o poloze. GetScrollInfo a SetScrollInfo poskytuje 32 bitů dat o poloze posuvníku. Aplikace tedy může volat GetScrollInfo při zpracování nebo CWnd::OnHScroll CWnd::OnVScroll získání 32bitových dat umístění posuvníku.
Poznámka:
CWnd::GetScrollInfo umožňuje aplikacím používat 32bitové pozice posuvníku.
CWnd::SetScrollPos
Nastaví aktuální pozici posuvníku a v případě potřeby překreslí posuvník tak, aby odrážel nové umístění posuvníku.
int SetScrollPos(
int nBar,
int nPos,
BOOL bRedraw = TRUE);
Parametry
nBar
Určuje posuvník, který se má nastavit. Tento parametr může být následující:
SB_HORZNastaví pozici posuvníku na vodorovném posuvníku okna.SB_VERTNastaví pozici posuvníku ve svislém posuvníku okna.
nPos
Určuje nové umístění posuvníku. Musí být v rozsahu posouvání.
bRedraw
Určuje, jestli se má posuvník překreslit tak, aby odrážel novou pozici posuvníku. Pokud je TRUEtento parametr , posuvník se překreslí; pokud FALSEse posuvník nepřekreslí.
Návratová hodnota
Předchozí pozice posuvníku.
Poznámky
FALSE Nastavení bRedraw je užitečné pokaždé, když se posuvník překreslí následným voláním jiné funkce.
CWnd::SetScrollRange
Nastaví minimální a maximální hodnoty pozice pro daný posuvník.
void SetScrollRange(
int nBar,
int nMinPos,
int nMaxPos,
BOOL bRedraw = TRUE);
Parametry
nBar
Určuje posuvník, který se má nastavit. Tento parametr může být některou z následujících hodnot:
SB_HORZNastaví rozsah vodorovného posuvníku okna.SB_VERTNastaví rozsah svislého posuvníku okna.
nMinPos
Určuje minimální pozici posouvání.
nMaxPos
Určuje maximální pozici posouvání.
bRedraw
Určuje, jestli má být posuvník překreslen tak, aby odrážel změnu. Pokud bRedraw je TRUE, posuvník je překreslen; pokud FALSE, posuvník není překreslen.
Poznámky
Dá se také použít ke skrytí nebo zobrazení standardních posuvníků.
Aplikace by neměla tuto funkci volat, aby při zpracování zprávy s oznámením na posuvníku skryla posuvník.
Pokud volání bezprostředně následuje za voláním SetScrollRange SetScrollPos členské funkce, měl by být parametr v SetScrollPos členské funkci 0, bRedraw aby se posuvník nekreslil dvakrát.
Výchozí rozsah standardního posuvníku je 0 až 100. Výchozí oblast ovládacího prvku posuvníku je prázdná (obě nMinPos hodnoty nMaxPos jsou 0). Rozdíl mezi hodnotami zadanými nMinPos a nMaxPos nesmí být větší než INT_MAX.
CWnd::SetTimer
Nainstaluje systémový časovač.
UINT_PTR SetTimer(
UINT_PTR nIDEvent,
UINT nElapse,
void (CALLBACK* lpfnTimer)(HWND,
UINT,
UINT_PTR,
DWORD));
Parametry
nIDEvent
Určuje nenulový identifikátor časovače. Pokud je identifikátor časovače jedinečný, vrátí tato stejná hodnota SetTimer. SetTimer V opačném případě určuje novou jedinečnou hodnotu a vrátí ji. U časovače okna (který má funkci zpětného NULL volání) musí být hodnota jedinečná pouze pro jiné časovače oken, které jsou přidružené k aktuálnímu okně. U časovače zpětného volání musí být hodnota jedinečná pro všechny časovače ve všech procesech. Proto při vytváření časovače zpětného volání je pravděpodobnější, že vrácená hodnota se může lišit od zadané hodnoty.
nElapse
Určuje hodnotu časového limitu nebo interval v milisekundách.
lpfnTimer
Určuje adresu funkce zpětného volání zadanou TimerProc aplikací, která zpracovává WM_TIMER zprávy. Pokud je NULLtento parametr , WM_TIMER zprávy se umístí do fronty zpráv aplikace a zpracovává objekt CWnd .
Návratová hodnota
Identifikátor časovače nového časovače, pokud je funkce úspěšná. Tato hodnota se může nebo nemusí rovnat hodnotě předávané prostřednictvím parametru nIDEvent . Aplikace by měla vždy předat návratovou hodnotu KillTimer členské funkci k ukončení časovače. Nenulové, pokud je úspěšné; jinak, 0.
Poznámky
Je zadána hodnota intervalu a pokaždé, když interval uplyne, systém odešle WM_TIMER zprávu do instalační fronty zpráv instalační aplikace nebo předá zprávu do funkce zpětného volání definované TimerProc aplikací.
lpfnTimer Funkci zpětného volání není nutné pojmenovatTimerProc, ale musí být deklarována jako statická a definovaná následujícím způsobem.
void CALLBACK TimerProc(
HWND hWnd, // handle of CWnd that called SetTimer
UINT nMsg, // WM_TIMER
UINT_PTR nIDEvent, // timer identification
DWORD dwTime // system time);
Příklad
V tomto příkladu se používá CWnd::SetTimer, CWnd::OnTimera CWnd::KillTimer ke zpracování WM_TIMER zpráv. První časovač je nastaven tak, aby odeslal WM_TIMER zprávu do okna hlavního rámce každých 2 sekundy v OnStartTimer. Obslužná rutina OnTimer události zpracovává WM_TIMER zprávy pro hlavní okno rámce. Tato metoda způsobí, že reproduktor počítače každých 2 sekundy pípá. Druhý časovač odešle zprávu funkci zpětného volání každých 3,75 sekund. OnStopTimer zastaví obě časovače voláním CWnd::KillTimer pro každé ID časovače.
void CMainFrame::OnStartTimer()
{
// This timer uses a WM_TIMER message, not a callback.
// Therefore, the timer is specific to this window.
// m_nWindowTimer is a UINT_PTR field.
m_nWindowTimer = SetTimer(1, 2000, NULL);
// For this demo, we specify an interval that won't overlap
// with the window timer.
m_nCallbackTimer = SetTimer(2, 3750, &CMainFrame::MyTimerProc);
// See whether we got the ID we requested in the first parameter.
#ifdef _DEBUG
CString str;
str.Format(_T("m_ncallbackTImer ID = %d"), m_nCallbackTimer);
TRACE(str);
#endif
}
void CALLBACK CMainFrame::MyTimerProc(
HWND hWnd, // handle of CWnd that called SetTimer
UINT nMsg, // WM_TIMER
UINT_PTR nIDEvent, // timer identification
DWORD dwTime // system time
)
{
MessageBeep(0x00000030L); // Windows question sound.
}
void CMainFrame::OnStopTimer()
{
KillTimer(m_nWindowTimer);
KillTimer(m_nCallbackTimer);
}
void CMainFrame::OnTimer(UINT nIDEvent)
{
MessageBeep(0xFFFFFFFF); // Beep
// Call base class handler.
CMDIFrameWnd::OnTimer(nIDEvent);
}
CWnd::SetWindowContextHelpId
Voláním této členské funkce přidružíte identifikátor kontextu nápovědy k zadanému okně.
BOOL SetWindowContextHelpId(DWORD dwContextHelpId);
Parametry
dwContextHelpId
Identifikátor kontextu nápovědy.
Návratová hodnota
Nenulové, pokud je funkce úspěšná; jinak 0.
Poznámky
Pokud podřízené okno nemá identifikátor kontextu nápovědy, dědí identifikátor nadřazeného okna. Podobně pokud vlastní okno nemá identifikátor kontextu nápovědy, dědí identifikátor okna vlastníka. Tato dědičnost identifikátorů kontextu nápovědy umožňuje aplikaci nastavit pouze jeden identifikátor dialogového okna a všech jeho ovládacích prvků.
Příklad
// The following code fragment is from CMyDlg::OnInitDialog
// CMyDlg is derived from CDialog.
// Associate a help context id with the control.
// IDC_TESTHELP_CONTROL is the id of the control
// and HIDC_TESTHELP_CONTROL is its help context
// id associated with the control.
CWnd *pWnd = GetDlgItem(IDC_TESTHELP_CONTROL);
pWnd->SetWindowContextHelpId(HIDC_TESTHELP_CONTROL);
CWnd::SetWindowPlacement
Nastaví stav zobrazení a normální (obnovené), minimalizované a maximalizované pozice pro okno.
BOOL SetWindowPlacement(const WINDOWPLACEMENT* lpwndpl);
Parametry
lpwndpl
Odkazuje na WINDOWPLACEMENT strukturu, která určuje nový stav a pozice zobrazení.
Návratová hodnota
Nenulové, pokud je funkce úspěšná; jinak 0.
CWnd::SetWindowPos
Změní velikost, umístění a pořadí Z podřízených oken, automaticky otevíraných oken a oken nejvyšší úrovně.
BOOL SetWindowPos(
const CWnd* pWndInsertAfter,
int x,
int y,
int cx,
int cy,
UINT nFlags);
Parametry
pWndInsertAfter
CWnd Identifikuje objekt, který bude před tímto objektem (vyšší než) CWnd v pořadí Z. Tento parametr může být ukazatel na CWnd jednu z následujících hodnot nebo ukazatel na jednu z následujících hodnot:
wndBottomUmístí okno v dolní části pořadí Z. Pokud se jednáCWndo první okno, okno ztratí svůj nejvyšší stav; systém umístí okno do dolní části všech ostatních oken.wndTopUmístí okno v horní části pořadí Z.wndTopMostUmístí okno nad všechna nevrchnější okna. Okno udržuje nejvyšší pozici, i když je deaktivováno.wndNoTopMostPřemísťuje okno na začátek všech nevrchných oken (to znamená za všechna horní okna). Tento příznak nemá žádný vliv, pokud je okno již úplně nahoře.
Pravidla týkající se použití tohoto parametru najdete v části Poznámky v tomto tématu.
x
Určuje nové umístění levé strany okna.
y
Určuje nové umístění horní části okna.
cx
Určuje novou šířku okna.
cy
Určuje novou výšku okna.
nFlags
Určuje nastavení velikosti a umístění. Tento parametr může být kombinací následujících příznaků:
SWP_DRAWFRAMENakreslí rámeček (definovaný při vytvoření okna) kolem okna.SWP_FRAMECHANGEDWM_NCCALCSIZEOdešle zprávu do okna, i když se velikost okna nezmění. Pokud tento příznak není zadaný,WM_NCCALCSIZEodešle se pouze při změně velikosti okna.SWP_HIDEWINDOWSkryje okno.SWP_NOACTIVATENeaktivuje okno. Pokud tento příznak není nastavený, aktivuje se okno a přesune se do horní části nejvyšší nebo nejaktivnější skupiny (v závislosti na nastavení parametrupWndInsertAfter).SWP_NOCOPYBITSZahodí celý obsah klientské oblasti. Pokud tento příznak není zadaný, platný obsah klientské oblasti se uloží a zkopíruje zpět do klientské oblasti po nastavení velikosti nebo umístění okna.SWP_NOMOVEZachová aktuální pozici (ignorujexparametry).ySWP_NOOWNERZORDERNezmění pozici okna vlastníka v pořadí Z.SWP_NOREDRAWNepřekresluje změny. Pokud je tento příznak nastavený, nedojde k žádnému překreslení jakéhokoli druhu. To platí pro klientskou oblast, oblast mimo klient (včetně nadpisu a posuvníků) a libovolnou část nadřazeného okna, která byla v důsledku přesunutého okna odhalena. Při nastavení tohoto příznaku musí aplikace explicitně zneplatnit nebo překreslit všechny části okna a nadřazené okno, které musí být překresleny.SWP_NOREPOSITIONStejné jakoSWP_NOOWNERZORDER.SWP_NOSENDCHANGINGZabrání tomu, aby okno přijímaloWM_WINDOWPOSCHANGINGzprávu.SWP_NOSIZEZachová aktuální velikost (ignoruje parametrycx).cySWP_NOZORDERZachová aktuální řazení (ignorujepWndInsertAfter).SWP_SHOWWINDOWZobrazí okno.
Návratová hodnota
Nenulové, pokud je funkce úspěšná; jinak, 0.
Poznámky
Okna jsou na obrazovce seřazena podle jejich pořadí Z; okno v horní části pořadí Z se zobrazí nad všemi ostatními okny v pořadí.
Všechny souřadnice podřízených oken jsou souřadnice klienta (vzhledem k levému hornímu rohu klientské oblasti nadřazeného okna).
Okno lze přesunout do horní části pořadí pWndInsertAfter Z nastavením parametru &wndTopMost SWP_NOZORDER a zajištěním, že příznak není nastavený, nebo nastavením pořadí vykreslování okna tak, aby byl nad všemi stávajícími horními okny. Když je nejvrchnější okno nahoře, jeho vlastněná okna jsou také vyrobena topmost. Vlastníci se nezměnili.
Horní okno už není nahoře, pokud je přemísťováno do dolní části&wndBottom () pořadí Z nebo za jakékoli nejvrchnější okno. Když je nejvrchnější okno, všichni jeho vlastníci a vlastní okna jsou také vyrobena nejvrchnější okna.
SWP_NOACTIVATE Pokud ani SWP_NOZORDER není zadána (to znamená, že aplikace požaduje, aby okno bylo aktivováno současně a umístěné v zadaném pořadí Z), použije se hodnota zadaná pWndInsertAfter pouze za následujících okolností:
&wndNoTopMostAni&wndTopMostnení zadán v parametrupWndInsertAfter.Toto okno není aktivním oknem.
Aplikace nemůže aktivovat neaktivní okno, aniž by ho také přenesla na začátek pořadí Z. Aplikace můžou změnit pořadí Z aktivovaného okna bez omezení.
Nejvrchnější okno může vlastnit horní okno, ale ne naopak. Jakékoli okno (například dialogové okno) vlastněné hlavním oknem se vytvoří úplně nahoře, aby se zajistilo, že všechna vlastněná okna zůstanou nad svým vlastníkem.
Ve verzích Windows 3.1 a novějších je možné windows přesunout na začátek pořadí Z a uzamknout je tak, že nastavíte jejich WS_EX_TOPMOST styly. Takové horní okno udržuje nejvyšší pozici i v případě deaktivace. Když například vyberete příkaz WinHelp AlwaysOn Top, zobrazí se okno nápovědy úplně nahoře a po návratu do aplikace zůstane viditelné.
Chcete-li vytvořit horní okno, zavolejte SetWindowPos s pWndInsertAfter parametrem, který se rovná &wndTopMost, nebo nastavte WS_EX_TOPMOST styl při vytváření okna.
Pokud pořadí Z obsahuje všechna okna se WS_EX_TOPMOST stylem, přesune se okno s &wndTopMost hodnotou do horní části všech nejvrchnějších oken, ale pod všemi nejvrchnějšími okny. Když aplikace aktivuje neaktivní okno bez bitu WS_EX_TOPMOST , okno se přesune nad všechna nesvrchnější okna, ale pod všemi nejvyššími okny.
Pokud SetWindowPos se volá, pWndInsertAfter když je &wndBottom parametr a CWnd je nejvyšší okno, okno ztratí nejvyšší stav (WS_EX_TOPMOST je vymazáno) a systém umístí okno do dolní části pořadí Z.
Příklad
void CMyApp::OnHideApplication()
{
//m_pMainWnd is the main application window, a member of CMyApp
ASSERT_VALID(m_pMainWnd);
// hide the application's windows before closing all the documents
m_pMainWnd->ShowWindow(SW_HIDE);
m_pMainWnd->ShowOwnedPopups(FALSE);
// put the window at the bottom of z-order, so it isn't activated
m_pMainWnd->SetWindowPos(&CWnd::wndBottom, 0, 0, 0, 0,
SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
}
CWnd::SetWindowRgn
Voláním této členské funkce nastavíte oblast okna.
int SetWindowRgn(
HRGN hRgn,
BOOL bRedraw);
Parametry
hRgn
Popisovač oblasti.
bRedraw
Pokud TRUEoperační systém překreslí okno po nastavení oblasti, jinak ne. Obvykle je nastaveno bRedraw , TRUE pokud je okno viditelné. Pokud je tato možnost nastavená TRUE, systém odešle WM_WINDOWPOSCHANGING zprávy WM_WINDOWPOSCHANGED do okna.
Návratová hodnota
Pokud je funkce úspěšná, je návratová hodnota nenulová. Pokud funkce selže, návratová hodnota je nula.
Poznámky
Souřadnice oblasti okna okna jsou relativní vzhledem k levému hornímu rohu okna, nikoli k oblasti klienta okna.
Po úspěšném volání SetWindowRgnvlastní operační systém oblast určenou popisovačem hRgnoblasti . Operační systém nevytvírá kopii oblasti, proto neprovádí žádná další volání funkce s popisovačem této oblasti a nezavírejte tento popisovač oblasti.
CWnd::SetWindowText
Nastaví název okna na zadaný text.
void SetWindowText(LPCTSTR lpszString);
Parametry
lpszString
Odkazuje na CString objekt nebo řetězec ukončený hodnotou null, který se má použít jako nový název nebo text ovládacího prvku.
Poznámky
Pokud je okno ovládací prvek, nastaví se text v ovládacím prvku.
Tato funkce způsobí WM_SETTEXT odeslání zprávy do tohoto okna.
Příklad
// set the text in IDC_EDITNAME
CWnd *pWnd = GetDlgItem(IDC_EDITNAME);
pWnd->SetWindowText(_T("Gerald Samper"));
// Get the text back. CString is convenient, because MFC
// will automatically allocate enough memory to hold the
// text--no matter how large it is.
CString str;
pWnd->GetWindowText(str);
ASSERT(str == _T("Gerald Samper"));
// The LPTSTR override works, too, but it might be too short.
// If we supply a buffer that's too small, we'll only get those
// characters that fit.
TCHAR sz[10];
int nRet = pWnd->GetWindowText(sz, 10);
// Nine characters, plus terminating null
ASSERT(_tcscmp(sz, _T("Gerald Sa")) == 0);
ASSERT(nRet == 9);
// You can query the length of the text without the length of
// the string using CWnd::GetWindowTextLength()
nRet = pWnd->GetWindowTextLength();
ASSERT(nRet == 13);
CWnd::ShowCaret
Zobrazuje kurzor na obrazovce na aktuální pozici kurzoru.
void ShowCaret();
Poznámky
Po zobrazení začne stříška blikat automaticky.
Členová ShowCaret funkce zobrazuje stříšku pouze v případě, že má aktuální obrazec a nebyl skryt dvakrát nebo vícekrát po sobě. Pokud stříšku nepatří do tohoto okna, nezobrazí se stříška.
Skrytí stříšky je kumulativní. HideCaret Pokud byla členová funkce volána pětkrát po sobě, musí být volána pětkrát, ShowCaret aby se zobrazila stříška.
Stříškou je sdílený prostředek. Okno by mělo zobrazovat stříšku jenom v případě, že má vstupní fokus nebo je aktivní.
Příklad
Podívejte se na příklad pro CWnd::CreateCaret.
CWnd::ShowOwnedPopups
Zobrazí nebo skryje všechna automaticky otevíraná okna vlastněná tímto oknem.
void ShowOwnedPopups(BOOL bShow = TRUE);
Parametry
bShow
Určuje, jestli se mají automaticky otevíraná okna zobrazit nebo skrýt. Pokud je TRUEtento parametr, zobrazí se všechna skrytá automaticky otevíraná okna. Pokud je FALSEtento parametr, jsou všechna viditelná automaticky otevíraná okna skrytá.
Příklad
Podívejte se na příklad pro CWnd::SetWindowPos.
CWnd::ShowScrollBar
Zobrazí nebo skryje posuvník.
void ShowScrollBar(
UINT nBar,
BOOL bShow = TRUE);
Parametry
nBar
Určuje, jestli je posuvník ovládací prvek nebo část oblasti bez klienta okna. Pokud je součástí jiné oblasti než klient, označuje také, nBar zda je posuvník umístěn vodorovně, svisle nebo obojí. Musí to být jedna z těchto věcí:
SB_BOTHUrčuje vodorovné a svislé posuvníky okna.SB_HORZUrčuje, že okno je vodorovný posuvník.SB_VERTUrčuje, že okno je svislý posuvník.
bShow
Určuje, jestli se ve Windows zobrazuje nebo skryje posuvník. Pokud je TRUEtento parametr, zobrazí se posuvník. V opačném případě je posuvník skrytý.
Poznámky
Aplikace by neměla volat ShowScrollBar , aby při zpracování zprávy s oznámením na posuvníku skrývala posuvník.
CWnd::ShowWindow
Nastaví stav viditelnosti okna.
BOOL ShowWindow(int nCmdShow);
Parametry
nCmdShow
Určuje, jak CWnd se má zobrazit. Musí to být jedna z následujících hodnot:
SW_HIDESkryje toto okno a předá aktivaci do jiného okna.SW_MINIMIZEMinimalizuje okno a aktivuje okno nejvyšší úrovně v seznamu systému.SW_RESTOREAktivuje a zobrazí okno. Pokud je okno minimalizované nebo maximalizované, Windows ho obnoví na původní velikost a pozici.SW_SHOWAktivuje okno a zobrazí ho v aktuální velikosti a poloze.SW_SHOWMAXIMIZEDAktivuje okno a zobrazí ho jako maximalizované okno.SW_SHOWMINIMIZEDAktivuje okno a zobrazí ho jako ikonu.SW_SHOWMINNOACTIVEZobrazí okno jako ikonu. Okno, které je aktuálně aktivní, zůstane aktivní.SW_SHOWNAZobrazí okno v aktuálním stavu. Okno, které je aktuálně aktivní, zůstane aktivní.SW_SHOWNOACTIVATEZobrazí okno v nejnovější velikosti a pozici. Okno, které je aktuálně aktivní, zůstane aktivní.SW_SHOWNORMALAktivuje a zobrazí okno. Pokud je okno minimalizované nebo maximalizované, Windows ho obnoví na původní velikost a pozici.
Návratová hodnota
Nenulové, pokud bylo okno dříve viditelné; 0, pokud CWnd byl dříve skrytý.
Poznámky
ShowWindow musí být volána pouze jednou pro aplikaci pro hlavní okno s CWinApp::m_nCmdShow. Další volání, která ShowWindow musí použít jednu z výše uvedených hodnot místo těch, které CWinApp::m_nCmdShowurčí .
Příklad
Podívejte se na příklad pro CWnd::CalcWindowRect.
CWnd::SubclassDlgItem
Voláním této členské funkce "dynamicky podtřídy" ovládacího prvku vytvořeného ze šablony dialogového okna a jeho připojením k tomuto CWnd objektu.
BOOL SubclassDlgItem(
UINT nID,
CWnd* pParent);
Parametry
nID
ID ovládacího prvku.
pParent
Nadřazený prvek ovládacího prvku (obvykle dialogové okno)
Návratová hodnota
Nenulové, pokud je funkce úspěšná; jinak 0.
Poznámky
Pokud je ovládací prvek dynamicky podtříděn, zprávy windows budou směrovány přes CWndmapu zpráv a volání obslužných rutin zpráv ve CWndtřídě první. Zprávy předané základní třídě budou předány výchozí obslužné rutině zprávy v ovládacím prvku.
Tato členská funkce připojí ovládací prvek Windows k objektu CWnd a nahradí jeho WndProc AfxWndProc funkce. Funkce ukládá starou verzi WndProc do umístění vráceného členkou GetSuperWndProcAddr funkce.
Příklad
// The following code fragment is from CMyDlg::OnInitDialog
// CMyDlg is derived from CDialog.
// IDC_BUTTON1 is the ID for a button on the
// dialog template used for CMyDlg.
m_MyButton.SubclassDlgItem(IDC_BUTTON1, this);
CWnd::SubclassWindow
Voláním této členské funkce "dynamicky podtřídy" okno a připojte ji k tomuto CWnd objektu.
BOOL SubclassWindow(HWND hWnd);
Parametry
hWnd
Popisovač okna.
Návratová hodnota
Nenulové, pokud je funkce úspěšná; jinak 0.
Poznámky
Když je okno dynamicky podtříděno, zprávy oken budou směrovány přes CWndmapu zpráv a volání obslužných rutin zpráv ve CWndtřídě první. Zprávy předané základní třídě budou předány výchozí obslužné rutině zprávy v okně.
Tato členská funkce připojí ovládací prvek Windows k objektu CWnd a nahradí WndProc AfxWndProc jeho funkce. Funkce uloží ukazatel na starý WndProc objekt CWnd .
Poznámka:
Okno již nesmí být připojeno k objektu MFC, pokud je volána tato funkce.
Příklad
// The following code shows how to subclass the edit control and list box
// controls inside a combo box. It uses WM_CTLCOLOR for subclassing.
// CSuperComboBox represents the combo box
HBRUSH CSuperComboBox::OnCtlColor(CDC *pDC, CWnd *pWnd, UINT nCtlColor)
{
if (nCtlColor == CTLCOLOR_EDIT)
{
//Edit control
if (m_edit.GetSafeHwnd() == NULL)
m_edit.SubclassWindow(pWnd->GetSafeHwnd());
}
else if (nCtlColor == CTLCOLOR_LISTBOX)
{
//ListBox control
if (m_listbox.GetSafeHwnd() == NULL)
m_listbox.SubclassWindow(pWnd->GetSafeHwnd());
}
HBRUSH hbr = CComboBox::OnCtlColor(pDC, pWnd, nCtlColor);
return hbr;
}
void CSuperComboBox::OnDestroy()
{
//unsubclass edit and list box before destruction
if (m_edit.GetSafeHwnd() != NULL)
m_edit.UnsubclassWindow();
if (m_listbox.GetSafeHwnd() != NULL)
m_listbox.UnsubclassWindow();
CComboBox::OnDestroy();
}
CWnd::UnlockWindowUpdate
Voláním této členské funkce odemknete okno, které bylo uzamčeno CWnd::LockWindowUpdate.
void UnlockWindowUpdate();
Poznámky
K uzamčení lze použít LockWindowUpdatepouze jedno okno. Další CWnd::LockWindowUpdate informace o zamykání oken naleznete nebo funkci LockWindowUpdate Win32.
CWnd::UnsubclassWindow
Voláním této členské funkce nastavíte WndProc zpět původní hodnotu a odpojíte okno identifikované HWND z objektu CWnd .
HWND UnsubclassWindow();
Návratová hodnota
Popisovač okna bez podtřídy.
Příklad
Podívejte se na příklad pro CWnd::SubclassWindow.
CWnd::UpdateData
Voláním této členské funkce inicializujete data v dialogovém okně nebo chcete načíst a ověřit data dialogového okna.
BOOL UpdateData(BOOL bSaveAndValidate = TRUE);
Parametry
bSaveAndValidate
Příznak označující, jestli se dialogové okno inicializuje (FALSE) nebo data se načítají (TRUE).
Návratová hodnota
Nenulové, pokud je operace úspěšná; jinak 0. Pokud bSaveAndValidate ano TRUE, pak návratová hodnota nenulového znamená, že data jsou úspěšně ověřena.
Poznámky
Architektura automaticky volá UpdateData s nastavenou bSaveAndValidate FALSE na při modální dialogové okno je vytvořeno ve výchozí implementaci CDialog::OnInitDialog. Volání nastane před zobrazením dialogového okna. Výchozí implementace CDialog::OnOK volání této členské funkce s nastavenou bSaveAndValidate na TRUE načtení dat a v případě úspěchu dialogové okno zavře. (Pokud v dialogovém okně kliknete na tlačítko Storno, dialogové okno se zavře bez načtení dat.)
CWnd::UpdateDialogControls
Voláním této členské funkce aktualizujte stav tlačítek dialogového okna a dalších ovládacích prvků v dialogovém okně nebo okně, které používají mechanismus zpětného ON_UPDATE_COMMAND_UI volání.
void UpdateDialogControls(
CCmdTarget* pTarget,
BOOL bDisableIfNoHndler);
Parametry
pTarget
Odkazuje na okno hlavního rámce aplikace a slouží ke směrování aktualizačních zpráv.
bDisableIfNoHndler
Příznak označující, jestli má ovládací prvek, který nemá žádnou obslužnou rutinu aktualizace, by se měl automaticky zobrazit jako zakázaný.
Poznámky
Pokud podřízený ovládací prvek nemá obslužnou rutinu a bDisableIfNoHndler je TRUE, podřízený ovládací prvek bude zakázán.
Architektura volá tuto členskou funkci pro ovládací prvky v dialogových panelech nebo panelech nástrojů jako součást zpracování nečinnosti aplikace.
CWnd::UpdateLayeredWindow
Aktualizuje pozici, velikost, tvar, obsah a průsvitnost vrstveného okna.
BOOL UpdateLayeredWindow(
CDC* pDCDst,
POINT* pptDst,
SIZE* psize,
CDC* pDCSrc,
POINT* pptSrc,
COLORREF crKey,
BLENDFUNCTION* pblend,
DWORD dwFlags);
Parametry
pDCDst
Ukazatel na kontext zařízení pro obrazovku Používá se pro porovnávání barev palet při aktualizaci obsahu okna. Pokud pDCDst ano NULL, použije se výchozí paleta.
Pokud pDCSrc je NULL, pDCDst musí být NULL.
pptDst
Ukazatel na POINT strukturu určující novou pozici obrazovky ve vrstveném okně. Pokud se aktuální pozice nezmění, pptDst může to být NULL.
psize
Ukazatel na SIZE strukturu, která určuje novou velikost vrstveného okna. Pokud se velikost okna nezmění, psize může to být NULL.
Pokud pDCSrc je NULL, psize musí být NULL.
pDCSrc
Ukazatel na řadič domény pro povrch, který definuje vrstvené okno. Pokud se obrazec a vizuální kontext okna nezmění, pDCSrc může to být NULL.
pptSrc
Ukazatel na POINT strukturu, která určuje umístění vrstvy v kontextu zařízení.
Pokud pDCSrc je NULL, pptSrc měla by být NULL.
crKey
Ukazatel na COLORREF hodnotu, která určuje barevný klíč průhlednosti, který se má použít při vytváření vrstveného okna. Všechny pixely malované oknem v této barvě budou průhledné. Chcete-li vygenerovat COLORREFmakro RGB, použijte makro RGB.
pblend
Ukazatel na BLENDFUNCTION strukturu, která určuje hodnotu průhlednosti, která se má použít při vytváření vrstveného okna.
dwFlags
Určuje akci, která se má provést. Tento parametr může být jedna nebo více následujících hodnot. Seznam možných hodnot najdete v tématu UpdateLayeredWindow.
Návratová hodnota
Nenulové, pokud je funkce úspěšná; jinak 0.
Poznámky
Tato členová funkce emuluje funkce funkce UpdateLayeredWindow, jak je popsáno v sadě Windows SDK.
CWnd::UpdateWindow
Aktualizuje oblast klienta odesláním WM_PAINT zprávy, pokud oblast aktualizace není prázdná.
void UpdateWindow();
Poznámky
Členová UpdateWindow funkce odešle WM_PAINT zprávu přímo a vynechá frontu aplikace. Pokud je oblast aktualizace prázdná, WM_PAINT neodesílají se.
Příklad
// In this example a rectangle is drawn in a view.
// The OnChangeRect() function changes the dimensions
// of the rectangle and then calls CWnd::Invalidate() so the
// client area of the view will be redrawn next time the
// window is updated. It then calls CWnd::UpdateWindow
// to force the new rectangle to be painted.
void CMdiView::OnChangeRect()
{
// Change Rectangle size.
m_rcBox = CRect(20, 20, 210, 210);
// Invalidate window so entire client area
// is redrawn when UpdateWindow is called.
Invalidate();
// Update Window to cause View to redraw.
UpdateWindow();
}
// On Draw function draws the rectangle.
void CMdiView::OnDraw(CDC *pDC)
{
// Other draw code here.
pDC->Draw3dRect(m_rcBox, 0x00FF0000, 0x0000FF00);
}
CWnd::ValidateRect
Ověří oblast klienta v daném obdélníku odebráním obdélníku z oblasti aktualizace okna.
void ValidateRect(LPCRECT lpRect);
Parametry
lpRect
Odkazuje na CRect objekt nebo RECT strukturu , která obsahuje souřadnice klienta obdélníku, který se má odebrat z oblasti aktualizace. Pokud lpRect ano NULL, ověří se celé okno.
Poznámky
Členská BeginPaint funkce automaticky ověří celou oblast klienta. ValidateRect ValidateRgn Pokud je potřeba WM_PAINT před dalším vygenerování ověřit část oblasti aktualizace, neměla by se volat ani členová funkce.
Systém Windows bude dál generovat WM_PAINT zprávy, dokud se neověří aktuální oblast aktualizace.
CWnd::ValidateRgn
Ověří oblast klienta v dané oblasti odebráním oblasti z aktuální oblasti aktualizace okna.
void ValidateRgn(CRgn* pRgn);
Parametry
pRgn
Ukazatel na CRgn objekt, který identifikuje oblast, která definuje oblast, která se má odebrat z oblasti aktualizace. Pokud je NULLtento parametr, odebere se celá oblast klienta.
Poznámky
Daná oblast musí být vytvořena dříve funkcí oblasti. Předpokládá se, že souřadnice oblasti jsou souřadnicemi klienta.
Členská BeginPaint funkce automaticky ověří celou oblast klienta. ValidateRect Pokud se před vygenerování další WM_PAINT zprávy musí ověřit část oblasti aktualizace, ValidateRgn neměla by se volat ani členová funkce.
CWnd::WindowFromPoint
Načte okno, které obsahuje zadaný bod; point musí určit souřadnice obrazovky bodu na obrazovce.
static CWnd* PASCAL WindowFromPoint(POINT point);
Parametry
point
Určuje CPoint objekt nebo POINT datovou strukturu, která definuje bod, který se má zkontrolovat.
Návratová hodnota
Ukazatel na objekt okna, ve kterém bod leží. NULL Pokud v daném bodě neexistuje žádné okno. Vrácený ukazatel může být dočasný a neměl by být uložen pro pozdější použití.
Poznámky
WindowFromPoint nenačte skryté nebo zakázané okno, i když je bod v okně. Aplikace by měla používat ChildWindowFromPoint členovou funkci pro nevýkonné vyhledávání.
CWnd::WindowProc
Poskytuje proceduru systému Windows (WindowProc) pro CWnd objekt.
virtual LRESULT WindowProc(
UINT message,
WPARAM wParam,
LPARAM lParam);
Parametry
message
Určuje zprávu systému Windows, která se má zpracovat.
wParam
Poskytuje další informace použité při zpracování zprávy. Hodnota parametru závisí na zprávě.
lParam
Poskytuje další informace použité při zpracování zprávy. Hodnota parametru závisí na zprávě.
Návratová hodnota
Vrácená hodnota závisí na zprávě.
Poznámky
Odesílá zprávy prostřednictvím mapy zpráv okna.
CWnd::WinHelp
Volá se k inicializaci aplikace WinHelp.
virtual void WinHelp(
DWORD_PTR dwData,
UINT nCmd = HELP_CONTEXT);
Parametry
dwData
Určuje další data. Použitá hodnota závisí na hodnotě parametru nCmd .
nCmd
Určuje typ požadované nápovědy. Seznam možných hodnot a jejich vliv na dwData parametr najdete WinHelp ve funkci Windows v sadě Windows SDK.
Poznámky
Další informace naleznete v tématu CWinApp::WinHelp.
CWnd::RegisterTouchWindow
Zaregistruje nebo zruší registraci podpory dotykového ovládání Windows.
BOOL RegisterTouchWindow(
BOOL bRegister = TRUE,
ULONG ulFlags = 0);
Parametry
bRegister
TRUE označuje registraci podpory dotykového ovládání systému Windows; FALSE jinak.
ulFlags
Sada bitových příznaků, které určují volitelné úpravy. Toto pole může obsahovat 0 nebo jednu z následujících hodnot: TWF_FINETOUCH, TWF_WANTPALM.
Návratová hodnota
TRUE v případě úspěchu; jinak FALSE.
Poznámky
CWnd::ResizeDynamicLayout
Volá se podle architektury, když se velikost okna změní tak, aby se upravilo rozložení podřízených oken, pokud je pro okno povolené dynamické rozložení.
virtual void ResizeDynamicLayout();
Poznámky
Viz také
CCmdTarget Třída
Graf hierarchie
CFrameWnd Třída
CView Třída



