CWnd
Třída
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_hWnd hodnotu 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 CWnd obrazovky . |
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. ScrollWindow Podobně 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 CWnd do . |
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 CWnd mapu zpráv. |
CWnd::SubclassWindow |
Připojí okno k objektu CWnd a směruje zprávy přes CWnd mapu 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ě, On Message ž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.INI je 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 CWnd
a 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
, , CMDIChildWnd
CMDIFrameWnd
CView
, 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 CWnd
odvozené 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 Invalidate
funkcemi , InvalidateRect
nebo 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
, UserName
Password
a 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_BSTR
VT_VARIANT
a 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::EnableToolTips
ná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á CWnd
hodnota * 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 CLSID
ve 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 NULL
se 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ý CFile
objekt, 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í CreateControl
se pouze podmnožina příznaků WindowsdwStyle
:
WS_VISIBLE
Vytvoří 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_DISABLED
Vytvoří 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_BORDER
Vytvoří okno s tenkým ohraničením. Lze nastavit, pokud máBorderStyle
ovládací prvek vlastnost.WS_GROUP
Urč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_GROUP
po prvním ovládacím prvku patří do stejné skupiny. Další ovládací prvek se stylemWS_GROUP
ukončí skupinu a spustí další skupinu.WS_TABSTOP
Urč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_TABSTOP
stylu.
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é CView
tří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_READWRITE
Datové soubory pro čtení i zápis bez dalších atributůDDL_READONLY
Soubory jen pro čtení.DDL_HIDDEN
Skryté soubory.DDL_SYSTEM
Systémové soubory.DDL_DIRECTORY
Adresáře.DDL_ARCHIVE
Archiv.DDL_POSTMSGS
LB_DIR
vlajka.LB_DIR
Pokud je příznak nastavený, systém Windows umístí zprávy vygenerovanéDlgDirList
ve frontě aplikace, jinak se odešlou přímo do procedury dialogového okna.DDL_DRIVES
Žene.DDL_DRIVES
Pokud je příznak nastavený,DDL_EXCLUSIVE
příznak se nastaví automaticky. Pokud tedy chcete vytvořit výpis adresáře, který obsahuje jednotky a soubory, musíte zavolatDlgDirList
dvakrát: jednou sDDL_DRIVES
nastaveným příznakem a jednou s příznaky pro zbytek seznamu.DDL_EXCLUSIVE
Exkluzivní 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
DlgDirList
LB_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 lpPathSpec
zadá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_READWRITE
Datové soubory pro čtení i zápis bez dalších atributůDDL_READONLY
Soubory jen pro čtení.DDL_HIDDEN
Skryté soubory.DDL_SYSTEM
Systémové soubory.DDL_DIRECTORY
Adresáře.DDL_ARCHIVE
Archiv.DDL_POSTMSGS
CB_DIR
vlajka.CB_DIR
Pokud je příznak nastavený, systém Windows umístí zprávy vygenerovanéDlgDirListComboBox
ve frontě aplikace, jinak se odešlou přímo do procedury dialogového okna.DDL_DRIVES
Žene.DDL_DRIVES
Pokud je příznak nastavený,DDL_EXCLUSIVE
příznak se nastaví automaticky. Pokud tedy chcete vytvořit výpis adresáře, který obsahuje jednotky a soubory, musíte zavolatDlgDirListComboBox
dvakrát: jednou sDDL_DRIVES
nastaveným příznakem a jednou s příznaky pro zbytek seznamu.DDL_EXCLUSIVE
Exkluzivní 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
DlgDirListComboBox
CB_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 lpPathSpec
nulové 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.
DlgDirSelect
LB_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í.
DlgDirSelectComboBox
CB_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 CDialog
dialogové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_DROPFILES
systé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 FALSE
hodnotu .
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 CDCRenderTarget
vykreslení kontextu zařízení (DC), . Pokud FALSE
se 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_BOTH
Povolí nebo zakáže šipky vodorovných a svislých posuvníků přidružených k oknem.SB_HORZ
Povolí nebo zakáže šipky vodorovného posuvníku přidruženého k oknem.SB_VERT
Povolí 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_BOTH
Povolí obě šipky posuvníku (výchozí).ESB_DISABLE_LTUP
Zakáže šipku doleva vodorovného posuvníku nebo šipku nahoru svislého posuvníku.ESB_DISABLE_RTDN
Zakáže šipku doprava vodorovného posuvníku nebo šipku dolů svislého posuvníku.ESB_DISABLE_BOTH
Zakáž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 TRUE
tento parametr, budou povoleny tipy ke sledování nástrojů. Pokud je FALSE
tento 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 TRUE
tento parametr , okno se povolí. Pokud je FALSE
tento 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 NULL
tento 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 FromHandle
funkce 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 CWnd
odvozené 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 CWnd
odvozené 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 CWnd
odvozené 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 CWnd
odvozené 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 lpRect
odkazuje .
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 NULL
to .
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 CWnd
pro 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 NULL
vrá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_OWNDC
nebo 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_CACHE
Vrátí kontext zařízení z mezipaměti, nikoli zOWNDC
okna.CLASSDC
PřepsáníCS_OWNDC
aCS_CLASSDC
.DCX_CLIPCHILDREN
Vyloučí viditelné oblasti všech podřízených oken podCWnd
oknem.DCX_CLIPSIBLINGS
Vyloučí viditelné oblasti všech oken naCWnd
stejné straně nad oknem.DCX_EXCLUDERGN
Vyloučí oblast výřezu identifikovanouprgnClip
z viditelné oblasti vráceného kontextu zařízení.DCX_INTERSECTRGN
Protíná oblast výřezu identifikovanáprgnClip
v rámci viditelné oblasti vráceného kontextu zařízení.DCX_LOCKWINDOWUPDATE
Umožňuje kreslení i v případě, že existujeLockWindowUpdate
volání, které by jinak toto okno vyloučilo. Tato hodnota se používá pro kreslení během sledování.DCX_PARENTCLIP
Používá viditelnou oblast nadřazeného okna a ignoruje bity aWS_PARENTDC
styl nadřazeného oknaWS_CLIPCHILDREN
. Tato hodnota nastaví původ kontextu zařízení do levého horníhoCWnd
rohu okna.DCX_WINDOW
Vrá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_CLASSDC
byla CS_OWNDC
v 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 TRUE
lze vrátit pouze trvalé okno; pokud FALSE
funkce 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é lpTrans
odkazuje . Pokud nedojde k žádným chybám, lpTrans
zobrazí se nenulová hodnota. Pokud lpTrans
je , GetDlgItemInt
NULL
nezobrazí 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 lpStr
které 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
, Password
UserName
, 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 TRUE
funkce vyhledá předchozí ovládací prvek ve skupině; pokud FALSE
vyhledá další ovládací prvek ve skupině.
pCurSiteOrWnd
Identifikuje COleControlSiteOrWnd
ovládací prvek. Další informace o COleControlSiteOrWnd
aplikaci 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 COleControlSite a 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 COleControlSiteOrWnd
tématu CWnd::GetNextDlgGroupItem
.
bPrevious
Určuje, jak má funkce prohledávat dialogové okno. Pokud TRUE
funkce vyhledá předchozí ovládací prvek v dialogovém okně; pokud FALSE
vyhledá 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 COleControlSiteOrWnd
té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 GetWindow
vlastnictví .
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_hWnd
hodnotu , 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_HORZ
Načte pozici vodorovného posuvníku.SB_VERT
Nač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_CTL
Načte parametry pro ovládací prvek posuvníku. Datovým_hWnd
člen musí být úchytem ovládacího prvku posuvníku.SB_HORZ
Načte parametry standardního vodorovného posuvníku okna.SB_VERT
Nač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_PAGE
SIF_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 FALSE
to .
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_HORZ
Načte limit posouvání vodorovného posuvníku.SB_VERT
Nač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_HORZ
Načte pozici vodorovného posuvníku.SB_VERT
Nač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_HORZ
Načte pozici vodorovného posuvníku.SB_VERT
Nač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::InsertMenu
nebo 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_MOVE
a 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ý CFrameWnd
objekt, vrátí NULL
tato 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 CWnd
které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 NULL
hodnotu .
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
NULL
tomu 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 NULL
hodnotu , 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 FALSE
hodnota , 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í:
SIMPLEREGION
Oblast nemá žádné překrývající se ohraničení.COMPLEXREGION
Oblast má překrývající se ohraničení.NULLREGION
Oblast je prázdná.ERROR
Nebyla 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_CHILD
Identifikuje první podřízenéCWnd
okno.GW_HWNDFIRST
PokudCWnd
je 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_HWNDLAST
PokudCWnd
je 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_HWNDNEXT
Vrátí další okno v seznamu správce oken.GW_HWNDPREV
Vrátí předchozí okno v seznamu správce oken.GW_OWNER
Identifikuje 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í. ReleaseDC
by 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_SHOWMINIMIZED
to . 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 lpRect
odkazuje .
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:
NULLREGION
Oblast je prázdná.SIMPLEREGION
Oblast je jeden obdélník.COMPLEXREGION
Oblast je více než jeden obdélník.ERROR
Doš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_BYCOMMAND
InterpretujenIDHiliteItem
se jako ID položky nabídky (výchozí interpretace).MF_BYPOSITION
InterpretujenIDHiliteItem
se jako posun na základě nuly položky nabídky.MF_HILITE
Zvýrazní položku. Pokud tato hodnota není uvedena, zvýraznění se z položky odebere.MF_UNHILITE
Odebere 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 CWnd
aktualizace .
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 NULL
tento 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 pbParamInfo
parametrů . 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_EXCEPTION
vrácena (stavový kód), IDispatch::Invoke
tato funkce vyvolá COleException
objekt, jinak vyvolá COleDispatchException
vý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 LockWindowUpdate
UnlockWindowUpdate
.
Pokud aplikace s uzamčeným oknem (nebo jakýmkoli uzamčeným podřízeným oknem) volá GetDC
funkci , GetDCEx
nebo 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 CWnd
objektu .
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 NULL
tento 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é lpPoint
odkazuje .
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_ICONSTOP a 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_NOSIZE
Zachová aktuální velikost.SWP_NOMOVE
Zachová aktuální pozici.SWP_NOZORDER
Zachová aktuální pořadí Z.SWP_NOACTIVATE
Neaktivuje 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_NOSIZE
Zachová aktuální velikost.SWP_NOMOVE
Zachová aktuální pozici.SWP_NOZORDER
Zachová aktuální pořadí Z.SWP_NOACTIVATE
Neaktivuje 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 FALSE
tento 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 CWnd
přesunutí odhalena. Pokud je FALSE
tento 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_SELF
tato 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_INACTIVE
Okno se deaktivuje.WA_ACTIVE
Okno se aktivuje jinou metodou než kliknutím myši (například pomocí rozhraní klávesnice pro výběr okna).WA_CLICKACTIVE
Okno se aktivuje kliknutím myši.
pWndOther
Ukazatel na CWnd
aktivovanou nebo deaktivovanou akci. Ukazatel může být NULL
a může být dočasný.
bMinimized
Určuje minimalizovaný stav CWnd
aktivace nebo deaktivace. Hodnota TRUE
indikuje, že okno je minimalizované.
Pokud TRUE
se 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_CLEAR
Prvek stavu uživatelského rozhraní (určenýnUIElement
) by měl být skrytý.UIS_INITIALIZE
Prvek 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_SET
Mě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_HIDEACCEL
Klávesové zkratky.UISF_HIDEFOCUS
Indikátory zaměření.UISF_ACTIVE
Windows 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í DestroyWindow
implementace .
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 lpCompareItemStruct
odkazuje . 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_BTN
Ovládací prvek TlačítkoCTLCOLOR_DLG
Dialogové oknoCTLCOLOR_EDIT
Upravit ovládací prvekCTLCOLOR_LISTBOX
Ovládací prvek SeznamCTLCOLOR_MSGBOX
Message boxCTLCOLOR_SCROLLBAR
Ovládací prvek posuvníkuCTLCOLOR_STATIC
Statický 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_DEVICEARRIVAL
Zařízení bylo vloženo a je nyní k dispozici.DBT_DEVICEQUERYREMOVE
Vyž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_DEVICEREMOVEPENDING
Zařízení se chystá odebrat. Nelze zamítnout.DBT_DEVICEREMOVECOMPLETE
Zařízení bylo odebráno.DBT_DEVICETYPESPECIFIC
Událost specifická pro zařízení.DBT_CONFIGCHANGED
Aktuální konfigurace se změnila.DBT_DEVNODES_CHANGED
Uzel 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 , FALSE
mě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_CHILDREN
a 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
, , CMenu
CListBox
, 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á DragFinish
funkce , DragQueryFile
a 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_DIALOGBOX
Systém je nečinný, protože se zobrazuje dialogové okno.MSGF_MENU
Systé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_BUTTON
Tlačítko (obecné)DLGC_DEFPUSHBUTTON
Výchozí tlačítko.DLGC_HASSETSEL
EM_SETSEL
zprávy.DLGC_UNDEFPUSHBUTTON
Žádné výchozí zpracování tlačítka. (Aplikace může tento příznakDLGC_BUTTON
použít k označení, že zpracovává vstup tlačítka, ale spoléhá na systém pro výchozí zpracování tlačítka.)DLGC_RADIOBUTTON
Přepínač.DLGC_STATIC
Statický ovládací prvek.DLGC_WANTALLKEYS
Všechny vstupy z klávesnice.DLGC_WANTARROWS
Šipky.DLGC_WANTCHARS
WM_CHAR
zprávy.DLGC_WANTMESSAGE
Všechny vstupy z klávesnice. Aplikace předá tuto zprávu ovládacímu prvku.DLGC_WANTTAB
Klá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 OnGetDlgCode
můž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_LEFT
Posuňte se úplně doleva.SB_ENDSCROLL
Ukončete posouvání.SB_LINELEFT
Posuňte se doleva.SB_LINERIGHT
Posuňte se doprava.SB_PAGELEFT
Posuňte se o jednu stránku doleva.SB_PAGERIGHT
Posuňte se o jednu stránku doprava.SB_RIGHT
Posuňte se úplně doprava.SB_THUMBPOSITION
Posuňte se na absolutní pozici. Aktuální pozice je určena parametremnPos
.SB_THUMBTRACK
Př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 NULL
tento 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_BOTTOM
Posuňte se doprava dolů.SB_ENDSCROLL
Ukončete posouvání.SB_LINEDOWN
Posuňte se o jeden řádek dolů.SB_LINEUP
Posuňte se o jeden řádek nahoru.SB_PAGEDOWN
Posuňte se o jednu stránku dolů.SB_PAGEUP
Posuňte se o jednu stránku nahoru.SB_THUMBPOSITION
Posuňte se na absolutní pozici. Aktuální pozice je uvedena vnPos
.SB_TOP
Posuňte se doleva nahoru.
nPos
Obsahuje pozici posuvníku, pokud je SB_THUMBPOSITION
kó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_CONTROL
Nastavte, jestli je klávesa CTRL dole.MK_LBUTTON
Nastavte, pokud je levé tlačítko myši dole.MK_MBUTTON
Nastavte, jestli je prostřední tlačítko myši dole.MK_RBUTTON
Nastavte, jestli je pravé tlačítko myši dole.MK_SHIFT
Nastavte, 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_LBUTTONDOWN
zprá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_CONTROL
Nastavte, jestli je klávesa CTRL dole.MK_LBUTTON
Nastavte, pokud je levé tlačítko myši dole.MK_MBUTTON
Nastavte, jestli je prostřední tlačítko myši dole.MK_RBUTTON
Nastavte, jestli je pravé tlačítko myši dole.MK_SHIFT
Nastavte, 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_CONTROL
Nastavte, jestli je klávesa CTRL dole.MK_MBUTTON
Nastavte, jestli je prostřední tlačítko myši dole.MK_RBUTTON
Nastavte, jestli je pravé tlačítko myši dole.MK_SHIFT
Nastavte, 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_CONTROL
Nastavte, jestli je klávesa CTRL dole.MK_LBUTTON
Nastavte, pokud je levé tlačítko myši dole.MK_MBUTTON
Nastavte, jestli je prostřední tlačítko myši dole.MK_RBUTTON
Nastavte, jestli je pravé tlačítko myši dole.MK_SHIFT
Nastavte, 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_CONTROL
Nastavte, jestli je klávesa CTRL dole.MK_LBUTTON
Nastavte, pokud je levé tlačítko myši dole.MK_MBUTTON
Nastavte, jestli je prostřední tlačítko myši dole.MK_RBUTTON
Nastavte, jestli je pravé tlačítko myši dole.MK_SHIFT
Nastavte, 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_CONTROL
Nastavte, jestli je klávesa CTRL dole.MK_LBUTTON
Nastavte, pokud je levé tlačítko myši dole.MK_RBUTTON
Nastavte, jestli je pravé tlačítko myši dole.MK_SHIFT
Nastavte, 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 CMenu
CListBox
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.
OnMeasureItem
bude 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_Control
SubclassDlgItem
nebo 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 CMenu
mož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 CWnd
nFlags
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_BITMAP
Položka je rastrový obrázek.MF_CHECKED
Položka je zaškrtnutá.MF_DISABLED
Položka je zakázaná.MF_GRAYED
Položka je neaktivní.MF_MOUSESELECT
Položka byla vybrána myší.MF_OWNERDRAW
Položka je položka pro kreslení vlastníkem.MF_POPUP
Položka obsahuje místní nabídku.MF_SEPARATOR
Položka je oddělovač položek nabídky.MF_SYSMENU
Polož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_POPUP
MF_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_ACTIVATE
AktivujteCWnd
objekt.MA_NOACTIVATE
NeaktivujteCWnd
objekt.MA_ACTIVATEANDEAT
AktivujteCWnd
objekt a zahoďte událost myši.MA_NOACTIVATEANDEAT
NeaktivujteCWnd
objekt 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_CONTROL
Nastavte, jestli je klávesa CTRL dole.MK_LBUTTON
Nastavte, pokud je levé tlačítko myši dole.MK_MBUTTON
Nastavte, jestli je prostřední tlačítko myši dole.MK_RBUTTON
Nastavte, jestli je pravé tlačítko myši dole.MK_SHIFT
Nastavte, 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_CONTROL
Nastavte, jestli je klávesa CTRL dole.MK_LBUTTON
Nastavte, pokud je levé tlačítko myši dole.MK_MBUTTON
Nastavte, jestli je prostřední tlačítko myši dole.MK_RBUTTON
Nastavte, jestli je pravé tlačítko myši dole.MK_SHIFT
Nastavte, 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:
OnMouseWheel
zpracová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_QUERY
parametr , 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_NOTIFY
zprá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_REQUERY
formu 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_NOTIFY
zprávách.nCommand
Pokud jeNF_REQUERY
parametr , 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_Paint
naleznete 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 message
s 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_CREATE
Vytváří se podřízené okno.WM_DESTROY
Podřízené okno je zničeno.WM_LBUTTONDOWN
Uživatel umístil kurzor myši na podřízené okno a kliknul na levé tlačítko myši.WM_MBUTTONDOWN
Uživatel umístil kurzor myši na podřízené okno a kliknul na prostřední tlačítko myši.WM_RBUTTONDOWN
Už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_HIDEFOCUS
Indikátory fokusu jsou skryté.UISF_HIDEACCEL
Klávesové zkratky jsou skryté.UISF_ACTIVE
Windows 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_CONTROL
Nastavte, jestli je klávesa CTRL dole.MK_LBUTTON
Nastavte, jestli je levé tlačítko myši dole.MK_MBUTTON
Nastavte, jestli je prostřední tlačítko myši dole.MK_RBUTTON
Nastavte, jestli je pravé tlačítko myši dole.MK_SHIFT
Nastavte, 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_CONTROL
Nastavte, jestli je klávesa CTRL dole.MK_LBUTTON
Nastavte, jestli je levé tlačítko myši dole.MK_MBUTTON
Nastavte, jestli je prostřední tlačítko myši dole.MK_RBUTTON
Nastavte, jestli je pravé tlačítko myši dole.MK_SHIFT
Nastavte, 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_CONTROL
Nastavte, jestli je klávesa CTRL dole.MK_LBUTTON
Nastavte, jestli je levé tlačítko myši dole.MK_MBUTTON
Nastavte, jestli je prostřední tlačítko myši dole.MK_SHIFT
Nastavte, 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:
OnRegisteredMouseWheel
zpracová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_SETTINGCHANGE
při spuštění systém Windows NT 4.0 nebo novější nebo v systému Windows 95/98.Používá se
ON_WININICHANGE
př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_PARENTCLOSING
Nadřazené okno je zavřené (z ikonické) nebo je skryté automaticky otevírané okno.SW_PARENTOPENING
Nadř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_MAXIMIZED
Okno bylo maximalizováno.SIZE_MINIMIZED
Okno bylo minimalizováno.SIZE_RESTORED
Velikost okna se změnila, ale aniSIZE_MINIMIZED
SIZE_MAXIMIZED
se na ni nepoužádá.SIZE_MAXHIDE
Zpráva se odešle do všech automaticky otevíraných oken, když se maximalizuje některé jiné okno.SIZE_MAXSHOW
Zprá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 OnSizeClipboard
musí 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_EXSTYLE
Rozšířené styly okna se změnily.GWL_STYLE
Neobsluž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_EXSTYLE
Rozšířené styly okna se změnily.GWL_STYLE
Neobsluž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_CLOSE
ZavřeteCWnd
objekt.SC_HOTKEY
CWnd
Aktivujte objekt přidružený k horkému klíči zadanému aplikací. Slovo s nízkým pořadímlParam
identifikujeHWND
okno, které se má aktivovat.SC_HSCROLL
Posunujte vodorovně.SC_KEYMENU
Načtěte nabídku pomocí stisknutí klávesy.SC_MAXIMIZE
(neboSC_ZOOM
)CWnd
Maximalizujte objekt.SC_MINIMIZE
(neboSC_ICON
)CWnd
Minimalizujte objekt.SC_MOUSEMENU
Načtěte nabídku kliknutím myší.SC_MOVE
Přesunutí objektuCWnd
SC_NEXTWINDOW
Přechod na další oknoSC_PREVWINDOW
Přechod na předchozí oknoSC_RESTORE
Obnovte okno do normální polohy a velikosti.SC_SCREENSAVE
Spustí aplikaci spořič obrazovky zadanou v částiSYSTEM.INI
[boot] souboru.SC_SIZE
Velikost objektuCWnd
.SC_TASKLIST
Spusťte nebo aktivujte aplikaci Správce úloh systému Windows.SC_VSCROLL
Posunujte 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_HOTKEY
Aktivujte okno přidružené k klávesové zkratce zadané aplikaci. Slovo s nízkým pořadímlParam
identifikuje okno, které se má aktivovat.SC_SCREENSAVE
Spusť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í GetSystemMenu
funkcí , AppendMenu
, InsertMenu
a 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:
IDABORT
Uživatel klikl na tlačítko pro přerušení, které je možné vytvořit.IDCANCEL
Uživatel kliknul na tlačítko Zrušit, které je možné vytvořit.IDCLOSE
Uživatel zavřel trénovací kartu.IDHELP
Uživatel klikl na tlačítko vytvořitelné nápovědy systému Windows.IDIGNORE
Uživatel klikl na tlačítko Ignorovat s možností autora.IDOK
Uživatel klikl na tlačítko OK, které je možné vytvořit.IDNO
Uživatel klikl na tlačítko Ne, které je možné vytvořit.IDRETRY
Uživatel klikl na tlačítko opakovatelného opakování.HELP_TCARD_DATA
Uživatel klikl na tlačítko pro vytváření obsahu. ParametrdwActionData
obsahuje dlouhé celé číslo určené autorem nápovědy.HELP_TCARD_NEXT
Uživatel klikl na tlačítko Další, které je možné vytvořit.HELP_TCARD_OTHER_CALLER
Jiná aplikace požádala o trénovací karty.IDYES
Už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_hWnd
Popisovač v okněuId
=(UINT)hWndChild
Popisovač podřízeného oknauFlags
|=TTF_IDISHWND
Popisovač nástrojelpszText
=LPSTR_TEXTCALLBACK
Ukazatel 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ší TOOLINFO
informace 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_SYSMENU
okna .
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_CLEAR
Prvek stavu uživatelského rozhraní (určenýnUIElement
) by měl být skrytý.UIS_INITIALIZE
Prvek 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_SET
Mě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_HIDEACCEL
Klávesové zkratky.UISF_HIDEFOCUS
Indikátory zaměření.UISF_ACTIVE
Windows 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_BOTTOM
Posuňte se dolů.SB_ENDSCROLL
Ukončete posouvání.SB_LINEDOWN
Posuňte se o jeden řádek dolů.SB_LINEUP
Posuňte se o jeden řádek nahoru.SB_PAGEDOWN
Posuňte se o jednu stránku dolů.SB_PAGEUP
Posuňte se o jednu stránku nahoru.SB_THUMBPOSITION
Posuňte se na absolutní pozici. Aktuální pozice je uvedena vnPos
.SB_THUMBTRACK
Přetáhněte posuvník na zadanou pozici. Aktuální pozice je uvedena vnPos
.SB_TOP
Posuň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 NULL
tento 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_BOTTOM
Posuňte se dolů.SB_ENDSCROLL
Ukončete posouvání.SB_LINEDOWN
Posuňte se o jeden řádek dolů.SB_LINEUP
Posuňte se o jeden řádek nahoru.SB_PAGEDOWN
Posuňte se o jednu stránku dolů.SB_PAGEUP
Posuňte se o jednu stránku nahoru.SB_THUMBPOSITION
Posuňte se na absolutní pozici. Aktuální pozice je uvedena vnPos
.SB_TOP
Posuňte se nahoru.
nPos
Obsahuje pozici posuvníku, pokud je SB_THUMBPOSITION
kó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í WindowProc
funkce , 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 CWnd
nebo 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_CHECKVISIBLE
Nakreslete okno jenom v případě, že je viditelné.PRF_CHILDREN
Kreslete všechna viditelná podřízená okna.PRF_CLIENT
Nakreslete oblast klienta okna.PRF_ERASEBKGND
Před nakreslením okna vymažte pozadí.PRF_NONCLIENT
Nakreslete oblast bez klienta okna.PRF_OWNED
Nakreslete všechna vlastněná okna.
Poznámky
CWnd::DefWindowProc
funkce zpracuje tuto zprávu na základě zadané možnosti výkresu:
Pokud
PRF_CHECKVISIBLE
je zadané a okno není viditelné, nic nedělejte.Pokud
PRF_NONCLIENT
je zadáno, nakreslete oblast nonclient v daném kontextu zařízení.Pokud
PRF_ERASEBKGND
je zadáno, odešlete oknoWM_ERASEBKGND
zprávu.Pokud
PRF_CLIENT
je zadáno, odešlete oknoWM_PRINTCLIENT
zprávu.Pokud
PRF_CHILDREN
je nastavené, odešlete každé viditelné podřízené oknoWM_PRINT
zprávu.Pokud
PRF_OWNED
je nastavené, pošlete každému viditelnémuWM_PRINT
okně 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_CHECKVISIBLE
Nakreslete okno jenom v případě, že je viditelné.PRF_CHILDREN
Kreslete všechna viditelná podřízená okna.PRF_CLIENT
Nakreslete oblast klienta okna.PRF_ERASEBKGND
Před nakreslením okna vymažte pozadí.PRF_NONCLIENT
Nakreslete oblast bez klienta okna.PRF_OWNED
Nakreslete 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
NULL
přidá se do oblasti aktualizace celá oblast klienta.
flags
K zneplatnění okna se používají následující příznaky:
RDW_ERASE
Způsobí, že okno obdržíWM_ERASEBKGND
zprávu při opětovném nakreslení okna. PříznakRDW_INVALIDATE
musí být zadán také; jinak RDW_ERASE nemá žádný vliv.RDW_FRAME
Způsobí, že jakákoli část oblasti mimo klient okna, která protíná oblast aktualizace, aby obdrželaWM_NCPAINT
zprávu. PříznakRDW_INVALIDATE
musí být zadán také. JinakRDW_FRAME
nemá žádný vliv.RDW_INTERNALPAINT
WM_PAINT
Způsobí, že se zpráva odešle do okna bez ohledu na to, jestli okno obsahuje neplatnou oblast.RDW_INVALIDATE
ZneplatněnílpRectUpdate
neboprgnUpdate
(pouze jeden nemusí býtNULL
). Pokud se jednáNULL
o obojí, celé okno se zneplatní.
K ověření okna se používají následující příznaky:
RDW_NOERASE
Potlačí všechny čekajícíWM_ERASEBKGND
zprávy.RDW_NOFRAME
Potlačí všechny čekajícíWM_NCPAINT
zprávy. Tento příznak musí být použit sRDW_VALIDATE
a 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_NOINTERNALPAINT
Potlačí všechny čekající interníWM_PAINT
zprávy. Tento příznak nemá vliv naWM_PAINT
zprávy vyplývající z neplatných oblastí.RDW_VALIDATE
lpRectUpdate
Ověřuje neboprgnUpdate
(pouze jeden nemusíNULL
být ). Pokud se jednáNULL
o obojí, ověří se celé okno. Tento příznak nemá vliv na interníWM_PAINT
zprá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_ERASENOW
Způsobí, že ovlivněná okna (specifikovaná příznakemRDW_ALLCHILDREN
aRDW_NOCHILDREN
příznakem) budou v případě potřeby přijímatWM_NCPAINT
aWM_ERASEBKGND
hlásit zprávy před vrácením funkce.WM_PAINT
zprávy jsou odloženy.RDW_UPDATENOW
Způsobí, že ovlivněná okna (jak jsou zadányRDW_ALLCHILDREN
příznakyRDW_NOCHILDREN
) přijímatWM_NCPAINT
,WM_ERASEBKGND
aWM_PAINT
zprá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_ALLCHILDREN
Zahrnuje podřízená okna, pokud existuje, v operaci překreslení.RDW_NOCHILDREN
Vyloučí 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::reposDefault
Provede rozložení řídicích pruhů.lpRectParam
se nepoužívá a může býtNULL
.CWnd::reposQuery
Rozložení řídicích pruhů není hotové; místo toholpRectParam
se inicializuje s velikostí klientské oblasti, jako by rozložení skutečně proběhlo.CWnd::reposExtra
Přidá hodnotylpRectParam
do klientské oblastinIDLast
a 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 NULL
se 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_NOIDLEMSG
NeodesílejteWM_ENTERIDLE
zprávy nadřazené sadě.MLF_NOKICKIDLE
NeodesílejteWM_KICKIDLE
zprávy do okna.MLF_SHOWONIDLE
Zobrazit 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 yAmount
a 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 ScrollWindow
znovu 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 NULL
tento 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ý lpRectScroll
odkazuje . 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 NULL
tento 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_ERASE
Když zadáteSW_INVALIDATE
pomocí příkazu , vymaže nově neplatnou oblast odeslánímWM_ERASEBKGND
zprávy do okna.SW_INVALIDATE
Oblast identifikovanáprgnUpdate
po posouvání zneplatní.SW_SCROLLCHILDREN
Posune všechna podřízená okna, která protínají obdélník, na kterýlpRectScroll
odkazuje počet pixelů zadaných vdx
ady
. Systém Windows odešleWM_MOVE
zprá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 ERROR
vrá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
, lpRectUpdate
a 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_CHANGECBCHAIN
a 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 TRUE
tento 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 FALSE
tento parametr , nValue
je nepodepsaný.
Poznámky
SetDlgItemInt
WM_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
SetDlgItemText
WM_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_SYSKEYDOWN
nebo 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í COLORREF
RGB
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 NULL
tento 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 NULL
tento 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 GetWindow
vlastnictví .
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 TRUE
tento 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_CTL
Obsahuje parametry pro ovládací prvek posuvníku. Datovým_hWnd
člen musí být úchytem ovládacího prvku posuvníku.SB_HORZ
Určuje, že okno je vodorovný posuvník.SB_VERT
Urč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 TRUE
vrácena hodnota . Jinak je FALSE
to .
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::OnVScroll
poskytují 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_HORZ
Nastaví pozici posuvníku na vodorovném posuvníku okna.SB_VERT
Nastaví 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 TRUE
tento parametr , posuvník se překreslí; pokud FALSE
se 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_HORZ
Nastaví rozsah vodorovného posuvníku okna.SB_VERT
Nastaví 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 NULL
tento 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::OnTimer
a 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:
wndBottom
Umístí okno v dolní části pořadí Z. Pokud se jednáCWnd
o první okno, okno ztratí svůj nejvyšší stav; systém umístí okno do dolní části všech ostatních oken.wndTop
Umístí okno v horní části pořadí Z.wndTopMost
Umístí okno nad všechna nevrchnější okna. Okno udržuje nejvyšší pozici, i když je deaktivováno.wndNoTopMost
Př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_DRAWFRAME
Nakreslí rámeček (definovaný při vytvoření okna) kolem okna.SWP_FRAMECHANGED
WM_NCCALCSIZE
Odešle zprávu do okna, i když se velikost okna nezmění. Pokud tento příznak není zadaný,WM_NCCALCSIZE
odešle se pouze při změně velikosti okna.SWP_HIDEWINDOW
Skryje okno.SWP_NOACTIVATE
Neaktivuje 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_NOCOPYBITS
Zahodí 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_NOMOVE
Zachová aktuální pozici (ignorujex
parametry).y
SWP_NOOWNERZORDER
Nezmění pozici okna vlastníka v pořadí Z.SWP_NOREDRAW
Nepř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_NOREPOSITION
Stejné jakoSWP_NOOWNERZORDER
.SWP_NOSENDCHANGING
Zabrání tomu, aby okno přijímaloWM_WINDOWPOSCHANGING
zprávu.SWP_NOSIZE
Zachová aktuální velikost (ignoruje parametrycx
).cy
SWP_NOZORDER
Zachová aktuální řazení (ignorujepWndInsertAfter
).SWP_SHOWWINDOW
Zobrazí 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í:
&wndNoTopMost
Ani&wndTopMost
není 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 TRUE
operač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í SetWindowRgn
vlastní operační systém oblast určenou popisovačem hRgn
oblasti . 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 TRUE
tento parametr, zobrazí se všechna skrytá automaticky otevíraná okna. Pokud je FALSE
tento 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_BOTH
Určuje vodorovné a svislé posuvníky okna.SB_HORZ
Určuje, že okno je vodorovný posuvník.SB_VERT
Určuje, že okno je svislý posuvník.
bShow
Určuje, jestli se ve Windows zobrazuje nebo skryje posuvník. Pokud je TRUE
tento 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_HIDE
Skryje toto okno a předá aktivaci do jiného okna.SW_MINIMIZE
Minimalizuje okno a aktivuje okno nejvyšší úrovně v seznamu systému.SW_RESTORE
Aktivuje a zobrazí okno. Pokud je okno minimalizované nebo maximalizované, Windows ho obnoví na původní velikost a pozici.SW_SHOW
Aktivuje okno a zobrazí ho v aktuální velikosti a poloze.SW_SHOWMAXIMIZED
Aktivuje okno a zobrazí ho jako maximalizované okno.SW_SHOWMINIMIZED
Aktivuje okno a zobrazí ho jako ikonu.SW_SHOWMINNOACTIVE
Zobrazí okno jako ikonu. Okno, které je aktuálně aktivní, zůstane aktivní.SW_SHOWNA
Zobrazí okno v aktuálním stavu. Okno, které je aktuálně aktivní, zůstane aktivní.SW_SHOWNOACTIVATE
Zobrazí okno v nejnovější velikosti a pozici. Okno, které je aktuálně aktivní, zůstane aktivní.SW_SHOWNORMAL
Aktivuje 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_nCmdShow
určí .
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 CWnd
mapu zpráv a volání obslužných rutin zpráv ve CWnd
tří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 CWnd
mapu zpráv a volání obslužných rutin zpráv ve CWnd
tří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 LockWindowUpdate
pouze 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 COLORREF
makro 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 NULL
tento 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