CWnd
Klasa
Udostępnia podstawowe funkcje wszystkich klas okien w bibliotece klas programu Microsoft Foundation.
Składnia
class CWnd : public CCmdTarget
Elementy członkowskie
Konstruktory publiczne
Nazwa/nazwisko | opis |
---|---|
CWnd::CWnd |
CWnd Tworzy obiekt. |
Metody publiczne
Nazwa/nazwisko | opis |
---|---|
CWnd::accDoDefaultAction |
Wywoływana przez strukturę w celu wykonania domyślnej akcji obiektu. |
CWnd::accHitTest |
Wywoływana przez platformę w celu pobrania elementu podrzędnego lub obiektu podrzędnego w danym punkcie na ekranie. |
CWnd::accLocation |
Wywoływana przez platformę w celu pobrania bieżącej lokalizacji ekranu określonego obiektu. |
CWnd::accNavigate |
Wywoływana przez platformę, aby przejść do innego elementu interfejsu użytkownika w kontenerze i, jeśli to możliwe, pobierz obiekt. |
CWnd::accSelect |
Wywoływana przez strukturę w celu zmodyfikowania zaznaczenia lub przeniesienia fokusu klawiatury określonego obiektu. |
CWnd::AnimateWindow |
Animuje skojarzony obiekt okna. |
CWnd::ArrangeIconicWindows |
Rozmieszcza wszystkie zminimalizowane (kultowe) okna podrzędne. |
CWnd::Attach |
Dołącza uchwyt systemu Windows do CWnd obiektu. |
CWnd::BeginModalState |
Wywołaj tę funkcję składową, aby utworzyć modalne okno ramowe. |
CWnd::BeginPaint |
CWnd Przygotowuje się do malowania. |
CWnd::BindDefaultProperty |
Tworzy powiązanie domyślnej prostej właściwości powiązanej obiektu wywołującego, oznaczonej w bibliotece typów, do kursora skojarzonego z kontrolką źródła danych. |
CWnd::BindProperty |
Tworzy powiązanie właściwości kursora w kontrolce powiązanej z danymi z kontrolką źródła danych i rejestruje relację z menedżerem powiązań MFC. |
CWnd::BringWindowToTop |
Prowadzi CWnd do góry stosu nakładających się okien. |
CWnd::CalcWindowRect |
Wywoływana w celu obliczenia prostokąta okna z prostokąta klienta. |
CWnd::CancelToolTips |
Wyłącza kontrolkę etykietki narzędzia. |
CWnd::CenterWindow |
Wyśrodkuje okno względem jego elementu nadrzędnego. |
CWnd::ChangeClipboardChain |
Usuwa CWnd z łańcucha osób przeglądających Schowek. |
CWnd::CheckDlgButton |
Umieszcza znacznik wyboru obok lub usuwa znacznik wyboru z kontrolki przycisku. |
CWnd::CheckRadioButton |
Sprawdza określony przycisk radiowy i usuwa znacznik wyboru ze wszystkich innych przycisków radiowych w określonej grupie przycisków. |
CWnd::ChildWindowFromPoint |
Określa, który, jeśli istnieje, okna podrzędne zawiera określony punkt. |
CWnd::ClientToScreen |
Konwertuje współrzędne klienta danego punktu lub prostokąta na ekranie na współrzędne ekranu. |
CWnd::CloseWindow |
Minimalizuje okno. |
CWnd::ContinueModal |
Kontynuuje stan modalny okna. |
CWnd::Create |
Tworzy i inicjuje okno podrzędne skojarzone z obiektem CWnd . |
CWnd::CreateAccessibleProxy |
Tworzy aktywny serwer proxy ułatwień dostępu dla określonego obiektu. |
CWnd::CreateCaret |
Tworzy nowy kształt karetki systemowej i uzyskuje własność karetki. |
CWnd::CreateControl |
Utwórz kontrolkę ActiveX, która będzie reprezentowana w programie MFC przez CWnd obiekt. |
CWnd::CreateEx |
Tworzy nakładające się okna, wyskakujące lub podrzędne okno i dołącza je do CWnd obiektu. |
CWnd::CreateGrayCaret |
Tworzy szary blok dla karetki systemu i otrzymuje własność karetki. |
CWnd::CreateSolidCaret |
Tworzy solidny blok dla karetki systemu i dostaje własność karetki. |
CWnd::DeleteTempMap |
Wywoływana CWinApp automatycznie przez program obsługi bezczynności i usuwa wszystkie obiekty tymczasowe CWnd utworzone przez FromHandle program . |
CWnd::DestroyWindow |
Niszczy dołączone okno systemu Windows. |
CWnd::Detach |
Odłącza uchwyt systemu Windows od CWnd obiektu i zwraca uchwyt. |
CWnd::DlgDirList |
Wypełnia pole listy list z listą plików lub katalogów. |
CWnd::DlgDirListComboBox |
Wypełnia pole listy pola kombi listą plików lub katalogów. |
CWnd::DlgDirSelect |
Pobiera bieżące zaznaczenie z pola listy. |
CWnd::DlgDirSelectComboBox |
Pobiera bieżące zaznaczenie z pola listy pola kombi. |
CWnd::DragAcceptFiles |
Wskazuje, że okno będzie akceptował przeciągane pliki. |
CWnd::DragDetect |
Przechwytuje mysz i śledzi jego ruch, aż użytkownik zwolni lewy przycisk, naciśnie ESC lub przesuwa mysz poza prostokąt przeciągania wokół określonego punktu. |
CWnd::DrawAnimatedRects |
Rysuje prostokąt z ramką z drutu i animuje go, aby wskazać otwarcie ikony lub zminimalizowanie lub maksymalizację okna. |
CWnd::DrawCaption |
Rysuje podpis. |
CWnd::DrawMenuBar |
Ponownie rysuje pasek menu. |
CWnd::EnableActiveAccessibility |
Włącza funkcje zdefiniowane przez Active Accessibility użytkownika. |
CWnd::EnableDynamicLayout |
Umożliwia dynamiczne dostosowywanie położenia i rozmiaru okien podrzędnych, gdy użytkownik zmienia rozmiar okna. |
CWnd::EnableD2DSupport |
Włącza lub wyłącza obsługę okien D2D . Wywołaj tę metodę przed zainicjowanym głównym oknem. |
CWnd::EnableScrollBar |
Włącza lub wyłącza jedną lub obie strzałki paska przewijania. |
CWnd::EnableScrollBarCtrl |
Włącza lub wyłącza równorzędną kontrolkę paska przewijania. |
CWnd::EnableToolTips |
Włącza kontrolkę etykietki narzędzia. |
CWnd::EnableTrackingToolTips |
Włącza kontrolkę etykietki narzędzia w trybie śledzenia. |
CWnd::EnableWindow |
Włącza lub wyłącza wprowadzanie myszy i klawiatury. |
CWnd::EndModalLoop |
Kończy stan modalny okna. |
CWnd::EndModalState |
Wywołaj tę funkcję składową, aby zmienić okno ramki z modalnego na bez moderowania. |
CWnd::EndPaint |
Oznacza koniec malowania. |
CWnd::ExecuteDlgInit |
Inicjuje zasób okna dialogowego. |
CWnd::FilterToolTipMessage |
Pobiera tytuł lub tekst skojarzony z kontrolką w oknie dialogowym. |
CWnd::FindWindow |
Zwraca uchwyt okna, który jest identyfikowany przez jego nazwę okna i klasę okien. |
CWnd::FindWindowEx |
Zwraca uchwyt okna, który jest identyfikowany przez jego nazwę okna i klasę okien. |
CWnd::FlashWindow |
okno raz. |
CWnd::FlashWindowEx |
okno z dodatkową funkcjonalnością. |
CWnd::FromHandle |
Zwraca wskaźnik do CWnd obiektu, gdy dany uchwyt do okna. CWnd Jeśli obiekt nie jest dołączony do uchwytu, zostanie utworzony i dołączony obiekt tymczasowyCWnd . |
CWnd::FromHandlePermanent |
Zwraca wskaźnik do CWnd obiektu, gdy dany uchwyt do okna. |
CWnd::get_accChild |
Wywoływana przez strukturę w celu pobrania adresu interfejsu IDispatch dla określonego elementu podrzędnego. |
CWnd::get_accChildCount |
Wywoływana przez strukturę w celu pobrania liczby elementów podrzędnych należących do tego obiektu. |
CWnd::get_accDefaultAction |
Wywoływana przez platformę w celu pobrania ciągu opisującego domyślną akcję obiektu. |
CWnd::get_accDescription |
Wywoływana przez platformę w celu pobrania ciągu opisującego wygląd wizualizacji określonego obiektu. |
CWnd::get_accFocus |
Wywoływana przez strukturę w celu pobrania obiektu, który ma fokus klawiatury. |
CWnd::get_accHelp |
Wywoływana przez platformę w celu pobrania ciągu właściwości Pomocy obiektu. |
CWnd::get_accHelpTopic |
Wywoływana przez platformę w celu pobrania pełnej ścieżki WinHelp pliku skojarzonego z określonym obiektem i identyfikatora odpowiedniego tematu w tym pliku. |
CWnd::get_accKeyboardShortcut |
Wywoływana przez strukturę w celu pobrania skrótu określonego obiektu lub klucza dostępu. |
CWnd::get_accName |
Wywoływana przez strukturę w celu pobrania nazwy określonego obiektu. |
CWnd::get_accParent |
Wywoływana przez strukturę w celu pobrania IDispatch interfejsu obiektu nadrzędnego obiektu. |
CWnd::get_accRole |
Wywoływana przez platformę w celu pobrania informacji opisujących rolę określonego obiektu. |
CWnd::get_accSelection |
Wywoływana przez strukturę w celu pobrania wybranych elementów podrzędnych tego obiektu. |
CWnd::get_accState |
Wywoływana przez strukturę w celu pobrania bieżącego stanu określonego obiektu. |
CWnd::get_accValue |
Wywoływana przez strukturę w celu pobrania wartości określonego obiektu. |
CWnd::GetActiveWindow |
Pobiera aktywne okno. |
CWnd::GetAncestor |
Pobiera obiekt okna przodka określonego okna. |
CWnd::GetCapture |
Pobiera element CWnd z przechwyceniem myszy. |
CWnd::GetCaretPos |
Pobiera współrzędne klienta bieżącej pozycji karetki. |
CWnd::GetCheckedRadioButton |
Zwraca identyfikator aktualnie zaznaczonego przycisku radiowego w grupie przycisków. |
CWnd::GetClientRect |
Pobiera wymiary CWnd obszaru klienta. |
CWnd::GetClipboardOwner |
Pobiera wskaźnik do bieżącego właściciela Schowka. |
CWnd::GetClipboardViewer |
Pobiera wskaźnik do pierwszego okna w łańcuchu osób przeglądających Schowek. |
CWnd::GetControlUnknown |
Pobiera wskaźnik do nieznanej kontrolki ActiveX. |
CWnd::GetDC |
Pobiera kontekst wyświetlania dla obszaru klienta. |
CWnd::GetDCEx |
Pobiera kontekst wyświetlania dla obszaru klienta i umożliwia wycinek podczas rysowania. |
CWnd::GetDCRenderTarget |
Pobiera docelowy element docelowy renderowania kontekstu urządzenia (DC) dla CWnd okna. |
CWnd::GetDescendantWindow |
Wyszukuje wszystkie okna potomne i zwraca okno o określonym identyfikatorze. |
CWnd::GetDesktopWindow |
Pobiera okno pulpitu systemu Windows. |
CWnd::GetDlgCtrlID |
CWnd Jeśli element jest oknem podrzędnym, wywołanie tej funkcji zwraca wartość identyfikatora. |
CWnd::GetDlgItem |
Pobiera kontrolkę z określonym identyfikatorem z określonego okna dialogowego. |
CWnd::GetDlgItemInt |
Tłumaczy tekst kontrolki w danym oknie dialogowym na wartość całkowitą. |
CWnd::GetDlgItemText |
Pobiera podpis lub tekst skojarzony z kontrolką. |
CWnd::GetDSCCursor |
Pobiera wskaźnik do bazowego kursora zdefiniowanego przez właściwości DataSource, UserName, Password i SQL kontrolki źródła danych. |
CWnd::GetDynamicLayout |
Pobiera wskaźnik do obiektu menedżera układu dynamicznego. |
CWnd::GetExStyle |
Zwraca styl rozszerzony okna. |
CWnd::GetFocus |
CWnd Pobiera aktualnie fokus wejściowy. |
CWnd::GetFont |
Pobiera bieżącą czcionkę. |
CWnd::GetForegroundWindow |
Zwraca wskaźnik do okna pierwszego planu (okno najwyższego poziomu, z którym użytkownik aktualnie pracuje). |
CWnd::GetIcon |
Pobiera uchwyt do ikony. |
CWnd::GetLastActivePopup |
Określa, które okno podręczne należące do użytkownika CWnd było ostatnio aktywne. |
CWnd::GetLayeredWindowAttributes |
Pobiera nieprzezroczystość i klucz koloru przezroczystości okna warstwowego. |
CWnd::GetMenu |
Pobiera wskaźnik do określonego menu. |
CWnd::GetNextDlgGroupItem |
Wyszukuje następną (lub poprzednią) kontrolkę w grupie kontrolek. |
CWnd::GetNextDlgTabItem |
Pobiera pierwszą kontrolkę ze WS_TABSTOP stylem, który następuje (lub poprzedza) określoną kontrolkę. |
CWnd::GetNextWindow |
Zwraca następne (lub poprzednie) okno na liście menedżera okien. |
CWnd::GetOleControlSite |
Pobiera witrynę niestandardową dla określonej kontrolki ActiveX. |
CWnd::GetOpenClipboardWindow |
Pobiera wskaźnik do okna, w którym jest obecnie otwarty Schowek. |
CWnd::GetOwner |
Pobiera wskaźnik do właściciela obiektu CWnd . |
CWnd::GetParent |
Pobiera okno nadrzędne CWnd (jeśli istnieje). |
CWnd::GetParentFrame |
CWnd Pobiera nadrzędne okno ramki obiektu. |
CWnd::GetParentOwner |
Zwraca wskaźnik do okna nadrzędnego okna podrzędnego. |
CWnd::GetProperty |
Pobiera właściwość kontrolki ActiveX. |
CWnd::GetRenderTarget |
Pobiera element docelowy renderowania skojarzony z tym oknem. |
CWnd::GetSafeHwnd |
Zwraca wartość m_hWnd , lub wartość NULL, jeśli this wskaźnik ma wartość NULL. |
CWnd::GetSafeOwner |
Pobiera bezpiecznego właściciela dla danego okna. |
CWnd::GetScrollBarCtrl |
Zwraca kontrolkę paska przewijania elementu równorzędnego. |
CWnd::GetScrollBarInfo |
Pobiera informacje o określonym pasku przewijania. |
CWnd::GetScrollInfo |
Pobiera informacje, które SCROLLINFO struktura utrzymuje na pasku przewijania. |
CWnd::GetScrollLimit |
Pobiera limit paska przewijania. |
CWnd::GetScrollPos |
Pobiera bieżącą pozycję pola przewijania. |
CWnd::GetScrollRange |
Kopiuje bieżące minimalne i maksymalne pozycje paska przewijania dla danego paska przewijania. |
CWnd::GetStyle |
Zwraca bieżący styl okna. |
CWnd::GetSystemMenu |
Umożliwia aplikacji dostęp do menu Kontrola na potrzeby kopiowania i modyfikowania. |
CWnd::GetTitleBarInfo |
Pobiera informacje o określonym pasku tytułu. |
CWnd::GetTopLevelFrame |
Pobiera okno ramki najwyższego poziomu. |
CWnd::GetTopLevelOwner |
Pobiera okno najwyższego poziomu. |
CWnd::GetTopLevelParent |
Pobiera element nadrzędny najwyższego poziomu okna. |
CWnd::GetTopWindow |
Zwraca pierwsze okno podrzędne należące do elementu CWnd . |
CWnd::GetUpdateRect |
Pobiera współrzędne najmniejszego prostokąta, który całkowicie otacza CWnd region aktualizacji. |
CWnd::GetUpdateRgn |
CWnd Pobiera region aktualizacji. |
CWnd::GetWindow |
Zwraca okno z określoną relacją z tym oknem. |
CWnd::GetWindowContextHelpId |
Pobiera identyfikator kontekstu pomocy. |
CWnd::GetWindowDC |
Pobiera kontekst wyświetlania dla całego okna, w tym pasek podpisów, menu i paski przewijania. |
CWnd::GetWindowedChildCount |
Zwraca liczbę skojarzonych okien podrzędnych. |
CWnd::GetWindowInfo |
Zwraca informacje o oknie. |
CWnd::GetWindowlessChildCount |
Zwraca liczbę skojarzonych okien podrzędnych bez okien podrzędnych. |
CWnd::GetWindowPlacement |
Pobiera stan wyświetlania i normalne (przywrócone), zminimalizowane i zmaksymalizowane pozycje okna. |
CWnd::GetWindowRect |
Pobiera współrzędne ekranu .CWnd |
CWnd::GetWindowRgn |
Pobiera kopię obszaru okna okna. |
CWnd::GetWindowText |
Zwraca tekst okna lub tytuł podpisu (jeśli ma go). |
CWnd::GetWindowTextLength |
Zwraca długość tekstu lub tytułu podpisu okna. |
CWnd::HideCaret |
Ukrywa daszek, usuwając go z ekranu wyświetlania. |
CWnd::HiliteMenuItem |
Wyróżnia lub usuwa wyróżnianie z elementu menu najwyższego poziomu (pasek menu). |
CWnd::HtmlHelp |
Wywołana w celu zainicjowania aplikacji HTMLHelp. |
CWnd::Invalidate |
Unieważnia cały obszar klienta. |
CWnd::InvalidateRect |
Unieważnia obszar klienta w danym prostokątze, dodając ten prostokąt do bieżącego regionu aktualizacji. |
CWnd::InvalidateRgn |
Unieważnia obszar klienta w danym regionie przez dodanie tego regionu do bieżącego regionu aktualizacji. |
CWnd::InvokeHelper |
Wywołuje metodę lub właściwość kontrolki ActiveX. |
CWnd::IsChild |
Wskazuje, czy CWnd jest to okno podrzędne, czy inny bezpośredni element potomny określonego okna. |
CWnd::IsD2DSupportEnabled |
Określa, czy obsługa D2D jest włączona. |
CWnd::IsDialogMessage |
Określa, czy dany komunikat jest przeznaczony dla okna dialogowego bez moderowania, a jeśli tak, przetwarza go. |
CWnd::IsDlgButtonChecked |
Określa, czy kontrolka przycisku jest zaznaczona. |
CWnd::IsDynamicLayoutEnabled |
Określa, czy układ dynamiczny jest włączony w tym oknie. Jeśli układ dynamiczny jest włączony, pozycja i rozmiar okien podrzędnych mogą ulec zmianie, gdy użytkownik zmieni rozmiar okna nadrzędnego. |
CWnd::IsIconic |
Określa, czy CWnd jest zminimalizowana (kultowa). |
CWnd::IsTouchWindow |
Określa, czy CWnd ma obsługę dotykową. |
CWnd::IsWindowEnabled |
Określa, czy okno jest włączone dla wprowadzania myszy i klawiatury. |
CWnd::IsWindowVisible |
Określa, czy okno jest widoczne. |
CWnd::IsZoomed |
Określa, czy CWnd jest zmaksymalizowana. |
CWnd::KillTimer |
Zabija czasomierz systemowy. |
CWnd::LockWindowUpdate |
Wyłącza lub przywraca rysunek w danym oknie. |
CWnd::MapWindowPoints |
Konwertuje (mapy) zestaw punktów z przestrzeni współrzędnej obiektu na przestrzeń współrzędną CWnd innego okna. |
CWnd::MessageBox |
Tworzy i wyświetla okno zawierające komunikat i podpis dostarczony przez aplikację. |
CWnd::ModifyStyle |
Modyfikuje bieżący styl okna. |
CWnd::ModifyStyleEx |
Modyfikuje rozszerzony styl okna. |
CWnd::MoveWindow |
Zmienia położenie i wymiary elementu CWnd . |
CWnd::NotifyWinEvent |
Sygnalizuje, że wystąpiło wstępnie zdefiniowane zdarzenie. |
CWnd::OnAmbientProperty |
Zaimplementuj wartości właściwości otoczenia. |
CWnd::OnDrawIconicThumbnailOrLivePreview |
Wywoływana przez platformę, gdy musi uzyskać mapę bitową, która ma być wyświetlana na miniaturze karty systemu Windows 7 lub na kliencie, aby wyświetlić podgląd aplikacji. |
CWnd::OnHelp |
Obsługuje pomoc F1 w aplikacji (przy użyciu bieżącego kontekstu). |
CWnd::OnHelpFinder |
ID_HELP_FINDER Obsługuje polecenia iID_DEFAULT_HELP . |
CWnd::OnHelpIndex |
ID_HELP_INDEX Obsługuje polecenie i udostępnia domyślny temat Pomocy. |
CWnd::OnHelpUsing |
ID_HELP_USING Obsługuje polecenie . |
CWnd::OnToolHitTest |
Określa, czy punkt znajduje się w prostokątze ograniczenia określonego narzędzia i pobiera informacje o narzędziu. |
CWnd::OpenClipboard |
Otwiera Schowek. Inne aplikacje nie będą mogły modyfikować Schowka do momentu wywołania funkcji systemu Windows CloseClipboard . |
CWnd::PaintWindowlessControls |
Rysuje kontrolki bez okien w kontenerze sterowania. |
CWnd::PostMessage |
Umieszcza komunikat w kolejce aplikacji, a następnie zwraca komunikat bez oczekiwania na przetworzenie komunikatu przez okno. |
CWnd::PreCreateWindow |
Wywołana przed utworzeniem okna systemu Windows dołączonego do tego CWnd obiektu. |
CWnd::PreSubclassWindow |
Umożliwia wykonanie innych niezbędnych podklas przed SubclassWindow wywołaniem. |
CWnd::PreTranslateMessage |
CWinApp Służy do filtrowania komunikatów okien przed ich wysłaniem TranslateMessage do funkcji systemu i DispatchMessage Windows. |
CWnd::Print |
Rysuje bieżące okno w określonym kontekście urządzenia. |
CWnd::PrintClient |
Rysuje dowolne okno w określonym kontekście urządzenia (zazwyczaj kontekst urządzenia drukarki). |
CWnd::PrintWindow |
Kopiuje okno wizualizacji do określonego kontekstu urządzenia, zazwyczaj kontrolera domeny drukarki. |
CWnd::RedrawWindow |
Aktualizuje określony prostokąt lub region w obszarze klienta. |
CWnd::RegisterTouchWindow |
Rejestrowanie/wyrejestrowywanie obsługi dotyku systemu Windows. |
CWnd::ReleaseDC |
Zwalnia konteksty urządzeń klienckich i okien, zwalniając je do użytku przez inne aplikacje. |
CWnd::RepositionBars |
Zmienia położenie pasków sterowania w obszarze klienta. |
CWnd::RunModalLoop |
Pobiera, tłumaczy lub wysyła komunikaty dla okna, które jest w stanie modalnym. |
CWnd::ScreenToClient |
Konwertuje współrzędne ekranu danego punktu lub prostokąta na ekranie na współrzędne klienta. |
CWnd::ScrollWindow |
Przewija zawartość obszaru klienta. |
CWnd::ScrollWindowEx |
Przewija zawartość obszaru klienta. Podobnie jak w przypadku ScrollWindow funkcji dodatkowych. |
CWnd::SendChildNotifyLastMsg |
Dostarcza komunikat powiadomienia do okna podrzędnego z okna nadrzędnego, dzięki czemu okno podrzędne może obsłużyć zadanie. |
CWnd::SendDlgItemMessage |
Wysyła komunikat do określonej kontrolki. |
CWnd::SendMessage |
Wysyła komunikat do CWnd obiektu i nie zwraca się, dopóki nie przetworzy komunikatu. |
CWnd::SendMessageToDescendants |
Wysyła wiadomość do wszystkich okien potomnych okna okna. |
CWnd::SendNotifyMessage |
Wysyła określony komunikat do okna i zwraca go tak szybko, jak to możliwe, w zależności od tego, czy wątek wywołujący utworzył okno. |
CWnd::SetActiveWindow |
Aktywuje okno. |
CWnd::SetCapture |
Powoduje wysłanie wszystkich kolejnych danych wejściowych myszy do elementu CWnd . |
CWnd::SetCaretPos |
Przenosi daszek do określonej pozycji. |
CWnd::SetClipboardViewer |
Dodaje CWnd do łańcucha okien, które są powiadamiane za każdym razem, gdy zawartość Schowka zostanie zmieniona. |
CWnd::SetDlgCtrlID |
Ustawia identyfikator okna lub kontrolki dla okna (które może być dowolnym oknem podrzędnym, a nie tylko kontrolką w oknie dialogowym). |
CWnd::SetDlgItemInt |
Ustawia tekst kontrolki na ciąg reprezentujący wartość całkowitą. |
CWnd::SetDlgItemText |
Ustawia podpis lub tekst kontrolki w określonym oknie dialogowym. |
CWnd::SetFocus |
Twierdzi, że fokus danych wejściowych. |
CWnd::SetFont |
Ustawia bieżącą czcionkę. |
CWnd::SetForegroundWindow |
Umieszcza wątek, który utworzył okno na pierwszym planie i aktywuje okno. |
CWnd::SetIcon |
Ustawia uchwyt na określoną ikonę. |
CWnd::SetLayeredWindowAttributes |
Ustawia nieprzezroczystość i klucz koloru przezroczystości okna warstwowego. |
CWnd::SetMenu |
Ustawia menu na określone menu. |
CWnd::SetOwner |
Zmienia właściciela obiektu CWnd . |
CWnd::SetParent |
Zmienia okno nadrzędne. |
CWnd::SetProperty |
Ustawia właściwość kontrolki ActiveX. |
CWnd::SetRedraw |
Umożliwia ponowne rysowanie zmian CWnd lub uniemożliwia ponowne rysowanie zmian. |
CWnd::SetScrollInfo |
Ustawia informacje o pasku przewijania. |
CWnd::SetScrollPos |
Ustawia bieżące położenie pola przewijania, a w razie określenia ponownie rysuje pasek przewijania, aby odzwierciedlić nową pozycję. |
CWnd::SetScrollRange |
Ustawia wartości minimalnej i maksymalnej pozycji dla danego paska przewijania. |
CWnd::SetTimer |
Instaluje czasomierz systemowy, który wysyła WM_TIMER komunikat po wyzwoleniu. |
CWnd::SetWindowContextHelpId |
Ustawia identyfikator kontekstu pomocy. |
CWnd::SetWindowPlacement |
Ustawia stan wyświetlania i normalne (przywrócone), zminimalizowane i zmaksymalizowane pozycje dla okna. |
CWnd::SetWindowPos |
Zmienia rozmiar, położenie i kolejność okien podrzędnych, wyskakujących i najwyższego poziomu. |
CWnd::SetWindowRgn |
Ustawia region okna. |
CWnd::SetWindowText |
Ustawia tytuł tekstu lub podpisu okna (jeśli ma go) na określony tekst. |
CWnd::ShowCaret |
Pokazuje karetki na wyświetlaczu na bieżącej pozycji karetki. Po pokazaniu karetki zaczynają migać automatycznie. |
CWnd::ShowOwnedPopups |
Wyświetla lub ukrywa wszystkie wyskakujące okna należące do okna. |
CWnd::ShowScrollBar |
Wyświetla lub ukrywa pasek przewijania. |
CWnd::ShowWindow |
Wyświetla lub ukrywa okno. |
CWnd::SubclassDlgItem |
Dołącza kontrolkę CWnd systemu Windows do obiektu i umożliwia kierowanie komunikatów przez CWnd mapę komunikatów. |
CWnd::SubclassWindow |
Dołącza okno do CWnd obiektu i powoduje kierowanie komunikatów przez CWnd mapę komunikatów. |
CWnd::UnlockWindowUpdate |
Odblokowuje okno, które zostało zablokowane za pomocą CWnd::LockWindowUpdate polecenia . |
CWnd::UnsubclassWindow |
Odłącza okno od CWnd obiektu |
CWnd::UpdateData |
Inicjuje lub pobiera dane z okna dialogowego. |
CWnd::UpdateDialogControls |
Wywołaj metodę , aby zaktualizować stan przycisków okna dialogowego i innych kontrolek. |
CWnd::UpdateLayeredWindow |
Aktualizuje położenie, rozmiar, kształt, zawartość i przezroczystość okna warstwowego. |
CWnd::UpdateWindow |
Aktualizuje obszar klienta. |
CWnd::ValidateRect |
Weryfikuje obszar klienta w danym prostokątze, usuwając prostokąt z bieżącego regionu aktualizacji. |
CWnd::ValidateRgn |
Weryfikuje obszar klienta w danym regionie, usuwając region z bieżącego regionu aktualizacji. |
CWnd::WindowFromPoint |
Identyfikuje okno zawierające dany punkt. |
CWnd::WinHelp |
Wywołana w celu zainicjowania aplikacji WinHelp. |
Metody chronione
Nazwa/nazwisko | opis |
---|---|
CWnd::Default |
Wywołuje domyślną procedurę okna, która zapewnia domyślne przetwarzanie wszystkich komunikatów okna, których aplikacja nie przetwarza. |
CWnd::DefWindowProc |
Wywołuje domyślną procedurę okna, która zapewnia domyślne przetwarzanie wszystkich komunikatów okna, których aplikacja nie przetwarza. |
CWnd::DoDataExchange |
W przypadku wymiany i walidacji danych okna dialogowego. Wywoływane przez UpdateData . |
CWnd::GetCurrentMessage |
Zwraca wskaźnik do komunikatu, który jest obecnie przetwarzany. Powinna być wywoływana tylko wtedy, gdy w On Message funkcji składowej programu obsługi komunikatów. |
CWnd::InitDynamicLayout |
Wywoływana przez platformę w celu zainicjowania układu dynamicznego okna. |
CWnd::LoadDynamicLayoutResource |
Ładuje dynamiczne informacje o układzie z pliku zasobu. |
CWnd::OnActivate |
Wywoływana, gdy CWnd jest aktywowana lub dezaktywowana. |
CWnd::OnActivateApp |
Wywoływana, gdy aplikacja ma zostać aktywowana lub dezaktywowana. |
CWnd::OnAppCommand |
Wywoływana, gdy użytkownik generuje zdarzenie polecenia aplikacji. |
CWnd::OnAskCbFormatName |
Wywoływana przez aplikację przeglądarki Schowka, gdy właściciel Schowka wyświetli zawartość Schowka. |
CWnd::OnCancelMode |
Wywoływane w celu umożliwienia CWnd anulowania jakichkolwiek trybów wewnętrznych, takich jak przechwytywanie myszy. |
CWnd::OnCaptureChanged |
Wysyła komunikat do okna, które traci przechwytywanie myszy. |
CWnd::OnChangeCbChain |
Powiadamia o usunięciu określonego okna z łańcucha. |
CWnd::OnChangeUIState |
Wywoływana, gdy należy zmienić stan interfejsu użytkownika. |
CWnd::OnChar |
Wywoływana, gdy naciśnięcie przekłada się na znak niesystemowy. |
CWnd::OnCharToItem |
Wywoływane przez podrzędne pole listy ze LBS_WANTKEYBOARDINPUT stylem WM_CHAR w odpowiedzi na komunikat. |
CWnd::OnChildActivate |
Wywoływane dla wielu okien podrzędnych CWnd interfejsu dokumentu (MDI) za każdym razem, gdy rozmiar lub pozycja zmian lub CWnd jest aktywowany. |
CWnd::OnChildNotify |
Wywoływana przez okno nadrzędne w celu nadania kontrolce powiadamiania szansę na udzielenie odpowiedzi na powiadomienie sterujące. |
CWnd::OnClipboardUpdate |
Wywoływana, gdy zawartość schowka uległa zmianie. |
CWnd::OnClose |
Wywoływana jako sygnał, który CWnd należy zamknąć. |
CWnd::OnColorizationColorChanged |
Wywoływane, gdy zasady renderowania dla obszaru innego niż klient uległy zmianie. |
CWnd::OnCommand |
Wywoływana, gdy użytkownik wybierze polecenie. |
CWnd::OnCompacting |
Wywoływana, gdy system Windows wykrywa, że pamięć systemowa jest niska. |
CWnd::OnCompareItem |
Wywoływana w celu określenia względnej pozycji nowego elementu w posortowanym polu kombi lub polu listy właściciela posortowanego właściciela. |
CWnd::OnCompositionChanged |
Wywoływane dla wszystkich okien najwyższego poziomu, gdy kompozycja Menedżera okien pulpitu (DWM) jest włączona lub wyłączona. |
CWnd::OnContextMenu |
Wywoływana, gdy użytkownik kliknie prawy przycisk myszy w oknie. |
CWnd::OnCopyData |
Kopiuje dane z jednej aplikacji do innej. |
CWnd::OnCreate |
Wywoływana jako część tworzenia okna. |
CWnd::OnCtlColor |
Wywoływana, jeśli CWnd jest elementem nadrzędnym kontrolki, gdy kontrolka ma zostać narysowana. |
CWnd::OnDeadChar |
Wywoływana, gdy naciśnięcie przekłada się na nieusystemowy martwy znak (na przykład znaki wyróżniające). |
CWnd::OnDeleteItem |
Wywoływana, gdy pole listy podrzędnej lub pole kombi jest niszczone przez właściciela lub gdy elementy zostaną usunięte z kontrolki. |
CWnd::OnDestroy |
Wywoływana, gdy CWnd jest niszczona. |
CWnd::OnDestroyClipboard |
Wywoływana, gdy Schowek jest opróżniany przez wywołanie funkcji systemu Windows EmptyClipboard . |
CWnd::OnDeviceChange |
Powiadamia aplikację lub sterownik urządzenia o zmianie konfiguracji sprzętowej urządzenia lub komputera. |
CWnd::OnDevModeChange |
Wywołana dla wszystkich okien najwyższego poziomu, gdy użytkownik zmieni ustawienia trybu urządzenia. |
CWnd::OnDrawClipboard |
Wywoływana, gdy zawartość Schowka ulegnie zmianie. |
CWnd::OnDrawItem |
Wywoływana, gdy należy narysować element wizualny kontrolki przycisku podrzędnego właściciela, kontrolki pola kombi, kontrolki pola listy lub menu. |
CWnd::OnDropFiles |
Wywoływana, gdy użytkownik zwalnia lewy przycisk myszy nad oknem, które zarejestrowało się jako odbiorca porzuconych plików. |
CWnd::OnEnable |
Wywoływana, gdy CWnd jest włączona lub wyłączona. |
CWnd::OnEndSession |
Wywoływana po zakończeniu sesji. |
CWnd::OnEnterIdle |
Wywoływana w celu poinformowania głównej procedury okna aplikacji, że modalne okno dialogowe lub menu wprowadza stan bezczynności. |
CWnd::OnEnterMenuLoop |
Wywoływana po wprowadzeniu pętli modalnej menu. |
CWnd::OnEnterSizeMove |
Wywołana po przejściu okna, którego dotyczy problem, wchodzi w ruch lub zmienia rozmiar pętli modalnej. |
CWnd::OnEraseBkgnd |
Wywoływana, gdy tło okna wymaga wymazywania. |
CWnd::OnExitMenuLoop |
Wywoływana, gdy pętla modalna menu została zakończona. |
CWnd::OnExitSizeMove |
Wywoływane po zakończeniu okna, którego dotyczy problem, powoduje zamknięcie ruchomej lub zmiany rozmiaru pętli modalnej. |
CWnd::OnFontChange |
Wywoływana, gdy zmienia się pula zasobów czcionek. |
CWnd::OnGetDlgCode |
Wywoływana dla kontrolki, aby kontrolka mogła przetwarzać dane wejściowe strzałki i TAB. |
CWnd::OnGetMinMaxInfo |
Wywoływane za każdym razem, gdy system Windows musi znać zmaksymalizowaną pozycję lub wymiary albo minimalny lub maksymalny rozmiar śledzenia. |
CWnd::OnHelpInfo |
Wywoływana przez platformę, gdy użytkownik naciska F1. |
CWnd::OnHotKey |
Wywoływana, gdy użytkownik naciska hot o szerokości systemu. |
CWnd::OnHScroll |
Wywoływana, gdy użytkownik kliknie poziomy pasek przewijania .CWnd |
CWnd::OnHScrollClipboard |
Wywoływana, gdy właściciel Schowka powinien przewijać obraz Schowka, unieważniać odpowiednią sekcję i aktualizować wartości paska przewijania. |
CWnd::OnIconEraseBkgnd |
Wywoływana, gdy CWnd jest zminimalizowana (ikona), a tło ikony musi być wypełnione przed malowaniem ikony. |
CWnd::OnInitMenu |
Wywoływane, gdy menu ma stać się aktywne. |
CWnd::OnInitMenuPopup |
Wywoływane, gdy menu podręczne ma stać się aktywne. |
CWnd::OnInputDeviceChange |
Wywoływana po dodaniu lub usunięciu urządzenia we/wy z systemu. |
CWnd::OnInputLangChange |
Wywoływane po zmianie języka wejściowego aplikacji. |
CWnd::OnInputLangChangeRequest |
Wywoływana, gdy użytkownik wybierze nowy język wejściowy. |
CWnd::OnKeyDown |
Wywoływana po naciśnięciu niesystemowego. |
CWnd::OnKeyUp |
Wywoływana po wydaniu klucza niesystemowego. |
CWnd::OnKillFocus |
Wywołana bezpośrednio przed CWnd utratą fokusu wejściowego. |
CWnd::OnLButtonDblClk |
Wywoływana, gdy użytkownik kliknie dwukrotnie lewy przycisk myszy. |
CWnd::OnLButtonDown |
Wywoływana, gdy użytkownik naciska lewy przycisk myszy. |
CWnd::OnLButtonUp |
Wywoływana, gdy użytkownik zwalnia lewy przycisk myszy. |
CWnd::OnMButtonDblClk |
Wywołana, gdy użytkownik kliknie dwukrotnie środkowy przycisk myszy. |
CWnd::OnMButtonDown |
Wywoływana, gdy użytkownik naciska środkowy przycisk myszy. |
CWnd::OnMButtonUp |
Wywoływana, gdy użytkownik zwalnia środkowy przycisk myszy. |
CWnd::OnMDIActivate |
Wywoływana, gdy okno podrzędne MDI jest aktywowane lub dezaktywowane. |
CWnd::OnMeasureItem |
Wywołana dla pola kombi rysowania właściciela podrzędnego, pola listy lub elementu menu po utworzeniu kontrolki. CWnd informuje system Windows o wymiarach kontrolki. |
CWnd::OnMenuChar |
Wywoływana, gdy użytkownik naciska znak mnemonic menu, który nie pasuje do żadnego ze wstępnie zdefiniowanych mnemonics w bieżącym menu. |
CWnd::OnMenuDrag |
Wywoływana, gdy użytkownik zacznie przeciągać element menu. |
CWnd::OnMenuGetObject |
Wywoływana, gdy kursor myszy wprowadza element menu lub przenosi się z środka elementu do góry lub dolnej części elementu. |
CWnd::OnMenuRButtonUp |
Wywoływana, gdy użytkownik zwolni prawy przycisk myszy, gdy kursor znajduje się w elemencie menu. |
CWnd::OnMenuSelect |
Wywoływana, gdy użytkownik wybierze element menu. |
CWnd::OnMouseActivate |
Wywoływana, gdy kursor znajduje się w nieaktywnym oknie, a użytkownik naciska przycisk myszy. |
CWnd::OnMouseHover |
Wywoływana, gdy kursor najecha kursorem na obszar klienta okna przez okres określony w poprzednim wywołaniu metody TrackMouseEvent . |
CWnd::OnMouseHWheel |
Wywoływany, gdy kółko przewijania myszy jest przechylone lub obracane. |
CWnd::OnMouseLeave |
Wywoływana, gdy kursor opuszcza obszar klienta okna określonego w poprzednim wywołaniu metody TrackMouseEvent . |
CWnd::OnMouseMove |
Wywoływana po przesunięciu kursora myszy. |
CWnd::OnMouseWheel |
Wywoływana, gdy użytkownik obraca koło myszy. Używa obsługi komunikatów systemu Windows NT 4.0. |
CWnd::OnMove |
Wywoływana po zmianie położenia elementu CWnd . |
CWnd::OnMoving |
Wskazuje, że użytkownik przenosi CWnd obiekt. |
CWnd::OnNcActivate |
Wywoływana, gdy obszar inny niż klient musi zostać zmieniony, aby wskazać stan aktywny lub nieaktywny. |
CWnd::OnNcCalcSize |
Wywoływana, gdy należy obliczyć rozmiar i położenie obszaru klienta. |
CWnd::OnNcCreate |
Wywoływane OnCreate przed utworzeniem obszaru innego niż klient. |
CWnd::OnNcDestroy |
Wywoływana, gdy obszar niekliencki jest niszczony. |
CWnd::OnNcHitTest |
Wywoływana przez system Windows za każdym razem, gdy mysz zostanie przeniesiona, jeśli CWnd zawiera kursor lub przechwycił dane wejściowe myszy za pomocą polecenia SetCapture . |
CWnd::OnNcLButtonDblClk |
Wywoływana, gdy użytkownik dwukrotnie klika lewy przycisk myszy, gdy kursor znajduje się w obszarze innego niż CWnd klient . |
CWnd::OnNcLButtonDown |
Wywoływana, gdy użytkownik naciska lewy przycisk myszy, gdy kursor znajduje się w obszarze innego niż klient .CWnd |
CWnd::OnNcLButtonUp |
Wywoływana, gdy użytkownik zwalnia lewy przycisk myszy, gdy kursor znajduje się w obszarze innego niż klient .CWnd |
CWnd::OnNcMButtonDblClk |
Wywoływana, gdy użytkownik dwukrotnie klika środkowy przycisk myszy, gdy kursor znajduje się w obszarze innego niż CWnd klient . |
CWnd::OnNcMButtonDown |
Wywoływana, gdy użytkownik naciska środkowy przycisk myszy, gdy kursor znajduje się w obszarze innego niż CWnd klient . |
CWnd::OnNcMButtonUp |
Wywoływana, gdy użytkownik zwalnia środkowy przycisk myszy, gdy kursor znajduje się w obszarze niekliencką CWnd . |
CWnd::OnNcMouseHover |
Wywoływana, gdy kursor najecha kursorem na obszar inny niż klient okna przez okres określony w poprzednim wywołaniu metody TrackMouseEvent . |
CWnd::OnNcMouseLeave |
Struktura wywołuje tę funkcję składową, gdy kursor opuszcza obszar poza klientem okna określonego w poprzednim wywołaniu metody TrackMouseEvent . |
CWnd::OnNcMouseMove |
Wywoływana, gdy kursor jest przenoszony w obszarze innego niż klient .CWnd |
CWnd::OnNcPaint |
Wywoływane, gdy obszar niekliencki wymaga malowania. |
CWnd::OnNcRButtonDblClk |
Wywoływana, gdy użytkownik klika dwukrotnie prawym przyciskiem myszy, gdy kursor znajduje się w obszarze innego niż CWnd klient . |
CWnd::OnNcRButtonDown |
Wywoływana, gdy użytkownik naciska prawy przycisk myszy, gdy kursor znajduje się w obszarze innego niż klient .CWnd |
CWnd::OnNcRButtonUp |
Wywoływana, gdy użytkownik zwalnia prawy przycisk myszy, gdy kursor znajduje się w obszarze innego niż klient .CWnd |
CWnd::OnNcRenderingChanged |
Wywoływane, gdy zasady renderowania dla obszaru innego niż klient uległy zmianie. |
CWnd::OnNcXButtonDblClk |
Wywoływana, gdy użytkownik kliknie XBUTTON1 dwukrotnie lub XBUTTON2 gdy kursor znajduje się w obszarze innym niż klient okna. |
CWnd::OnNcXButtonDown |
Wywoływana, gdy użytkownik naciska XBUTTON1 lub XBUTTON2 myszy, gdy kursor znajduje się w obszarze innym niż klient okna. |
CWnd::OnNcXButtonUp |
Wywoływana, gdy użytkownik zwalnia XBUTTON1 lub XBUTTON2 myszy, gdy kursor znajduje się w obszarze innym niż klient okna. |
CWnd::OnNextMenu |
Wywoływana, gdy strzałki w prawo lub w lewo służy do przełączania się między paskiem menu a menu systemowym. |
CWnd::OnNotify |
Wywoływana przez platformę w celu poinformowania okna nadrzędnego o wystąpieniu zdarzenia w jednej z jego kontrolek lub o tym, że kontrolka potrzebuje informacji. |
CWnd::OnNotifyFormat |
Wywoływane w celu określenia, czy bieżące okno akceptuje struktury ANSI lub Unicode w WM_NOTIFY komunikacie powiadomienia. |
CWnd::OnPaint |
Wywoływana w celu przemalowania części okna. |
CWnd::OnPaintClipboard |
Wywoływana, gdy obszar klienta przeglądarki Schowka wymaga przemalowania. |
CWnd::OnPaletteChanged |
Wywoływane w celu umożliwienia okien korzystających z palety kolorów do realizacji palet logicznych i aktualizowania obszarów klienta. |
CWnd::OnPaletteIsChanging |
Informuje inne aplikacje, gdy aplikacja będzie realizować paletę logiczną. |
CWnd::OnParentNotify |
Wywoływana, gdy okno podrzędne jest tworzone lub niszczone, lub gdy użytkownik kliknie przycisk myszy, gdy kursor znajduje się nad oknem podrzędnym. |
CWnd::OnPowerBroadcast |
Wywoływana w przypadku wystąpienia zdarzenia zarządzania energią. |
CWnd::OnQueryDragIcon |
Wywoływana, gdy użytkownik ma przeciągać zminimalizowane (kultowe). CWnd |
CWnd::OnQueryEndSession |
Wywoływana, gdy użytkownik zdecyduje się zakończyć sesję systemu Windows. |
CWnd::OnQueryNewPalette |
CWnd Informuje o otrzymaniu fokusu danych wejściowych. |
CWnd::OnQueryOpen |
Wywoływana, gdy CWnd jest ikoną, a użytkownik żąda, aby ikona została otwarta. |
CWnd::OnQueryUIState |
Wywoływana w celu pobrania stanu interfejsu użytkownika dla okna. |
CWnd::OnRawInput |
Wywołana, gdy bieżące okno pobiera nieprzetworzone dane wejściowe. |
CWnd::OnRButtonDblClk |
Wywoływana, gdy użytkownik kliknie dwukrotnie prawym przyciskiem myszy. |
CWnd::OnRButtonDown |
Wywoływana, gdy użytkownik naciska prawy przycisk myszy. |
CWnd::OnRButtonUp |
Wywoływana, gdy użytkownik zwolni prawy przycisk myszy. |
CWnd::OnRenderAllFormats |
Wywoływana, gdy aplikacja właściciela jest niszczona i musi renderować wszystkie jej formaty. |
CWnd::OnRenderFormat |
Wywołano właściciela schowka, gdy należy renderować określony format z opóźnionym renderowaniem. |
CWnd::OnSessionChange |
Wywoływana w celu powiadomienia o zastosowaniu zmiany stanu sesji. |
CWnd::OnSetCursor |
Wywoływana, jeśli dane wejściowe myszy nie są przechwytywane, a mysz powoduje ruch kursora w oknie. |
CWnd::OnSetFocus |
Wywołana po CWnd dokonaniu fokusu danych wejściowych. |
CWnd::OnSettingChange |
Wywoływana, gdy funkcja Win32 SystemParametersInfo zmienia ustawienie całego systemu. |
CWnd::OnShowWindow |
Wywoływane, gdy CWnd ma być ukryte lub wyświetlane. |
CWnd::OnSize |
Wywołana po zmianie rozmiaru CWnd elementu. |
CWnd::OnSizeClipboard |
Wywoływana po zmianie rozmiaru obszaru klienta okna Schowka przeglądarki. |
CWnd::OnSizing |
Wskazuje, że użytkownik zmienia rozmiar prostokąta. |
CWnd::OnSpoolerStatus |
Wywoływane z Menedżera wydruku przy każdym dodaniu lub usunięciu zadania z kolejki Menedżera wydruku. |
CWnd::OnStyleChanged |
Wskazuje, że SetWindowLong funkcja systemu Windows zmieniła co najmniej jeden styl okna. |
CWnd::OnStyleChanging |
Wskazuje, że SetWindowLong funkcja systemu Windows ma zmienić co najmniej jeden styl okna. |
CWnd::OnSysChar |
Wywoływana, gdy naciśnięcie przekłada się na znak systemowy. |
CWnd::OnSysColorChange |
Wywoływane dla wszystkich okien najwyższego poziomu, gdy zmiana zostanie wprowadzona w ustawieniu koloru systemu. |
CWnd::OnSysCommand |
Wywoływana, gdy użytkownik wybierze polecenie z menu Kontrolka lub gdy użytkownik wybierze przycisk Maksymalizuj lub Minimalizuj. |
CWnd::OnSysDeadChar |
Wywoływana, gdy naciśnięcie przekłada się na nieaktywny znak systemu (na przykład znaki wyróżniające). |
CWnd::OnSysKeyDown |
Wywoływana, gdy użytkownik przytrzymuje ALT, a następnie naciska inny. |
CWnd::OnSysKeyUp |
Wywoływana, gdy użytkownik zwalnia, który został naciśnięty, gdy ALT został przytrzymyany. |
CWnd::OnTCard |
Wywoływana, gdy użytkownik kliknie przycisk z możliwością tworzenia. |
CWnd::OnTimeChange |
Wywołana dla wszystkich okien najwyższego poziomu po zmianie czasu systemu. |
CWnd::OnTimer |
Wywoływane po każdym interwale określonym w pliku SetTimer . |
CWnd::OnTouchInput |
Przetwarzanie pojedynczych danych wejściowych z poziomu dotyku systemu Windows. |
CWnd::OnTouchInputs |
Przetwarzanie danych wejściowych za pomocą dotyku systemu Windows. |
CWnd::OnUniChar |
Wywoływana po naciśnięciu. Oznacza to, że bieżące okno ma fokus klawiatury, a WM_KEYDOWN komunikat jest tłumaczony przez TranslateMessage funkcję. |
CWnd::OnUnInitMenuPopup |
Wywoływane, gdy menu rozwijane lub podmenu zostało zniszczone. |
CWnd::OnUpdateUIState |
Wywoływana w celu zmiany stanu interfejsu użytkownika dla określonego okna i wszystkich okien podrzędnych. |
CWnd::OnUserChanged |
Wywołana po zalogowaniu lub wyłączeniu użytkownika. |
CWnd::OnVKeyToItem |
Wywoływane przez pole listy należące do elementu CWnd w odpowiedzi na WM_KEYDOWN komunikat. |
CWnd::OnVScroll |
Wywoływana, gdy użytkownik kliknie pionowy pasek przewijania okna. |
CWnd::OnVScrollClipboard |
Wywoływana, gdy właściciel powinien przewinąć obraz Schowka, unieważnić odpowiednią sekcję i zaktualizować wartości paska przewijania. |
CWnd::OnWindowPosChanged |
Wywoływane, gdy rozmiar, pozycja lub kolejność Z uległy zmianie w wyniku wywołania funkcji SetWindowPos lub innej funkcji zarządzania oknami. |
CWnd::OnWindowPosChanging |
Wywoływane, gdy rozmiar, pozycja lub kolejność Z mają ulec zmianie w wyniku wywołania funkcji SetWindowPos lub innej funkcji zarządzania oknami. |
CWnd::OnWinIniChange |
Wywołana dla wszystkich okien najwyższego poziomu po zmianie pliku inicjowania systemu Windows. WIN.INI |
CWnd::OnWndMsg |
Wskazuje, czy komunikat systemu Windows został obsłużony. |
CWnd::OnXButtonDblClk |
Wywoływana, gdy użytkownik kliknie XBUTTON1 dwukrotnie lub XBUTTON2 gdy kursor znajduje się w obszarze klienta okna. |
CWnd::OnXButtonDown |
Wywoływana, gdy użytkownik naciska XBUTTON1 lub XBUTTON2 gdy kursor znajduje się w obszarze klienta okna. |
CWnd::OnXButtonUp |
Wywoływana, gdy użytkownik zwalnia XBUTTON1 lub XBUTTON2 gdy kursor znajduje się w obszarze klienta okna. |
CWnd::PostNcDestroy |
Ta funkcja wirtualna jest wywoływana przez domyślną funkcję OnNcDestroy po zniszczeniu okna. |
CWnd::ReflectChildNotify |
Funkcja pomocnika, która odzwierciedla komunikat w źródle. |
CWnd::ReflectLastMsg |
Odzwierciedla ostatni komunikat w oknie podrzędnym. |
CWnd::ResizeDynamicLayout |
Wywoływana przez platformę, gdy rozmiar okna zmienia się w celu dostosowania układu okien podrzędnych, jeśli dynamiczny układ jest włączony dla okna. |
CWnd::WindowProc |
Zawiera procedurę okna dla elementu CWnd . Domyślnie wysyła komunikaty za pośrednictwem mapy komunikatów. |
Operatory publiczne
Nazwa/nazwisko | opis |
---|---|
CWnd::operator HWND |
Wywołaj metodę , aby uzyskać dojście do okna. |
CWnd::operator != |
Określa, czy okno nie jest takie samo jak okno, którego uchwyt to m_hWnd . |
CWnd::operator == |
Określa, czy okno jest takie samo jak okno, którego uchwyt to m_hWnd . |
Publiczne elementy członkowskie danych
Nazwa/nazwisko | opis |
---|---|
CWnd::m_hWnd |
Wskazuje identyfikator HWND dołączony do tego CWnd elementu . |
Uwagi
CWnd
Obiekt różni się od okna systemu Windows, ale te dwa są ściśle połączone. CWnd
Obiekt jest tworzony lub niszczony przez CWnd
konstruktora i destruktora. Z drugiej strony okno systemu Windows jest strukturą danych wewnętrzną dla systemu Windows, która jest tworzona przez funkcję składową Create
i niszczona przez CWnd
wirtualny destruktor. Funkcja DestroyWindow
niszczy okno systemu Windows bez niszczenia obiektu.
Klasa CWnd
i mechanizm mapy komunikatów ukrywają WndProc
funkcję. Przychodzące komunikaty powiadomień systemu Windows są automatycznie kierowane przez mapę komunikatów do odpowiednich funkcji elementów członkowskich komunikatów. CWnd
Zastąpisz funkcję składową Wwiadomości , aby obsłużyć określony komunikat elementu członkowskiego w klasach pochodnych.
Klasa CWnd
umożliwia również utworzenie okna podrzędnego systemu Windows dla aplikacji. Utwórz klasę z CWnd
klasy , a następnie dodaj zmienne składowe do klasy pochodnej, aby przechowywać dane specyficzne dla aplikacji. Zaimplementuj funkcje składowe programu obsługi komunikatów i mapę komunikatów w klasie pochodnej, aby określić, co się stanie, gdy komunikaty są kierowane do okna.
Okno podrzędne zostanie utworzone w dwóch krokach. Najpierw wywołaj konstruktor CWnd
, aby skonstruować CWnd
obiekt, a następnie wywołaj Create
funkcję składową, aby utworzyć okno podrzędne i dołączyć go do CWnd
obiektu.
Gdy użytkownik zakończy okno podrzędne, zniszczy CWnd
obiekt lub wywoła DestroyWindow
funkcję składową, aby usunąć okno i zniszczyć jego struktury danych.
W bibliotece klas programu Microsoft Foundation kolejne klasy pochodzą z CWnd
, aby zapewnić określone typy okien. Wiele z tych klas, w tym CFrameWnd
, CMDIFrameWnd
, CMDIChildWnd
, CView
i CDialog
, jest przeznaczonych do dalszego wyprowadzania. Klasy kontrolek pochodzące z CWnd
klasy , takich jak CButton
, mogą być używane bezpośrednio lub mogą służyć do dalszego wyprowadzania klas.
Aby uzyskać więcej informacji na temat korzystania z CWnd
obiektów , zobacz Frame Windows
i Window Objects (Obiekty okien).
Hierarchia dziedziczenia
CWnd
Wymagania
Nagłówek: afxwin.h
CWnd::accDoDefaultAction
Wywoływana przez strukturę w celu wykonania domyślnej akcji obiektu.
virtual HRESULT accDoDefaultAction(VARIANT varChild);
Parametry
varChild
Określa, czy domyślną akcją do wywołania jest akcja obiektu, czy jeden z elementów podrzędnych obiektu. Ten parametr może być CHILDID_SELF (aby wykonać domyślną akcję obiektu) lub identyfikator podrzędny (aby wykonać domyślną akcję jednego z elementów podrzędnych obiektu).
Wartość zwracana
Zwraca S_OK powodzenia — kod błędu COM w przypadku błędu. Zobacz Zwracane wartości w funkcji IAccessible::accDoDefaultAction w zestawie Windows SDK.
Uwagi
Ta funkcja jest częścią obsługi aktywnych ułatwień dostępu MFC.
Zastąp tę funkcję w CWnd
klasie -pochodnej, aby wykonać domyślną akcję obiektu. Aby uzyskać więcej informacji, zobacz IAccessible::accDoDefaultAction w zestawie Windows SDK.
CWnd::accHitTest
Wywoływana przez platformę w celu pobrania elementu podrzędnego lub obiektu podrzędnego w danym punkcie na ekranie.
virtual HRESULT accHitTest(
long xLeft,
long yTop,
VARIANT* pvarChild);
Parametry
xLeft
Współrzędna X punktu do trafienia (w jednostkach ekranu).
yTop
Współrzędna Y punktu do przetestowania (w jednostkach ekranu).
pvarChild
Odbiera informacje identyfikujące obiekt w punkcie określonym przez xLeft
i yTop
. Zobacz pvarID
w IAccessible::accHitTest
zestawie Windows SDK.
Wartość zwracana
Zwraca wartość S_OK
powodzenia — kod błędu COM w przypadku błędu. Zobacz Zwracane wartości w IAccessible::accHitTest
zestawie Windows SDK.
Uwagi
Ta funkcja jest częścią obsługi aktywnych ułatwień dostępu MFC.
Zastąp tę funkcję w klasie -pochodnej, CWnd
jeśli masz niewindowe elementy interfejsu użytkownika (inne niż kontrolki ActiveX bez okien, które obsługuje MFC).
Aby uzyskać więcej informacji, zobacz IAccessible::accHitTest
w zestawie Windows SDK.
CWnd::accLocation
Wywoływana przez platformę w celu pobrania bieżącej lokalizacji ekranu określonego obiektu.
virtual HRESULT accLocation(
long* pxLeft,
long* pyTop,
long* pcxWidth,
long* pcyHeight,
VARIANT varChild);
Parametry
pxLeft
Odbiera współrzędną x lewego górnego rogu obiektu (w jednostkach ekranu).
pyTop
Odbiera współrzędną y lewego górnego rogu obiektu (w jednostkach ekranu).
pcxWidth
Odbiera szerokość obiektu (w jednostkach ekranu).
pcyHeight
Otrzymuje wysokość obiektu (w jednostkach ekranu).
varChild
Określa, czy lokalizacja do pobrania jest lokalizacja obiektu, czy jeden z elementów podrzędnych obiektu. Ten parametr może być CHILDID_SELF
(aby uzyskać informacje o obiekcie) lub identyfikator podrzędny (w celu uzyskania informacji o elemecie podrzędnym obiektu).
Wartość zwracana
Zwraca S_OK powodzenia — kod błędu COM w przypadku błędu. Zobacz Zwracane wartości w IAccessible::accLocation
zestawie Windows SDK.
Uwagi
Zastąp tę funkcję w klasie -pochodnej, CWnd
jeśli masz niewindowe elementy interfejsu użytkownika (inne niż kontrolki ActiveX bez okien, które obsługuje MFC).
Aby uzyskać więcej informacji, zobacz IAccessible::accLocation
w zestawie Windows SDK.
CWnd::accNavigate
Wywoływana przez platformę, aby przejść do innego elementu interfejsu użytkownika w kontenerze i, jeśli to możliwe, pobierz obiekt.
virtual HRESULT accNavigate(
long navDir,
VARIANT varStart,
VARIANT* pvarEndUpAt);
Parametry
navDir
Określa kierunek nawigacji. Zobacz navDir
w IAccessible::accNavigate
zestawie Windows SDK.
varStart
Określa obiekt początkowy. Zobacz varStart
w IAccessible::accNavigate
zestawie Windows SDK.
pvarEndUpAt
Odbiera informacje o docelowym obiekcie interfejsu użytkownika. Zobacz pvarEnd
w IAccessible::accNavigate
zestawie Windows SDK.
Wartość zwracana
Zwraca wartość S_OK
powodzenia — kod błędu COM w przypadku błędu. Zobacz Zwracane wartości w IAccessible::accNavigate
zestawie Windows SDK.
Uwagi
Ta funkcja jest częścią obsługi aktywnych ułatwień dostępu MFC.
Zastąp tę funkcję w klasie -pochodnej, CWnd
jeśli masz niewindowe elementy interfejsu użytkownika (inne niż kontrolki ActiveX bez okien, które obsługuje MFC).
Aby uzyskać więcej informacji, zobacz IAccessible::accNavigate
w zestawie Windows SDK.
CWnd::accSelect
Wywoływana przez strukturę w celu zmodyfikowania zaznaczenia lub przeniesienia fokusu klawiatury określonego obiektu.
virtual HRESULT accSelect(
long flagsSelect,
VARIANT varChild);
Parametry
flagsSelect
Określa sposób zmiany bieżącego zaznaczenia lub fokusu. Zobacz flagsSelect
w IAccessible::accSelect
zestawie Windows SDK.
varChild
Określa obiekt do wybrania. Ten parametr może mieć wartość CHILDID_SELF
(aby wybrać sam obiekt) lub identyfikator podrzędny (aby wybrać jeden z elementów podrzędnych obiektu).
Wartość zwracana
Zwraca wartość S_OK
powodzenia — kod błędu COM w przypadku błędu. Zobacz Zwracane wartości w IAccessible::accSelect
zestawie Windows SDK.
Uwagi
Ta funkcja jest częścią obsługi aktywnych ułatwień dostępu MFC.
Zastąp tę funkcję w klasie -pochodnej, CWnd
jeśli masz niewindowe elementy interfejsu użytkownika (inne niż kontrolki ActiveX bez okien, które obsługuje MFC).
Aby uzyskać więcej informacji, zobacz IAccessible::accSelect
w zestawie Windows SDK.
CWnd::AnimateWindow
Tworzy efekty specjalne podczas pokazywania lub ukrywania okien.
BOOL AnimateWindow(
DWORD dwTime,
DWORD dwFlags);
Parametry
dwTime
Określa, jak długo trwa odtwarzanie animacji w milisekundach. Zazwyczaj animacja zajmuje 200 milisekund do odtwarzania.
dwFlags
Określa typ animacji. Aby uzyskać pełną listę możliwych wartości, zobacz AnimateWindow
.
Wartość zwracana
Nonzero, jeśli funkcja powiedzie się; w przeciwnym razie 0.
Uwagi
Ta funkcja składowa emuluje funkcjonalność funkcji AnimateWindow
, zgodnie z opisem w zestawie Windows SDK.
CWnd::ArrangeIconicWindows
Rozmieszcza wszystkie zminimalizowane (kultowe) okna podrzędne.
UINT ArrangeIconicWindows();
Wartość zwracana
Wysokość jednego wiersza ikon, jeśli funkcja zakończy się pomyślnie; w przeciwnym razie 0.
Uwagi
Ta funkcja składowa rozmieszcza również ikony w oknie pulpitu, który obejmuje cały ekran. Funkcja GetDesktopWindow
składowa pobiera wskaźnik do obiektu okna pulpitu.
Aby rozmieścić kultowe okna podrzędne MDI w oknie klienta MDI, wywołaj metodę CMDIFrameWnd::MDIIconArrange
.
Przykład
// 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
Dołącza okno systemu Windows do CWnd
obiektu.
BOOL Attach(HWND hWndNew);
Parametry
hWndNew
Określa dojście do okna systemu Windows.
Wartość zwracana
Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.
Przykład
W tym przykładzie pokazano, jak używać interfejsu Attach
i Detach
mapować je na okno 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
Wywołaj tę funkcję składową, aby utworzyć modalne okno ramowe.
virtual void BeginModalState();
CWnd::BeginPaint
CWnd
Przygotowuje się do malowania i wypełnia PAINTSTRUCT
strukturę danych informacjami o obrazie.
CDC* BeginPaint(LPPAINTSTRUCT lpPaint);
Parametry
lpPaint
PAINTSTRUCT
Wskazuje strukturę, która ma odbierać informacje o obrazie.
Wartość zwracana
Identyfikuje kontekst urządzenia dla elementu CWnd
. Wskaźnik może być tymczasowy i nie powinien być przechowywany poza zakresem .EndPaint
Uwagi
Struktura farby zawiera RECT
strukturę danych, która ma najmniejszy prostokąt, który całkowicie otacza region aktualizacji i flagę określającą, czy tło zostało wymazane.
Region aktualizacji jest ustawiany przez Invalidate
funkcje , InvalidateRect
lub InvalidateRgn
składowe i przez system po jego rozmiarze, przenosi, tworzy, przewija lub wykonuje dowolną inną operację, która ma wpływ na obszar klienta. Jeśli region aktualizacji jest oznaczony do wymazywania, BeginPaint
wysyła WM_ONERASEBKGND
komunikat.
Nie należy wywoływać funkcji składowej BeginPaint
z wyjątkiem w odpowiedzi na WM_PAINT
komunikat. Każde wywołanie funkcji składowej BeginPaint
musi mieć zgodne wywołanie funkcji składowej EndPaint
. Jeśli daszek znajduje się w obszarze do malowania, BeginPaint
funkcja składowa automatycznie ukrywa daszek, aby zapobiec jego wymazaniu.
Przykład
// 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
Tworzy powiązanie domyślnej prostej właściwości powiązanej obiektu wywołującego (na przykład kontrolki edycji) oznaczonej w bibliotece typów do bazowego kursora zdefiniowanego przez DataSource
kontrolkę źródła danych , UserName
, Password
i SQL
.
void BindDefaultProperty(
DISPID dwDispID,
VARTYPE vtProp,
LPCTSTR szFieldName,
CWnd* pDSCWnd);
Parametry
dwDispID
Określa DISPID
właściwość kontrolki powiązanej z danymi, która ma być powiązana z kontrolką źródła danych.
vtProp
Określa typ właściwości, która ma być powiązana. Na przykład , VT_BSTR
VT_VARIANT
i tak dalej.
szFieldName
Określa nazwę kolumny w kursorze dostarczonym przez kontrolkę źródła danych, z którą będzie powiązana właściwość.
pDSCWnd
Wskazuje okno, które hostuje kontrolkę źródła danych, do której będzie powiązana właściwość. Wywołaj metodę GetDlgItem
za pomocą identyfikatora zasobu okna hosta usługi DCS, aby pobrać ten wskaźnik.
Uwagi
Obiekt CWnd
, na którym wywołujesz tę funkcję, musi być formantem powiązanym z danymi.
Przykład
BindDefaultProperty
może być używany w następującym kontekście:
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
Wiąże właściwość związaną kursorem z kontrolką związaną z danymi (na przykład kontrolką siatki) do kontrolki źródła danych i rejestruje relację z menedżerem powiązań MFC.
void BindProperty(
DISPID dwDispId,
CWnd* pWndDSC);
Parametry
dwDispId
Określa DISPID
właściwość kontrolki powiązanej z danymi, która ma być powiązana z kontrolką źródła danych.
pWndDSC
Wskazuje okno, które hostuje kontrolkę źródła danych, do której będzie powiązana właściwość. Wywołaj metodę GetDlgItem
za pomocą identyfikatora zasobu okna hosta usługi DCS, aby pobrać ten wskaźnik.
Uwagi
Obiekt CWnd
, na którym wywołujesz tę funkcję, musi być formantem powiązanym z danymi.
Przykład
BindProperty
może być używany w następującym kontekście:
BOOL CMyDlg::OnInitDialog()
{
CWnd *pDSC = GetDlgItem(IDC_DATASOURCE);
CWnd *pMyBound = GetDlgItem(IDC_MYBOUNDCTRL2);
pMyBound->BindProperty(0x1, pDSC);
return TRUE;
}
CWnd::BringWindowToTop
Prowadzi CWnd
do góry stosu nakładających się okien.
void BringWindowToTop();
Uwagi
Ponadto BringWindowToTop
aktywuje wyskakujące okna podręczne, najwyższego poziomu i podrzędne mdI. Funkcja BringWindowToTop
składowa powinna służyć do odkrywania każdego okna, które jest częściowo lub całkowicie zasłonięte przez wszelkie nakładające się okna.
Ta funkcja po prostu wywołuje funkcję Win32 BringWindowToTop
. Wywołaj SetWindowPos
funkcję , aby zmienić położenie okna w kolejności Z. Funkcja BringWindowToTop
nie zmienia stylu okna, aby była oknem najwyższego poziomu. Aby uzyskać więcej informacji, zobacz Co to jest różnica między elementami HWND_TOP
i HWND_TOPMOST
Przykład
// 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
Oblicza prostokąt okna, który może zawierać określony prostokąt klienta.
virtual void CalcWindowRect(
LPRECT lpClientRect,
UINT nAdjustType = adjustBorder);
Parametry
lpClientRect
[in, out] Wskaźnik do struktury prostokąta. W danych wejściowych ta struktura zawiera prostokąt klienta. Po zakończeniu metody ta struktura zawiera prostokąt okna, który może zawierać określony prostokąt klienta.
nAdjustType
[in] Użyj CWnd::adjustBorder
polecenia , aby obliczyć współrzędne okna bez WS_EX_CLIENTEDGE
stylu; w przeciwnym razie użyj polecenia CWnd::adjustOutside
.
Uwagi
Rozmiar prostokąta okna obliczeniowego nie zawiera miejsca na pasku menu.
Aby uzyskać więcej ograniczeń użycia, zobacz AdjustWindowRectEx
.
Przykład
// 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
Wywołaj tę funkcję składową, aby usunąć poradę narzędzia z ekranu, jeśli jest obecnie wyświetlana porada narzędzia.
static void PASCAL CancelToolTips(BOOL bKeys = FALSE);
Parametry
bKeys
TRUE
aby anulować porady dotyczące narzędzi po naciśnięciu i ustawić tekst paska stanu na wartość domyślną; w przeciwnym razie FALSE
.
Uwagi
Uwaga
Korzystanie z tej funkcji składowej nie ma wpływu na wskazówki dotyczące narzędzi zarządzanych przez kod. Ma to wpływ tylko na kontrolkę porad narzędzia zarządzaną przez CWnd::EnableToolTips
program .
Przykład
// 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
Wyśrodkuje okno względem jego elementu nadrzędnego.
void CenterWindow(CWnd* pAlternateOwner = NULL);
Parametry
pAlternateOwner
Wskaźnik do alternatywnego okna względem którego zostanie wyśrodkowany (poza oknem nadrzędnym).
Uwagi
Zwykle wywoływane z CDialog::OnInitDialog
do środka okien dialogowych względem głównego okna aplikacji. Domyślnie okna podrzędne funkcji są wyśrodkowane względem okna nadrzędnego i wyskakujące okna względem ich właściciela. Jeśli okno podręczne nie jest własnością, jest wyśrodkowane względem ekranu. Aby wyśrodkować okno względem określonego okna, które nie jest właścicielem lub elementem nadrzędnym, pAlternateOwner
parametr może być ustawiony na prawidłowe okno. Aby wymusić wyśrodkowanie względem ekranu, przekaż wartość zwróconą przez CWnd::GetDesktopWindow
wartość jako pAlternateOwner
.
Przykład
BOOL CAboutDlg::OnInitDialog()
{
CDialog::OnInitDialog();
CenterWindow();
return TRUE;
}
CWnd::ChangeClipboardChain
CWnd
Usuwa z łańcucha widzów Schowka i sprawia, że okno określone przez hWndNext
element potomny CWnd
przodka w łańcuchu.
BOOL ChangeClipboardChain(HWND hWndNext);
Parametry
hWndNext
Identyfikuje okno, które następuje CWnd
w łańcuchu Schowek-viewer.
Wartość zwracana
Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.
CWnd::CheckDlgButton
Wybiera (umieszcza znacznik wyboru obok) lub czyści (usuwa znacznik wyboru) przycisk lub zmienia stan przycisku trójstanowego.
void CheckDlgButton(
int nIDButton,
UINT nCheck);
Parametry
nIDButton
Określa przycisk, który ma zostać zmodyfikowany.
nCheck
Określa akcję do wykonania. Jeśli nCheck
jest niezerowa, funkcja składowa CheckDlgButton
umieszcza znacznik wyboru obok przycisku; jeśli 0, znacznik wyboru zostanie usunięty. W przypadku przycisków trójstanowych, jeśli nCheck
jest to 2, stan przycisku jest nieokreślony.
Uwagi
Funkcja CheckDlgButton
wysyła BM_SETCHECK
komunikat do określonego przycisku.
Przykład
// 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
Wybiera (dodaje znacznik wyboru) dany przycisk radiowy w grupie i czyści (usuwa znacznik wyboru) wszystkie inne przyciski radiowe w grupie.
void CheckRadioButton(
int nIDFirstButton,
int nIDLastButton,
int nIDCheckButton);
Parametry
nIDFirstButton
Określa identyfikator liczb całkowitych pierwszego przycisku radiowego w grupie.
nIDLastButton
Określa identyfikator całkowity ostatniego przycisku radiowego w grupie.
nIDCheckButton
Określa identyfikator liczb całkowitych przycisku radiowego do sprawdzenia.
Uwagi
Funkcja CheckRadioButton
wysyła BM_SETCHECK
komunikat do określonego przycisku radiowego.
Przykład
// Of the 4 radio buttons, selects radio button 3.
void CMyDlg::OnMarkRadio()
{
CheckRadioButton(IDC_RADIO1, IDC_RADIO4, IDC_RADIO3);
}
CWnd::ChildWindowFromPoint
Określa, które okna podrzędne należące do CWnd
elementu podrzędnego zawierają określony punkt.
CWnd* ChildWindowFromPoint(POINT point) const;
CWnd* ChildWindowFromPoint(
POINT point,
UINT nFlags) const;
Parametry
point
Określa współrzędne klienta punktu do przetestowania.
nflags
Określa, które okna podrzędne mają być pomijane. Ten parametr może być kombinacją następujących wartości:
Wartość | Znaczenie |
---|---|
CWP_ALL |
Nie pomijaj żadnych okien podrzędnych |
CWP_SKIPINVISIBLE |
Pomiń niewidoczne okna podrzędne |
CWP_SKIPDISABLED |
Pomiń wyłączone okna podrzędne |
CWP_SKIPTRANSPARENT |
Pomiń przezroczyste okna podrzędne |
Wartość zwracana
Identyfikuje okno podrzędne zawierające punkt. Jeśli NULL
dany punkt znajduje się poza obszarem klienta. Jeśli punkt znajduje się w obszarze klienta, ale nie znajduje się w żadnym oknie podrzędnym, CWnd
zostanie zwrócony.
Ta funkcja składowa zwróci ukryte lub wyłączone okno podrzędne zawierające określony punkt.
Więcej niż jedno okno może zawierać dany punkt. Jednak ta funkcja zwraca tylko CWnd
wartość * pierwszego napotkanego okna zawierającego punkt.
Zwrócony CWnd
* może być tymczasowy i nie powinien być przechowywany do późniejszego użycia.
Przykład
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
Konwertuje współrzędne klienta danego punktu lub prostokąta na ekranie na współrzędne ekranu.
void ClientToScreen(LPPOINT lpPoint) const; void ClientToScreen(LPRECT lpRect) const;
Parametry
lpPoint
POINT
Wskazuje strukturę lub CPoint
obiekt zawierający współrzędne klienta, które mają zostać przekonwertowane.
lpRect
RECT
Wskazuje strukturę lub CRect
obiekt zawierający współrzędne klienta, które mają zostać przekonwertowane.
Uwagi
Funkcja ClientToScreen
składowa używa współrzędnych klienta w POINT
strukturze lub RECT
lub CPoint
CRect
obiektu wskazywanego przez lpPoint
lub lpRect
do obliczania nowych współrzędnych ekranu; następnie zastępuje współrzędne w strukturze nowymi współrzędnymi. Współrzędne nowego ekranu są względne względem lewego górnego rogu ekranu systemu.
Funkcja ClientToScreen
składowa zakłada, że dany punkt lub prostokąt znajduje się we współrzędnych klienta.
Przykład
// 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();
Uwagi
Ta funkcja składowa emuluje funkcjonalność funkcji CloseWindow
, zgodnie z opisem w zestawie Windows SDK.
CWnd::ContinueModal
Ta funkcja składowa jest wywoływana przez RunModalLoop
program w celu określenia, kiedy należy zamknąć stan modalny.
virtual BOOL ContinueModal();
Wartość zwracana
Niezerowe, jeśli pętla modalna ma być kontynuowana; 0, gdy EndModalLoop
jest wywoływany.
Uwagi
Domyślnie zwraca wartość inną niż zero, dopóki EndModalLoop
nie zostanie wywołana.
CWnd::Create
Tworzy określone okno podrzędne i dołącza je do CWnd
obiektu.
virtual BOOL Create(
LPCTSTR lpszClassName,
LPCTSTR lpszWindowName,
DWORD dwStyle,
Const RECT& rect,
CWnd* pParentWnd,
UINT nID,
CCreateContext* pContext = NULL);
Parametry
lpszClassName
[in] Wskaźnik do ciągu zakończonego wartością null, który zawiera nazwę zarejestrowanej klasy okien systemowych; lub nazwa wstępnie zdefiniowanej klasy okna systemowego.
lpszWindowName
[in] Wskaźnik do ciągu zakończonego wartości null, który zawiera nazwę wyświetlaną okna; w przeciwnym razie NULL
nie ma nazwy wyświetlanej okna.
dwStyle
[in] Kombinacja bitowa (OR) stylów okna. Opcja WS_POPUP
nie jest prawidłowym stylem.
rect
[in] Rozmiar i lokalizacja okna względem lewego górnego rogu okna nadrzędnego.
pParentWnd
[in] Wskaźnik do okna nadrzędnego.
nID
[in] Identyfikator okna.
pContext
[in] Wskaźnik do CCreateContext
struktury używanej do dostosowywania architektury widoku dokumentów dla aplikacji.
Wartość zwracana
TRUE
jeśli metoda zakończyła się pomyślnie; w przeciwnym razie FALSE
.
Uwagi
Ostrzeżenie
CWnd::PreCreateWindow
teraz przypisuje hMenu
element członkowski jego CREATESTRUCT
parametru this
do wskaźnika, jeśli menu to NULL
, a styl zawiera WS_CHILD
. Aby uzyskać odpowiednie funkcje, upewnij się, że kontrolka okna dialogowego ma identyfikator, który nie NULL
jest .
Ta zmiana naprawia awarię w scenariuszach międzyoperacyjności zarządzanej/natywnej. Instrukcja TRACE
w CWnd::Create
alertach dla dewelopera problemu.
AfxRegisterWndClass
Użyj funkcji , aby zarejestrować klasy okien. Klasy okien zdefiniowanych przez użytkownika są dostępne w module, w którym są zarejestrowane.
Metoda jest wywoływana CWnd::OnCreate
przed zwróceniem Create
metody i zanim okno stanie się widoczne.
Przykład
// 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
Tworzy aktywny serwer proxy ułatwień dostępu dla określonego obiektu.
virtual HRESULT CreateAccessibleProxy(
WPARAM wParam,
LPARAM lParam,
LRESULT* pResult);
Parametry
wParam
Identyfikuje obiekt, do których uzyskuje dostęp serwer proxy aktywnych ułatwień dostępu. Może być jedną z następujących wartości
Wartość | Znaczenie |
---|---|
OBJID_CLIENT |
Odwołuje się do obszaru klienta okna. |
lParam
Udostępnia dodatkowe informacje zależne od komunikatów.
pResult
Wskaźnik do elementu LRESULT
, który przechowuje kod wyniku.
Uwagi
Tworzy aktywny serwer proxy ułatwień dostępu dla określonego obiektu.
CWnd::CreateCaret
Tworzy nowy kształt karetki systemowej i przejmuje własność karetki.
void CreateCaret(CBitmap* pBitmap);
Parametry
pBitmap
Identyfikuje mapę bitową definiującą kształt karetki.
Uwagi
Mapa bitowa musi zostać wcześniej utworzona przez funkcję składową CBitmap::CreateBitmap
, CreateDIBitmap
funkcję systemu Windows lub funkcję składową CBitmap::LoadBitmap
.
CreateCaret
automatycznie niszczy poprzedni kształt karetki, jeśli istnieje, niezależnie od tego, które okno jest właścicielem karetki. Po utworzeniu karetki są początkowo ukryte. Aby pokazać daszek, ShowCaret
należy wywołać funkcję składową.
Daszek systemowy jest zasobem udostępnionym. CWnd
powinien utworzyć daszek tylko wtedy, gdy ma fokus wejściowy lub jest aktywny. Powinien zniszczyć karetki, zanim utraci fokus wejściowy lub staje się nieaktywny.
Przykład
// 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
Użyj tej funkcji składowej, aby utworzyć kontrolkę ActiveX, która będzie reprezentowana w programie MFC przez CWnd
obiekt.
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
Ten ciąg może zawierać "krótką nazwę" OLE (ProgID
) dla klasy. Na przykład "CIRC3.Circ3Ctrl.1"
. Nazwa musi być zgodna z tą samą nazwą zarejestrowaną przez kontrolkę. Alternatywnie ciąg może zawierać postać ciągu , zawartą CLSID
w nawiasach klamrowych. Na przykład "{9DBAFCCF-592F-101B-85CE-00608CEC297B}"
. W obu przypadkach CreateControl
konwertuje ciąg na odpowiadający mu identyfikator klasy.
pszWindowName
Wskaźnik do tekstu, który ma być wyświetlany w kontrolce. Ustawia wartość właściwości Caption lub Text kontrolki (jeśli istnieje). Jeśli NULL
właściwość Caption lub Text kontrolki nie zostanie zmieniona.
dwStyle
Style systemu Windows. Dostępne style są wymienione w obszarze Uwagi.
rect
Określa rozmiar i położenie kontrolki. Może to być CRect
obiekt lub RECT
struktura.
ppt
POINT
Wskazuje strukturę lub CPoint
obiekt, który zawiera lewy górny róg kontrolki.
pSize
SIZE
Wskazuje strukturę lub CSize
obiekt zawierający rozmiar kontrolki
*pParentWnd*
Określa okno nadrzędne kontrolki. Nie może to być NULL
.
nID
Określa identyfikator kontrolki.
pPersist
Wskaźnik zawierający CFile
stan trwały dla kontrolki. Wartość domyślna to NULL
, co wskazuje, że kontrolka inicjuje się bez przywracania stanu z dowolnego magazynu trwałego. Jeśli nie NULL
, powinien to być wskaźnik do obiektu pochodnego CFile
, który zawiera dane trwałe kontrolki, w postaci strumienia lub magazynu. Te dane mogły zostać zapisane w poprzedniej aktywacji klienta. Element CFile
może zawierać inne dane, ale musi mieć ustawiony wskaźnik odczytu i zapisu na pierwszy bajt danych trwałych w momencie wywołania metody CreateControl
.
bStorage
Wskazuje, czy dane w pPersist
pliku powinny być interpretowane jako IStorage
lub IStream
dane. Jeśli dane w pPersist
pliku są magazynem, bStorage
powinny mieć wartość TRUE
. Jeśli dane w obiekcie pPersist
są strumieniem, bStorage
powinny mieć wartość FALSE
. Domyślna wartość to FALSE
.
bstrLicKey
Opcjonalne dane klucza licencji. Te dane są potrzebne tylko do tworzenia kontrolek, które wymagają klucza licencji w czasie wykonywania. Jeśli kontrolka obsługuje licencjonowanie, musisz podać klucz licencji, aby tworzenie kontrolki powiodło się. Domyślna wartość to NULL
.
clsid
Unikatowy identyfikator klasy kontrolki.
Wartość zwracana
Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.
Uwagi
CreateControl
jest bezpośrednim analogiem CWnd::Create
funkcji, która tworzy okno dla elementu CWnd
. CreateControl
tworzy kontrolkę ActiveX zamiast zwykłego okna.
Obsługiwane są tylko podzbiór flag systemu WindowsdwStyle
:CreateControl
WS_VISIBLE
Tworzy okno, które początkowo jest widoczne. Wymagane, jeśli kontrolka ma być widoczna natychmiast, na przykład zwykłe okna.WS_DISABLED
Tworzy okno, które jest początkowo wyłączone. Wyłączone okno nie może odbierać danych wejściowych od użytkownika. Można ustawić, jeśli kontrolka ma właściwość Enabled.WS_BORDER
Tworzy okno z obramowaniem cienkim. Można ustawić, jeśli kontrolkaBorderStyle
ma właściwość .WS_GROUP
Określa pierwszą kontrolkę grupy kontrolek. Użytkownik może zmienić fokus klawiatury z jednej kontrolki w grupie na następną, używając kierunkowych. Wszystkie kontrolki zdefiniowane za pomocąWS_GROUP
stylu po pierwszej kontrolce należą do tej samej grupy. Następna kontrolka ze stylemWS_GROUP
kończy grupę i uruchamia następną grupę.WS_TABSTOP
Określa kontrolkę, która może odbierać fokus klawiatury, gdy użytkownik naciska TAB. Naciśnięcie TAB powoduje zmianę fokusu klawiatury na następną kontrolkęWS_TABSTOP
stylu.
Przykład
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
Tworzy określone okno i dołącza go do CWnd
obiektu.
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
Kombinacja bitowa (OR) rozszerzonych stylów okien; w przeciwnym razie NULL
dla domyślnego stylu rozszerzonego okna.
lpszClassName
Wskaźnik do ciągu zakończonego wartością null, który zawiera nazwę zarejestrowanej klasy okien systemowych; lub nazwa wstępnie zdefiniowanej klasy okna systemowego.
lpszWindowName
Wskaźnik do ciągu zakończonego wartości null, który zawiera nazwę wyświetlaną okna; w przeciwnym razie NULL
nie ma nazwy wyświetlanej okna.
dwStyle
Kombinacja bitowa (OR) stylów okna; w przeciwnym razie NULL
dla domyślnego stylu okna.
x
Początkowa odległość pozioma okna z lewej strony ekranu lub okna nadrzędnego.
y
Początkowa pionowa odległość okna od góry ekranu lub okna nadrzędnego.
nWidth
Szerokość okna w pikselach.
nHeight
Wysokość okna w pikselach.
hwndParent
W przypadku okna podrzędnego dojście do okna nadrzędnego; w przeciwnym razie uchwyt okna właściciela, jeśli okno ma właściciela.
nIDorHMenu
W przypadku okna podrzędnego identyfikator okna; w przeciwnym razie identyfikator menu dla okna.
lpParam
Wskaźnik do danych użytkownika przekazywanych do CWnd::OnCreate
metody w lpCreateParams
polu.
rect
Rozmiar i lokalizacja okna względem ekranu lub okna nadrzędnego.
pParentWnd
W przypadku okna podrzędnego wskaźnik do okna nadrzędnego; w przeciwnym razie wskaż okno właściciela, jeśli okno ma właściciela.
nID
W przypadku okna podrzędnego identyfikator okna; w przeciwnym razie identyfikator menu dla okna.
Wartość zwracana
TRUE
jeśli metoda zakończyła się pomyślnie; w przeciwnym razie FALSE
.
Uwagi
Ostrzeżenie
CWnd::PreCreateWindow
teraz przypisuje hMenu
element członkowski jego CREATESTRUCT
parametru this
do wskaźnika, jeśli menu to NULL
, a styl zawiera WS_CHILD
. Aby uzyskać odpowiednie funkcje, upewnij się, że kontrolka okna dialogowego ma identyfikator, który nie NULL
jest .
Ta zmiana naprawia awarię w scenariuszach międzyoperacyjności zarządzanej/natywnej. Instrukcja TRACE
w CWnd::Create
alertach dla dewelopera problemu.
Domyślnym stylem okna rozszerzonego jest WS_EX_LEFT
. Domyślnym stylem okna jest WS_OVERLAPPED
.
AfxRegisterWndClass
Użyj funkcji , aby zarejestrować klasy okien. Klasy okien zdefiniowanych przez użytkownika są dostępne w module, w którym są zarejestrowane.
Wymiary okien podrzędnych są względne względem lewego górnego rogu obszaru klienta okna nadrzędnego. Wymiary okien najwyższego poziomu są względne względem lewego górnego rogu ekranu.
Metoda jest wywoływana CWnd::OnCreate
przed zwróceniem CreateEx
metody i zanim okno stanie się widoczne.
Przykład
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
Tworzy szary prostokąt dla karetki systemowej i przejmuje własność karetki.
void CreateGrayCaret(
int nWidth,
int nHeight);
Parametry
nWidth
Określa szerokość karetki (w jednostkach logicznych). Jeśli ten parametr ma wartość 0, szerokość jest ustawiona na szerokość obramowania zdefiniowanego przez system.
nHeight
Określa wysokość karetki (w jednostkach logicznych). Jeśli ten parametr ma wartość 0, wysokość jest ustawiona na wysokość obramowania zdefiniowanego przez system.
Uwagi
Kształt karetki może być linią lub blokiem.
Parametry nWidth
i nHeight
określają szerokość i wysokość karetki (w jednostkach logicznych); dokładna szerokość i wysokość (w pikselach) zależą od trybu mapowania.
Szerokość lub wysokość okna systemu można pobrać przez GetSystemMetrics
funkcję systemu Windows z indeksami SM_CXBORDER
i SM_CYBORDER
. Użycie szerokości lub wysokości obramowania okna gwarantuje, że daszek będzie widoczny na wyświetlaczu o wysokiej rozdzielczości.
Funkcja CreateGrayCaret
składowa automatycznie niszczy poprzedni kształt karetki, jeśli istnieje, niezależnie od tego, które okno jest właścicielem karetki. Po utworzeniu karetki są początkowo ukryte. Aby pokazać daszek, ShowCaret
należy wywołać funkcję składową.
Daszek systemowy jest zasobem udostępnionym. CWnd
powinien utworzyć daszek tylko wtedy, gdy ma fokus wejściowy lub jest aktywny. Powinien zniszczyć karetki, zanim utraci fokus wejściowy lub staje się nieaktywny.
Przykład
// Create a 5x10 gray caret in the edit control.
void CMyDlg::OnCreateGrayCaret()
{
m_MyEdit.CreateGrayCaret(5, 10);
m_MyEdit.ShowCaret();
}
CWnd::CreateSolidCaret
Tworzy solidny prostokąt dla karetki systemu i przejmuje własność karetki.
void CreateSolidCaret(
int nWidth,
int nHeight);
Parametry
nWidth
Określa szerokość karetki (w jednostkach logicznych). Jeśli ten parametr ma wartość 0, szerokość jest ustawiona na szerokość obramowania zdefiniowanego przez system.
nHeight
Określa wysokość karetki (w jednostkach logicznych). Jeśli ten parametr ma wartość 0, wysokość jest ustawiona na wysokość obramowania zdefiniowanego przez system.
Uwagi
Kształt karetki może być linią lub blokiem.
Parametry nWidth
i nHeight
określają szerokość i wysokość karetki (w jednostkach logicznych); dokładna szerokość i wysokość (w pikselach) zależą od trybu mapowania.
Szerokość lub wysokość okna systemu można pobrać przez GetSystemMetrics
funkcję systemu Windows z indeksami SM_CXBORDER
i SM_CYBORDER
. Użycie szerokości lub wysokości obramowania okna gwarantuje, że daszek będzie widoczny na wyświetlaczu o wysokiej rozdzielczości.
Funkcja CreateSolidCaret
składowa automatycznie niszczy poprzedni kształt karetki, jeśli istnieje, niezależnie od tego, które okno jest właścicielem karetki. Po utworzeniu karetki są początkowo ukryte. Aby pokazać daszek, ShowCaret
należy wywołać funkcję składową.
Daszek systemowy jest zasobem udostępnionym. CWnd
powinien utworzyć daszek tylko wtedy, gdy ma fokus wejściowy lub jest aktywny. Powinien zniszczyć karetki, zanim utraci fokus wejściowy lub staje się nieaktywny.
Przykład
// Create a 5x10 solid caret in the edit control.
void CMyDlg::OnCreateSolidCaret()
{
m_MyEdit.CreateSolidCaret(5, 10);
m_MyEdit.ShowCaret();
}
CWnd::CWnd
CWnd
Tworzy obiekt.
CWnd();
Uwagi
Okno systemu Windows nie zostanie utworzone i dołączone do momentu wywołania CreateEx
funkcji lub Create
składowej.
CWnd::Default
Wywołuje domyślną procedurę okna.
LRESULT Default();
Wartość zwracana
Zależy od wysłanej wiadomości.
Uwagi
Domyślna procedura okna zapewnia domyślne przetwarzanie dla każdego komunikatu okna, który aplikacja nie przetwarza. Ta funkcja składowa gwarantuje, że każdy komunikat jest przetwarzany.
Przykład
// 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
Wywołuje domyślną procedurę okna, która zapewnia domyślne przetwarzanie dla dowolnego komunikatu okna, że aplikacja nie przetwarza.
virtual LRESULT DefWindowProc(
UINT message,
WPARAM wParam,
LPARAM lParam);
Parametry
message
Określa komunikat systemu Windows do przetworzenia.
wParam
Określa dodatkowe informacje zależne od komunikatów.
lParam
Określa dodatkowe informacje zależne od komunikatów.
Wartość zwracana
Zależy od wysłanej wiadomości.
Uwagi
Ta funkcja składowa gwarantuje, że każdy komunikat jest przetwarzany. Powinien być wywoływany z tymi samymi parametrami co te odbierane przez procedurę okna.
CWnd::DeleteTempMap
Wywoływana automatycznie przez program obsługi CWinApp
czasu bezczynności obiektu.
static void PASCAL DeleteTempMap();
Uwagi
Usuwa wszystkie obiekty tymczasowe CWnd
utworzone przez funkcję składową FromHandle
.
Przykład
// DeleteTempMap() is a static member and does not need
// to be called within the scope of an instantiated CWnd object.
CWnd::DeleteTempMap();
CWnd::DestroyWindow
Niszczy okno systemu Windows dołączone do CWnd
obiektu.
virtual BOOL DestroyWindow();
Wartość zwracana
Niezerowe, jeśli okno zostanie zniszczone; w przeciwnym razie 0.
Uwagi
Funkcja DestroyWindow
składowa wysyła odpowiednie komunikaty do okna, aby je dezaktywować i usunąć fokus wejściowy. Niszczy również menu okna, opróżnia kolejkę aplikacji, niszczy zaległe czasomierze, usuwa własność Schowka i przerywa łańcuch Schowka podglądu, jeśli CWnd
znajduje się w górnej części łańcucha przeglądarki. WM_DESTROY
Wysyła i WM_NCDESTROY
komunikaty do okna. Nie niszczy CWnd
obiektu.
DestroyWindow
jest posiadaczem miejsca do oczyszczania. Ponieważ DestroyWindow
jest funkcją wirtualną, jest ona wyświetlana w dowolnej CWnd
klasie pochodnej w widoku klasy. Ale nawet jeśli zastąpisz tę funkcję w CWnd
klasie -pochodnej, DestroyWindow
nie musi być wywoływana. Jeśli DestroyWindow
nie jest wywoływany w kodzie MFC, musisz jawnie wywołać go we własnym kodzie, jeśli chcesz go wywołać.
Załóżmy na przykład, że przesłonięta DestroyWindow
w klasie -pochodnej CView
. Ponieważ kod źródłowy MFC nie wywołuje DestroyWindow
żadnej z jego CFrameWnd
klas pochodnych, przesłonięta DestroyWindow
nie zostanie wywołana, chyba że zostanie ona jawnie wywołana.
Jeśli okno jest elementem nadrzędnym dowolnego okna, te okna podrzędne są automatycznie niszczone, gdy okno nadrzędne zostanie zniszczone. Funkcja DestroyWindow
składowa najpierw niszczy okna podrzędne, a następnie samo okno.
Funkcja DestroyWindow
składowa niszczy również moderowane okna dialogowe utworzone przez CDialog::Create
program .
CWnd
Jeśli zniszczony element jest oknem podrzędnym i nie ma WS_EX_NOPARENTNOTIFY
zestawu stylów, WM_PARENTNOTIFY
komunikat jest wysyłany do elementu nadrzędnego.
Przykład
// 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
Odłącza uchwyt systemu Windows od CWnd
obiektu i zwraca uchwyt.
HWND Detach();
Wartość zwracana
A HWND
do obiektu systemu Windows.
Przykład
Zobacz przykład dla elementu CWnd::Attach
.
CWnd::DlgDirList
Wypełnia pole listy list z listą plików lub katalogów.
int DlgDirList(
LPTSTR lpPathSpec,
int nIDListBox,
int nIDStaticPath,
UINT nFileType);
Parametry
lpPathSpec
Wskazuje ciąg o wartości null, który zawiera ścieżkę lub nazwę pliku. DlgDirList
modyfikuje ten ciąg, który powinien być wystarczająco długi, aby zawierał modyfikacje. Aby uzyskać więcej informacji, zobacz następującą sekcję "Uwagi".
nIDListBox
Określa identyfikator pola listy. Jeśli nIDListBox
wartość to 0, przyjęto założenie, DlgDirList
że żadne pole listy nie istnieje i nie próbuje go wypełnić.
nIDStaticPath
Określa identyfikator kontrolki statycznego tekstu używanej do wyświetlania bieżącego dysku i katalogu. Jeśli nIDStaticPath
wartość to 0, zakłada, DlgDirList
że nie ma takiej kontrolki tekstu.
nFileType
Określa atrybuty plików do wyświetlenia. Może to być dowolna kombinacja następujących wartości:
DDL_READWRITE
Pliki danych do odczytu i zapisu bez dodatkowych atrybutów.DDL_READONLY
Pliki tylko do odczytu.DDL_HIDDEN
Ukryte pliki.DDL_SYSTEM
Pliki systemowe.DDL_DIRECTORY
Katalogów.DDL_ARCHIVE
Archiwum.DDL_POSTMSGS
LB_DIR
flaga. Jeśli flagaLB_DIR
jest ustawiona, system Windows umieszcza komunikaty generowane wDlgDirList
kolejce aplikacji. W przeciwnym razie są one wysyłane bezpośrednio do procedury okna dialogowego.DDL_DRIVES
Dyski. Jeśli flaga jest ustawiona, flagaDDL_DRIVES
DDL_EXCLUSIVE
jest ustawiana automatycznie. W związku z tym, aby utworzyć listę katalogów zawierającą dyski i pliki, należy wywołaćDlgDirList
dwa razy: raz zDDL_DRIVES
ustawionym flagą i raz z flagami dla pozostałej części listy.DDL_EXCLUSIVE
Bit wyłączny. Jeśli bit wyłączny jest ustawiony, wyświetlane są tylko pliki określonego typu; w przeciwnym razie są wyświetlane zwykłe pliki i pliki określonego typu.
Wartość zwracana
Różne od zera, jeśli funkcja zakończyła się pomyślnie; w przeciwnym razie 0.
Uwagi
DlgDirList
wysyła LB_RESETCONTENT
komunikaty i LB_DIR
do pola listy. Wypełnia ono pole listy określone przez nIDListBox
nazwy wszystkich plików, które pasują do ścieżki podanej przez lpPathSpec
.
Parametr lpPathSpec
ma następującą formę:
[drive:] [ [\u]directory[\idirectory]...\u] [filename]
W tym przykładzie drive
jest literą dysku, directory
jest prawidłową nazwą katalogu i filename
jest prawidłową nazwą pliku, która musi zawierać co najmniej jeden symbol wieloznaczny. Symbole wieloznaczne są znakiem zapytania (?), co oznacza dopasowanie dowolnego znaku i gwiazdką (*), co oznacza dopasowanie dowolnej liczby znaków.
Jeśli określisz ciąg o długości 0 dla lpPathSpec
, lub jeśli określisz tylko nazwę katalogu, ale nie dołączysz żadnej specyfikacji pliku, ciąg zostanie zmieniony na "*.*".
Jeśli lpPathSpec
zawiera dysk i/lub nazwę katalogu, bieżący dysk i katalog zostaną zmienione na wyznaczony dysk i katalog przed wypełnieniem pola listy. Kontrolka tekstu zidentyfikowana przez nIDStaticPath
jest również aktualizowana przy użyciu nowej nazwy dysku i/lub katalogu.
Po wypełnieniu pola listy zostanie zaktualizowana przez lpPathSpec
usunięcie dysku i/lub części katalogu ścieżki.
Przykład
// 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
Wypełnia pole listy pola kombi listą plików lub katalogów.
int DlgDirListComboBox(
LPTSTR lpPathSpec,
int nIDComboBox,
int nIDStaticPath,
UINT nFileType);
Parametry
lpPathSpec
Wskazuje ciąg o wartości null, który zawiera ścieżkę lub nazwę pliku. DlgDirListComboBox
modyfikuje ten ciąg, więc te dane nie powinny być w postaci literału ciągu. Zobacz następującą sekcję "Uwagi".
nIDComboBox
Określa identyfikator pola kombi w oknie dialogowym. Jeśli nIDComboBox
wartość to 0, zakłada, DlgDirListComboBox
że żadne pole kombi nie istnieje i nie próbuje go wypełnić.
nIDStaticPath
Określa identyfikator kontrolki statycznego tekstu używanej do wyświetlania bieżącego dysku i katalogu. Jeśli nIDStaticPath
wartość to 0, zakłada, DlgDirListComboBox
że nie ma takiej kontrolki tekstu.
nFileType
Określa atrybuty pliku SYSTEMU DOS, które mają być wyświetlane. Może to być dowolna kombinacja następujących wartości:
DDL_READWRITE
Pliki danych do odczytu i zapisu bez dodatkowych atrybutów.DDL_READONLY
Pliki tylko do odczytu.DDL_HIDDEN
Ukryte pliki.DDL_SYSTEM
Pliki systemowe.DDL_DIRECTORY
Katalogów.DDL_ARCHIVE
Archiwum.DDL_POSTMSGS
CB_DIR
flaga. Jeśli flagaCB_DIR
jest ustawiona, system Windows umieszcza komunikaty generowane wDlgDirListComboBox
kolejce aplikacji. W przeciwnym razie są one wysyłane bezpośrednio do procedury okna dialogowego.DDL_DRIVES
Dyski. Jeśli flaga jest ustawiona, flagaDDL_DRIVES
DDL_EXCLUSIVE
jest ustawiana automatycznie. W związku z tym, aby utworzyć listę katalogów zawierającą dyski i pliki, należy wywołaćDlgDirListComboBox
dwa razy: raz zDDL_DRIVES
ustawionym flagą i raz z flagami dla pozostałej części listy.DDL_EXCLUSIVE
Bit wyłączny. Jeśli bit wyłączny jest ustawiony, wyświetlane są tylko pliki określonego typu; w przeciwnym razie są wyświetlane zwykłe pliki i pliki określonego typu.
Wartość zwracana
Określa wynik funkcji. Jest to nonzero, jeśli lista została wykonana, nawet pusta lista. Wartość zwracana 0 oznacza, że ciąg wejściowy nie zawiera prawidłowej ścieżki wyszukiwania.
Uwagi
DlgDirListComboBox
wysyła CB_RESETCONTENT
komunikaty i CB_DIR
do pola kombi. Wypełnia pole listy pola kombi określonego przez nIDComboBox
nazwy wszystkich plików pasujących do ścieżki podanej przez lpPathSpec
.
Parametr lpPathSpec
ma następującą formę:
[drive:] [ [\u]directory[\idirectory]...\u] [filename]
W tym przykładzie drive
jest literą dysku, directory
jest prawidłową nazwą katalogu i filename
jest prawidłową nazwą pliku, która musi zawierać co najmniej jeden symbol wieloznaczny. Symbole wieloznaczne to znak zapytania (?), co oznacza dopasowanie dowolnego znaku i gwiazdkę (*), co oznacza dopasowanie dowolnej liczby znaków.
Jeśli określisz ciąg o zerowej długości dla lpPathSpec
, będzie używany bieżący katalog i lpPathSpec
nie zostanie zmodyfikowany. Jeśli określisz tylko nazwę katalogu, ale nie dołączysz żadnej specyfikacji pliku, ciąg zostanie zmieniony na "*".
Jeśli lpPathSpec
zawiera dysk i/lub nazwę katalogu, bieżący dysk i katalog zostaną zmienione na wyznaczony dysk i katalog przed wypełnieniem pola listy. Kontrolka tekstu zidentyfikowana przez nIDStaticPath
jest również aktualizowana przy użyciu nowej nazwy dysku i/lub katalogu.
Po wypełnieniu pola listy pola kombi zostanie zaktualizowany przez lpPathSpec
usunięcie dysku i/lub części katalogu ścieżki.
Przykład
// 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
Pobiera bieżące zaznaczenie z pola listy.
BOOL DlgDirSelect(
LPTSTR lpString,
int nIDListBox);
Parametry
lpString
Wskazuje bufor, który ma odbierać bieżące zaznaczenie w polu listy.
nIDListBox
Określa identyfikator liczby całkowitej pola listy w oknie dialogowym.
Wartość zwracana
Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.
Uwagi
Przyjęto założenie, że pole listy zostało wypełnione przez funkcję składową DlgDirList
i że zaznaczenie jest literą dysku, plikiem lub nazwą katalogu.
Funkcja DlgDirSelect
składowa kopiuje zaznaczenie do buforu podanego przez lpString
. Jeśli nie ma zaznaczenia, lpString
nie zmienia się.
DlgDirSelect
wysyła LB_GETCURSEL
komunikaty i LB_GETTEXT
do pola listy.
Nie zezwala na zwracanie więcej niż jednej nazwy pliku z pola listy. Pole listy nie może być polem listy wielokrotnego wyboru.
CWnd::DlgDirSelectComboBox
Pobiera bieżące zaznaczenie z pola listy pola kombi.
BOOL DlgDirSelectComboBox(
LPTSTR lpString,
int nIDComboBox);
Parametry
lpString
Wskazuje bufor, który ma odbierać wybraną ścieżkę.
nIDComboBox
Określa identyfikator liczby całkowitej pola kombi w oknie dialogowym.
Wartość zwracana
Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.
Uwagi
Przyjęto założenie, że pole listy zostało wypełnione przez funkcję składową DlgDirListComboBox
i że zaznaczenie jest literą dysku, plikiem lub nazwą katalogu.
Funkcja DlgDirSelectComboBox
składowa kopiuje zaznaczenie do określonego buforu. Jeśli nie ma zaznaczenia, zawartość buforu nie zostanie zmieniona.
DlgDirSelectComboBox
wysyła CB_GETCURSEL
komunikaty i CB_GETLBTEXT
do pola kombi.
Nie zezwala na zwracanie więcej niż jednej nazwy pliku z pola kombi.
CWnd::DoDataExchange
Wywoływana przez platformę w celu wymiany i weryfikowania danych okna dialogowego.
virtual void DoDataExchange(CDataExchange* pDX);
Parametry
pDX
Wskaźnik do CDataExchange
obiektu.
Uwagi
Nigdy nie wywołaj tej funkcji bezpośrednio. Jest wywoływana przez funkcję składową UpdateData
. Wywołaj metodę UpdateData
inicjowania kontrolek okna dialogowego lub pobierania danych z okna dialogowego.
W przypadku utworzenia klasy okna dialogowego specyficznego dla aplikacji z CDialog
programu należy zastąpić tę funkcję składową, jeśli chcesz użyć automatycznej wymiany i walidacji danych platformy. Kreator dodawania zmiennej napisze przesłoniętą wersję tej funkcji składowej, która zawiera żądaną "mapę danych" wymiany danych okna dialogowego (DDX) i wywołania funkcji globalnych weryfikacji (DDV).
Aby automatycznie wygenerować przesłoniętą wersję tej funkcji składowej, najpierw utwórz zasób okna dialogowego za pomocą edytora okien dialogowych, a następnie utwórz klasę okna dialogowego specyficznego dla aplikacji. Następnie użyj kreatora Dodaj zmienną, aby skojarzyć zmienne, dane i zakresy walidacji z różnymi kontrolkami w nowym oknie dialogowym. Następnie kreator zapisuje przesłoniętą DoDataExchange
mapę danych, która zawiera mapę danych. Poniżej przedstawiono przykładowy blok kodu DDX/DDV wygenerowany przez kreatora Dodawania zmiennej:
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);
}
Funkcja DoDataExchange
przesłoniętego elementu członkowskiego musi poprzedzać instrukcje makr w pliku źródłowym.
Aby uzyskać więcej informacji na temat wymiany i walidacji danych okna dialogowego, zobacz Wyświetlanie i manipulowanie danymi w formularzu i oknie dialogowym Wymiana danych i walidacja. Opis makr DDX_ i DDV_ generowanych przez Kreatora dodawania zmiennych można znaleźć w uwagach technicznych 26.
CWnd::DragAcceptFiles
Wywołaj tę funkcję składową z poziomu okna przy użyciu CWnd
wskaźnika w funkcji aplikacjiCWinApp::InitInstance
, aby wskazać, że okno akceptuje porzucone pliki z Menedżera plików systemu Windows lub Eksplorator plików.
void DragAcceptFiles(BOOL bAccept = TRUE);
Parametry
BAccept
Flaga wskazująca, czy przeciągane pliki są akceptowane.
Uwagi
Tylko okno, które wywołuje DragAcceptFiles
parametr z ustawionym parametrem bAccept
TRUE
, zidentyfikowało się jako w stanie przetworzyć komunikat systemu WM_DROPFILES
Windows . Na przykład w aplikacji MDI, jeśli CMDIFrameWnd
wskaźnik okna jest używany w wywołaniu DragAcceptFiles
funkcji, tylko CMDIFrameWnd
okno pobiera WM_DROPFILES
komunikat. Ta wiadomość nie jest wysyłana do wszystkich otwartych CMDIChildWnd
okien. CMDIChildWnd
Aby okno odbierało ten komunikat, należy wywołać DragAcceptFiles
CMDIChildWnd
wskaźnik okna.
Aby zaprzestać odbierania przeciąganych plików, wywołaj funkcję składową z ustawioną wartością bAccept
FALSE
.
CWnd::DragDetect
Przechwytuje mysz i śledzi jego ruch, aż użytkownik zwolni lewy przycisk, naciśnie ESC lub przesuwa mysz poza prostokąt przeciągania wokół określonego punktu.
BOOL DragDetect(POINT pt) const;
Parametry
pt
Początkowa pozycja myszy na współrzędnych ekranu. Funkcja określa współrzędne prostokąta przeciągania przy użyciu tego punktu.
Wartość zwracana
Jeśli użytkownik przesunął mysz poza prostokąt przeciągania przy przytrzymując lewy przycisk, wartość zwracana jest niezerowa.
Jeśli użytkownik nie przesunął myszy poza prostokąt przeciągania przy przytrzymując lewy przycisk, zwracana wartość to zero.
Uwagi
Ta funkcja składowa emuluje funkcjonalność funkcji DragDetect
, zgodnie z opisem w zestawie Windows SDK.
CWnd::DrawAnimatedRects
Rysuje prostokąt z ramką z drutu i animuje go, aby wskazać otwarcie ikony lub zminimalizowanie lub maksymalizację okna.
BOOL DrawAnimatedRects(
int idAni,
CONST RECT* lprcFrom,
CONST RECT* lprcTo);
Parametry
idAni
Określa typ animacji. Jeśli określisz IDANI_CAPTION
, podpis okna będzie animować z pozycji określonej przez lprcFrom
do pozycji określonej przez lprcTo
. Efekt jest podobny do zminimalizowania lub maksymalizacji okna.
lprcFrom
Wskaźnik do struktury określającej lokalizację RECT
i rozmiar ikony lub zminimalizowane okno.
lprcTo
Wskaźnik do struktury określającej lokalizację RECT
i rozmiar przywróconego okna
Wartość zwracana
Nonzero, jeśli funkcja powiedzie się; w przeciwnym razie 0.
Uwagi
Ta funkcja składowa emuluje funkcjonalność funkcji DrawAnimatedRects
, zgodnie z opisem w zestawie Windows SDK.
CWnd::DrawCaption
Rysuje podpis okna.
BOOL DrawCaption(
CDC* pDC,
LPCRECT lprc,
UINT uFlags);
Parametry
pDC
Wskaźnik do kontekstu urządzenia. Funkcja rysuje podpis okna w tym kontekście urządzenia.
lprc
Wskaźnik do RECT
struktury, która określa prostokąt ograniczenia dla podpisu okna.
uFlags
Określa opcje rysunku. Aby uzyskać pełną listę wartości, zobacz DrawCaption
.
Wartość zwracana
Nonzero, jeśli funkcja powiedzie się; w przeciwnym razie 0.
Uwagi
Ta funkcja składowa emuluje funkcjonalność funkcji DrawCaption
, zgodnie z opisem w zestawie Windows SDK.
CWnd::DrawMenuBar
Ponownie rysuje pasek menu.
void DrawMenuBar();
Uwagi
Jeśli pasek menu zostanie zmieniony po utworzeniu okna przez system Windows, wywołaj tę funkcję, aby narysować zmieniony pasek menu.
Przykład
Zobacz przykład dla elementu CWnd::GetMenu
.
CWnd::EnableActiveAccessibility
Włącza funkcje aktywnego ułatwień dostępu zdefiniowane przez użytkownika.
void EnableActiveAccessibility();
Uwagi
Domyślna obsługa aktywnych ułatwień dostępu MFC jest wystarczająca dla standardowych okien i kontrolek, w tym kontrolek ActiveX; jeśli CWnd
jednak klasa -pochodne zawiera niewindowed elementów interfejsu użytkownika, MFC nie ma możliwości ich znajomości. W takim przypadku należy zastąpić odpowiednie aktywne funkcje składowe ułatwień dostępu w klasie i należy wywołać EnableActiveAccessibility
metodę w konstruktorze klasy.
CWnd::EnableDynamicLayout
Włącza lub wyłącza menedżera układu dynamicznego. Po włączeniu dynamicznego układu położenie i rozmiar okien podrzędnych mogą być dostosowywane dynamicznie, gdy użytkownik zmienia rozmiar okna.
void EnableDynamicLayout(BOOL bEnable = TRUE);
Parametry
bEnable
TRUE
aby włączyć układ dynamiczny; FALSE
aby wyłączyć układ dynamiczny.
Uwagi
Jeśli chcesz włączyć układ dynamiczny, musisz zrobić więcej niż tylko wywołać tę metodę. Należy również podać informacje o układzie dynamicznym, w jaki sposób kontrolki w oknie reagują na zmiany rozmiaru. Te informacje można określić w edytorze zasobów lub programowo dla każdej kontrolki. Zobacz Układ dynamiczny.
CWnd::EnableD2DSupport
Włącza lub wyłącza obsługę D2D okna. Wywołaj tę metodę przed zainicjowanym głównym oknem.
void EnableD2DSupport(
BOOL bEnable = TRUE,
BOOL bUseDCRenderTarget = FALSE);
Parametry
bEnable
Określa, czy włączyć, czy wyłączyć obsługę D2D.
bUseDCRenderTarget
Gatunek, czy używać elementu docelowego CDCRenderTarget
renderowania kontekstu urządzenia (DC), . CHwndRenderTarget
Jeśli FALSE
parametr jest używany.
CWnd::EnableScrollBar
Włącza lub wyłącza jedną lub obie strzałki paska przewijania.
BOOL EnableScrollBar(
int nSBFlags,
UINT nArrowFlags = ESB_ENABLE_BOTH);
Parametry
nSBFlags
Określa typ paska przewijania. Może mieć jedną z następujących wartości:
SB_BOTH
Włącza lub wyłącza strzałki poziomych i pionowych pasków przewijania skojarzonych z oknem.SB_HORZ
Włącza lub wyłącza strzałki poziomego paska przewijania skojarzonego z oknem.SB_VERT
Włącza lub wyłącza strzałki pionowego paska przewijania skojarzonego z oknem.
nArrowFlags
Określa, czy strzałki paska przewijania są włączone, czy wyłączone i które strzałki są włączone lub wyłączone. Może mieć jedną z następujących wartości:
ESB_ENABLE_BOTH
Włącza obie strzałki paska przewijania (ustawienie domyślne).ESB_DISABLE_LTUP
Wyłącza strzałkę w lewo poziomego paska przewijania lub strzałkę w górę pionowego paska przewijania.ESB_DISABLE_RTDN
Wyłącza strzałkę w prawo poziomego paska przewijania lub strzałkę w dół pionowego paska przewijania.ESB_DISABLE_BOTH
Wyłącza obie strzałki paska przewijania.
Wartość zwracana
Niezerowe, jeśli strzałki są włączone lub wyłączone zgodnie z określoną wartością. W przeciwnym razie wartość wynosi 0, co oznacza, że strzałki są już w żądanym stanie lub że wystąpił błąd.
CWnd::EnableScrollBarCtrl
Włącza lub wyłącza pasek przewijania dla tego okna.
void EnableScrollBarCtrl(
int nBar,
BOOL bEnable = TRUE);
Parametry
nBar
Identyfikator paska przewijania.
bEnable
Określa, czy pasek przewijania ma być włączony, czy wyłączony.
Uwagi
Jeśli w oknie znajduje się kontrolka równorzędnego paska przewijania, jest używany pasek przewijania; w przeciwnym razie jest używany własny pasek przewijania okna.
CWnd::EnableToolTips
Włącza porady dotyczące narzędzi dla danego okna.
BOOL EnableToolTips(BOOL bEnable = TRUE);
Parametry
bEnable
Określa, czy kontrolka porad narzędzia jest włączona, czy wyłączona. TRUE
włącza kontrolkę; FALSE
wyłącza kontrolkę.
Wartość zwracana
TRUE
jeśli są włączone porady dotyczące narzędzi; w przeciwnym razie FALSE
.
Uwagi
Zastąpić OnToolHitTest
TOOLINFO
, aby udostępnić strukturę lub struktury dla okna.
Uwaga
Niektóre okna, takie jak CToolBar
, zapewniają wbudowaną implementację programu OnToolHitTest
.
Aby uzyskać więcej informacji na temat tej struktury, zobacz TOOLINFO
w zestawie Windows SDK.
Wystarczy wywołać polecenie EnableToolTips
, aby wyświetlić wskazówki dotyczące narzędzi dla kontrolek podrzędnych, chyba że okno nadrzędne pochodzi z CFrameWnd
elementu . Jest to spowodowane tym, że CFrameWnd
udostępnia domyślną procedurę TTN_NEEDTEXT
obsługi dla powiadomienia. Jeśli okno nadrzędne nie pochodzi z CFrameWnd
klasy , oznacza to, że jeśli jest to okno dialogowe lub widok formularza, wskazówki dotyczące narzędzi dla kontrolek podrzędnych nie będą wyświetlane poprawnie, chyba że podasz procedurę obsługi TTN_NEEDTEXT
powiadomienia poradą narzędzia. Zobacz Porady dotyczące narzędzi.
Domyślne porady dotyczące narzędzi podane dla okien nie EnableToolTips
mają skojarzonego z nimi tekstu. Aby pobrać tekst porady narzędzia do wyświetlenia, TTN_NEEDTEXT
powiadomienie jest wysyłane do okna nadrzędnego kontrolki porad narzędzia tuż przed wyświetleniem okna porad narzędzia. Jeśli nie ma procedury obsługi dla tego komunikatu w celu przypisania pewnej wartości do pszText
elementu członkowskiego TOOLTIPTEXT
struktury, nie będzie wyświetlany tekst dla porady narzędzia.
Przykład
// 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
Włącza lub wyłącza etykietki narzędzi śledzenia.
BOOL EnableTrackingToolTips(BOOL bEnable = TRUE);
Parametry
bEnable
Określa, czy wskazówki dotyczące narzędzi śledzenia są włączone, czy wyłączone. Jeśli ten parametr to TRUE
, wskazówki dotyczące narzędzia śledzenia zostaną włączone. Jeśli ten parametr to FALSE
, wskazówki dotyczące narzędzia śledzenia zostaną wyłączone.
Wartość zwracana
Wskazuje stan przed wywołaniem funkcji składowej EnableWindow
. Wartość zwracana jest niezerowa, jeśli okno zostało wcześniej wyłączone. Zwracana wartość to 0, jeśli okno zostało wcześniej włączone lub wystąpił błąd.
Uwagi
Wskazówki dotyczące narzędzi do śledzenia to okna porad narzędzi, które można dynamicznie ustawić na ekranie. Szybko aktualizując położenie, okno porad narzędzia wydaje się bezproblemowo przesuwać się lub "śledzić". Ta funkcja może być przydatna, jeśli potrzebujesz tekstu porad narzędzia, aby podążać za położeniem wskaźnika podczas jego przesuwania.
CWnd::EnableWindow
Włącza lub wyłącza wprowadzanie myszy i klawiatury.
BOOL EnableWindow(BOOL bEnable = TRUE);
Parametry
bEnable
Określa, czy dane okno ma być włączone, czy wyłączone. Jeśli ten parametr to TRUE
, zostanie włączone okno. Jeśli ten parametr to FALSE
, okno zostanie wyłączone.
Wartość zwracana
Wskazuje stan przed wywołaniem funkcji składowej EnableWindow
. Wartość zwracana jest niezerowa, jeśli okno zostało wcześniej wyłączone. Zwracana wartość to 0, jeśli okno zostało wcześniej włączone lub wystąpił błąd.
Uwagi
Gdy dane wejściowe są wyłączone, dane wejściowe, takie jak kliknięcia myszy i naciśnięcia, są ignorowane. Po włączeniu danych wejściowych okno przetwarza wszystkie dane wejściowe.
Jeśli włączony stan zmieni się, WM_ENABLE
komunikat zostanie wysłany przed zwróceniem tej funkcji.
Jeśli są wyłączone, wszystkie okna podrzędne są niejawnie wyłączone, chociaż nie są wysyłane WM_ENABLE
komunikaty.
Aby można było aktywować okno, należy włączyć okno. Jeśli na przykład aplikacja wyświetla okno dialogowe bez moderowania i wyłączyła okno główne, przed zniszczeniem okna dialogowego należy włączyć okno główne. W przeciwnym razie kolejne okno uzyska fokus danych wejściowych i zostanie aktywowane. Jeśli okno podrzędne jest wyłączone, jest ignorowane, gdy system Windows próbuje określić, które okno powinno otrzymywać komunikaty myszy.
Domyślnie okno jest włączone po jego utworzeniu. Aplikacja może określić WS_DISABLED
styl w Create
funkcji lub CreateEx
elementu członkowskiego, aby utworzyć okno, które jest początkowo wyłączone. Po utworzeniu okna aplikacja może również użyć funkcji składowej EnableWindow
, aby włączyć lub wyłączyć okno.
Aplikacja może używać tej funkcji do włączania lub wyłączania kontrolki w oknie dialogowym. Wyłączona kontrolka nie może odbierać fokusu danych wejściowych ani nie może uzyskać do niej dostępu użytkownik.
Przykład
//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
Przerywa wywołanie metody RunModalLoop
.
virtual void EndModalLoop(int nResult);
Parametry
nResult
Zawiera wartość, która ma zostać zwrócona do obiektu wywołującego .RunModalLoop
Uwagi
Parametr nResult
jest propagowany do wartości zwracanej z RunModalLoop
.
CWnd::EndModalState
Wywołaj tę funkcję składową, aby zmienić okno ramki z modalnego na bez moderowania.
virtual void EndModalState();
CWnd::EndPaint
Oznacza koniec malowania w danym oknie.
void EndPaint(LPPAINTSTRUCT lpPaint);
Parametry
lpPaint
Wskazuje strukturę zawierającą PAINTSTRUCT
informacje o obrazie pobierane przez funkcję składową BeginPaint
.
Uwagi
Funkcja składowa jest wymagana EndPaint
dla każdego wywołania funkcji składowej, ale dopiero po zakończeniu BeginPaint
malowania.
Jeśli daszek został ukryty przez funkcję składową BeginPaint
, EndPaint
przywraca karetki na ekranie.
Przykład
Zobacz przykład dla elementu CWnd::BeginPaint
.
CWnd::ExecuteDlgInit
Inicjuje zasób okna dialogowego.
BOOL ExecuteDlgInit(LPCTSTR lpszResourceName);
BOOL ExecuteDlgInit(LPVOID lpResource);
Parametry
lpszResourceName
Wskaźnik do ciągu zakończonego wartości null określający nazwę zasobu.
lpResource
Wskaźnik do zasobu.
Wartość zwracana
TRUE
jeśli jest wykonywany zasób okna dialogowego; w przeciwnym razie FALSE
.
Uwagi
ExecuteDlgInit
użyje zasobów powiązanych z modułem wykonywania lub zasobów z innych źródeł. Aby to osiągnąć, ExecuteDlgInit
znajduje dojście zasobu przez wywołanie metody AfxFindResourceHandle
. Jeśli aplikacja MFC nie używa udostępnionej biblioteki DLL (MFCx0[U][D].DLL), AfxFindResourceHandle
wywołuje metodę AfxGetResourceHandle
, która zwraca bieżący uchwyt zasobu dla pliku wykonywalnego. Jeśli aplikacja MFC korzystająca z biblioteki MFCx0[U][D].DLL, AfxFindResourceHandle
przechodzi CDynLinkLibrary
przez listę obiektów bibliotek DLL udostępnionych i bibliotek DLL rozszerzeń MFC, które szukają poprawnego dojścia zasobu.
CWnd::FilterToolTipMessage
Wywoływana przez strukturę do wyświetlania komunikatów porad dotyczących narzędzi.
void FilterToolTipMessage(MSG* pMsg);
Parametry
pMsg
Wskaźnik do komunikatu porada narzędzia.
Uwagi
W większości aplikacji MFC ta metoda jest wywoływana przez platformę z PreTranslateMessage
i EnableToolTips
i i i nie trzeba jej nazwać samodzielnie.
Jednak w niektórych aplikacjach, na przykład niektórych kontrolek ActiveX, te metody mogą nie być wywoływane przez platformę i trzeba wywołać FilterToolTipMessage
samodzielnie. Aby uzyskać więcej informacji, zobacz Metody tworzenia porad dotyczących narzędzi.
CWnd::FindWindow
Zwraca najwyższy poziom CWnd
, którego klasa okien jest podana przez lpszClassName
element i którego nazwa okna lub tytuł jest podawana przez lpszWindowName
element .
static CWnd* PASCAL FindWindow(
LPCTSTR lpszClassName,
LPCTSTR lpszWindowName);
Parametry
lpszClassName
Wskazuje ciąg o wartości null, który określa nazwę klasy okna ( WNDCLASS
strukturę). Jeśli lpClassName
ma wartość NULL
, wszystkie nazwy klas są zgodne.
lpszWindowName
Wskazuje ciąg zakończony o wartości null, który określa nazwę okna (tytuł okna). Jeśli lpWindowName
ma wartość NULL
, wszystkie nazwy okien są zgodne.
Wartość zwracana
Identyfikuje okno z określoną nazwą klasy i nazwą okna. Nie NULL
można odnaleźć takiego okna.
* CWnd
może być tymczasowy i nie powinien być przechowywany do późniejszego użycia.
Uwagi
Ta funkcja nie wyszukuje okien podrzędnych.
Przykład
// 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
Pobiera obiekt okna, którego nazwa klasy i nazwa okna są zgodne z określonymi ciągami.
static CWnd* FindWindowEx(
HWND hwndParent,
HWND hwndChildAfter,
LPCTSTR lpszClass,
LPCTSTR lpszWindow);
Parametry
hwndParent
Dojście do okna nadrzędnego, którego okna podrzędne mają być przeszukiwane.
hwndChildAfter
Dojście do okna podrzędnego. Wyszukiwanie rozpoczyna się od następnego okna podrzędnego w kolejności Z. Okno podrzędne musi być bezpośrednim oknem hwndParent
podrzędnym elementu , a nie tylko oknem potomnym.
lpszClass
Wskaźnik do ciągu zakończonego wartością null, który określa nazwę klasy lub atom klasy utworzony przez poprzednie wywołanie metody RegisterClass
lub RegisterClassEx
.
lpszWindow
Wskaźnik do ciągu zakończonego wartością null, który określa nazwę okna (tytuł okna). Jeśli ten parametr to NULL
, wszystkie nazwy okien są zgodne.
Wartość zwracana
Jeśli funkcja powiedzie się, zwracana wartość jest wskaźnikiem do obiektu okna o określonej klasie i nazwach okien. Jeśli funkcja zakończy się niepowodzeniem, zwracana wartość to NULL
.
Uwagi
Ta funkcja składowa emuluje funkcjonalność funkcji FindWindowEx
, zgodnie z opisem w zestawie Windows SDK.
CWnd::FlashWindow
dane okno raz.
BOOL FlashWindow(BOOL bInvert);
Parametry
bInvert
Określa, czy CWnd
element ma być migany, czy zwracany do pierwotnego stanu. Element CWnd
jest migany z jednego stanu do drugiego, jeśli bInvert
ma wartość TRUE
. Jeśli bInvert
wartość to FALSE
, okno zostanie zwrócone do pierwotnego stanu (aktywne lub nieaktywne).
Wartość zwracana
Niezero, jeśli okno było aktywne przed wywołaniem funkcji składowej FlashWindow
; w przeciwnym razie 0.
Uwagi
W przypadku kolejnych należy utworzyć czasomierz systemowy i wielokrotnie wywoływać metodę FlashWindow
. CWnd
oznacza zmianę wyglądu paska tytułu tak, jakby CWnd
zmieniały się z nieaktywnego na aktywny lub odwrotnie. (Nieaktywny pasek tytułu zmienia się na aktywny pasek tytułu; aktywny pasek tytułu zmienia się na nieaktywny pasek tytułu).
Zazwyczaj okno jest migane, aby poinformować użytkownika, że wymaga uwagi, ale obecnie nie ma fokusu wejściowego.
bInvert
Parametr powinien być FALSE
tylko wtedy, gdy okno uzyskuje fokus wejściowy i nie będzie już migać; powinno to być TRUE
w kolejnych wywołaniach podczas oczekiwania na uzyskanie fokusu wejściowego.
Ta funkcja zawsze zwraca wartość niezerową dla zminimalizowanych okien. Jeśli okno zostanie zminimalizowane, FlashWindow
będzie migać ikonę okna; bInvert
jest ignorowany dla zminimalizowanych okien.
Przykład
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
dane okno.
BOOL FlashWindowEx(
DWORD dwFlags,
UINT uCount,
DWORD dwTimeout);
Parametry
*dwFlags*
Określa stan flash. Aby uzyskać pełną listę wartości, zobacz FLASHWINFO
strukturę.
uCount
Określa liczbę migać okno.
dwTimeout
Określa szybkość w milisekundach, w których zostanie migane okno. Jeśli dwTimeout
ma wartość zero, funkcja używa domyślnej szybkości kursora.
Wartość zwracana
Wartość zwracana określa stan okna przed wywołaniem FlashWindowEx
funkcji. Jeśli podpis okna został narysowany jako aktywny przed wywołaniem, zwracana wartość jest niezerowa. W przeciwnym razie zwracana wartość to zero.
Uwagi
Ta metoda emuluje funkcjonalność funkcji FlashWindowEx
, zgodnie z opisem w zestawie Windows SDK.
CWnd::FromHandle
Zwraca wskaźnik do CWnd
obiektu, gdy dany uchwyt do okna. CWnd
Jeśli obiekt nie jest dołączony do uchwytu, zostanie utworzony i dołączony obiekt tymczasowyCWnd
.
static CWnd* PASCAL FromHandle(HWND hWnd);
Parametry
hWnd
An HWND
okna systemu Windows.
Wartość zwracana
Zwraca wskaźnik do CWnd
obiektu, gdy dany uchwyt do okna. CWnd
Jeśli obiekt nie jest dołączony do uchwytu, zostanie utworzony i dołączony obiekt tymczasowyCWnd
.
Wskaźnik może być tymczasowy i nie powinien być przechowywany do późniejszego użycia.
CWnd::FromHandlePermanent
Zwraca wskaźnik do CWnd
obiektu, gdy dany uchwyt do okna.
static CWnd* PASCAL FromHandlePermanent(HWND hWnd);
Parametry
hWnd
An HWND
okna systemu Windows.
Wartość zwracana
Wskaźnik do CWnd
obiektu.
Uwagi
CWnd
Jeśli obiekt nie jest dołączony do uchwytu, NULL
zostanie zwrócony.
Ta funkcja, w przeciwieństwie do FromHandle
, nie tworzy obiektów tymczasowych.
CWnd::get_accChild
Wywoływana przez strukturę w celu pobrania adresu interfejsu IDispatch
dla określonego elementu podrzędnego.
virtual HRESULT get_accChild(
VARIANT varChild,
IDispatch** ppdispChild);
Parametry
varChild
Identyfikuje element podrzędny, którego IDispatch
interfejs ma zostać pobrany.
ppdispChild
Odbiera adres interfejsu obiektu podrzędnego IDispatch
.
Wartość zwracana
Zwraca wartość S_OK
powodzenia — kod błędu COM w przypadku błędu. Zobacz Zwracane wartości w IAccessible::get_accChild
zestawie Windows SDK.
Uwagi
Ta funkcja jest częścią obsługi aktywnych ułatwień dostępu MFC.
Zastąp tę funkcję w klasie -pochodnej, CWnd
jeśli masz niewindowe elementy interfejsu użytkownika (inne niż kontrolki ActiveX bez okien, które obsługuje MFC).
Aby uzyskać więcej informacji, zobacz IAccessible::get_accChild
w zestawie Windows SDK.
CWnd::get_accChildCount
Wywoływana przez strukturę w celu pobrania liczby elementów podrzędnych należących do tego obiektu.
virtual HRESULT get_accChildCount(long* pcountChildren);
Parametry
pcountChildren
Odbiera liczbę elementów podrzędnych.
Wartość zwracana
Zwraca wartość S_OK
powodzenia — kod błędu COM w przypadku błędu. Zobacz Zwracane wartości w IAccessible::get_accChildCount
zestawie Windows SDK.
Uwagi
Ta funkcja jest częścią obsługi aktywnych ułatwień dostępu MFC.
Zastąp tę funkcję w klasie -pochodnej, CWnd
jeśli masz niewindowe elementy interfejsu użytkownika (inne niż kontrolki ActiveX bez okien, które obsługuje MFC). Wywołaj wersję klasy bazowej, a następnie dodaj niewindowe elementy podrzędne.
Aby uzyskać więcej informacji, zobacz IAccessible::get_accChildCount
w zestawie Windows SDK.
CWnd::get_accDefaultAction
Wywoływana przez platformę w celu pobrania ciągu opisującego domyślną akcję obiektu.
virtual HRESULT get_accDefaultAction(
VARIANT varChild,
BSTR* pszDefaultAction);
Parametry
varChild
Określa, czy domyślną akcją do pobrania jest akcja obiektu, czy jeden z elementów podrzędnych obiektu. Ten parametr może być CHILDID_SELF
(aby uzyskać informacje o obiekcie) lub identyfikator podrzędny (w celu uzyskania informacji o elemecie podrzędnym obiektu).
pszDefaultAction
BSTR
Adres obiektu, który otrzymuje zlokalizowany ciąg opisujący domyślną akcję dla określonego obiektu lub NULL
jeśli ten obiekt nie ma akcji domyślnej.
Wartość zwracana
Zwraca S_OK powodzenia — kod błędu COM w przypadku błędu. Zobacz Zwracane wartości w funkcji IAccessible::get_accDefaultAction w zestawie Windows SDK.
Uwagi
Ta funkcja jest częścią obsługi aktywnych ułatwień dostępu MFC.
Zastąp tę funkcję w CWnd
klasie -pochodnej, aby opisać domyślną akcję obiektu.
Aby uzyskać więcej informacji, zobacz IAccessible::get_accDefaultAction
w zestawie Windows SDK.
CWnd::get_accDescription
Wywoływana przez platformę w celu pobrania ciągu opisującego wygląd wizualizacji określonego obiektu.
virtual HRESULT get_accDescription(
VARIANT varChild,
BSTR* pszDescription);
Parametry
varChild
Określa, czy opis, który ma zostać pobrany, to obiekt, czy jeden z elementów podrzędnych obiektu. Ten parametr może być CHILDID_SELF
(aby uzyskać informacje o obiekcie) lub identyfikator podrzędny (w celu uzyskania informacji o elemecie podrzędnym obiektu).
pszDescription
BSTR
Adres obiektu, który odbiera zlokalizowany ciąg opisujący określony obiekt lub NULL
jeśli nie jest dostępny opis dla tego obiektu.
Wartość zwracana
Zwraca wartość S_OK
powodzenia — kod błędu COM w przypadku błędu. Zobacz Zwracane wartości w IAccessible::get_accDescription
zestawie Windows SDK.
Uwagi
Ta funkcja jest częścią obsługi aktywnych ułatwień dostępu MFC.
Zastąp tę funkcję w CWnd
klasie -pochodnej, aby opisać obiekt. Wywołaj wersję klasy bazowej i dodaj opis.
Aby uzyskać więcej informacji, zobacz IAccessible::get_accDescription
w zestawie Windows SDK.
CWnd::get_accFocus
Wywoływana przez strukturę w celu pobrania obiektu, który ma fokus klawiatury.
virtual HRESULT get_accFocus(VARIANT* pvarChild);
Parametry
pvarChild
Odbiera informacje o obiekcie, który ma fokus. Zobacz pvarID
w IAccessible::get_accFocus
zestawie Windows SDK.
Wartość zwracana
Zwraca wartość S_OK
powodzenia — kod błędu COM w przypadku błędu. Zobacz Zwracane wartości w IAccessible::get_accFocus
zestawie Windows SDK.
Uwagi
Ta funkcja jest częścią obsługi aktywnych ułatwień dostępu MFC.
Zastąp tę funkcję w klasie -pochodnej, CWnd
jeśli masz niewindowe elementy interfejsu użytkownika (inne niż kontrolki ActiveX bez okien, które obsługuje MFC).
Aby uzyskać więcej informacji, zobacz IAccessible::get_accFocus
w zestawie Windows SDK.
CWnd::get_accHelp
Wywoływana przez platformę w celu pobrania ciągu właściwości Pomocy obiektu.
virtual HRESULT get_accHelp(
VARIANT varChild,
BSTR* pszHelp);
Parametry
varChild
Określa, czy informacje pomocy, które mają zostać pobrane, to obiekt, czy jeden z elementów podrzędnych obiektu. Ten parametr może być CHILDID_SELF
(aby uzyskać informacje o obiekcie) lub identyfikator podrzędny (w celu uzyskania informacji o elemecie podrzędnym obiektu).
pszHelp
BSTR
Adres obiektu, który odbiera zlokalizowany ciąg zawierający informacje pomocy dla określonego obiektu lub NULL
jeśli żadne informacje pomocy nie są dostępne.
Wartość zwracana
Zwraca wartość S_OK
powodzenia — kod błędu COM w przypadku błędu. Zobacz Zwracane wartości w IAccessible::get_accHelp
zestawie Windows SDK.
Uwagi
Ta funkcja jest częścią obsługi aktywnych ułatwień dostępu MFC.
Zastąp tę funkcję w CWnd
klasie -pochodnej, aby udostępnić tekst pomocy dla obiektu.
Aby uzyskać więcej informacji, zobacz IAccessible::get_accHelp
w zestawie Windows SDK.
CWnd::get_accHelpTopic
Wywoływana przez platformę w celu pobrania pełnej ścieżki pliku WinHelp skojarzonego z określonym obiektem i identyfikatorem odpowiedniego tematu w tym pliku.
virtual HRESULT get_accHelpTopic(
BSTR* pszHelpFile,
VARIANT varChild,
long* pidTopic);
Parametry
pszHelpFile
Adres obiektu BSTR
, który otrzymuje pełną ścieżkę WinHelp
pliku skojarzonego z określonym obiektem, jeśli istnieje.
varChild
Określa, czy temat Pomocy, który ma zostać pobrany, jest obiektem, czy jednym z elementów podrzędnych obiektu. Ten parametr może mieć wartość CHILDID_SELF
(aby uzyskać temat Pomocy dla obiektu) lub identyfikator podrzędny (aby uzyskać temat Pomocy dla jednego z elementów podrzędnych obiektu).
pidTopic
Identyfikuje temat pliku Pomocy skojarzony z określonym obiektem. Zobacz pidTopic
w IAccessible::get_accHelpTopic
zestawie Windows SDK.
Wartość zwracana
Zwraca wartość S_OK
powodzenia — kod błędu COM w przypadku błędu. Zobacz Zwracane wartości w IAccessible::get_accHelpTopic
zestawie Windows SDK.
Uwagi
Ta funkcja jest częścią obsługi aktywnych ułatwień dostępu MFC.
Zastąp tę funkcję w CWnd
klasie -pochodnej, aby udostępnić informacje o obiekcie.
Aby uzyskać więcej informacji, zobacz IAccessible::get_accHelpTopic
w zestawie Windows SDK.
CWnd::get_accKeyboardShortcut
Wywoływana przez strukturę w celu pobrania skrótu określonego obiektu lub klucza dostępu.
virtual HRESULT get_accKeyboardShortcut(
VARIANT varChild,
BSTR* pszKeyboardShortcut);
Parametry
varChild
Określa, czy skrót klawiaturowy do pobrania jest skrótem obiektu, czy jednym z elementów podrzędnych obiektu. Ten parametr może być CHILDID_SELF
(aby uzyskać informacje o obiekcie) lub identyfikator podrzędny (w celu uzyskania informacji o elemecie podrzędnym obiektu).
pszKeyboardShortcut
BSTR
Adres obiektu, który otrzymuje zlokalizowany ciąg identyfikujący skrót klawiaturowy lub NULL
jeśli żaden skrót klawiaturowy nie jest skojarzony z określonym obiektem.
Wartość zwracana
Zwraca wartość S_OK
powodzenia — kod błędu COM w przypadku błędu. Zobacz Zwracane wartości w IAccessible::get_accKeyboardShortcut
zestawie Windows SDK.
Uwagi
Ta funkcja jest częścią obsługi MFC Active Accessibility
.
Zastąp tę funkcję w CWnd
klasie -pochodnej, aby zidentyfikować skrót klawiaturowy dla obiektu.
Aby uzyskać więcej informacji, zobacz IAccessible::get_accKeyboardShortcut
w zestawie Windows SDK.
CWnd::get_accName
Wywoływana przez strukturę w celu pobrania nazwy określonego obiektu.
virtual HRESULT get_accName(
VARIANT varChild,
BSTR* pszName);
Parametry
varChild
Określa, czy nazwa do pobrania jest nazwą obiektu, czy jednym z elementów podrzędnych obiektu. Ten parametr może być CHILDID_SELF
(aby uzyskać informacje o obiekcie) lub identyfikator podrzędny (w celu uzyskania informacji o elemecie podrzędnym obiektu).
pszName
BSTR
Adres obiektu, który odbiera ciąg zawierający nazwę określonego obiektu.
Wartość zwracana
Zwraca wartość S_OK
powodzenia — kod błędu COM w przypadku błędu. Zobacz Zwracane wartości w IAccessible::get_accName
zestawie Windows SDK.
Uwagi
Ta funkcja jest częścią obsługi aktywnych ułatwień dostępu MFC.
Zastąp tę funkcję w CWnd
klasie -pochodnej, aby zwrócić nazwę obiektu.
Aby uzyskać więcej informacji, zobacz IAccessible::get_accName
w zestawie Windows SDK.
CWnd::get_accParent
Wywoływana przez strukturę w celu pobrania IDispatch
interfejsu obiektu nadrzędnego obiektu.
virtual HRESULT get_accParent(IDispatch** ppdispParent);
Parametry
ppdispParent
Odbiera adres interfejsu obiektu nadrzędnego IDispatch
. Zmienna jest ustawiona na NULL
, jeśli żaden element nadrzędny nie istnieje lub jeśli element podrzędny nie może uzyskać dostępu do jego elementu nadrzędnego.
Wartość zwracana
Zwraca S_OK
wartość w przypadku powodzenia COM
— kod błędu w przypadku niepowodzenia. Zobacz Zwracane wartości w IAccessible::get_accParent
zestawie Windows SDK.
Uwagi
Ta funkcja jest częścią obsługi aktywnych ułatwień dostępu MFC.
W większości przypadków nie trzeba zastępować tej funkcji.
Aby uzyskać więcej informacji, zobacz IAccessible::get_accParent
w zestawie Windows SDK.
CWnd::get_accRole
Wywoływana przez platformę w celu pobrania informacji opisujących rolę określonego obiektu.
virtual HRESULT get_accRole(
VARIANT varChild,
VARIANT* pvarRole);
Parametry
varChild
Określa, czy informacje o roli, które mają zostać pobrane, to informacje o obiekcie, czy jednym z elementów podrzędnych obiektu. Ten parametr może być CHILDID_SELF
(aby uzyskać informacje o obiekcie) lub identyfikator podrzędny (w celu uzyskania informacji o elemecie podrzędnym obiektu).
pvarRole
Odbiera informacje o roli. Zobacz pvarRole
w IAccessible::get_accRole
zestawie Windows SDK.
Wartość zwracana
Zwraca wartość S_OK
powodzenia — kod błędu COM w przypadku błędu. Zobacz Zwracane wartości w IAccessible::get_accRole
zestawie Windows SDK.
Uwagi
Ta funkcja jest częścią obsługi aktywnych ułatwień dostępu MFC.
Zastąp tę funkcję w klasie -pochodnej, CWnd
jeśli masz niewindowe elementy interfejsu użytkownika (inne niż kontrolki ActiveX bez okien, które obsługuje MFC).
Aby uzyskać więcej informacji, zobacz IAccessible::get_accRole
w zestawie Windows SDK.
CWnd::get_accSelection
Wywoływana przez strukturę w celu pobrania wybranych elementów podrzędnych tego obiektu.
virtual HRESULT get_accSelection(VARIANT* pvarChildren);
Parametry
pvarChildren
Odbiera informacje o wybranych elementach podrzędnych. Zobacz pvarChildren
w IAccessible::get_accSelection
zestawie Windows SDK.
Wartość zwracana
Zwraca S_OK powodzenia — kod błędu COM w przypadku błędu. Zobacz Zwracane wartości w IAccessible::get_accSelection
zestawie Windows SDK.
Uwagi
Ta funkcja jest częścią obsługi aktywnych ułatwień dostępu MFC.
Zastąp tę funkcję w klasie -pochodnej, CWnd
jeśli masz niewindowe elementy interfejsu użytkownika (inne niż kontrolki ActiveX bez okien, które obsługuje MFC).
Aby uzyskać więcej informacji, zobacz IAccessible::get_accSelection
w zestawie Windows SDK.
CWnd::get_accState
Wywoływana przez strukturę w celu pobrania bieżącego stanu określonego obiektu.
virtual HRESULT get_accState(
VARIANT varChild,
VARIANT* pvarState);
Parametry
varChild
Określa, czy informacje o stanie, które mają zostać pobrane, to informacje o obiekcie, czy jednym z elementów podrzędnych obiektu. Ten parametr może być CHILDID_SELF
(aby uzyskać informacje o obiekcie) lub identyfikator podrzędny (w celu uzyskania informacji o elemecie podrzędnym obiektu).
pvarState
Odbiera informacje o stanie obiektu. Zobacz pvarState
w IAccessible::get_accState
zestawie Windows SDK.
Wartość zwracana
Zwraca wartość S_OK
powodzenia — kod błędu COM w przypadku błędu. Zobacz Zwracane wartości w IAccessible::get_accState
zestawie Windows SDK.
Uwagi
Ta funkcja jest częścią obsługi aktywnych ułatwień dostępu MFC.
Zastąp tę funkcję w klasie -pochodnej, CWnd
jeśli masz niewindowe elementy interfejsu użytkownika (inne niż kontrolki ActiveX bez okien, które obsługuje MFC).
Aby uzyskać więcej informacji, zobacz IAccessible::get_accState
w zestawie Windows SDK.
CWnd::get_accValue
Wywoływana przez strukturę w celu pobrania wartości określonego obiektu.
virtual HRESULT get_accValue(
VARIANT varChild,
BSTR* pszValue);
Parametry
varChild
Określa, czy informacje o wartości, które mają zostać pobrane, to informacje o obiekcie, czy jednym z elementów podrzędnych obiektu. Ten parametr może być CHILDID_SELF
(aby uzyskać informacje o obiekcie) lub identyfikator podrzędny (w celu uzyskania informacji o elemecie podrzędnym obiektu).
pszValue
BSTR
Adres obiektu, który odbiera zlokalizowany ciąg zawierający bieżącą wartość obiektu.
Wartość zwracana
Zwraca wartość S_OK
powodzenia — kod błędu COM w przypadku błędu. Zobacz Zwracane wartości w IAccessible::get_accValue
zestawie Windows SDK.
Uwagi
Ta funkcja jest częścią obsługi aktywnych ułatwień dostępu MFC.
Zastąp tę funkcję w klasie -pochodnej, CWnd
jeśli masz niewindowe elementy interfejsu użytkownika (inne niż kontrolki ActiveX bez okien, które obsługuje MFC).
Aby uzyskać więcej informacji, zobacz IAccessible::get_accValue
w zestawie Windows SDK.
CWnd::GetActiveWindow
Pobiera wskaźnik do aktywnego okna.
static CWnd* PASCAL GetActiveWindow();
Wartość zwracana
Aktywne okno lub NULL
jeśli okno nie było aktywne w momencie wywołania. Wskaźnik może być tymczasowy i nie powinien być przechowywany do późniejszego użycia.
Uwagi
Aktywne okno to okno, które ma bieżący fokus danych wejściowych lub okno jawnie aktywne przez funkcję składową SetActiveWindow
.
CWnd::GetAncestor
Pobiera obiekt okna przodka określonego okna.
CWnd* GetAncestor(UINT gaFlags) const;
Parametry
gaFlags
Określa przodka, który ma zostać pobrany. Aby uzyskać pełną listę możliwych wartości, zobacz GetAncestor
.
Wartość zwracana
Jeśli funkcja powiedzie się, zwracana wartość jest wskaźnikiem do obiektu okna przodka. Jeśli funkcja zakończy się niepowodzeniem, zwracana wartość to NULL
.
Uwagi
Ta funkcja składowa emuluje funkcjonalność funkcji GetAncestor
, zgodnie z opisem w zestawie Windows SDK.
CWnd::GetCapture
Pobiera okno z przechwyceniem myszy.
static CWnd* PASCAL GetCapture();
Wartość zwracana
Identyfikuje okno z przechwyceniem myszy. To jest NULL
, jeśli okno nie ma przechwytywania myszy.
Wartość zwracana może być tymczasowa i nie powinna być przechowywana do późniejszego użycia.
Uwagi
Tylko jedno okno ma przechwycenie myszy w danym momencie. Okno odbiera przechwytywanie myszy po wywołaniu funkcji składowej SetCapture
. To okno odbiera dane wejściowe myszy niezależnie od tego, czy kursor znajduje się w granicach.
CWnd::GetCaretPos
Pobiera współrzędne klienta bieżącej pozycji karetki i zwraca je jako CPoint
.
static CPoint PASCAL GetCaretPos();
Wartość zwracana
CPoint
obiekt zawierający współrzędne położenia karetki.
Uwagi
Położenie karetki jest podane we współrzędnych CWnd
klienta okna.
CWnd::GetCheckedRadioButton
Pobiera identyfikator aktualnie zaznaczonego przycisku radiowego w określonej grupie.
int GetCheckedRadioButton(
int nIDFirstButton,
int nIDLastButton);
Parametry
nIDFirstButton
Określa identyfikator liczb całkowitych pierwszego przycisku radiowego w grupie.
nIDLastButton
Określa identyfikator całkowity ostatniego przycisku radiowego w grupie.
Wartość zwracana
Identyfikator zaznaczonego przycisku radiowego lub 0, jeśli nie wybrano żadnego.
CWnd::GetClientRect
Kopiuje CWnd
współrzędne klienta obszaru klienta do struktury wskazywanej przez lpRect
element .
void GetClientRect(LPRECT lpRect) const;
Parametry
lpRect
RECT
Wskazuje strukturę lub CRect
obiekt do odbierania współrzędnych klienta. Elementy left
i top
będą mieć wartość 0. Składowe right
i bottom
będą zawierać szerokość i wysokość okna.
Uwagi
Współrzędne klienta określają lewe górne i prawe dolne rogi obszaru klienta. Ponieważ współrzędne klienta są względne względem lewego górnego rogu CWnd
obszaru klienta, współrzędne lewego górnego rogu to (0,0).
Przykład
Zobacz przykład dla elementu CWnd::IsIconic
.
CWnd::GetClipboardOwner
Pobiera bieżącego właściciela Schowka.
static CWnd* PASCAL GetClipboardOwner();
Wartość zwracana
Identyfikuje okno, które jest właścicielem Schowka, jeśli funkcja zakończy się pomyślnie. W przeciwnym razie jest to NULL
.
Zwrócony wskaźnik może być tymczasowy i nie powinien być przechowywany do późniejszego użycia.
Uwagi
Schowek może nadal zawierać dane, nawet jeśli nie są obecnie własnością.
CWnd::GetClipboardViewer
Pobiera pierwsze okno w łańcuchu Schowek-viewer.
static CWnd* PASCAL GetClipboardViewer();
Wartość zwracana
Identyfikuje okno, które jest obecnie odpowiedzialne za wyświetlanie Schowka, jeśli się powiedzie; w przeciwnym razie NULL
(na przykład jeśli nie ma przeglądarki).
Zwrócony wskaźnik może być tymczasowy i nie powinien być przechowywany do późniejszego użycia.
CWnd::GetControlUnknown
Wywołaj tę funkcję składową, aby pobrać wskaźnik do nieznanej kontrolki OLE.
LPUNKNOWN GetControlUnknown();
Wartość zwracana
Wskaźnik do IUnknown
interfejsu kontrolki OLE reprezentowanej przez ten CWnd
obiekt. Jeśli ten obiekt nie reprezentuje kontrolki OLE, zwracana wartość to NULL
.
Uwagi
Nie należy zwalniać tego IUnknown
wskaźnika. Zazwyczaj służy do uzyskania określonego interfejsu kontrolki.
Wskaźnik interfejsu zwracany przez GetControlUnknown
element nie jest liczone od odwołania. Nie należy wywoływać IUnknown::Release
wskaźnika, chyba że został on wcześniej wywołany IUnknown::AddRef
.
Przykład
// 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
Zwraca wskaźnik do komunikatu, który jest obecnie przetwarzany. Powinna być wywoływana tylko wtedy, gdy w funkcji składowej programu obsługi komunikatów komunikatów w wiadomości.
static const MSG* PASCAL GetCurrentMessage();
Wartość zwracana
Zwraca wskaźnik do MSG
struktury zawierającej komunikat, który jest obecnie przetwarzany przez okno. Powinna być wywoływana tylko wtedy, gdy w procedurze obsługi komunikatów wł.
Przykład
Zobacz przykład dla elementu CMDIFrameWnd::MDICascade
.
CWnd::GetDC
Pobiera wskaźnik do wspólnego, klasy lub kontekstu urządzenia prywatnego dla obszaru klienta w zależności od stylu klasy określonego CWnd
dla elementu .
CDC* GetDC();
Wartość zwracana
Określa kontekst urządzenia dla CWnd
obszaru klienta, jeśli się powiedzie; w przeciwnym razie zwracana wartość to NULL
. Wskaźnik może być tymczasowy i nie powinien być przechowywany do późniejszego użycia.
Uwagi
W przypadku typowych kontekstów GetDC
urządzeń atrybuty domyślne są przypisywane do kontekstu za każdym razem, gdy jest pobierany. W przypadku kontekstów GetDC
klasy i prywatnych pozostaw atrybuty przypisane wcześniej bez zmian. Kontekst urządzenia może być używany w kolejnych funkcjach interfejsu urządzenia graficznego (GDI) do rysowania w obszarze klienta.
Jeśli kontekst urządzenia nie należy do klasy okna, funkcja składowa musi zostać wywołana, ReleaseDC
aby zwolnić kontekst po malowaniu.
Kontekst urządzenia należący do CWnd
klasy jest zwracany przez GetDC
funkcję składową, jeśli CS_CLASSDC
, CS_OWNDC
lub CS_PARENTDC
został określony jako styl w WNDCLASS
strukturze, gdy klasa została zarejestrowana.
CWnd::GetDCEx
Pobiera uchwyt kontekstu urządzenia dla CWnd
okna.
CDC* GetDCEx(
CRgn* prgnClip,
DWORD flags);
Parametry
prgnClip
Identyfikuje region wycinków, który może być połączony z widocznym regionem okna klienta.
flags
Może mieć jedną z następujących wartości wstępnych:
DCX_CACHE
Zwraca kontekst urządzenia z pamięci podręcznej, a nie zOWNDC
okna lubCLASSDC
. PrzesłonięciaCS_OWNDC
iCS_CLASSDC
.DCX_CLIPCHILDREN
Wyklucza widoczne regiony wszystkich okien podrzędnych poniżejCWnd
okna.DCX_CLIPSIBLINGS
Wyklucza widoczne regiony wszystkich okien równorzędnych nad oknemCWnd
.DCX_EXCLUDERGN
Wyklucza region wycinków zidentyfikowany przezprgnClip
z widocznego regionu zwróconego kontekstu urządzenia.DCX_INTERSECTRGN
Przecina region wycinków zidentyfikowany wprgnClip
widocznym regionie zwróconego kontekstu urządzenia.DCX_LOCKWINDOWUPDATE
Umożliwia rysowanie, nawet jeśli istniejeLockWindowUpdate
wywołanie, które w przeciwnym razie wykluczyłoby to okno. Ta wartość jest używana do rysowania podczas śledzenia.DCX_PARENTCLIP
Używa widocznego regionu okna nadrzędnego i ignoruje bity oknaWS_CLIPCHILDREN
nadrzędnego iWS_PARENTDC
stylu. Ta wartość ustawia początek kontekstu urządzenia na lewy górny rógCWnd
okna.DCX_WINDOW
Zwraca kontekst urządzenia odpowiadający prostokątowi okna, a nie prostokątowi klienta.
Wartość zwracana
Kontekst urządzenia dla określonego okna, jeśli funkcja zakończy się pomyślnie; w przeciwnym razie NULL
.
Uwagi
Kontekst urządzenia może być używany w kolejnych funkcjach GDI do rysowania w obszarze klienta.
Ta funkcja, która jest rozszerzeniem GetDC
funkcji, zapewnia aplikacji większą kontrolę nad tym, jak i czy kontekst urządzenia dla okna jest obcięty.
Jeśli kontekst urządzenia nie należy do klasy okna, funkcja musi zostać wywołana, ReleaseDC
aby zwolnić kontekst po rysunku. Ponieważ w danym momencie jest dostępnych tylko pięć typowych kontekstów urządzeń, niepowodzenie wydania kontekstu urządzenia może uniemożliwić innym aplikacjom uzyskanie dostępu do kontekstu urządzenia.
Aby uzyskać buforowany kontekst urządzenia, aplikacja musi określić wartość DCX_CACHE
. Jeśli DCX_CACHE nie zostanie określony, a okno nie jest ani CS_OWNDC
CS_CLASSDC
, funkcja ta zwraca wartość NULL
.
Kontekst urządzenia ze specjalnymi cechami jest zwracany przez GetDCEx
funkcję, jeśli CS_CLASSDC
CS_OWNDC
styl , lub CS_PARENTDC
został określony w WNDCLASS
strukturze, gdy klasa została zarejestrowana.
Aby uzyskać więcej informacji na temat tych cech, zobacz opis WNDCLASS
struktury w zestawie Windows SDK.
CWnd::GetDCRenderTarget
Pobiera docelowy element docelowy renderowania kontekstu urządzenia (DC) dla CWnd
okna.
CDCRenderTarget* GetDCRenderTarget();
Wartość zwracana
Kontekst urządzenia renderuje element docelowy dla określonego okna, jeśli funkcja zakończy się pomyślnie; w przeciwnym razie NULL
.
Uwagi
CWnd::GetDescendantWindow
Wywołaj tę funkcję składową, aby znaleźć okno elementów potomnych określone przez dany identyfikator.
CWnd* GetDescendantWindow(
int nID,
BOOL bOnlyPerm = FALSE) const;
Parametry
nID
Określa identyfikator kontrolki lub okna podrzędnego do pobrania.
bOnlyPerm
Określa, czy okno do zwrócenia może być tymczasowe. Jeśli można zwrócić tylko stałe okno. Jeśli TRUE
FALSE
funkcja może zwrócić okno tymczasowe. Aby uzyskać więcej informacji na temat okien tymczasowych, zobacz Technical Note 3 (Uwaga techniczna 3).
Wartość zwracana
Wskaźnik do obiektu lub NULL
jeśli nie znaleziono okna podrzędnegoCWnd
.
Uwagi
Ta funkcja składowa przeszukuje całe drzewo okien podrzędnych, nie tylko okna, które są bezpośrednimi elementami podrzędnym.
CWnd::GetDesktopWindow
Zwraca okno pulpitu systemu Windows.
static CWnd* PASCAL GetDesktopWindow();
Wartość zwracana
Identyfikuje okno pulpitu systemu Windows. Ten wskaźnik może być tymczasowy i nie powinien być przechowywany do późniejszego użycia.
Uwagi
Okno pulpitu obejmuje cały ekran i jest obszarem, na którym są malowane wszystkie ikony i inne okna.
CWnd::GetDlgCtrlID
Zwraca wartość identyfikatora okna lub kontrolki dla dowolnego okna podrzędnego, a nie tylko dla kontrolki w oknie dialogowym.
int GetDlgCtrlID() const;
Wartość zwracana
Identyfikator liczbowy okna podrzędnego CWnd
, jeśli funkcja zakończyła się pomyślnie; w przeciwnym razie 0.
Uwagi
Ponieważ okna najwyższego poziomu nie mają wartości identyfikatora, zwracana wartość tej funkcji jest nieprawidłowa, jeśli CWnd
jest to okno najwyższego poziomu.
Przykład
Zobacz przykład dla elementu CWnd::OnCtlColor
.
CWnd::GetDlgItem
Pobiera wskaźnik do określonej kontrolki lub okna podrzędnego w oknie dialogowym lub innym oknie.
CWnd* GetDlgItem(int nID) const;
void GetDlgItem(
int nID,
HWND* phWnd) const;
Parametry
nID
Określa identyfikator kontrolki lub okna podrzędnego do pobrania.
phWnd
Wskaźnik do okna podrzędnego.
Wartość zwracana
Wskaźnik do danej kontrolki lub okna podrzędnego. Jeśli nie ma kontrolki o identyfikatorze całkowitym podanym nID
przez parametr , wartość to NULL
.
Zwrócony wskaźnik może być tymczasowy i nie powinien być przechowywany do późniejszego użycia.
Uwagi
Zwrócony wskaźnik jest zwykle rzutowany do typu kontrolki zidentyfikowanej przez nID
element .
Przykład
// uses GetDlgItem to return a pointer to a user interface control
CEdit *pBoxOne;
pBoxOne = (CEdit*)GetDlgItem(IDC_MYEDIT);
GotoDlgCtrl(pBoxOne);
CWnd::GetDlgItemInt
Pobiera tekst kontrolki zidentyfikowanej przez nID
element .
UINT GetDlgItemInt(
int nID,
BOOL* lpTrans = NULL,
BOOL bSigned = TRUE) const;
Parametry
nID
Określa identyfikator liczb całkowitych kontrolki okna dialogowego do tłumaczenia.
lpTrans
Wskazuje zmienną logiczną, która ma otrzymać przetłumaczoną flagę.
bSigned
Określa, czy wartość do pobrania jest podpisana.
Wartość zwracana
Określa przetłumaczoną wartość tekstu elementu okna dialogowego. Ponieważ wartość 0 jest prawidłową wartością zwracaną, lpTrans
należy użyć jej do wykrywania błędów. Jeśli żądana jest podpisana wartość zwracana, rzutuj int
ją jako typ.
Funkcja zwraca wartość 0, jeśli przetłumaczona liczba jest większa niż INT_MAX
(dla cyfr podpisanych) lub UINT_MAX
(dla niepodpisanych).
W przypadku wystąpienia błędów, takich jak napotkanie znaków nieliczbowych i przekroczenie powyższej wartości maksymalnej, GetDlgItemInt
kopiuje wartość 0 do lokalizacji wskazywanej przez lpTrans
wartość . Jeśli nie ma żadnych błędów, lpTrans
otrzymuje wartość niezerową. Jeśli lpTrans
parametr to NULL
, GetDlgItemInt
nie ostrzega o błędach.
Uwagi
Tłumaczy tekst określonej kontrolki w danym oknie dialogowym na wartość całkowitą, usuwając wszelkie dodatkowe spacje na początku tekstu i konwertując cyfry dziesiętne. Zatrzymuje tłumaczenie, gdy osiągnie koniec tekstu lub napotka dowolny znak nieliczbowy.
Jeśli bSigned
parametr to TRUE
, GetDlgItemInt
sprawdza znak minus (-) na początku tekstu i tłumaczy tekst na podpisany numer. W przeciwnym razie tworzy niepodpisaną wartość.
WM_GETTEXT
Wysyła komunikat do kontrolki.
CWnd::GetDlgItemText
Wywołaj tę funkcję składową, aby pobrać tytuł lub tekst skojarzony z kontrolką w oknie dialogowym.
int GetDlgItemText(
int nID,
LPTSTR lpStr,
int nMaxCount) const;
int GetDlgItemText(
int nID,
CString& rString) const;
Parametry
nID
Określa identyfikator liczb całkowitych kontrolki, której tytuł ma zostać pobrany.
lpStr
Wskazuje bufor, aby otrzymać tytuł lub tekst kontrolki.
nMaxCount
Określa maksymalną długość (w znakach) ciągu, który ma zostać skopiowany do lpStr
. Jeśli ciąg jest dłuższy niż nMaxCount
, zostanie obcięty.
rString
Odwołanie do .CString
Wartość zwracana
Określa rzeczywistą liczbę znaków skopiowanych do buforu, a nie w tym znak zerowy zakończenia. Wartość to 0, jeśli nie zostanie skopiowany żaden tekst.
Uwagi
GetDlgItemText
Funkcja składowa kopiuje tekst do lokalizacji wskazywanej przez lpStr
i zwraca liczbę bajtów, które kopiuje.
CWnd::GetDSCCursor
Wywołaj tę funkcję składową, aby pobrać wskaźnik do bazowego kursora zdefiniowanego DataSource
przez właściwości , UserName
, Password
i SQL kontrolki źródła danych.
IUnknown* GetDSCCursor();
Wartość zwracana
Wskaźnik do kursora zdefiniowanego przez kontrolkę źródła danych. MFC dba o wywoływanie AddRef
wskaźnika.
Uwagi
Użyj zwróconego wskaźnika, aby ustawić ICursor
właściwość złożonej kontrolki powiązanej z danymi, taką jak kontrolka siatki powiązanej z danymi. Kontrolka źródła danych nie stanie się aktywna, dopóki pierwsza powiązana kontrolka nie zażąda kursora. Może się to zdarzyć jawnie przez wywołanie GetDSCCursor
lub niejawnie przez menedżera powiązań MFC. W obu przypadkach możesz wymusić aktywowanie kontroli źródła danych przez wywołanie GetDSCCursor
metody , a następnie wywołanie Release
zwróconego wskaźnika na IUnknown
. Aktywacja spowoduje, że kontrola źródła danych podejmie próbę nawiązania połączenia z bazowym źródłem danych. Zwrócony wskaźnik może być używany w następującym kontekście:
Przykład
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
Pobiera wskaźnik do obiektu menedżera układu dynamicznego.
CMFCDynamicLayout* GetDynamicLayout();
Wartość zwracana
Wskaźnik do obiektu menedżera układu dynamicznego lub NULL
jeśli układ dynamiczny nie jest włączony.
Uwagi
Obiekt okna jest właścicielem zwracanego wskaźnika i zarządza okresem istnienia zwracanego wskaźnika, dlatego powinien być używany tylko do uzyskiwania dostępu do obiektu; Nie usuwaj wskaźnika ani nie przechowuj wskaźnika trwale.
CWnd::GetExStyle
Zwraca styl rozszerzony okna.
DWORD GetExStyle() const;
Wartość zwracana
Styl rozszerzony okna. Aby uzyskać więcej informacji na temat rozszerzonych stylów okien używanych w MFC, zobacz Rozszerzone style okien.
CWnd::GetFocus
Pobiera wskaźnik do CWnd
tego, który obecnie ma fokus wejściowy.
static CWnd* PASCAL GetFocus();
Wartość zwracana
Wskaźnik do okna z bieżącym fokusem lub NULL
jeśli nie ma okna fokusu.
Wskaźnik może być tymczasowy i nie powinien być przechowywany do późniejszego użycia.
CWnd::GetFont
WM_GETFONT
Wysyła wiadomość do okna, aby pobrać bieżącą czcionkę.
CFont* GetFont() const;
Wartość zwracana
Wskaźnik do CFont
obiektu dołączonego do bieżącej czcionki okna.
Uwagi
Ta metoda nie ma żadnego efektu, chyba że okno przetwarza WM_GETFONT
komunikat. Wiele klas MFC, które pochodzą z CWnd
procesu tego komunikatu, ponieważ są one dołączone do wstępnie zdefiniowanej klasy okna, która zawiera procedurę obsługi komunikatów dla komunikatu WM_GETFONT
. Aby użyć tej metody, klasy pochodzące z CWnd
klasy muszą definiować procedurę obsługi dla komunikatu WM_GETFONT
.
CWnd::GetForegroundWindow
Zwraca wskaźnik do okna pierwszego planu (okno, z którym użytkownik aktualnie pracuje).
static CWnd* PASCAL GetForegroundWindow();
Wartość zwracana
Wskaźnik do okna pierwszego planu. Może to być obiekt tymczasowy CWnd
.
Uwagi
Okno pierwszego planu dotyczy tylko okien najwyższego poziomu (okien ramowych lub okien dialogowych).
CWnd::GetIcon
Wywołaj tę funkcję składową, aby uzyskać dojście do dużej (32x32) lub uchwytu na małą (16x16) ikonę, jak wskazano w elemencie bBigIcon
.
HICON GetIcon(BOOL bBigIcon) const;
Parametry
bBigIcon
Określa ikonę 32 pikseli na 32 pikseli, jeśli TRUE
; określa ikonę 16 pikseli na 16 pikseli, jeśli FALSE
.
Wartość zwracana
Uchwyt do ikony. Jeśli nie powiedzie się, zwraca wartość NULL
.
CWnd::GetLastActivePopup
Określa, które okno podręczne należące do użytkownika CWnd
było ostatnio aktywne.
CWnd* GetLastActivePopup() const;
Wartość zwracana
Identyfikuje ostatnio aktywne okno podręczne. Wartość zwracana będzie samym oknem, jeśli zostaną spełnione jakiekolwiek z następujących warunków:
Samo okno było ostatnio aktywne.
Okno nie jest właścicielem okien podręcznych.
Okno nie jest oknem najwyższego poziomu lub jest własnością innego okna.
Wskaźnik może być tymczasowy i nie powinien być przechowywany do późniejszego użycia.
Przykład
Zobacz przykład dla elementu CWnd::FindWindow
.
CWnd::GetLayeredWindowAttributes
Pobiera nieprzezroczystość i klucz koloru przezroczystości okna warstwowego.
BOOL GetLayeredWindowAttributes(
COLORREF* pcrKey,
BYTE* pbAlpha,
DWORD* pdwFlags) const;
Parametry
pcrKey
Wskaźnik do COLORREF
wartości, która otrzymuje klucz koloru przezroczystości, który ma być używany podczas tworzenia okna warstwowego. Wszystkie piksele malowane przez okno w tym kolorze będą przezroczyste. Może to być NULL
, jeśli argument nie jest potrzebny.
pbAlpha
Wskaźnik do BYTE
elementu, który odbiera wartość Alfa używaną do opisania nieprzezroczystości okna warstwowego. Gdy zmienna, do której odwołuje się pbAlpha
wartość 0, okno jest całkowicie przezroczyste. Gdy zmienna, do której odwołuje się pbAlpha
wartość 255, okno jest nieprzezroczyste. Może to być NULL
, jeśli argument nie jest potrzebny.
pdwFlags
Wskaźnik do DWORD
kontrolki, która odbiera flagę warstwową. Może to być NULL
, jeśli argument nie jest potrzebny. Aby uzyskać pełną listę możliwych wartości, zobacz "GetLayeredWindowAttributes".
Wartość zwracana
Nonzero, jeśli funkcja powiedzie się; w przeciwnym razie 0.
Uwagi
Ta funkcja składowa emuluje funkcjonalność funkcji GetLayeredWindowAttributes
, zgodnie z opisem w zestawie Windows SDK.
CWnd::GetMenu
Pobiera wskaźnik do menu dla tego okna.
CMenu* GetMenu() const;
Wartość zwracana
Identyfikuje menu. Wartość to NULL
, jeśli CWnd
nie ma menu. Wartość zwracana jest niezdefiniowana, jeśli CWnd
jest oknem podrzędnym.
Zwrócony wskaźnik może być tymczasowy i nie powinien być przechowywany do późniejszego użycia.
Uwagi
Ta funkcja nie powinna być używana w oknach podrzędnych, ponieważ nie mają menu.
Przykład
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
Pobiera informacje o określonym pasku menu.
BOOL GetMenuBarInfo(
LONG idObject,
LONG idItem,
PMENUBARINFO pmbi) const;
Parametry
idObject
Określa obiekt menu. Aby uzyskać listę możliwych wartości, zobacz GetMenuBarInfo
.
idItem
Określa element, dla którego mają być pobierane informacje. Jeśli ten parametr ma wartość zero, funkcja pobiera informacje o samym menu. Jeśli ten parametr ma wartość 1, funkcja pobiera informacje o pierwszym elemencie w menu itd.
pmbi
Wskaźnik do MENUBARINFO
struktury, która odbiera informacje.
Wartość zwracana
Nonzero, jeśli funkcja powiedzie się; w przeciwnym razie 0.
Uwagi
Ta funkcja składowa emuluje funkcjonalność funkcji GetMenuBarInfo
, zgodnie z opisem w zestawie Windows SDK.
CWnd::GetNextDlgGroupItem
Wyszukuje poprzednią lub następną kontrolkę w grupie kontrolek w oknie dialogowym.
CWnd* GetNextDlgGroupItem(
CWnd* pWndCtl,
BOOL bPrevious = FALSE) const;
COleControlSiteOrWnd* GetNextDlgGroupItem(
COleControlSiteOrWnd* pCurSiteOrWnd = NULL) const;
Parametry
pWndCtl
Określa kontrolkę, która ma być używana jako punkt początkowy wyszukiwania.
bPrevious
Określa sposób przeszukiwania grupy kontrolek w oknie dialogowym. Jeśli TRUE
funkcja wyszukuje poprzednią kontrolkę w grupie; jeśli FALSE
, wyszukuje następną kontrolkę w grupie.
pCurSiteOrWnd
Identyfikuje kontrolkę COleControlSiteOrWnd
. Aby uzyskać więcej informacji na temat COleControlSiteOrWnd
programu , zobacz Uwagi.
Wartość zwracana
Wskaźnik do poprzedniej lub następnej kontrolki w grupie, jeśli funkcja składowa zakończy się pomyślnie.
Zwrócony wskaźnik może być tymczasowy i nie powinien być przechowywany do późniejszego użycia.
Uwagi
Grupa kontrolek zaczyna się od kontrolki utworzonej WS_GROUP
za pomocą stylu i kończy się ostatnią kontrolką, która nie została utworzona przy użyciu WS_GROUP
stylu.
Domyślnie funkcja składowa GetNextDlgGroupItem
zwraca wskaźnik do następnej kontrolki w grupie. Jeśli pWndCtl
zidentyfikuje pierwszą kontrolkę w grupie i bPrevious
ma TRUE
wartość , GetNextDlgGroupItem
zwraca wskaźnik do ostatniej kontrolki w grupie.
Uwaga
Ponieważ MFC obsługuje kontrolki ActiveX bez okien, standardowe kontrolki ActiveX i okna, odwołujące się do kontrolki tylko HWND
przez nie wystarczy. Obiekt COleControlSiteOrWnd
zawiera informacje identyfikujące obiekt jako kontrolkę ActiveX okienną, kontrolkę ActiveX bez okna lub okno w następujący sposób:
Typ kontrolki lub okna | Identyfikowanie informacji |
---|---|
Kontrolka ActiveX okienna | Zawiera obiekt HWND COleControlSite i kojarzy z nim obiekt . Element m_hWnd członkowski COleControlSiteOrWnd jest ustawiony na HWND kontrolkę , a m_pSite element członkowski wskazuje kontrolkę COleControlSite . |
Kontrolka ActiveX bez okna | Nie zawiera parametru HWND . Element m_pSite członkowski COleControlSiteOrWnd wskazuje kontrolkę COleControlSite , a element m_hWnd członkowski to NULL . |
Okno standardowe | Zawiera tylko element HWND . Element m_hWnd członkowski COleControlSiteOrWnd jest ustawiony na HWND okna, a element m_pSite członkowski to NULL . |
CWnd::GetNextDlgTabItem
Pobiera wskaźnik do pierwszej kontrolki, która została utworzona za pomocą WS_TABSTOP
stylu i poprzedza lub następuje po określonej kontrolce.
CWnd* GetNextDlgTabItem(
CWnd* pWndCtl,
BOOL bPrevious = FALSE) const;
COleControlSiteOrWnd* GetNextDlgTabItem(
COleControlSiteOrWnd* pCurSiteOrWnd,
BOOL bPrevious) const;
Parametry
pWndCtl
Określa kontrolkę, która ma być używana jako punkt początkowy wyszukiwania.
pCurSiteOrWnd
Identyfikuje kontrolkę COleControlSiteOrWnd
. Aby uzyskać więcej informacji na temat COleControlSiteOrWnd
programu , zobacz CWnd::GetNextDlgGroupItem
.
bPrevious
Określa sposób wyszukiwania funkcji w oknie dialogowym. Jeśli TRUE
funkcja wyszukuje poprzednią kontrolkę w oknie dialogowym; jeśli FALSE
, wyszukuje następną kontrolkę.
Wartość zwracana
Wskaźnik do poprzedniej lub następnej kontrolki, która ma WS_TABSTOP
styl, jeśli funkcja składowa zakończy się pomyślnie.
Zwrócony wskaźnik może być tymczasowy i nie powinien być przechowywany do późniejszego użycia.
Aby uzyskać więcej informacji na temat COleControlSiteOrWnd
programu , zobacz CWnd::GetNextDlgGroupItem
.
CWnd::GetNextWindow
Wyszukuje następne (lub poprzednie) okno na liście menedżera okien.
CWnd* GetNextWindow(UINT nFlag = GW_HWNDNEXT) const;
Parametry
nFlag
Określa, czy funkcja zwraca wskaźnik do następnego okna, czy poprzedniego. Może to być wartość GW_HWNDNEXT
, która zwraca okno, które następuje po CWnd
obiekcie na liście menedżera okien, lub GW_HWNDPREV
, które zwraca poprzednie okno na liście menedżera okien.
Wartość zwracana
Identyfikuje następne (lub poprzednie) okno na liście menedżera okien, jeśli funkcja składowa zakończy się pomyślnie.
Zwrócony wskaźnik może być tymczasowy i nie powinien być przechowywany do późniejszego użycia.
Uwagi
Lista menedżera okien zawiera wpisy dla wszystkich okien najwyższego poziomu, skojarzonych okien podrzędnych i okien podrzędnych dowolnego okna podrzędnego.
Jeśli CWnd
jest to okno najwyższego poziomu, funkcja wyszukuje następne (lub poprzednie) okno najwyższego poziomu; jeśli CWnd
jest oknem podrzędnym, funkcja wyszukuje następne (lub poprzednie) okno podrzędne.
CWnd::GetOleControlSite
Pobiera witrynę niestandardową dla określonej kontrolki ActiveX.
COleControlSite* GetOleControlSite(UINT idControl) const;
Parametry
idControl
Identyfikator kontrolki ActiveX.
CWnd::GetOpenClipboardWindow
Pobiera uchwyt okna, który ma obecnie otwarty Schowek.
static CWnd* PASCAL GetOpenClipboardWindow();
Wartość zwracana
Uchwyt okna, który ma obecnie otwarty Schowek, jeśli funkcja zakończyła się pomyślnie; w przeciwnym razie NULL
.
CWnd::GetOwner
Pobiera wskaźnik do właściciela okna.
CWnd* GetOwner() const;
Wartość zwracana
Wskaźnik do CWnd
obiektu.
Uwagi
Jeśli okno nie ma właściciela, domyślnie zwracany jest wskaźnik do obiektu okna nadrzędnego. Należy pamiętać, że relacja między właścicielem a własnością różni się od aspektu nadrzędny-podrzędny w kilku ważnych aspektach. Na przykład okno z elementem nadrzędnym jest ograniczone do obszaru klienta okna nadrzędnego. Okna należące do użytkownika mogą być rysowane w dowolnej lokalizacji na pulpicie.
Koncepcja własności tej funkcji różni się od koncepcji własności .GetWindow
CWnd::GetParent
Wywołaj tę funkcję, aby uzyskać wskaźnik do okna nadrzędnego okna podrzędnego (jeśli istnieje).
CWnd* GetParent() const;
Wartość zwracana
Zobacz sekcję Zwracane wartości w GetParent
zestawie Windows SDK.
Uwagi
Funkcja GetParent
zwraca wskaźnik do bezpośredniego elementu nadrzędnego (jeśli istnieje). GetParentOwner
Natomiast funkcja zwraca wskaźnik do najbardziej bezpośredniego okna nadrzędnego lub właściciela, które nie jest oknem podrzędnym (nie ma WS_CHILD
stylu). Jeśli masz okno podrzędne w oknie GetParent
podrzędnym i GetParentOwner
zwracasz różne wyniki.
CWnd::GetParentFrame
Wywołaj tę funkcję składową, aby pobrać okno ramki nadrzędnej.
CFrameWnd* GetParentFrame() const;
Wartość zwracana
Wskaźnik do okna ramki, jeśli się powiedzie; w przeciwnym razie NULL
.
Uwagi
Funkcja składowa wyszukuje w łańcuchu nadrzędnym do momentu CFrameWnd
znalezienia obiektu (lub klasy pochodnej).
CWnd::GetParentOwner
Wywołaj tę funkcję składową, aby uzyskać wskaźnik do okna nadrzędnego okna podrzędnego lub okna właściciela.
CWnd* GetParentOwner() const;
Wartość zwracana
Wskaźnik do CWnd
obiektu. CWnd
Jeśli obiekt nie jest dołączony do uchwytu, zostanie utworzony i dołączony obiekt tymczasowyCWnd
. Wskaźnik może być tymczasowy i nie powinien być przechowywany do późniejszego użycia.
Uwagi
GetParentOwner
Zwraca wskaźnik do najbardziej bezpośredniego okna nadrzędnego lub właściciela, które nie jest oknem podrzędnym (nie ma WS_CHILD
stylu). Bieżące okno właściciela można ustawić za pomocą polecenia SetOwner
. Domyślnie element nadrzędny okna jest jego właścicielem.
GetParent
Natomiast funkcja zwraca wskaźnik do bezpośredniego elementu nadrzędnego, niezależnie od tego, czy jest to okno podrzędne, czy nie. Jeśli masz okno podrzędne w oknie GetParent
podrzędnym i GetParentOwner
zwracasz różne wyniki.
CWnd::GetProperty
Wywołaj tę funkcję składową, aby uzyskać właściwość kontrolki ActiveX określoną przez dwDispID
.
void GetProperty(
DISPID dwDispID,
VARTYPE vtProp,
void* pvProp)const;
Parametry
dwDispID
Identyfikuje właściwość do pobrania.
vtProp
Określa typ właściwości do pobrania. Aby uzyskać możliwe wartości, zobacz sekcję Uwagi dla COleDispatchDriver::InvokeHelper
elementu .
pvProp
Adres zmiennej, która otrzyma wartość właściwości. Musi być zgodny z typem określonym przez vtProp
.
Uwagi
GetProperty
Metoda zwraca wartość za pośrednictwem pvProp
metody .
Uwaga
Ta funkcja powinna być wywoływana tylko w obiekcie reprezentującym CWnd
kontrolkę ActiveX.
Aby uzyskać więcej informacji na temat korzystania z tej funkcji składowej z kontenerami kontrolek ActiveX, zobacz artykuł ActiveX Control Containers: Programming ActiveX Controls in an ActiveX Control Container (Kontenery kontrolek ActiveX: programowanie kontrolek ActiveX w kontenerze kontrolek ActiveX).
CWnd::GetRenderTarget
Pobiera element docelowy renderowania skojarzony z tym oknem.
CHwndRenderTarget* GetRenderTarget();
Wartość zwracana
Wskaźnik do elementu docelowego renderowania lub NULL
.
CWnd::GetSafeHwnd
Zwraca wartość m_hWnd
, lub NULL
jeśli this
wskaźnik ma wartość NULL
.
HWND GetSafeHwnd() const;
Wartość zwracana
Zwraca uchwyt okna dla okna. Zwraca wartość , jeśli CWnd
element nie jest dołączony do okna lub jeśli jest używany ze wskaźnikiem NULL
CWnd
.NULL
Przykład
Zobacz przykład dla elementu CWnd::SubclassWindow
.
CWnd::GetSafeOwner
Wywołaj tę funkcję składową, aby pobrać okno właściciela, które powinno być używane w oknach dialogowych lub w innych modalnych oknach.
static CWnd* GetSafeOwner(
CWnd* pParent = NULL,
HWND* pWndTop = NULL);
Parametry
pParent
Wskaźnik do okna nadrzędnego CWnd
. Może to być NULL
.
pWndTop
Wskaźnik do okna, który jest obecnie na górze. Może to być NULL
.
Wartość zwracana
Wskaźnik do bezpiecznego właściciela dla danego okna.
Uwagi
Bezpieczny właściciel jest pierwszym nie podrzędnym oknem nadrzędnym .pParent
Jeśli pParent
element to NULL
, główne okno wątku (pobrane za pośrednictwem AfxGetMainWnd
) służy do znajdowania właściciela.
Uwaga
Sama struktura używa tej funkcji do określenia prawidłowego okna właściciela dla okien dialogowych i arkuszy właściwości, w których właściciel nie jest określony.
CWnd::GetScrollBarCtrl
Wywołaj tę funkcję składową, aby uzyskać wskaźnik do określonego paska przewijania elementu równorzędnego lub okna podziału.
virtual CScrollBar* GetScrollBarCtrl(int nBar) const;
Parametry
nBar
Określa typ paska przewijania. Parametr może przyjmować jedną z następujących wartości:
SB_HORZ
Pobiera położenie poziomego paska przewijania.SB_VERT
Pobiera położenie pionowego paska przewijania.
Wartość zwracana
Kontrolka paska przewijania elementu równorzędnego lub NULL
jeśli tak nie jest.
Uwagi
Ta funkcja składowa nie działa na paskach przewijania utworzonych po WS_HSCROLL
ustawieniu bitów lub WS_VSCROLL
podczas tworzenia okna. Implementacja CWnd
tej funkcji po prostu zwraca wartość NULL
. Klasy pochodne, takie jak CView
, implementują opisane funkcje.
CWnd::GetScrollBarInfo
Pobiera informacje o określonym pasku przewijania.
BOOL GetScrollBarInfo(
LONG idObject,
PSCROLLBARINFO psbi) const;
Parametry
idObject
Określa obiekt menu. Aby uzyskać listę możliwych wartości, zobacz GetScrollBarInfo
.
psbi
Wskaźnik do SCROLLBARINFO
struktury, która odbiera informacje.
Wartość zwracana
Nonzero, jeśli funkcja powiedzie się; w przeciwnym razie 0.
Uwagi
Ta funkcja składowa emuluje funkcjonalność funkcji GetScrollBarInfo
, zgodnie z opisem w zestawie Windows SDK.
CWnd::GetScrollInfo
Wywołaj tę funkcję składową, aby pobrać informacje, które SCROLLINFO
struktura utrzymuje na pasku przewijania.
BOOL GetScrollInfo(
int nBar,
LPSCROLLINFO lpScrollInfo,
UINT nMask = SIF_ALL);
Parametry
nBar
Określa, czy pasek przewijania jest kontrolką, czy częścią obszaru innego niż klient okna. Jeśli jest on częścią obszaru innego niż klient, wskazuje również, nBar
czy pasek przewijania jest umieszczony w poziomie, w pionie, czy w obu przypadkach. Musi to być jeden z następujących elementów:
SB_CTL
Pobiera parametry kontrolki paska przewijania. Elementm_hWnd
członkowski danych musi być uchwytem kontrolki paska przewijania.SB_HORZ
Pobiera parametry standardowego paska przewijania poziomego okna.SB_VERT
Pobiera parametry standardowego pionowego paska przewijania okna.
lpScrollInfo
Wskaźnik do SCROLLINFO
struktury. Aby uzyskać więcej informacji na temat tej struktury, zobacz zestaw Windows SDK.
nMask
Określa parametry paska przewijania do pobrania. Wartość domyślna określa kombinację wartości SIF_PAGE
, , SIF_TRACKPOS
SIF_POS
i SIF_RANGE
. Zobacz SCROLLINFO
, aby uzyskać więcej informacji na temat nMask
wartości.
Wartość zwracana
Jeśli komunikat pobrał jakiekolwiek wartości, zwraca TRUE
wartość . W przeciwnym razie jest to FALSE
.
Uwagi
GetScrollInfo
Umożliwia aplikacjom używanie 32-bitowych pozycji przewijania.
Struktura SCROLLINFO
zawiera informacje o pasku przewijania, w tym minimalne i maksymalne pozycje przewijania, rozmiar strony i położenie pola przewijania (kciuk). SCROLLINFO
Zobacz temat struktury w zestawie Windows SDK, aby uzyskać więcej informacji na temat zmieniania domyślnych ustawień struktury.
Programy obsługi komunikatów systemu Windows MFC wskazujące położenie paska przewijania, CWnd::OnHScroll i CWnd::OnVScroll, zawierają tylko 16 bitów danych położenia. GetScrollInfo
i SetScrollInfo
podaj 32 bity danych położenia paska przewijania. W związku z tym aplikacja może wywołać GetScrollInfo
funkcję przetwarzania CWnd::OnHScroll
lub CWnd::OnVScroll
uzyskać 32-bitowe dane położenia paska przewijania.
CWnd::GetScrollLimit
Wywołaj tę funkcję składową, aby pobrać maksymalną pozycję przewijania paska przewijania.
int GetScrollLimit(int nBar);
Parametry
nBar
Określa typ paska przewijania. Parametr może przyjmować jedną z następujących wartości:
SB_HORZ
Pobiera limit przewijania paska przewijania poziomego.SB_VERT
Pobiera limit przewijania pionowego paska przewijania.
Wartość zwracana
Określa maksymalną pozycję paska przewijania w przypadku powodzenia; w przeciwnym razie 0.
CWnd::GetScrollPos
Pobiera bieżące położenie pola przewijania paska przewijania.
int GetScrollPos(int nBar) const;
Parametry
nBar
Określa pasek przewijania do zbadania. Parametr może przyjmować jedną z następujących wartości:
SB_HORZ
Pobiera położenie poziomego paska przewijania.SB_VERT
Pobiera położenie pionowego paska przewijania.
Wartość zwracana
Określa bieżące położenie pola przewijania na pasku przewijania, jeśli się powiedzie; w przeciwnym razie 0.
Uwagi
Bieżące położenie jest wartością względną, która zależy od bieżącego zakresu przewijania. Jeśli na przykład zakres przewijania wynosi od 50 do 100, a pole przewijania znajduje się w środku paska, bieżąca pozycja to 75.
CWnd::GetScrollRange
Kopiuje bieżące minimalne i maksymalne pozycje paska przewijania dla danego paska przewijania do lokalizacji określonych przez lpMinPos
i lpMaxPos
.
void GetScrollRange(
int nBar,
LPINT lpMinPos,
LPINT lpMaxPos) const;
Parametry
nBar
Określa pasek przewijania do zbadania. Parametr może przyjmować jedną z następujących wartości:
SB_HORZ
Pobiera położenie poziomego paska przewijania.SB_VERT
Pobiera położenie pionowego paska przewijania.
lpMinPos
Wskazuje zmienną całkowitą, która ma otrzymać minimalną pozycję.
lpMaxPos
Wskazuje zmienną całkowitą, która ma otrzymać maksymalną pozycję.
Uwagi
Jeśli CWnd
nie ma paska przewijania, GetScrollRange
funkcja składowa kopiuje wartości 0 do lpMinPos
i lpMaxPos
.
Domyślny zakres standardowego paska przewijania to od 0 do 100. Domyślny zakres kontrolki paska przewijania jest pusty (obie wartości to 0).
CWnd::GetStyle
Zwraca bieżący styl okna.
DWORD GetStyle() const;
Wartość zwracana
Styl okna. Aby uzyskać więcej informacji na temat stylów okien używanych w MFC, zobacz Style okien.
CWnd::GetSystemMenu
Umożliwia aplikacji dostęp do menu Kontrola na potrzeby kopiowania i modyfikowania.
CMenu* GetSystemMenu(BOOL bRevert) const;
Parametry
bRevert
Określa akcję, która ma zostać podjęta. Jeśli bRevert
parametr ma FALSE
wartość , GetSystemMenu
zwraca uchwyt do kopii aktualnie używanego menu Kontrolka. Ta kopia jest początkowo identyczna z menu Kontrolka, ale można ją zmodyfikować. Jeśli bRevert
ma TRUE
wartość , GetSystemMenu
resetuje menu Kontrolka z powrotem do stanu domyślnego. Poprzednie, prawdopodobnie zmodyfikowane, menu Kontrolka, jeśli istnieje, zostanie zniszczone. Wartość zwracana jest w tym przypadku niezdefiniowana.
Wartość zwracana
Identyfikuje kopię menu Kontrolka, jeśli bRevert
ma wartość FALSE
. Jeśli bRevert
wartość to TRUE
, zwracana wartość jest niezdefiniowana.
Zwrócony wskaźnik może być tymczasowy i nie powinien być przechowywany do późniejszego użycia.
Uwagi
Każde okno, którego nie używa GetSystemMenu
do tworzenia własnej kopii menu Kontrolka, otrzymuje standardowe menu Kontrolka.
Wskaźnik zwracany przez funkcję składową GetSystemMenu
może być używany z funkcjami CMenu::AppendMenu
, CMenu::InsertMenu
lub CMenu::ModifyMenu
w celu zmiany menu Kontrolka.
Menu Kontrolka początkowo zawiera elementy identyfikowane z różnymi wartościami identyfikatorów, takimi jak SC_CLOSE
, SC_MOVE
i SC_SIZE
. Elementy w menu Kontrolka generują WM_SYSCOMMAND
komunikaty. Wszystkie wstępnie zdefiniowane elementy menu Formant mają numery identyfikatorów większe niż 0xF000. Jeśli aplikacja dodaje elementy do menu Kontrolka, powinna używać numerów identyfikatorów mniejszych niż F000.
System Windows może automatycznie sprawić, że elementy będą niedostępne w standardowym menu Kontrolka. CWnd
może przeprowadzić własny wybór lub niedostępność, odpowiadając na WM_INITMENU
komunikaty, które są wysyłane przed wyświetleniem dowolnego menu.
Przykład
// 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
Pobiera informacje o określonym pasku tytułu.
BOOL GetTitleBarInfo(PTITLEBARINFO pti) const;
Parametry
pti
Wskaźnik do TITLEBARINFO
struktury, która odbiera informacje.
Uwagi
Ta funkcja składowa emuluje funkcjonalność funkcji GetTitleBarInfo
, zgodnie z opisem w zestawie Windows SDK.
CWnd::GetTopLevelFrame
Wywołaj tę funkcję składową, aby pobrać okno ramki najwyższego poziomu, jeśli istnieje.
CFrameWnd* GetTopLevelFrame() const;
Wartość zwracana
Identyfikuje okno ramki najwyższego poziomu okna.
Zwrócony wskaźnik może być tymczasowy i nie powinien być przechowywany do późniejszego użycia.
Uwagi
Jeśli CWnd
nie ma dołączonego okna lub jego nadrzędny element nadrzędny najwyższego poziomu nie jest obiektem pochodnym CFrameWnd
, ta funkcja zwraca wartość NULL
.
CWnd::GetTopLevelOwner
Wywołaj tę funkcję składową, aby pobrać okno najwyższego poziomu.
CWnd* GetTopLevelOwner() const;
Wartość zwracana
Identyfikuje okno najwyższego poziomu. Zwrócony wskaźnik może być tymczasowy i nie powinien być przechowywany do późniejszego użycia.
Uwagi
Okno najwyższego poziomu to okno podrzędne pulpitu. Jeśli CWnd
nie ma dołączonego okna, ta funkcja zwraca wartość NULL
.
CWnd::GetTopLevelParent
Wywołaj tę funkcję składową, aby pobrać element nadrzędny najwyższego poziomu okna.
CWnd* GetTopLevelParent() const;
Wartość zwracana
Identyfikuje okno nadrzędne najwyższego poziomu okna.
Zwrócony wskaźnik może być tymczasowy i nie powinien być przechowywany do późniejszego użycia.
Uwagi
GetTopLevelParent
jest podobny do GetTopLevelFrame
parametru i GetTopLevelOwner
, jednak ignoruje wartość ustawioną jako bieżące okno właściciela.
CWnd::GetTopWindow
Wyszukuje okno podrzędne najwyższego poziomu, które należy do CWnd
elementu .
CWnd* GetTopWindow() const;
Wartość zwracana
Identyfikuje okno podrzędne najwyższego poziomu na połączonej CWnd
liście okien podrzędnych. Jeśli żadne okna podrzędne nie istnieją, wartość to NULL
.
Zwrócony wskaźnik może być tymczasowy i nie powinien być przechowywany do późniejszego użycia.
Uwagi
Jeśli CWnd
nie ma elementów podrzędnych, ta funkcja zwraca wartość NULL
.
CWnd::GetUpdateRect
Pobiera współrzędne najmniejszego prostokąta, który całkowicie otacza region aktualizacji.
BOOL GetUpdateRect(
LPRECT lpRect,
BOOL bErase = FALSE);
Parametry
lpRect
CRect
Wskazuje obiekt lub RECT
strukturę, która ma odbierać współrzędne klienta aktualizacji, która otacza region aktualizacji.
Ustaw ten parametr, aby NULL
określić, czy region aktualizacji istnieje w obiekcie CWnd
. Jeśli lpRect
parametr ma NULL
wartość , funkcja składowa GetUpdateRect
zwraca wartość niezerową, jeśli region aktualizacji istnieje i 0, jeśli nie. Dzięki temu można określić, czy WM_PAINT
komunikat wynika z nieprawidłowego obszaru. Nie należy ustawiać tego parametru na NULL
w systemie Windows w wersji 3.0 lub starszej.
bErase
Określa, czy tło w regionie aktualizacji ma zostać wymazane.
Wartość zwracana
Określa stan regionu aktualizacji. Wartość jest niezerowa, jeśli region aktualizacji nie jest pusty; w przeciwnym razie 0.
lpRect
Jeśli parametr jest ustawiony na NULL
wartość , zwracana wartość jest niezerowa, jeśli istnieje region aktualizacji; w przeciwnym razie 0.
Uwagi
Jeśli CWnd
został utworzony przy użyciu CS_OWNDC
stylu, a tryb mapowania nie MM_TEXT
jest , GetUpdateRect
funkcja składowa daje prostokąt we współrzędnych logicznych. GetUpdateRect
W przeciwnym razie daje prostokąt we współrzędnych klienta. Jeśli nie ma regionu aktualizacji, GetUpdateRect
ustawia prostokąt na pusty (ustawia wszystkie współrzędne na 0).
Parametr bErase
określa, czy GetUpdateRect
należy wymazać tło regionu aktualizacji. Jeśli bErase
element to i TRUE
region aktualizacji nie jest pusty, tło zostanie wymazane. Aby wymazać WM_ERASEBKGND
tło, GetUpdateRect
wysyła komunikat.
Prostokąt aktualizacji pobrany przez funkcję składową BeginPaint
jest identyczny z tym, który został pobrany przez funkcję składową GetUpdateRect
.
BeginPaint
Funkcja składowa automatycznie weryfikuje region aktualizacji, więc każde wywołanie GetUpdateRect
wykonywane natychmiast po wywołaniu w celu BeginPaint
pobrania pustego regionu aktualizacji.
CWnd::GetUpdateRgn
Pobiera region aktualizacji do regionu zidentyfikowanego przez pRgn
usługę .
int GetUpdateRgn(
CRgn* pRgn,
BOOL bErase = FALSE);
Parametry
pRgn
Identyfikuje region aktualizacji.
bErase
Określa, czy tło zostanie wymazane, a obszary nieklientowe okien podrzędnych zostaną narysowane. Jeśli wartość to FALSE
, nie ma rysunku.
Wartość zwracana
Określa flagę krótkiej liczby całkowitej, która wskazuje typ wynikowego regionu. Wartość może przyjąć jedną z następujących wartości:
SIMPLEREGION
Region nie ma nakładających się granic.COMPLEXREGION
Region ma nakładające się granice.NULLREGION
Region jest pusty.ERROR
Nie utworzono żadnego regionu.
Uwagi
Współrzędne tego regionu są względne względem lewego górnego rogu (współrzędnych klienta).
BeginPaint
Funkcja składowa automatycznie weryfikuje region aktualizacji, więc każde wywołanie GetUpdateRgn
wykonywane natychmiast po wywołaniu w celu BeginPaint
pobrania pustego regionu aktualizacji.
CWnd::GetWindow
Zwraca wskaźnik do żądanego okna lub NULL
jeśli nie.
CWnd* GetWindow(UINT nCmd) const;
Parametry
*nCmd*
Określa relację między CWnd
i zwróconym oknem. Może przyjąć jedną z następujących wartości:
GW_CHILD
Identyfikuje pierwsze okno podrzędneCWnd
.GW_HWNDFIRST
JeśliCWnd
jest oknem podrzędnym, zwraca pierwsze okno elementu równorzędnego. W przeciwnym razie zwraca pierwsze okno najwyższego poziomu na liście.GW_HWNDLAST
JeśliCWnd
jest oknem podrzędnym, zwraca ostatnie okno elementu równorzędnego. W przeciwnym razie zwraca ostatnie okno najwyższego poziomu na liście.GW_HWNDNEXT
Zwraca następne okno na liście menedżera okien.GW_HWNDPREV
Zwraca poprzednie okno na liście menedżera okien.GW_OWNER
CWnd
Identyfikuje właściciela.
Wartość zwracana
Zwrócony wskaźnik może być tymczasowy i nie powinien być przechowywany do późniejszego użycia.
CWnd::GetWindowContextHelpId
Wywołaj tę funkcję składową, aby pobrać identyfikator kontekstu pomocy, jeśli istnieje, skojarzony z oknem.
DWORD GetWindowContextHelpId() const;
Wartość zwracana
Identyfikator kontekstu pomocy. Zwraca wartość 0, jeśli okno nie ma żadnego.
CWnd::GetWindowedChildCount
Wywołaj tę funkcję składową, aby pobrać liczbę skojarzonych okien podrzędnych.
long GetWindowedChildCount();
Wartość zwracana
Liczba okien podrzędnych skojarzonych z obiektem CWnd
.
CWnd::GetWindowDC
Pobiera kontekst wyświetlania dla całego okna, w tym pasek podpisów, menu i paski przewijania.
CDC* GetWindowDC();
Wartość zwracana
Określa kontekst wyświetlania dla danego okna, jeśli funkcja zakończyła się pomyślnie; w przeciwnym razie NULL
.
Zwrócony wskaźnik może być tymczasowy i nie powinien być przechowywany do późniejszego użycia. ReleaseDC
należy wywołać raz dla każdego pomyślnego wywołania metody GetWindowDC
.
Uwagi
Kontekst wyświetlania okna umożliwia malowanie w dowolnym miejscu w CWnd
programie, ponieważ początek kontekstu jest lewym górnym róg CWnd
zamiast obszaru klienta.
Atrybuty domyślne są przypisywane do kontekstu wyświetlania za każdym razem, gdy pobiera kontekst. Poprzednie atrybuty zostaną utracone.
GetWindowDC
ma być używany do specjalnych efektów malowania w obszarze niekliencki CWnd
. Malowanie w obszarach innych niż klienckie okna nie jest zalecane.
Funkcja GetSystemMetrics
systemu Windows może służyć do pobierania wymiarów różnych części obszaru nonclient, takich jak pasek podpisów, menu i paski przewijania.
Po zakończeniu ReleaseDC
malowania należy wywołać funkcję składową, aby zwolnić kontekst wyświetlania. Nie można zwolnić kontekstu wyświetlania poważnie wpłynie na obraz żądany przez aplikacje z powodu ograniczeń liczby kontekstów urządzeń, które mogą być otwarte w tym samym czasie.
CWnd::GetWindowInfo
Pobiera informacje o oknie.
BOOL GetWindowInfo(PWINDOWINFO pwi) const;
Parametry
pwi
Wskaźnik do WINDOWINFO
struktury.
Uwagi
Ta funkcja składowa emuluje funkcjonalność funkcji GetWindowInfo
, zgodnie z opisem w zestawie Windows SDK.
CWnd::GetWindowlessChildCount
Pobiera liczbę skojarzonych okien podrzędnych bez okien.
long GetWindowlessChildCount();
Wartość zwracana
Liczba okien podrzędnych bez okien skojarzonych z obiektem CWnd
.
CWnd::GetWindowPlacement
Pobiera stan wyświetlania i normalne (przywrócone), zminimalizowane i zmaksymalizowane pozycje okna.
BOOL GetWindowPlacement(WINDOWPLACEMENT* lpwndpl) const;
Parametry
lpwndpl
WINDOWPLACEMENT
Wskazuje strukturę, która odbiera informacje o stanie wyświetlania i pozycji.
Wartość zwracana
Różne od zera, jeśli funkcja zakończyła się pomyślnie; w przeciwnym razie 0.
Uwagi
Element flags
członkowski struktury pobranej WINDOWPLACEMENT
przez tę funkcję jest zawsze 0. Jeśli CWnd
element jest zmaksymalizowany, element showCmd
członkowski to WINDOWPLACEMENT
SW_SHOWMAXIMIZED
. Jeśli okno zostanie zminimalizowane, jest to SW_SHOWMINIMIZED
. SW_SHOWNORMAL
Jest inaczej.
CWnd::GetWindowRect
Kopiuje wymiary prostokąta ograniczenia CWnd
obiektu do struktury wskazywanej przez lpRect
element .
void GetWindowRect(LPRECT lpRect) const;
Parametry
lpRect
CRect
Wskazuje obiekt lub RECT
strukturę, która będzie otrzymywać współrzędne ekranu w lewym górnym i prawym dolnym rogu.
Uwagi
Wymiary są podane we współrzędnych ekranu względem lewego górnego rogu ekranu ekranu. Wymiary podpisów, obramowania i pasków przewijania, jeśli są obecne, są uwzględniane.
CWnd::GetWindowRgn
Wywołaj tę funkcję składową, aby uzyskać region okna okna.
int GetWindowRgn(HRGN hRgn)const;
Parametry
hRgn
Uchwyt do regionu okna.
Wartość zwracana
Wartość zwracana określa typ regionu, który uzyskuje funkcja. Może to być jedna z następujących wartości:
NULLREGION
Region jest pusty.SIMPLEREGION
Region jest pojedynczym prostokątem.COMPLEXREGION
Region jest więcej niż jeden prostokąt.ERROR
Wystąpił błąd; region nie ma wpływu na ten region.
Uwagi
Region okna określa obszar w oknie, w którym system operacyjny zezwala na rysowanie. System operacyjny nie wyświetla żadnej części okna, która znajduje się poza regionem okna.
Współrzędne regionu okna są względem lewego górnego rogu okna, a nie obszaru klienta okna.
Aby ustawić region okna okna, wywołaj metodę CWnd::SetWindowRgn
.
CWnd::GetWindowText
Kopiuje CWnd
tytuł podpisu (jeśli ma go) do buforu wskazywanego przez lpszStringBuf
lub do ciągu rString
docelowego .
int GetWindowText(
LPTSTR lpszStringBuf,
int nMaxCount) const;
void GetWindowText(
CString& rString) const;
Parametry
lpszStringBuf
Wskazuje bufor, który ma otrzymać skopiowany ciąg tytułu okna.
nMaxCount
Określa maksymalną liczbę znaków do skopiowania do buforu, łącznie z znakiem zerowym zakończenia. Jeśli ciąg jest dłuższy niż liczba znaków określonych w pliku nMaxCount
, zostanie obcięty.
rString
CString
Obiekt, który ma otrzymać skopiowany ciąg tytułu okna.
Wartość zwracana
Określa długość skopiowanego ciągu, w znakach, a nie w tym znak null zakończenia. Wartość 0 jest 0, jeśli CWnd
nie ma podpisu lub jeśli podpis jest pusty.
Uwagi
CWnd
Jeśli obiekt jest kontrolką, GetWindowText
funkcja składowa kopiuje tekst w kontrolce zamiast kopiować podpis.
Ta funkcja składowa powoduje wysłanie komunikatu WM_GETTEXT
CWnd
do obiektu.
Przykład
Zobacz przykład dla elementu CWnd::SetWindowText
.
CWnd::GetWindowTextLength
Zwraca długość CWnd
tytułu podpisu obiektu.
int GetWindowTextLength() const;
Wartość zwracana
Określa długość tekstu w znakach, a nie zawiera żadnego znaku zakończenia wartości null. Wartość to 0, jeśli taki tekst nie istnieje.
Uwagi
Jeśli CWnd
jest kontrolką, GetWindowTextLength
funkcja składowa zwraca długość tekstu w kontrolce zamiast podpisu.
Ta funkcja składowa powoduje wysłanie komunikatu WM_GETTEXTLENGTH
CWnd
do obiektu.
Przykład
Zobacz przykład dla elementu CWnd::SetWindowText
.
CWnd::HideCaret
Ukrywa daszek, usuwając go z ekranu wyświetlania.
void HideCaret();
Uwagi
Mimo że daszek nie jest już widoczny, można go wyświetlić ponownie za pomocą funkcji składowej ShowCaret
. Ukrywanie karetki nie niszczy swojego obecnego kształtu.
Ukrywanie jest skumulowane. Jeśli HideCaret
w wierszu wywoływano pięć razy, ShowCaret
funkcja składowa musi być wywoływana pięć razy przed pokazaniem karetki.
CWnd::HiliteMenuItem
Wyróżnia lub usuwa wyróżnienie z elementu menu najwyższego poziomu (menu-pasek).
BOOL HiliteMenuItem(
CMenu* pMenu,
UINT nIDHiliteItem,
UINT nHilite);
Parametry
pMenu
Identyfikuje menu najwyższego poziomu, które zawiera element do wyróżnienia.
nIDHiliteItem
Określa element menu, który ma zostać wyróżniony, w zależności od wartości parametru nHilite
.
nHilite
Określa, czy element menu jest wyróżniony, czy wyróżnienie zostało usunięte. Może to być kombinacja lub MF_HILITE
z MF_BYCOMMAND
lub MF_UNHILITE
MF_BYPOSITION
. Wartości można łączyć przy użyciu operatora bitowego OR
. Te wartości mają następujące znaczenie:
MF_BYCOMMAND
InterpretujenIDHiliteItem
jako identyfikator elementu menu (interpretacja domyślna).MF_BYPOSITION
InterpretujenIDHiliteItem
jako przesunięcie na podstawie zera elementu menu.MF_HILITE
Wyróżnia element. Jeśli ta wartość nie zostanie podana, wyróżnienie zostanie usunięte z elementu.MF_UNHILITE
Usuwa wyróżnienie z elementu.
Wartość zwracana
Określa, czy element menu został wyróżniony. Nonzero, jeśli element został wyróżniony; w przeciwnym razie 0.
Uwagi
Flagi MF_HILITE
i MF_UNHILITE
mogą być używane tylko z tą funkcją składową. Nie można ich używać z funkcją składową CMenu::ModifyMenu
.
CWnd::HtmlHelp
Wywołaj tę funkcję składową, aby wywołać aplikację HTMLHelp.
virtual void HtmlHelp(
DWORD_PTR dwData,
UINT nCmd = 0x000F);
Parametry
dwData
Określa dodatkowe dane. Użyta wartość zależy od wartości parametru nCmd
.
nCmd
Określa typ żądanej pomocy. Aby uzyskać listę możliwych wartości i ich wpływ na dwData
parametr, zobacz uCommand
parametr opisany w dokumentacji interfejsu API pomocy HTML w zestawie Windows SDK.
Uwagi
Aby uzyskać więcej informacji, zobacz CWinApp::HtmlHelp
.
CWnd::InitDynamicLayout
Wywoływana przez platformę w celu zainicjowania dynamicznego układu okna.
void InitDynamicLayout();
Uwagi
Nie należy bezpośrednio wywoływać tej metody.
CWnd::Invalidate
Unieważnia cały obszar klienta programu CWnd
.
void Invalidate(BOOL bErase = TRUE);
Parametry
bErase
Określa, czy tło w regionie aktualizacji ma zostać usunięte.
Uwagi
Obszar klienta jest oznaczony do malowania po wystąpieniu następnego WM_PAINT
komunikatu. Region można również zweryfikować przed wystąpieniem komunikatu WM_PAINT
ValidateRect
przez funkcję lub ValidateRgn
składową.
Parametr bErase
określa, czy tło w obszarze aktualizacji ma zostać wymazane po przetworzeniu regionu aktualizacji. Jeśli bErase
element ma TRUE
wartość , tło jest usuwane, gdy BeginPaint
wywoływana jest funkcja składowa; jeśli bErase
to FALSE
, tło pozostanie niezmienione. Jeśli bErase
znajduje się TRUE
w jakiejkolwiek części regionu aktualizacji, tło w całym regionie, a nie tylko w danej części, zostanie usunięte.
System Windows wysyła WM_PAINT
komunikat zawsze, gdy CWnd
region aktualizacji nie jest pusty i nie ma żadnych innych komunikatów w kolejce aplikacji dla tego okna.
Przykład
Zobacz przykład dla elementu CWnd::UpdateWindow
.
CWnd::InvalidateRect
Unieważnia obszar klienta w danym prostokątze, dodając ten prostokąt do CWnd
regionu aktualizacji.
void InvalidateRect(
LPCRECT lpRect,
BOOL bErase = TRUE);
Parametry
lpRect
CRect
Wskazuje obiekt lub RECT
strukturę zawierającą prostokąt (we współrzędnych klienta) do dodania do regionu aktualizacji. Jeśli lpRect
wartość to NULL
, cały obszar klienta zostanie dodany do regionu.
bErase
Określa, czy tło w regionie aktualizacji ma zostać usunięte.
Uwagi
Unieważniony prostokąt wraz ze wszystkimi innymi obszarami w regionie aktualizacji jest oznaczony do malowania po wysłaniu następnego WM_PAINT
komunikatu. Unieważnione obszary gromadzą się w regionie aktualizacji do momentu przetworzenia regionu w momencie następnego WM_PAINT
wywołania lub do momentu zweryfikowania regionu przez ValidateRect
funkcję lub ValidateRgn
.
Parametr bErase
określa, czy tło w obszarze aktualizacji ma zostać wymazane po przetworzeniu regionu aktualizacji. Jeśli bErase
element ma TRUE
wartość , tło jest usuwane, gdy BeginPaint
wywoływana jest funkcja składowa; jeśli bErase
to FALSE
, tło pozostanie niezmienione. Jeśli bErase
znajduje się TRUE
w jakiejkolwiek części regionu aktualizacji, tło w całym regionie zostanie wymazane, a nie tylko w danej części.
System Windows wysyła WM_PAINT
komunikat zawsze, gdy CWnd
region aktualizacji nie jest pusty i nie ma żadnych innych komunikatów w kolejce aplikacji dla tego okna.
CWnd::InvalidateRgn
Unieważnia obszar klienta w danym regionie, dodając go do bieżącego regionu aktualizacji .CWnd
void InvalidateRgn(
CRgn* pRgn,
BOOL bErase = TRUE);
Parametry
pRgn
Wskaźnik do CRgn
obiektu, który identyfikuje region, który ma zostać dodany do regionu aktualizacji. Przyjmuje się, że region ma współrzędne klienta. Jeśli ten parametr to NULL
, cały obszar klienta zostanie dodany do regionu aktualizacji.
bErase
Określa, czy tło w regionie aktualizacji ma zostać usunięte.
Uwagi
Unieważniony region wraz ze wszystkimi innymi obszarami w regionie aktualizacji jest oznaczony do malowania po następnym wysłaniu komunikatu WM_PAINT
. Unieważnione obszary gromadzą się w regionie aktualizacji do momentu przetworzenia regionu po WM_PAINT
następnym wysłaniu komunikatu lub do momentu zweryfikowania regionu przez ValidateRect
funkcję lub ValidateRgn
.
Parametr bErase
określa, czy tło w obszarze aktualizacji ma zostać wymazane po przetworzeniu regionu aktualizacji. Jeśli bErase
element ma TRUE
wartość , tło jest usuwane, gdy BeginPaint
wywoływana jest funkcja składowa; jeśli bErase
to FALSE
, tło pozostanie niezmienione. Jeśli bErase
znajduje się TRUE
w jakiejkolwiek części regionu aktualizacji, tło w całym regionie, a nie tylko w danej części, zostanie usunięte.
System Windows wysyła WM_PAINT
komunikat zawsze, gdy CWnd
region aktualizacji nie jest pusty i nie ma żadnych innych komunikatów w kolejce aplikacji dla tego okna.
Dany region musi zostać utworzony wcześniej przez jedną z funkcji regionu.
CWnd::InvokeHelper
Wywołaj tę funkcję składową, aby wywołać metodę kontrolki ActiveX lub właściwość określoną przez dwDispID
element w kontekście określonym przez wFlags
.
void AFX_CDECL InvokeHelper(
DISPID dwDispID,
WORD wFlags,
VARTYPE vtRet,
void* pvRet,
const BYTE* pbParamInfo,
... );
Parametry
dwDispID
Identyfikuje metodę lub właściwość do wywołania.
wFlags
Flagi opisujące kontekst wywołania metody IDispatch::Invoke
.
vtRet
Określa typ wartości zwracanej. Aby uzyskać możliwe wartości, zobacz sekcję Uwagi dla COleDispatchDriver::InvokeHelper
elementu .
pvRet
Adres zmiennej, która będzie otrzymywać wartość właściwości lub wartość zwracaną. Musi być zgodny z typem określonym przez vtRet
.
pbParamInfo
Wskaźnik do ciągu o wartości null zakończonych bajtami określających typy parametrów poniżej pbParamInfo
. Aby uzyskać możliwe wartości, zobacz sekcję Uwagi dla COleDispatchDriver::InvokeHelper
elementu .
...
Lista zmiennych parametrów typów określonych w .pbParamInfo
Uwagi
Parametr pbParamInfo
określa typy parametrów przekazywanych do metody lub właściwości. Lista zmiennych argumentów jest reprezentowana przez ...
deklarację składni.
Ta funkcja konwertuje parametry na VARIANTARG
wartości, a następnie wywołuje metodę IDispatch::Invoke
w kontrolce ActiveX. Jeśli wywołanie nie powiedzie się IDispatch::Invoke
, ta funkcja zgłosi wyjątek. Jeśli element SCODE
(kod stanu) zwracany przez IDispatch::Invoke
element to DISP_E_EXCEPTION
, funkcja zgłasza COleException
obiekt, w przeciwnym razie zgłasza element COleDispatchException
.
Uwaga
Ta funkcja powinna być wywoływana tylko w obiekcie reprezentującym CWnd
kontrolkę ActiveX.
Aby uzyskać więcej informacji na temat korzystania z tej funkcji składowej z kontenerami kontrolek ActiveX, zobacz artykuł ActiveX Control Containers: Programming ActiveX Controls in an ActiveX Control Container (Kontenery kontrolek ActiveX: programowanie kontrolek ActiveX w kontenerze kontrolek ActiveX).
CWnd::IsChild
Wskazuje, czy okno określone przez pWnd
jest oknem podrzędnym, czy innym bezpośrednim elementem potomnym .CWnd
BOOL IsChild(const CWnd* pWnd) const;
Parametry
pWnd
Identyfikuje okno do przetestowania.
Wartość zwracana
Określa wynik funkcji. Wartość jest niezerowa, jeśli okno zidentyfikowane przez pWnd
jest oknem CWnd
podrzędnym ; w przeciwnym razie 0.
Uwagi
Okno podrzędne jest bezpośrednim elementem potomnym CWnd
, jeśli CWnd
obiekt znajduje się w łańcuchu okien nadrzędnych, które prowadzą z oryginalnego okna podręcznego do okna podrzędnego.
CWnd::IsD2DSupportEnabled
Określa, czy obsługa D2D jest włączona.
BOOL IsD2DSupportEnabled();
Wartość zwracana
TRUE
jeśli funkcja jest włączona; w przeciwnym razie FALSE
.
CWnd::IsDialogMessage
Wywołaj tę funkcję składową, aby określić, czy dany komunikat jest przeznaczony dla okna dialogowego bez moderowania; jeśli tak jest, ta funkcja przetwarza komunikat.
BOOL IsDialogMessage(LPMSG lpMsg);
Parametry
lpMsg
Wskazuje strukturę zawierającą MSG
komunikat do sprawdzenia.
Wartość zwracana
Określa, czy funkcja składowa przetworzyła dany komunikat. Jest to niezerowe, jeśli komunikat został przetworzony; w przeciwnym razie 0. Jeśli zwraca wartość 0, wywołaj CWnd::PreTranslateMessage
funkcję składową klasy bazowej, aby przetworzyć komunikat. W zastąpieniu funkcji składowej CWnd::PreTranslateMessage
kod wygląda następująco:
BOOL CAboutDlg::PreTranslateMessage(MSG *pMsg)
{
if (IsDialogMessage(pMsg))
return TRUE;
else
return CDialog::PreTranslateMessage(pMsg);
}
Uwagi
IsDialogMessage
Gdy funkcja przetwarza komunikat, sprawdza komunikaty klawiaturowe i konwertuje je na polecenia wyboru odpowiedniego okna dialogowego. Na przykład TAB wybiera następną kontrolkę lub grupę kontrolek, a STRZAŁKA W DÓŁ wybiera następną kontrolkę w grupie.
Nie można przekazać komunikatu przetworzonego TranslateMessage
do IsDialogMessage
funkcji systemu Windows lubDispatchMessage
, ponieważ został on już przetworzony.
CWnd::IsDlgButtonChecked
Określa, czy obok kontrolki przycisku jest widoczny znacznik wyboru.
UINT IsDlgButtonChecked(int nIDButton) const;
Parametry
nIDButton
Określa identyfikator całkowity kontrolki przycisku.
Wartość zwracana
Nonzero, jeśli dana kontrolka jest zaznaczona, i 0, jeśli nie jest zaznaczone. Można zaznaczyć tylko przyciski radiowe i pola wyboru. W przypadku przycisków trójstanowych wartość zwracana może wynosić 2, jeśli przycisk jest nieokreślony. Ta funkcja składowa zwraca wartość 0 dla naciśnięcia.
Uwagi
Jeśli przycisk jest kontrolką trójstanową, funkcja składowa określa, czy jest wygaszona, sprawdzana, czy też nie.
CWnd::IsDynamicLayoutEnabled
Określa, czy układ dynamiczny jest włączony w tym oknie. Jeśli układ dynamiczny jest włączony, pozycja i rozmiar okien podrzędnych mogą ulec zmianie, gdy użytkownik zmieni rozmiar okna nadrzędnego.
BOOL IsDynamicLayoutEnabled() const;
Wartość zwracana
TRUE
jeśli układ dynamiczny jest włączony; w przeciwnym razie FALSE
.
Uwagi
CWnd::IsIconic
Określa, czy CWnd
jest zminimalizowany (kultowy).
BOOL IsIconic() const;
Wartość zwracana
Bezzerowe, jeśli CWnd
jest zminimalizowane; w przeciwnym razie 0.
Przykład
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
Określa, czy CWnd
ma obsługę dotykową.
BOOL IsTouchWindow() const;
Wartość zwracana
TRUE
jeśli CWnd
ma obsługę dotykową; w przeciwnym razie FALSE
.
Uwagi
CWnd::IsWindowEnabled
Określa, czy CWnd
jest włączona dla myszy i klawiatury wejściowej.
BOOL IsWindowEnabled() const;
Wartość zwracana
Wartość niezerowa, jeśli CWnd
jest włączona; w przeciwnym razie 0.
Przykład
//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
Określa stan widoczności danego okna.
BOOL IsWindowVisible() const;
Wartość zwracana
Niezerowy, jeśli CWnd
jest widoczny (ma WS_VISIBLE
ustawiony bit stylu, a okno nadrzędne jest widoczne). Ponieważ wartość zwracana odzwierciedla stan bitu WS_VISIBLE
stylu, wartość zwracana może być niezerowa, mimo że CWnd
jest całkowicie zaciemniana przez inne okna.
Uwagi
Okno ma stan widoczności wskazywany WS_VISIBLE
przez bit stylu. Gdy ten bit stylu jest ustawiony z wywołaniem funkcji składowej ShowWindow
, zostanie wyświetlone okno, a kolejne rysunek do okna jest wyświetlany tak długo, jak okno ma ustawiony bit stylu.
Każdy rysunek do okna, który ma WS_VISIBLE
styl, nie będzie wyświetlany, jeśli okno jest pokryte przez inne okna lub zostanie obcięte przez jego okno nadrzędne.
Przykład
// 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
Określa, czy CWnd
został zmaksymalizowany.
BOOL IsZoomed() const;
Wartość zwracana
Wartość niezerowa, jeśli CWnd
jest zmaksymalizowana; w przeciwnym razie 0.
CWnd::KillTimer
Zabija zdarzenie czasomierza zidentyfikowane przez nIDEvent
wcześniejsze wywołanie metody .SetTimer
BOOL KillTimer(UINT_PTR nIDEvent);
Parametry
nIDEvent
Wartość zdarzenia czasomierza przekazana do SetTimer
.
Wartość zwracana
Określa wynik funkcji. Wartość jest niezerowa, jeśli zdarzenie zostało zabite. Jest to wartość 0, jeśli KillTimer
funkcja składowa nie może odnaleźć określonego zdarzenia czasomierza.
Uwagi
Oczekujące WM_TIMER
komunikaty skojarzone z czasomierzem nie są usuwane z kolejki komunikatów.
Przykład
Zobacz przykład dla elementu CWnd::SetTimer
.
CWnd::LoadDynamicLayoutResource
Wywoływana przez strukturę w celu załadowania informacji o układzie dynamicznym z pliku zasobu.
BOOL LoadDynamicLayoutResource(LPCTSTR lpszResourceName);
Parametry
lpszResourceName
Nazwa zasobu zawierającego żądane informacje o układzie dynamicznym dla tego okna.
Wartość zwracana
Nonzero, jeśli funkcja zakończy się pomyślnie. Wartość 0 jest 0, jeśli wystąpi awaria.
Uwagi
Nie należy bezpośrednio wywoływać tej metody.
CWnd::LockWindowUpdate
Wyłącza rysowanie w danym oknie.
BOOL LockWindowUpdate();
Wartość zwracana
Nonzero, jeśli funkcja zakończy się pomyślnie. Wartość 0 występuje lub jeśli LockWindowUpdate
funkcja została użyta do zablokowania innego okna.
Uwagi
Nie można przenieść zablokowanego okna. Jednocześnie można zablokować tylko jedno okno. Aby odblokować okno zablokowane za pomocą LockWindowUpdate
polecenia , wywołaj metodę UnlockWindowUpdate
.
Jeśli aplikacja z zablokowanym oknem (lub wszelkimi zablokowanymi oknami podrzędnymi) wywołuje GetDC
funkcję , GetDCEx
lub BeginPaint
Windows, wywołana funkcja zwraca kontekst urządzenia, którego widoczny region jest pusty. Nastąpi to do momentu odblokowania okna przez wywołanie funkcji składowej UnlockWindowUpdate
.
Podczas gdy aktualizacje okien są zablokowane, system śledzi prostokąt ograniczenia wszystkich operacji rysowania do kontekstów urządzenia skojarzonych z zablokowanym oknem. Po ponownym włączeniu rysunku ten prostokąt ograniczenia jest unieważniany w zablokowanym oknie i oknach podrzędnych, aby wymusić ostateczną WM_PAINT
aktualizację ekranu. Jeśli podczas aktualizowania okna nie wystąpił żaden rysunek, żaden obszar nie zostanie unieważniony.
Funkcja LockWindowUpdate
składowa nie sprawia, że dane okno jest niewidoczne i nie czyści WS_VISIBLE
bit stylu.
CWnd::m_hWnd
Uchwyt okna systemu Windows dołączony do tego CWnd
elementu .
HWND m_hWnd;
Uwagi
Element m_hWnd
członkowski danych jest publiczną zmienną typu HWND
.
CWnd::MapWindowPoints
Konwertuje (mapy) zestaw punktów z przestrzeni współrzędnej obiektu na przestrzeń współrzędną CWnd
innego okna.
void MapWindowPoints(
CWnd* pwndTo,
LPRECT lpRect) const;
void MapWindowPoints(
CWnd* pwndTo,
LPPOINT lpPoint,
UINT nCount) const;
Parametry
pwndTo
Określa okno, w którym są konwertowane punkty. Jeśli ten parametr to NULL
, punkty są konwertowane na współrzędne ekranu.
lpRect
Określa prostokąt, którego punkty mają być konwertowane. Pierwsza wersja tej funkcji jest dostępna tylko dla systemu Windows 3.1 lub nowszego.
lpPoint
Wskaźnik do tablicy POINT
struktury zawierającej zestaw punktów do przekonwertowania.
nCount
Określa liczbę POINT
struktur w tablicy wskazywanej przez lpPoint
.
CWnd::MessageBox
Tworzy i wyświetla okno zawierające komunikat i podpis dostarczony przez aplikację oraz kombinację wstępnie zdefiniowanych ikon i przycisków opisanych na liście Style usługi Message-Box.
int MessageBox(
LPCTSTR lpszText,
LPCTSTR lpszCaption = NULL,
UINT nType = MB_OK);
Parametry
lpszText
CString
Wskazuje obiekt lub ciąg zakończony o wartości null zawierający komunikat, który ma być wyświetlany.
lpszCaption
CString
Wskazuje obiekt lub ciąg zakończony o wartości null, który ma być używany dla podpisu pola komunikatu. Jeśli lpszCaption
to NULL
, jest używany domyślny podpis "Błąd".
nType
Określa zawartość i zachowanie pola komunikatu.
Wartość zwracana
Ta metoda wykorzystuje funkcję zdefiniowaną MessageBox
w zestawie Windows SDK. Ta metoda zwraca wynik wywołania tej funkcji.
Uwagi
Użyj funkcji AfxMessageBox
globalnej zamiast tej funkcji składowej, aby zaimplementować pole komunikatu w aplikacji.
Poniżej przedstawiono różne ikony systemowe, których można użyć w polu komunikatu:
Ikona | Makro |
---|---|
MB_ICONHAND , MB_ICONSTOP i MB_ICONERROR |
|
MB_ICONQUESTION | |
MB_ICONEXCLAMATION i MB_ICONWARNING | |
MB_ICONASTERISK i MB_ICONINFORMATION |
Przykład
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
Wywołaj tę funkcję składową, aby zmodyfikować styl okna.
BOOL ModifyStyle(
DWORD dwRemove,
DWORD dwAdd,
UINT nFlags = 0);
Parametry
dwRemove
Określa style okna do usunięcia podczas modyfikacji stylu.
dwAdd
Określa style okna do dodania podczas modyfikacji stylu.
nFlags
Flagi, które mają być przekazywane do SetWindowPos
, lub zero, jeśli SetWindowPos
nie powinny być wywoływane. Wartością domyślną jest zero. Zobacz sekcję Uwagi, aby zapoznać się z listą flag wstępnych.
Wartość zwracana
Bezzerowe, jeśli styl został pomyślnie zmodyfikowany; w przeciwnym razie, 0.
Uwagi
Style do dodania lub usunięcia można połączyć za pomocą operatora bitowego OR (|
). Aby uzyskać informacje o dostępnych stylach okien, zobacz tematy Style okien i CreateWindow
w zestawie Windows SDK.
Jeśli nFlags
element nie jestzerowy, ModifyStyle
wywołuje funkcję SetWindowPos
interfejsu API systemu Windows i ponownie rysuje okno, łącząc nFlags
się z następującymi czterema flagami ustawień wstępnych:
SWP_NOSIZE
Zachowuje bieżący rozmiar.SWP_NOMOVE
Zachowuje bieżące położenie.SWP_NOZORDER
Zachowuje bieżącą kolejność Z.SWP_NOACTIVATE
Nie aktywuje okna.
Aby zmodyfikować style rozszerzone okna, zobacz ModifyStyleEx
.
Uwaga
W przypadku niektórych stylów w niektórych kontrolkach ( ES_READONLY
na przykład styl w kontrolce edycji) ModifyStyle
może nie zmienić stylu, ponieważ kontrolka może wymagać specjalnego przetwarzania wewnętrznego. W takich przypadkach odpowiedni komunikat o zmianie stylu będzie dostępny ( EM_SETREADONLY
w przykładzie).
Przykład
// 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
Wywołaj tę funkcję składową, aby zmodyfikować rozszerzony styl okna.
BOOL ModifyStyleEx(
DWORD dwRemove,
DWORD dwAdd,
UINT nFlags = 0);
Parametry
dwRemove
Określa rozszerzone style do usunięcia podczas modyfikowania stylu.
dwAdd
Określa rozszerzone style do dodania podczas modyfikowania stylu.
nFlags
Flagi, które mają być przekazywane do SetWindowPos
, lub zero, jeśli SetWindowPos
nie powinny być wywoływane. Wartością domyślną jest zero. Zobacz sekcję Uwagi, aby zapoznać się z listą flag wstępnych.
Wartość zwracana
Bezzerowe, jeśli styl został pomyślnie zmodyfikowany; w przeciwnym razie, 0.
Uwagi
Style do dodania lub usunięcia można połączyć za pomocą operatora bitowego OR (|
). Zobacz tematy Rozszerzone style okien w tej książce i CreateWindowEx
w zestawie Windows SDK, aby uzyskać informacje o dostępnych stylach rozszerzonych
Jeśli nFlags
element nie jestzerowy, ModifyStyleEx
wywołuje funkcję SetWindowPos
interfejsu API systemu Windows i ponownie rysuje okno, łącząc nFlags
się z następującymi czterema flagami ustawień wstępnych:
SWP_NOSIZE
Zachowuje bieżący rozmiar.SWP_NOMOVE
Zachowuje bieżące położenie.SWP_NOZORDER
Zachowuje bieżącą kolejność Z.SWP_NOACTIVATE
Nie aktywuje okna.
Aby zmodyfikować okna przy użyciu regularnych stylów okien, zobacz ModifyStyle
.
Przykład
// 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
Zmienia położenie i wymiary.
void MoveWindow(
int x,
int y,
int nWidth,
int nHeight,
BOOL bRepaint = TRUE);
void MoveWindow(
LPCRECT lpRect,
BOOL bRepaint = TRUE);
Parametry
x
Określa nowe położenie lewej strony obiektu CWnd
.
y
Określa nowe położenie górnej części obiektu CWnd
.
nWidth
Określa nową szerokość obiektu CWnd
.
nHeight
Określa nową wysokość obiektu CWnd
.
bRepaint
Określa, czy CWnd
ma być przemalowany. Jeśli TRUE
program CWnd
odbiera WM_PAINT
komunikat w procedurze OnPaint
obsługi komunikatów w zwykły sposób. Jeśli ten parametr ma FALSE
wartość , nie ma żadnego rodzaju przemalowania. Dotyczy to obszaru klienta, obszaru innego niż klient (w tym tytułów i pasków przewijania) oraz do dowolnej części okna nadrzędnego odkrytego CWnd
w wyniku przeniesienia. Gdy ten parametr ma FALSE
wartość , aplikacja musi jawnie unieważnić lub ponownie wyrysować wszystkie części okna nadrzędnego CWnd
i, które muszą zostać ponownie rysowane.
lpRect
CRect
Obiekt lub RECT
struktura określająca nowy rozmiar i położenie.
Uwagi
W przypadku obiektu x
najwyższego poziomu CWnd
parametry i y
są względne względem lewego górnego rogu ekranu. W przypadku obiektu podrzędnego CWnd
są one względne względem lewego górnego rogu obszaru klienta okna nadrzędnego.
Funkcja MoveWindow
wysyła WM_GETMINMAXINFO
komunikat. Obsługa tego komunikatu umożliwia CWnd
modyfikowanie wartości domyślnych dla największych i najmniejszych możliwych okien. Jeśli parametry funkcji składowej MoveWindow
przekraczają te wartości, wartości można zastąpić wartościami minimalnymi lub maksymalnymi w procedurze WM_GETMINMAXINFO
obsługi.
Przykład
Zobacz przykład dla elementu CWnd::ClientToScreen
.
CWnd::NotifyWinEvent
Sygnalizuje, że wystąpiło wstępnie zdefiniowane zdarzenie. Jeśli jakiekolwiek aplikacje klienckie zarejestrowały funkcję haka dla zdarzenia, system wywołuje funkcję haka klienta.
void NotifyWinEvent(
DWORD event,
LONG idObjectType,
LONG idObject);
Parametry
event
Określa zdarzenie, które miało miejsce. Ta wartość musi być jedną z stałych zdarzeń.
idObjectType
Określa rodzaj obiektu, który wygenerował zdarzenie. Ta wartość jest jednym ze wstępnie zdefiniowanych identyfikatorów obiektów lub niestandardowej wartości identyfikatora obiektu.
idObject
Określa, czy zdarzenie zostało wygenerowane przez obiekt, czy element podrzędny obiektu. Jeśli ta wartość to CHILDID_SELF
, zdarzenie zostało wygenerowane przez sam obiekt. Jeśli nie, ta wartość jest identyfikatorem podrzędnym elementu, który wygenerował zdarzenie.
Uwagi
Ta funkcja składowa emuluje funkcjonalność funkcji NotifyWinEvent
, zgodnie z opisem w zestawie Windows SDK.
CWnd::OnActivate
Struktura wywołuje tę funkcję składową CWnd
, gdy obiekt jest aktywowany lub dezaktywowany.
afx_msg void OnActivate(
UINT nState,
CWnd* pWndOther,
BOOL bMinimized);
Parametry
nState
Określa, czy CWnd
element jest aktywowany, czy dezaktywowany. Może to być jedna z następujących wartości:
WA_INACTIVE
Okno jest dezaktywowane.WA_ACTIVE
Okno jest aktywowane za pomocą innej metody niż kliknięcie myszą (na przykład za pomocą interfejsu klawiatury do wybrania okna).WA_CLICKACTIVE
Okno jest aktywowane przez kliknięcie myszą.
pWndOther
Wskaźnik do CWnd
aktywowania lub dezaktywowania. Wskaźnik może mieć wartość NULL
i może być tymczasowy.
bMinimized
Określa zminimalizowany stan CWnd
aktywowania lub dezaktywowania. Wartość TRUE
wskazuje, że okno jest zminimalizowane.
Jeśli TRUE
element jest CWnd
aktywowany; w przeciwnym razie jest dezaktywowany.
Uwagi
CWnd
Jeśli obiekt jest aktywowany za pomocą kliknięcia myszą, otrzyma również wywołanie funkcji składowejOnMouseActivate
.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnActivateApp
Struktura wywołuje tę funkcję składową do wszystkich okien najwyższego poziomu aktywowanego zadania i dla wszystkich okien najwyższego poziomu zadania dezaktywowanego.
afx_msg void OnActivateApp(
BOOL bActive,
DWORD dwThreadID);
Parametry
bActive
Określa, czy CWnd
element jest aktywowany, czy dezaktywowany. TRUE
CWnd
oznacza, że element jest aktywowany. FALSE
oznacza, że element CWnd
jest dezaktywowany.
dwThreadID
Określa wartość identyfikatora wątku. Jeśli bActive
element to TRUE
, dwThreadID
identyfikuje wątek, który jest właścicielem CWnd
dezaktywowanego elementu. Jeśli bActive
element to FALSE
, dwThreadID
identyfikuje wątek, który jest właścicielem aktywowanego CWnd
elementu.
Uwagi
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnAmbientProperty
Struktura wywołuje tę funkcję składową, aby uzyskać wartości właściwości otoczenia z okna zawierającego kontrolki OLE.
virtual BOOL OnAmbientProperty(
COleControlSite* pSite,
DISPID dispid,
VARIANT* pvar);
Parametry
pSite
Wskaźnik do lokacji kontrolki, która zażądała właściwości otoczenia.
dispid
Identyfikator wysyłki żądanej właściwości otoczenia.
pvar
Wskaźnik do struktury przydzielonej VARIANT
przez obiekt wywołujący, za pomocą której zostanie zwrócona wartość właściwości otoczenia.
Wartość zwracana
TRUE
jeśli właściwość otoczenia jest obsługiwana; FALSE
jeśli nie.
Uwagi
Zastąpi tę funkcję, aby zmienić domyślne wartości właściwości otoczenia zwracane przez kontener sterowania OLE do kontrolek. Wszelkie żądania właściwości otoczenia, które nie są obsługiwane przez funkcję zastępowania, powinny być przekazywane do implementacji klasy bazowej.
CWnd::OnAppCommand
Platforma wywołuje tę funkcję składową, gdy użytkownik generuje zdarzenie polecenia aplikacji. Takie zdarzenie występuje, gdy użytkownik kliknie przycisk polecenia aplikacji lub wpisze klucz polecenia aplikacji.
afx_msg void OnAppCommand(
CWnd* pWnd,
UINT nCmd,
UINT nDevice,
UINT nKey);
Parametry
pWnd
[in] Wskaźnik do CWnd
obiektu reprezentującego okno, w którym użytkownik kliknął przycisk polecenia lub nacisnął polecenia. To okno może być oknem podrzędnym okna odbierającego komunikat.
nCmd
[in] Wskazuje polecenie aplikacji. Aby uzyskać listę możliwych wartości, zobacz polecenia w cmd
sekcji parametru lParam
.WM_APPCOMMAND
nDevice
[in] Urządzenie wejściowe, które wygenerowało zdarzenie wejściowe. Aby uzyskać listę możliwych wartości, zobacz urządzenia w uDevice
sekcji parametru lParam
.WM_APPCOMMAND
nKey
[in] Wskazuje wszystkie klucze wirtualne, które są wyłączone, takie jak CTRL lub lewy przycisk myszy. Aby uzyskać listę możliwych wartości, zobacz klucze w dwKeys
sekcji parametru lParam
.WM_APPCOMMAND
Aby uzyskać więcej informacji, zobacz podpozycję "Parametry komunikatu" w temacie About Mouse Input (Informacje o danych wejściowych myszy).
Uwagi
Ta metoda odbiera WM_APPCOMMAND
powiadomienie opisane w zestawie Windows SDK.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnAskCbFormatName
Struktura wywołuje tę funkcję składową, gdy Schowek zawiera uchwyt danych dla CF_OWNERDISPLAY
formatu (czyli gdy właściciel Schowka wyświetli zawartość Schowka).
afx_msg void OnAskCbFormatName(
UINT nMaxCount,
LPTSTR lpszString);
Parametry
nMaxCount
Określa maksymalną liczbę bajtów do skopiowania.
lpszString
Wskazuje bufor, w którym ma być przechowywana kopia nazwy formatu.
Uwagi
Właściciel schowka powinien podać nazwę swojego formatu.
Zastąpi tę funkcję składową i skopiuj nazwę CF_OWNERDISPLAY
formatu do określonego buforu, nie przekraczając maksymalnej liczby określonych bajtów.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnCancelMode
Struktura wywołuje tę funkcję składową, aby poinformować o CWnd
anulowaniu dowolnego trybu wewnętrznego.
afx_msg void OnCancelMode();
Uwagi
CWnd
Jeśli obiekt ma fokus, jego OnCancelMode
funkcja składowa jest wywoływana po wyświetleniu okna dialogowego lub okna komunikatu. CWnd
Dzięki temu można anulować tryby, takie jak przechwytywanie myszy.
Domyślna implementacja odpowiada przez wywołanie ReleaseCapture
funkcji systemu Windows. Zastąp tę funkcję składową w klasie pochodnej, aby obsługiwać inne tryby.
CWnd::OnCaptureChanged
Struktura wywołuje tę funkcję składową, aby powiadomić okno o utracie przechwytywania myszy.
afx_msg void OnCaptureChanged(CWnd* pWnd);
Parametry
pWnd
Wskaźnik do okna w celu uzyskania przechwytywania myszy
Uwagi
Okno odbiera ten komunikat, nawet jeśli wywołuje ReleaseCapture
się sam. Aplikacja nie powinna próbować ustawiać przechwytywania myszy w odpowiedzi na ten komunikat. Po odebraniu tego komunikatu okno powinno zostać ponownie wyrysowane w razie potrzeby, aby odzwierciedlić nowy stan przechwytywania myszy.
Aby uzyskać informacje na ReleaseCapture
temat funkcji systemu Windows, zobacz zestaw Windows SDK.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnChangeCbChain
Struktura wywołuje tę funkcję składową dla każdego okna w łańcuchu Clipboard-viewer, aby powiadomić go, że okno jest usuwane z łańcucha.
afx_msg void OnChangeCbChain(
HWND hWndRemove,
HWND hWndAfter);
Parametry
hWndRemove
Określa uchwyt okna, który jest usuwany z łańcucha Schowek-viewer.
hWndAfter
Określa uchwyt okna, który następuje po oknie usuwanym z łańcucha Schowek-viewer.
Uwagi
Każdy CWnd
obiekt odbierający OnChangeCbChain
wywołanie powinien używać SendMessage
funkcji systemu Windows do wysyłania komunikatu WM_CHANGECBCHAIN
do następnego okna w łańcuchu Schowek-viewer (uchwyt zwrócony przez SetClipboardViewer
program ). Jeśli hWndRemove
jest następnym oknem w łańcuchu, okno określone przez hWndAfter
staje się następnym oknem, a komunikaty schowka są przekazywane do niego.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnChangeUIState
Wywoływana, gdy należy zmienić stan interfejsu użytkownika.
afx_msg void OnChangeUIState(
UINT nAction,
UINT nUIElement);
Parametry
nAction
Określa akcję, która ma zostać podjęta. Może być jedną z następujących wartości:
UIS_CLEAR
Element stanu interfejsu użytkownika (określony przeznUIElement
) powinien być ukryty.UIS_INITIALIZE
Element stanu interfejsu użytkownika (określony przeznUIElement
) powinien zostać zmieniony na podstawie ostatniego zdarzenia wejściowego. Aby uzyskać więcej informacji, zobacz sekcję Uwagi w temacieWM_CHANGEUISTATE
.UIS_SET
Element stanu interfejsu użytkownika (określony przeznUIElement
) powinien być widoczny.
nUIElement
Określa, które elementy stanu interfejsu użytkownika mają wpływ lub styl kontrolki. Może być jedną z następujących wartości:
UISF_HIDEACCEL
Akceleratory klawiatury.UISF_HIDEFOCUS
Wskaźniki fokusu.UISF_ACTIVE
Windows XP: Kontrolka powinna być rysowana w stylu używanym do aktywnych kontrolek.
Uwagi
Ta funkcja składowa emuluje funkcjonalność komunikatu WM_CHANGEUISTATE
zgodnie z opisem w zestawie WINDOWS SDK.
CWnd::OnChar
Struktura wywołuje tę funkcję składową, gdy naciśnięcie przekłada się na znak niesystemowy.
afx_msg void OnChar(
UINT nChar,
UINT nRepCnt,
UINT nFlags);
Parametry
nChar
Zawiera wartość kodu znaku klucza.
nRepCnt
Zawiera liczbę powtórzeń, ile razy naciśnięcie jest powtarzane, gdy użytkownik przytrzymuje klucz.
nFlags
Zawiera kod skanowania, kod przejścia klucza, poprzedni stan klucza i kod kontekstu, jak pokazano na poniższej liście:
Wartość | Znaczenie |
---|---|
0-15 | Określa liczbę powtórzeń. Wartość jest liczbą powtórzeń naciśnięć w wyniku przytrzymywania klucza przez użytkownika. |
16-23 | Określa kod skanowania. Wartość zależy od producenta oryginalnego sprzętu (OEM) |
24 | Określa, czy klucz jest rozszerzonym, takim jak ALT po prawej stronie i CTRL, które są wyświetlane na ulepszonej klawiaturze 101- lub 102-klawiszowej. Wartość to 1, jeśli jest to klucz rozszerzony; w przeciwnym razie wartość wynosi 0. |
25-28 | Używane wewnętrznie przez system Windows. |
29 | Określa kod kontekstu. Wartość to 1, jeśli ALT jest przytrzymyany podczas naciśnięcia ; w przeciwnym razie wartość to 0. |
30 | Określa poprzedni stan klucza. Wartość to 1, jeśli klucz nie działa przed wysłaniem komunikatu lub wynosi 0, jeśli klucz jest w górę. |
31 | Określa stan przejścia. Wartość to 1, jeśli klucz jest zwalniany, lub wynosi 0, jeśli jest naciśnięty. |
Uwagi
Ta funkcja jest wywoływana przed funkcją składową OnKeyUp
i po wywołaniu funkcji składowej OnKeyDown
. OnChar
zawiera wartość naciśnięcia lub zwolnienia klawiatury.
Ponieważ między naciśnięciem i OnChar
wywołaniami nie musi istnieć korespondencja "jeden do jednego", te informacje nFlags
zazwyczaj nie są przydatne w aplikacjach. Informacje w programie nFlags
dotyczą tylko ostatniego wywołania funkcji składowej OnKeyUp
lub OnKeyDown
funkcji składowej, która poprzedza wywołanie metody OnChar
.
W przypadku klawiatur IBM Enhanced 101- i 102-klawiszowych rozszerzone są właściwymi ALT i prawymi CTRL w głównej sekcji klawiatury; INS, DEL, HOME, END, PAGE UP, PAGE DOWN i arrow w klastrach po lewej stronie klawiatury liczbowej; oraz ukośnik (/) i ENTER w klawiaturze liczbowej. Niektóre inne klawiatury mogą obsługiwać bit rozszerzonego w systemie nFlags
.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnCharToItem
Wywoływane, gdy pole listy z LBS_WANTKEYBOARDINPUT
stylem wysyła jego właścicielowi WM_CHARTOITEM
wiadomość w odpowiedzi na WM_CHAR
komunikat.
afx_msg int OnCharToItem(
UINT nChar,
CListBox* pListBox,
UINT nIndex);
Parametry
nChar
Określa wartość naciśnięty przez użytkownika.
pListBox
Określa wskaźnik do pola listy. Może to być tymczasowe.
nIndex
Określa bieżącą pozycję karetki.
Wartość zwracana
Struktura wywołuje tę funkcję składową, aby określić akcję wykonywaną przez aplikację w odpowiedzi na wywołanie. Wartość zwracana -2 wskazuje, że aplikacja obsłużyła wszystkie aspekty wybierania elementu i nie chce dalszych działań według pola listy. Wartość zwracana -1 wskazuje, że pole listy powinno wykonać domyślną akcję w odpowiedzi na naciśnięcie. Wartość zwracana 0 lub większa określa indeks zerowy elementu w polu listy i wskazuje, że pole listy powinno wykonać domyślną akcję naciśnięcia dla danego elementu.
Uwagi
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnChildActivate
CWnd
Jeśli obiekt jest oknem podrzędnym interfejsu wielu dokumentów (MDI), jest wywoływany przez platformę po OnChildActivate
kliknięciu paska tytułu okna lub aktywowaniu, przeniesieniu lub rozmiarze okna.
afx_msg void OnChildActivate();
CWnd::OnChildNotify
Ta funkcja składowa jest wywoływana przez okno nadrzędne tego okna, gdy otrzymuje komunikat powiadomienia, który ma zastosowanie do tego okna.
virtual BOOL OnChildNotify(
UINT message,
WPARAM wParam,
LPARAM lParam,
LRESULT* pResult);
Parametry
message
Numer komunikatu systemu Windows wysłany do okna nadrzędnego.
wParam
Parametr skojarzony z komunikatem.
lParam
Lparam skojarzony z komunikatem.
pLResult
Wskaźnik do wartości, która ma zostać zwrócona z procedury okna nadrzędnego. Ten wskaźnik będzie miał wartość NULL
, jeśli nie jest oczekiwana żadna wartość zwracana.
Wartość zwracana
Niezero, jeśli to okno jest odpowiedzialne za obsługę komunikatu wysłanego do elementu nadrzędnego; w przeciwnym razie 0.
Uwagi
Nigdy nie wywołaj tej funkcji składowej bezpośrednio.
Domyślna implementacja tej funkcji składowej zwraca wartość 0, co oznacza, że element nadrzędny powinien obsługiwać komunikat.
Zastąpi tę funkcję składową, aby rozszerzyć sposób, w jaki kontrolka reaguje na komunikaty powiadomień.
CWnd::OnClipboardUpdate
Struktura wywołuje tę funkcję składową, gdy zawartość schowka uległa zmianie.
afx_msg void OnClipboardUpdate();
CWnd::OnClose
Struktura wywołuje tę funkcję składową jako sygnał, że CWnd
aplikacja lub ma zakończyć działanie.
afx_msg void OnClose();
Uwagi
Domyślna implementacja wywołuje metodę DestroyWindow
.
CWnd::OnColorizationColorChanged
Struktura wywołuje ten element członkowski, gdy zasady renderowania dla obszaru nieklientowego uległy zmianie.
afx_msg void OnColorizationColorChanged(
DWORD dwColorizationColor,
BOOL bOpacity);
Parametry
dwColorizationColor
[in] Określa nowy kolor koloryzacji. Format koloru to liczba szesnastkowa formularza 0xAARRGGBB, gdzie każdy z czterech składników waha się od 0x00 do 0xFF. Składnik AA jest wartością alfa, RR jest kolorem czerwonym, GG jest zielony, a BB jest niebieski.
bOpacity
[in] TRUE
jeśli nowy kolor jest mieszany z nieprzezroczystością; FALSE
jeśli tak nie jest.
Uwagi
Ta metoda odbiera WM_DWMNCRENDERINGCHANGED
komunikat powiadomienia opisany w zestawie WINDOWS SDK.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnCommand
Platforma wywołuje tę funkcję składową, gdy użytkownik wybierze element z menu, gdy kontrolka podrzędna wysyła komunikat powiadomienia lub gdy naciśnięcie akceleratora jest tłumaczone.
virtual BOOL OnCommand(
WPARAM wParam,
LPARAM lParam);
Parametry
wParam
Wyraz o niskiej kolejności wParam
identyfikuje identyfikator polecenia elementu menu, kontrolki lub akceleratora. Słowo o wysokiej kolejności wParam
określa komunikat powiadomienia, jeśli komunikat pochodzi z kontrolki. Jeśli komunikat pochodzi z akceleratora, wyraz o wysokiej kolejności to 1. Jeśli komunikat pochodzi z menu, wyraz o wysokiej kolejności wynosi 0.
lParam
Identyfikuje kontrolkę, która wysyła komunikat, jeśli komunikat pochodzi z kontrolki. lParam
W przeciwnym razie wartość to 0.
Wartość zwracana
Aplikacja zwraca wartość niezerową, jeśli przetwarza ten komunikat; w przeciwnym razie 0.
Uwagi
OnCommand
przetwarza mapę komunikatów dla powiadomień i ON_COMMAND
wpisów sterujących oraz wywołuje odpowiednią funkcję składową.
Zastąp tę funkcję składową w klasie pochodnej WM_COMMAND
, aby obsłużyć komunikat. Przesłonięcia nie będą przetwarzać mapy komunikatów, chyba że zostanie wywołana klasa OnCommand
bazowa.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnCompacting
Struktura wywołuje tę funkcję składową dla wszystkich okien najwyższego poziomu, gdy system Windows wykryje, że ponad 12,5 procent czasu systemu w okresie od 30 do 60 sekund jest poświęcany na kompaktowanie pamięci.
afx_msg void OnCompacting(UINT nCpuTime);
Parametry
nCpuTime
Określa stosunek czasu procesora CPU obecnie spędzonego przez system Windows kompaktowanie pamięci do czasu procesora CPU spędzonego na innych operacjach. Na przykład 8000h reprezentuje 50 procent czasu procesora CPU poświęcanego na kompaktowanie pamięci.
Uwagi
Oznacza to, że pamięć systemowa jest niska.
CWnd
Gdy obiekt odbiera to wywołanie, powinien zwolnić jak najwięcej pamięci, biorąc pod uwagę bieżący poziom aktywności aplikacji i łączną liczbę aplikacji uruchomionych w systemie Windows. Aplikacja może wywołać funkcję systemu Windows, aby określić liczbę uruchomionych aplikacji.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnCompareItem
Struktura wywołuje tę funkcję składową, aby określić względną pozycję nowego elementu w podrzędnym posortowanym polem kombi lub listy właściciela.
afx_msg int OnCompareItem(
int nIDCtl,
LPCOMPAREITEMSTRUCT lpCompareItemStruct);
Parametry
nIDCtl
Identyfikator kontrolki, która wysłała WM_COMPAREITEM
komunikat.
lpCompareItemStruct
Zawiera długi wskaźnik do COMPAREITEMSTRUCT
struktury danych zawierającej identyfikatory i dane dostarczone przez aplikację dla dwóch elementów w polu kombi lub listy.
Wartość zwracana
Wskazuje względną pozycję dwóch elementów. Może to być dowolna z następujących wartości:
Wartość | Znaczenie |
---|---|
-1 | Element 1 sortuje przed pozycją 2. |
0 | Element 1 i element 2 posortuj to samo. |
1 | Element 1 sortuje po elemencie 2. |
Uwagi
Jeśli pole kombi lub listy zostanie utworzone za pomocą CBS_SORT
stylu lub LBS_SORT
, system Windows wyśle właściciel WM_COMPAREITEM
pola kombi lub pola listy komunikat za każdym razem, gdy aplikacja doda nowy element.
Dwa elementy w polu kombi lub listy są reformowane w strukturze wskazywanej COMPAREITEMSTRUCT
przez lpCompareItemStruct
. OnCompareItem
powinna zwrócić wartość wskazującą, które z elementów powinny pojawić się przed drugą. Zazwyczaj system Windows wykonuje to wywołanie kilka razy, dopóki nie określi dokładnego położenia nowego elementu.
hwndItem
Jeśli składowa COMPAREITEMSTRUCT
struktury należy do CListBox
obiektu lubCComboBox
, CompareItem
wywoływana jest funkcja wirtualna odpowiedniej klasy. Zastąp CComboBox::CompareItem
lub w klasie pochodnej CListBox
lub CListBox::CompareItem
CComboBox
klasy, aby wykonać porównanie elementów.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnCompositionChanged
Platforma wywołuje tę funkcję składową dla wszystkich okien najwyższego poziomu, gdy kompozycja Menedżera okien pulpitu (DWM) jest włączona lub wyłączona.
afx_msg void OnCompositionChanged();
Uwagi
Ta metoda odbiera WM_DWMCOMPOSITIONCHANGED
powiadomienie opisane w zestawie Windows SDK.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnContextMenu
Wywoływana przez platformę, gdy użytkownik kliknął prawym przyciskiem myszy (kliknij prawym przyciskiem myszy) w oknie.
afx_msg void OnContextMenu(
CWnd* pWnd,
CPoint pos);
Parametry
pWnd
Dojście do okna, w którym użytkownik kliknął prawym przyciskiem myszy. Może to być okno podrzędne okna odbierającego komunikat. Aby uzyskać więcej informacji na temat przetwarzania tego komunikatu, zobacz sekcję Uwagi.
pos
Położenie kursora, we współrzędnych ekranu, w momencie kliknięcia myszą.
Uwagi
Ten komunikat można przetworzyć, wyświetlając menu kontekstowe przy użyciu polecenia TrackPopupMenu
.
Jeśli nie zostanie wyświetlone menu kontekstowe, należy przekazać ten komunikat do DefWindowProc
funkcji. Jeśli okno jest oknem podrzędnym, DefWindowProc
wysyła komunikat do elementu nadrzędnego. W przeciwnym razie wyświetla domyślne menu kontekstowe, DefWindowProc
jeśli określona pozycja znajduje się w podpisie okna.
CWnd::OnCopyData
Ta funkcja składowa jest wywoływana przez platformę w celu skopiowania danych z jednej aplikacji do innej.
afx_msg BOOL OnCopyData(
CWnd* pWnd,
COPYDATASTRUCT* pCopyDataStruct);
Parametry
pWnd
Wskaźnik do CWnd
obiektu wysyłającego dane.
pCopyDataStruct
Wskaźnik do COPYDATASTRUCT
struktury zawierającej wysyłane dane.
Wartość zwracana
Zwraca wartość TRUE
, jeśli aplikacja odbierającego pomyślnie akceptuje dane. W przeciwnym razie zwraca wartość FALSE
.
Uwagi
Przekazane dane nie mogą zawierać wskaźników ani innych odwołań do obiektów, które nie są dostępne dla aplikacji odbierających dane.
Podczas kopiowania danych nie można go zmienić przez inny wątek procesu wysyłania.
Aplikacja odbierającego powinna uwzględniać dane tylko do odczytu. Struktura wskazywana przez parametr pCopyDataStruct
jest prawidłowa tylko podczas transferu danych, jednak aplikacja odbierający nie powinna zwolnić pamięci skojarzonej ze strukturą.
Jeśli aplikacja odbierający potrzebuje dostępu do danych po powrocie tej funkcji, musi skopiować dane odebrane do buforu lokalnego.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnCreate
Platforma wywołuje tę funkcję składową, gdy aplikacja żąda utworzenia okna systemu Windows przez wywołanie Create
funkcji lub CreateEx
elementu członkowskiego.
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
Parametry
lpCreateStruct
Wskazuje strukturę zawierającą CREATESTRUCT
informacje o tworzonym CWnd
obiekcie.
Wartość zwracana
OnCreate
Musi zwrócić wartość 0, aby kontynuować tworzenie CWnd
obiektu. Jeśli aplikacja zwróci wartość -1, okno zostanie zniszczone.
Uwagi
Obiekt CWnd
odbiera to wywołanie po utworzeniu okna, ale zanim stanie się widoczne. OnCreate
metoda jest wywoływana przed zwróceniem funkcji składowej Create
lub CreateEx
.
Zastąp tę funkcję składową, aby wykonać wszelkie wymagane inicjowanie klasy pochodnej.
Struktura CREATESTRUCT
zawiera kopie parametrów użytych do utworzenia okna.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnCtlColor
Struktura wywołuje tę funkcję składową, gdy kontrolka podrzędna ma zostać narysowana.
afx_msg HBRUSH OnCtlColor(
CDC* pDC,
CWnd* pWnd,
UINT nCtlColor);
Parametry
pDC
Zawiera wskaźnik do kontekstu wyświetlania okna podrzędnego. Może to być tymczasowe.
pWnd
Zawiera wskaźnik do kontrolki z pytaniem o kolor. Może to być tymczasowe.
nCtlColor
Zawiera jedną z następujących wartości, określając typ kontrolki:
CTLCOLOR_BTN
Kontrolka przyciskuCTLCOLOR_DLG
Okno dialogoweCTLCOLOR_EDIT
Edytuj kontrolkęCTLCOLOR_LISTBOX
Kontrolka pola listyCTLCOLOR_MSGBOX
Pole komunikatuCTLCOLOR_SCROLLBAR
Kontrolka paska przewijaniaCTLCOLOR_STATIC
Kontrolka statyczna
Wartość zwracana
OnCtlColor
musi zwrócić uchwyt do pędzla, który ma być używany do malowania tła kontrolki.
Uwagi
Większość kontrolek wysyła ten komunikat do elementu nadrzędnego (zazwyczaj okno dialogowe), aby przygotować pDC
kontrolkę do rysowania kontrolki przy użyciu odpowiednich kolorów.
Aby zmienić kolor tekstu, wywołaj SetTextColor
funkcję składową z żądanymi wartościami czerwonymi, zielonymi i niebieskimi (RGB).
Aby zmienić kolor tła kontrolki edycji jednowierszowej, ustaw uchwyt pędzla zarówno w kodach komunikatów, jak CTLCOLOR_EDIT
i CTLCOLOR_MSGBOX
i i wywołaj CDC::SetBkColor
funkcję w odpowiedzi na CTLCOLOR_EDIT
kod.
OnCtlColor
Nie będzie wywoływana dla pola listy pola kombi listy rozwijanej, ponieważ pole listy rozwijanej jest w rzeczywistości elementem podrzędnym pola kombi, a nie elementem podrzędnym okna. Aby zmienić kolor pola listy rozwijanej, utwórz obiekt z przesłonięciąOnCtlColor
, która sprawdza CTLCOLOR_LISTBOX
parametr w parametrze nCtlColor
.CComboBox
W tej procedurze obsługi należy użyć funkcji składowej, SetBkColor
aby ustawić kolor tła tekstu.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji. Aby dodać następującą metodę do klasy okna dialogowego, użyj okienka właściwości programu Visual Studio, aby dodać procedurę obsługi komunikatów dla programu WM_CTLCOLOR
. Alternatywnie możesz ręcznie dodać ON_WM_CTLCOLOR()
wpis do mapy komunikatów.
Przykład
// 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
Struktura wywołuje tę funkcję składową, gdy OnKeyUp
wywoływana jest funkcja składowa i OnKeyDown
funkcje składowe.
afx_msg void OnDeadChar(
UINT nChar,
UINT nRepCnt,
UINT nFlags);
Parametry
nChar
Określa wartość znaku dead-key.
nRepCnt
Określa liczbę powtórzeń.
nFlags
Określa kod skanowania, kod przejścia klucza, poprzedni stan klucza i kod kontekstu, jak pokazano na poniższej liście:
Wartość | Opis |
---|---|
0-7 | Skanuj kod (wartość zależna od producenta OEM). Niski bajt wyrazu o wysokiej kolejności. |
8 | Klucz rozszerzony, taki jak klucz funkcji lub klucz na klawiaturze liczbowej (1, jeśli jest to klucz rozszerzony; w przeciwnym razie 0). |
9-10 | Nie używany. |
11-12 | Używane wewnętrznie przez system Windows. |
13 | Kod kontekstu (1, jeśli ALT jest przytrzymyany podczas naciśnięcia; w przeciwnym razie 0). |
14 | Poprzedni stan klucza (1, jeśli klucz nie działa przed wywołaniem, 0, jeśli klucz jest w górę). |
15 | Stan przejścia (1, jeśli klucz jest zwalniany, 0, jeśli jest naciśnięty). |
Uwagi
Ta funkcja składowa może służyć do określania wartości znaku martwego klucza. Martwy klucz jest kluczem, takim jak znak umlaut (podwójna kropka), który jest połączony z innymi znakami w celu utworzenia znaku złożonego. Na przykład znak umlaut-O składa się z klucza martwego, umlaut i klucza O.
Aplikacja zazwyczaj używa OnDeadChar
funkcji do przekazywania opinii użytkownika na temat każdego naciśnięcia. Na przykład aplikacja może wyświetlać akcent w bieżącej pozycji znaku bez przenoszenia karetki.
Ponieważ między naciśnięciem i OnDeadChar
wywołaniami nie musi istnieć korespondencja "jeden do jednego", te informacje nFlags
nie są zwykle przydatne w aplikacjach. Informacje w programie nFlags
dotyczą tylko ostatniego wywołania funkcji składowej OnKeyUp
lub OnKeyDown
funkcji składowej OnDeadChar
, która poprzedza wywołanie.
W przypadku klawiatur IBM Enhanced 101- i 102-klawiszowych rozszerzone są właściwymi ALT i prawymi CTRL w głównej sekcji klawiatury; INS, DEL, HOME, END, PAGE UP, PAGE DOWN i arrow w klastrach po lewej stronie klawiatury liczbowej; oraz ukośnik (/) i ENTER w klawiaturze liczbowej. Niektóre inne klawiatury mogą obsługiwać bit rozszerzonego w systemie nFlags
.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnDeleteItem
Struktura wywołuje tę funkcję składową, aby poinformować właściciela pola listy lub pola kombi właściciela, że pole listy lub pole kombi zostało zniszczone lub że elementy zostały usunięte przez CComboBox::DeleteString
, CListBox::DeleteString
, CComboBox::ResetContent
lub CListBox::ResetContent
.
afx_msg void OnDeleteItem(
int nIDCtl,
LPDELETEITEMSTRUCT lpDeleteItemStruct);
Parametry
nIDCtl
Identyfikator kontrolki, która wysłała WM_DELETEITEM
komunikat.
lpDeleteItemStruct
Określa długi wskaźnik do DELETEITEMSTRUCT
struktury danych zawierającej informacje o usuniętym elemencie pola listy.
Uwagi
hwndItem
Jeśli element członkowski DELETEITEMSTRUCT
struktury należy do pola kombi lub pola listy, DeleteItem
wywoływana jest funkcja wirtualna odpowiedniej klasy. Zastąpić DeleteItem
funkcję składową klasy odpowiedniej kontrolki, aby usunąć dane specyficzne dla elementu.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnDestroy
Struktura wywołuje tę funkcję składową, aby poinformować CWnd
obiekt, że został zniszczony.
afx_msg void OnDestroy();
Uwagi
OnDestroy
jest wywoływany po usunięciu CWnd
obiektu z ekranu.
OnDestroy
jest wywoływany jako pierwszy do CWnd
zniszczenia, a następnie dla okien podrzędnych CWnd
w miarę ich zniszczenia. Można założyć, że wszystkie okna podrzędne nadal istnieją podczas OnDestroy
uruchamiania.
CWnd
Jeśli zniszczony obiekt jest częścią łańcucha Clipboard-viewer (ustawiane przez wywołanie SetClipboardViewer
funkcji składowej), CWnd
element musi usunąć się z łańcucha Schowka-viewer, wywołując ChangeClipboardChain
funkcję składową przed powrotem z OnDestroy
funkcji.
CWnd::OnDestroyClipboard
Struktura wywołuje tę funkcję składową dla właściciela Schowka, gdy schowek jest opróżniany za pośrednictwem wywołania EmptyClipboard
funkcji systemu Windows.
afx_msg void OnDestroyClipboard();
CWnd::OnDeviceChange
Struktura wywołuje tę funkcję składową, aby powiadomić aplikację lub sterownik urządzenia o zmianie konfiguracji sprzętowej urządzenia lub komputera.
afx_msg BOOL OnDeviceChange(
UINT nEventType,
DWORD_PTR dwData);
Parametry
nEventType
Typ zdarzenia. Zobacz sekcję Uwagi, aby zapoznać się z opisem dostępnych wartości
dwData
Adres struktury zawierającej dane specyficzne dla zdarzenia. Jego znaczenie zależy od danego zdarzenia.
Uwagi
W przypadku urządzeń, które oferują funkcje z możliwością sterowania oprogramowaniem, takie jak wyrzucenie i blokowanie, system operacyjny zazwyczaj wysyła DBT_DEVICEREMOVEPENDING
komunikat, aby umożliwić aplikacjom i sterownikom urządzeń bezproblemowe korzystanie z urządzenia.
Jeśli system operacyjny wymusza usunięcie urządzenia, może nie wysyłać komunikatu przed wykonaniem DBT_DEVICEQUERYREMOVE
tej czynności.
Parametr nEvent
może być jedną z następujących wartości:
DBT_DEVICEARRIVAL
Urządzenie zostało wstawione i jest teraz dostępne.DBT_DEVICEQUERYREMOVE
Wymagane jest uprawnienie do usunięcia urządzenia. Każda aplikacja może odrzucić to żądanie i anulować usunięcie.DBT_DEVICEQUERYREMOVEFAILED
Żądanie usunięcia urządzenia zostało anulowane.DBT_DEVICEREMOVEPENDING
Urządzenie zostanie usunięte. Nie można odmówić.DBT_DEVICEREMOVECOMPLETE
Urządzenie zostało usunięte.DBT_DEVICETYPESPECIFIC
Zdarzenie specyficzne dla urządzenia.DBT_CONFIGCHANGED
Bieżąca konfiguracja została zmieniona.DBT_DEVNODES_CHANGED
Węzeł urządzenia został zmieniony.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnDevModeChange
Platforma wywołuje tę funkcję składową dla wszystkich obiektów najwyższego poziomu CWnd
, gdy użytkownik zmieni ustawienia trybu urządzenia.
afx_msg void OnDevModeChange(LPTSTR lpDeviceName);
Parametry
lpDeviceName
Wskazuje nazwę urządzenia określoną w pliku inicjowania systemu Windows. WIN.INI
Uwagi
Aplikacje obsługujące WM_DEVMODECHANGE
komunikat mogą ponownie zainicjować ustawienia trybu urządzenia. Aplikacje korzystające z funkcji systemu Windows ExtDeviceMode
do zapisywania i przywracania ustawień urządzenia zwykle nie przetwarzają tej funkcji.
Ta funkcja nie jest wywoływana, gdy użytkownik zmieni drukarkę domyślną z Panel sterowania. W tym przypadku wywoływana OnWinIniChange
jest funkcja .
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnDrawClipboard
Struktura wywołuje tę funkcję składową dla każdego okna w łańcuchu Schowek-viewer po zmianie zawartości Schowka.
afx_msg void OnDrawClipboard();
Uwagi
Tylko aplikacje, które dołączyły do łańcucha Schowka-viewer, wywołując SetClipboardViewer
funkcję składową, muszą odpowiadać na to wywołanie.
Każde okno odbierające OnDrawClipboard
wywołanie powinno wywołać SendMessage
funkcję systemu Windows, aby przekazać WM_DRAWCLIPBOARD
komunikat do następnego okna w łańcuchu Schowek-viewer. Uchwyt następnego okna jest zwracany przez funkcję składową SetClipboardViewer
; może zostać zmodyfikowany w odpowiedzi na wywołanie funkcji składowej OnChangeCbChain
.
CWnd::OnDrawIconicThumbnailOrLivePreview
Wywoływana przez platformę, gdy musi uzyskać mapę bitową, która ma być wyświetlana na miniaturze karty systemu Windows 7 lub na kliencie, aby wyświetlić podgląd aplikacji.
virtual void OnDrawIconicThumbnailOrLivePreview(
CDC& dc,
CRect rect,
CSize szRequiredThumbnailSize,
BOOL bIsThumbnail,
BOOL& bAlphaChannelSet);
Parametry
dc
Określa kontekst urządzenia.
rect
Określa prostokąt ograniczenia obszaru do renderowania.
szRequiredThumbnailSize
Określa rozmiar miniatury docelowej. Należy zignorować wartość , jeśli bIsThumbnail
ma wartość FALSE
.
bIsThumbnail
Określa, czy ta metoda jest wywoływana dla ikonicznej miniatury lub podglądu na żywo (zobacz).
bAlphaChannelSet
[out] Ustaw ją na TRUE
wartość , jeśli implementacja inicjuje kanał alfa mapy bitowej wybranej w pliku dc
.
Uwagi
Zastąp tę metodę w klasie pochodnej i rysuj w określonym kontekście urządzenia, aby dostosować miniaturę i zajrzeć. Jeśli bThumbnail
parametr to TRUE
, szRequiredThumbnailSize
można go zignorować. W takim przypadku należy pamiętać, że narysujesz pełną mapę bitową (czyli mapę bitową obejmującą cały obszar klienta). Kontekst urządzenia (dc
) zawiera wybraną 32-bitową mapę bitową. Domyślna implementacja wysyła WM_PRINT
do tego okna flagi PRF_CLIENT
, PRF_CHILDREN
i PRF_NONCLIENT
.
CWnd::OnDrawItem
Struktura wywołuje tę funkcję składową dla właściciela kontrolki przycisku rysowania właściciela, kontrolki pola kombi, kontrolki pola listy lub menu, gdy zmieni się aspekt wizualny kontrolki lub menu.
afx_msg void OnDrawItem(
int nIDCtl,
LPDRAWITEMSTRUCT lpDrawItemStruct);
Parametry
nIDCtl
Zawiera identyfikator kontrolki, która wysłała WM_DRAWITEM
komunikat. Jeśli menu wysłało komunikat, nIDCtl
zawiera wartość 0.
lpDrawItemStruct
Określa długi wskaźnik do DRAWITEMSTRUCT
struktury danych zawierającej informacje o elemencie do rysowania i wymagany typ rysunku.
Uwagi
Element itemAction
członkowski DRAWITEMSTRUCT
struktury definiuje operację rysunku, która ma zostać wykonana. Dane w tym elemencie umożliwiają właścicielowi kontrolki określenie, jaka akcja rysunku jest wymagana.
Przed powrotem z przetwarzania tego komunikatu aplikacja powinna upewnić się, że kontekst urządzenia zidentyfikowany przez hDC
element członkowski DRAWITEMSTRUCT
struktury zostanie przywrócony do stanu domyślnego.
hwndItem
Jeśli element członkowski należy do CButton
obiektu , , CListBox
CMenu
lub CComboBox, DrawItem
wywoływana jest funkcja wirtualna odpowiedniej klasy. Zastąpi DrawItem
funkcję składową odpowiedniej klasy kontrolki, aby narysować element.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnDropFiles
Platforma wywołuje tę funkcję składową, gdy użytkownik zwolni lewy przycisk myszy nad oknem, które zarejestrowało się jako odbiorca porzuconych plików.
afx_msg void OnDropFiles(HDROP hDropInfo);
Parametry
hDropInfo
Wskaźnik do wewnętrznej struktury danych, która opisuje porzucone pliki. Ten uchwyt jest używany przez DragFinish
funkcje , DragQueryFile
i DragQueryPoint
systemu Windows do pobierania informacji o porzuconych plikach.
Uwagi
Zazwyczaj klasa pochodna zostanie zaprojektowana pod kątem obsługi porzuconych plików i zarejestruje się podczas budowy okien.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnEnable
Struktura wywołuje tę funkcję składową, gdy aplikacja zmienia stan CWnd
włączony obiektu.
afx_msg void OnEnable(BOOL bEnable);
Parametry
bEnable
Określa, czy CWnd
obiekt został włączony, czy wyłączony. Ten parametr jest TRUE
, jeśli CWnd
parametr został włączony; jest FALSE
to, czy CWnd
został wyłączony.
Uwagi
OnEnable
jest wywoływana przed zwróceniem funkcji składowej EnableWindow
, ale po zmianie stanu włączonego okna (WS_DISABLED
bit stylu).
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnEndSession
Struktura wywołuje tę funkcję składową po tym, jak CWnd
obiekt zwrócił wartość niezerową z wywołania funkcji składowej OnQueryEndSession
.
afx_msg void OnEndSession(BOOL bEnding);
Parametry
bEnding
Określa, czy sesja jest zakończona. Jest to TRUE
, jeśli sesja jest zakończona; w przeciwnym razie FALSE
.
Uwagi
Wywołanie OnEndSession
informuje CWnd
obiekt, czy sesja rzeczywiście kończy się.
Jeśli bEnding
jest to TRUE
, system Windows może zakończyć działanie w dowolnym momencie po powrocie wszystkich aplikacji z przetwarzania tego wywołania. W związku z tym aplikacja wykonuje wszystkie zadania wymagane do zakończenia w programie OnEndSession
.
Nie trzeba wywoływać funkcji składowej DestroyWindow
ani PostQuitMessage
funkcji systemu Windows po zakończeniu sesji.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnEnterIdle
Struktura wywołuje tę funkcję składową, aby poinformować główną procedurę okna aplikacji, że modalne okno dialogowe lub menu wprowadza stan bezczynności.
afx_msg void OnEnterIdle(
UINT nWhy,
CWnd* pWho);
Parametry
nWhy
Określa, czy komunikat jest wynikiem wyświetlanego okna dialogowego, czy menu. Ten parametr może być jedną z następujących wartości:
MSGF_DIALOGBOX
System jest bezczynny, ponieważ jest wyświetlane okno dialogowe.MSGF_MENU
System jest bezczynny, ponieważ jest wyświetlane menu.
pWho
Określa wskaźnik do okna dialogowego (jeśli nWhy
ma MSGF_DIALOGBOX
wartość ), lub okno zawierające wyświetlane menu (jeśli nWhy
ma wartość MSGF_MENU
). Ten wskaźnik może być tymczasowy i nie powinien być przechowywany do późniejszego użycia.
Uwagi
Modalne okno dialogowe lub menu wprowadza stan bezczynności, gdy żadne komunikaty nie oczekują w kolejce po przetworzeniu co najmniej jednego poprzedniego komunikatu.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnEnterMenuLoop
Struktura wywołuje tę funkcję składową po wprowadzeniu pętli modalnej menu.
afx_msg void OnEnterMenuLoop(BOOL bIsTrackPopupMenu);
Parametry
bIsTrackPopupMenu
Określa, czy zaangażowane menu jest menu podręczne. Jeśli funkcja zakończy się pomyślnie, ma wartość niezerową; w przeciwnym razie 0.
Uwagi
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnEnterSizeMove
Struktura wywołuje tę funkcję składową raz po przejściu okna, którego dotyczy problem, przechodzi w ruch lub zmienia rozmiar pętli modalnej.
afx_msg void OnEnterSizeMove();
Uwagi
Ta metoda odbiera WM_ENTERSIZEMOVE
powiadomienie opisane w zestawie Windows SDK.
Okno wprowadza ruchomą lub rozmiarową pętlę modalną, gdy użytkownik kliknie pasek tytułu okna lub obramowanie rozmiaru albo gdy okno przekazuje WM_SYSCOMMAND
komunikat do CWnd::DefWindowProc
funkcji i parametr wParam tego komunikatu określa SC_MOVE
lub SC_SIZE
.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnEraseBkgnd
Struktura wywołuje tę funkcję składową, gdy CWnd
tło obiektu wymaga wymazywania (na przykład w przypadku zmiany rozmiaru).
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
Parametry
pDC
Określa obiekt kontekstu urządzenia.
Wartość zwracana
Nonzero, jeśli wymazuje tło; w przeciwnym razie 0.
Uwagi
Jest wywoływany w celu przygotowania unieważnionego regionu do malowania.
Domyślna implementacja usuwa tło przy użyciu pędzla tła klasy okna określonej przez hbrBackground
składową struktury klasy okien.
Jeśli element członkowski hbrBackground
to NULL
, zastąpiona wersja OnEraseBkgnd
elementu powinna wymazać kolor tła. Twoja wersja powinna również wyrównać początek zamierzonego pędzla ze CWnd
współrzędnymi, wywołując UnrealizeObject
najpierw szczotkę, a następnie wybierając szczotkę.
Przesłonięcia OnEraseBkgnd
powinny zwracać niezerowe w odpowiedzi na WM_ERASEBKGND
to, czy przetwarza komunikat i usuwa tło. Oznacza to, że nie jest wymagane żadne dalsze wymazywanie. Jeśli zwróci wartość 0, okno pozostanie oznaczone jako wymagające wymazywania. (Zazwyczaj oznacza to, że fErase
element członkowski PAINTSTRUCT
struktury będzie TRUE
.)
System Windows zakłada, że tło jest obliczane z trybem MM_TEXT
mapowania. Jeśli kontekst urządzenia korzysta z dowolnego innego trybu mapowania, wymazany obszar może nie znajdować się w widocznej części obszaru klienta.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnExitMenuLoop
Struktura wywołuje tę funkcję składową, gdy pętla modalna menu została zakończona.
afx_msg void OnExitMenuLoop(BOOL bIsTrackPopupMenu);
Parametry
bIsTrackPopupMenu
Określa, czy zaangażowane menu jest menu podręczne. Jeśli funkcja zakończy się pomyślnie, ma wartość niezerową; w przeciwnym razie 0.
Uwagi
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnExitSizeMove
Struktura wywołuje tę funkcję składową raz po zakończeniu ruchu lub zmiany rozmiaru pętli modalnej w oknie, którego dotyczy problem.
afx_msg void OnExitSizeMove();
Uwagi
Ta metoda odbiera WM_EXITSIZEMOVE
powiadomienie opisane w zestawie Windows SDK.
Okno wprowadza ruchomą lub zmieniającą rozmiar pętli modalnej, gdy użytkownik kliknie pasek tytułu okna lub obramowanie rozmiaru albo gdy okno przekazuje WM_SYSCOMMAND
komunikat do CWnd::DefWindowProc
funkcji i wParam
parametr tego komunikatu określa SC_MOVE
lub SC_SIZE
.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnFontChange
Wszystkie okna najwyższego poziomu w systemie otrzymują wywołanie OnFontChange
ze struktury po zmianie puli zasobów czcionek przez aplikację.
afx_msg void OnFontChange();
Uwagi
Aplikacja, która dodaje lub usuwa czcionki z systemu (na przykład za pośrednictwem AddFontResource
funkcji systemu RemoveFontResource
Windows), powinna wysłać WM_FONTCHANGE
komunikat do wszystkich okien najwyższego poziomu.
Aby wysłać ten komunikat, użyj SendMessage
funkcji systemu Windows z parametrem ustawionym hWnd
na HWND_BROADCAST
.
CWnd::OnGetDlgCode
Wywoływana dla kontrolki, aby kontrolka mogła przetwarzać dane wejściowe strzałki i TAB.
afx_msg UINT OnGetDlgCode();
Wartość zwracana
Co najmniej jedna z następujących wartości wskazująca typ danych wejściowych procesów aplikacji:
DLGC_BUTTON
Przycisk (ogólny).DLGC_DEFPUSHBUTTON
Domyślny przycisk pushbutton.DLGC_HASSETSEL
EM_SETSEL
Wiadomości.DLGC_UNDEFPUSHBUTTON
Brak domyślnego przetwarzania pushbutton. (Aplikacja może używać tej flagi z elementemDLGC_BUTTON
, aby wskazać, że przetwarza dane wejściowe przycisku, ale korzysta z systemu do domyślnego przetwarzania pushbutton).DLGC_RADIOBUTTON
Przycisk radiowy.DLGC_STATIC
Kontrolka statyczna.DLGC_WANTALLKEYS
Wszystkie dane wejściowe klawiatury.DLGC_WANTARROWS
strzałek.DLGC_WANTCHARS
WM_CHAR
Wiadomości.DLGC_WANTMESSAGE
Wszystkie dane wejściowe klawiatury. Aplikacja przekazuje ten komunikat do kontrolki.DLGC_WANTTAB
TAB.
Uwagi
Zwykle system Windows obsługuje wszystkie dane wejściowe strzałki i TAB do kontrolki CWnd
. Przez zastąpienie OnGetDlgCode
kontrolki CWnd
może wybrać określony typ danych wejściowych do przetworzenia.
Funkcje domyślne OnGetDlgCode
dla wstępnie zdefiniowanych klas kontrolek zwracają kod odpowiedni dla każdej klasy.
CWnd::OnGetMinMaxInfo
Struktura wywołuje tę funkcję składową za każdym razem, gdy system Windows musi znać zmaksymalizowane położenie lub wymiary albo minimalny lub maksymalny rozmiar śledzenia.
afx_msg void OnGetMinMaxInfo(MINMAXINFO* lpMMI);
Parametry
lpMMI
Wskazuje strukturę zawierającą MINMAXINFO
informacje o zmaksymalizowanym rozmiarze i położeniu okna oraz minimalnym i maksymalnym rozmiarze śledzenia. Aby uzyskać więcej informacji na temat tej struktury, zobacz MINMAXINFO
strukturę.
Uwagi
Zmaksymalizowany rozmiar to rozmiar okna, gdy jego obramowania są w pełni rozszerzone. Maksymalny rozmiar śledzenia okna to największy rozmiar okna, który można osiągnąć za pomocą obramowań do rozmiaru okna. Minimalny rozmiar śledzenia okna to najmniejszy rozmiar okna, który można osiągnąć przy użyciu obramowań w celu rozmiaru okna.
System Windows wypełnia tablicę punktów określających wartości domyślne dla różnych pozycji i wymiarów. Aplikacja może zmienić te wartości w pliku OnGetMinMaxInfo
.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnHelp
Obsługuje pomoc F1 w aplikacji (przy użyciu bieżącego kontekstu).
afx_msg void OnHelp();
Uwagi
Aby uzyskać więcej informacji, zobacz CWinApp::OnHelp
.
CWnd::OnHelpFinder
ID_HELP_FINDER
Obsługuje polecenia iID_DEFAULT_HELP
.
afx_msg void OnHelpFinder();
Uwagi
Aby uzyskać więcej informacji, zobacz CWinApp::OnHelpFinder
.
CWnd::OnHelpIndex
ID_HELP_INDEX
Obsługuje polecenie i udostępnia domyślny temat Pomocy.
afx_msg void OnHelpIndex();
Uwagi
Aby uzyskać więcej informacji, zobacz CWinApp::OnHelpIndex
.
CWnd::OnHelpInfo
Wywoływana przez platformę, gdy użytkownik naciska F1.
afx_msg BOOL OnHelpInfo(HELPINFO* lpHelpInfo);
Parametry
lpHelpInfo
Wskaźnik do struktury zawierającej HELPINFO
informacje o elemencie menu, kontrolce, oknie dialogowym lub oknie, dla którego jest żądana pomoc.
Wartość zwracana
Zwraca wartość TRUE
, jeśli okno ma fokus klawiatury lub jeśli menu jest aktywne w oknie. Jeśli żadne okno nie ma fokusu klawiatury, zwraca wartość FALSE
.
Uwagi
Jeśli menu jest aktywne po naciśnięciu F1, WM_HELP
jest wysyłane do okna skojarzonego z menu. W przeciwnym razie WM_HELP
zostanie wysłane do okna z fokusem klawiatury. Jeśli żadne okno nie ma fokusu klawiatury, WM_HELP
jest wysyłane do aktualnie aktywnego okna.
CWnd::OnHelpUsing
ID_HELP_USING
Obsługuje polecenie .
afx_msg void OnHelpUsing();
Uwagi
Aby uzyskać więcej informacji, zobacz CWinApp::OnHelpUsing
.
CWnd::OnHotKey
Platforma wywołuje tę funkcję składową, gdy użytkownik naciska hot o całej systemie.
afx_msg void OnHotKey(
UINT nHotKeyId,
UINT nKey1,
UINT nKey2);
Parametry
nHotKeyId
[in] Identyfikator klucza gorącego, który wygenerował komunikat. Jeśli komunikat został wygenerowany przez klucz gorący zdefiniowany przez system, ten parametr będzie jedną z następujących wartości:
IDHOT_SNAPDESKTOP
- Naciśnięty hot desktop został naciśnięty.IDHOT_SNAPWINDOW
- Naciśnięty został hot okna przystawki.
nKey1
[in] Kombinacja bitowa (OR) flag wskazująca, które zostały naciskane w połączeniu z nKey2
określonym przez parametr . Możliwe wartości to:
MOD_ALT
— Wciśnięcie ALT zostało zatrzymane.MOD_CONTROL
- Wciśnięty CTRL został zatrzymany.MOD_SHIFT
- Wciśnięty SHIFT został przyciśnięty.MOD_WIN
— Wciśnięcie SYSTEMU WINDOWS zostało zatrzymane. Te klucze są oznaczone logo systemu Microsoft Windows.
nKey2
[in] Kod klucza wirtualnego klucza gorącego.
Uwagi
Ta metoda odbiera WM_HOTKEY
powiadomienie opisane w zestawie Windows SDK. Ten komunikat jest umieszczany w górnej części kolejki komunikatów skojarzonej z wątkiem, który zarejestrował klucz gorący. Użyj funkcji , RegisterHotKey
aby zarejestrować klucz gorący dla całego systemu.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnHScroll
Platforma wywołuje tę funkcję składową, gdy użytkownik kliknie poziomy pasek przewijania okna.
afx_msg void OnHScroll(
UINT nSBCode,
UINT nPos,
CScrollBar* pScrollBar);
Parametry
nSBCode
Określa kod paska przewijania wskazujący żądanie przewijania użytkownika. Ten parametr może być jednym z następujących parametrów:
SB_LEFT
Przewiń w lewo.SB_ENDSCROLL
Zakończ przewijanie.SB_LINELEFT
Przewiń w lewo.SB_LINERIGHT
Przewiń w prawo.SB_PAGELEFT
Przewiń jedną stronę w lewo.SB_PAGERIGHT
Przewiń jedną stronę w prawo.SB_RIGHT
Przewiń w prawo.SB_THUMBPOSITION
Przewiń do pozycji bezwzględnej. Bieżące położenie jest określane przeznPos
parametr .SB_THUMBTRACK
Przeciągnij pole przewijania do określonej pozycji. Bieżące położenie jest określane przeznPos
parametr .
nPos
Określa położenie pola przewijania, jeśli kod paska przewijania to SB_THUMBPOSITION
lub SB_THUMBTRACK
; w przeciwnym razie nie jest używany. W zależności od początkowego zakresu nPos
przewijania może być ujemny i w razie potrzeby rzutować do elementu int
.
pScrollBar
Jeśli komunikat przewijania pochodzi z kontrolki paska przewijania, zawiera wskaźnik do kontrolki. Jeśli użytkownik kliknął pasek przewijania okna, ten parametr to NULL
. Wskaźnik może być tymczasowy i nie powinien być przechowywany do późniejszego użycia.
Uwagi
Kod paska przewijania SB_THUMBTRACK
jest zwykle używany przez aplikacje, które przesyłają opinię podczas przeciągania pola przewijania.
Jeśli aplikacja przewija zawartość kontrolowaną przez pasek przewijania, musi również zresetować położenie pola przewijania za pomocą funkcji składowej SetScrollPos
.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
Przykład
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
Funkcja składowa właściciela OnHScrollClipboard
schowka jest wywoływana przez przeglądarkę Schowka, gdy dane Schowka mają CF_OWNERDISPLAY
format i istnieje zdarzenie na pasku przewijania w poziomie przeglądarki Schowka.
afx_msg void OnHScrollClipboard(
CWnd* pClipAppWnd,
UINT nSBCode,
UINT nPos);
Parametry
pClipAppWnd
Określa wskaźnik do okna Schowka przeglądarki. Wskaźnik może być tymczasowy i nie powinien być przechowywany do późniejszego użycia.
nSBCode
Określa jeden z następujących kodów paska przewijania w słowach o niskiej kolejności:
SB_BOTTOM
Przewiń do prawej dolnej części.SB_ENDSCROLL
Zakończ przewijanie.SB_LINEDOWN
Przewiń jedną linię w dół.SB_LINEUP
Przewiń jeden wiersz w górę.SB_PAGEDOWN
Przewiń jedną stronę w dół.SB_PAGEUP
Przewiń jedną stronę w górę.SB_THUMBPOSITION
Przewiń do położenia bezwzględnego. Bieżące położenie jest podane w elemencienPos
.SB_TOP
Przewiń do lewej górnej części.
nPos
Zawiera położenie pola przewijania, jeśli kod paska przewijania to SB_THUMBPOSITION
; w przeciwnym razie nie jest używany.
Uwagi
Właściciel powinien przewinąć obraz Schowka, unieważnić odpowiednią sekcję i zaktualizować wartości paska przewijania.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnIconEraseBkgnd
Struktura wywołuje tę funkcję składową dla zminimalizowanego (kultowego) CWnd
obiektu, gdy należy wypełnić tło ikony przed malowaniem ikony.
afx_msg void OnIconEraseBkgnd(CDC* pDC);
Parametry
pDC
Określa obiekt kontekstu urządzenia ikony. Może być tymczasowy i nie powinien być przechowywany do późniejszego użycia.
Uwagi
CWnd
odbiera to wywołanie tylko wtedy, gdy dla domyślnej implementacji okna jest zdefiniowana ikona klasy; w przeciwnym razie OnEraseBkgnd
jest wywoływana.
Funkcja DefWindowProc
składowa wypełnia tło ikony pędzlem tła okna nadrzędnego.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnInitMenu
Platforma wywołuje tę funkcję składową, gdy menu stanie się aktywne.
afx_msg void OnInitMenu(CMenu* pMenu);
Parametry
pMenu
Określa menu, które ma zostać zainicjowane. Może być tymczasowy i nie powinien być przechowywany do późniejszego użycia.
Uwagi
OnInitMenu
jest wywoływany, gdy użytkownik kliknie element na pasku menu lub naciśnie menu. Zastąpi tę funkcję składową, aby zmodyfikować menu przed wyświetleniem.
OnInitMenu
jest wywoływany tylko raz, gdy menu jest najpierw dostępne (na przykład gdy użytkownik kliknie element na pasku menu). Ta metoda nie udostępnia informacji o elementach menu. Gdy użytkownik przechodzi do elementów w menu (na przykład przez przeniesienie myszy między kilkoma elementami menu), funkcja nie jest ponownie wywoływana. Gdy użytkownik zakończy działanie z menu (na przykład po kliknięciu obszaru klienta aplikacji), a później kliknie element na pasku menu, funkcja zostanie wywołana ponownie.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnInitMenuPopup
Platforma wywołuje tę funkcję składową, gdy menu podręczne ma stać się aktywne.
afx_msg void OnInitMenuPopup(
CMenu* pPopupMenu,
UINT nIndex,
BOOL bSysMenu);
Parametry
pPopupMenu
Określa obiekt menu podręcznego. Może być tymczasowy i nie powinien być przechowywany do późniejszego użycia.
nIndex
Określa indeks menu podręcznego w menu głównym.
bSysMenu
TRUE
jeśli menu podręczne jest menu kontrolki; w przeciwnym razie FALSE
.
Uwagi
Dzięki temu aplikacja może zmodyfikować menu podręczne przed wyświetleniem bez zmiany całego menu.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnInputDeviceChange
Platforma wywołuje tę funkcję składową po dodaniu lub usunięciu urządzenia we/wy z systemu.
afx_msg void OnInputDeviceChange(unsigned short uFlag);
Parametry
uFlag
[in] Ta flaga może zawierać następujące wartości:
GIDC_ARRIVAL
— Nowe urządzenie zostało dodane do systemu.GIDC_REMOVAL
— Urządzenie zostało usunięte z systemu.
Uwagi
Ta metoda odbiera WM_INPUT_DEVICE_CHANGE
powiadomienie opisane w zestawie Windows SDK. Jest to ogólny komunikat urządzenia wejściowego.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnInputLangChange
Struktura wywołuje ten element członkowski dla najbardziej dotkniętego okna po zmianie języka wejściowego aplikacji.
afx_msg void OnInputLangChange(
UINT nCharSet,
UINT nLocaleId);
Parametry
nCharSet
[in] Zestaw znaków nowego ustawienia regionalnego. Aby uzyskać więcej informacji, zobacz lfCharSet
parametr LOGFONT
struktury.
nLocaleId
[in] Wejściowy identyfikator ustawień regionalnych. Aby uzyskać więcej informacji, zobacz Stałe i ciągi identyfikatora języka.
Uwagi
Ta metoda odbiera WM_INPUTLANGCHANGE
komunikat powiadomienia opisany w zestawie WINDOWS SDK.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnInputLangChangeRequest
Platforma wywołuje ten element członkowski okna z fokusem, gdy użytkownik wybierze nowy język wejściowy.
afx_msg void OnInputLangChangeRequest(
UINT nFlags,
UINT nLocaleId);
Parametry
nFlags
[in] Bitowa kombinacja flag wskazujących nowe ustawienia regionalne została wybrana z poprzednich lub następnych ustawień regionalnych na zainstalowanej liście ustawień regionalnych lub że nowy układ klawiatury wejściowej ustawień regionalnych może być używany z zestawem znaków systemowych. Możliwe wartości to INPUTLANGCHANGE_BACKWARD
, INPUTLANGCHANGE_FORWARD
i INPUTLANGCHANGE_SYSCHARSET
.
nLocaleId
[in] Wejściowy identyfikator ustawień regionalnych. Aby uzyskać więcej informacji, zobacz Stałe i ciągi identyfikatora języka.
Uwagi
Ta metoda odbiera WM_INPUTLANGCHANGEREQUEST
komunikat powiadomienia opisany w zestawie WINDOWS SDK. Ten komunikat jest publikowany, gdy użytkownik wybierze nowy język wejściowy z kluczem dostępu określonym w aplikacji panelu sterowania klawiatury lub ze wskaźnika na pasku zadań systemowych.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnKeyDown
Struktura wywołuje tę funkcję składową po naciśnięciu niesystemowego.
afx_msg void OnKeyDown(
UINT nChar,
UINT nRepCnt,
UINT nFlags);
Parametry
nChar
Określa kod klucza wirtualnego danego klucza. Aby uzyskać listę standardowych kodów kluczy wirtualnych, zobacz Winuser.h
nRepCnt
Powtórz liczbę (liczba powtórzeń naciśnięcia w wyniku przytrzymywania klucza przez użytkownika).
nFlags
Określa kod skanowania, kod przejścia klucza, poprzedni stan klucza i kod kontekstu, jak pokazano na poniższej liście:
Wartość | Opis |
---|---|
0-7 | Skanuj kod (wartość zależna od producenta OEM). |
8 | Klucz rozszerzony, taki jak klucz funkcji lub klucz na klawiaturze liczbowej (1, jeśli jest to klucz rozszerzony). |
9-10 | Nie używany. |
11-12 | Używane wewnętrznie przez system Windows. |
13 | Kod kontekstu (1, jeśli ALT jest przytrzymyany podczas naciśnięcia; w przeciwnym razie 0). |
14 | Poprzedni stan klucza (1, jeśli klucz nie działa przed wywołaniem, 0, jeśli klucz jest w górę). |
15 | Stan przejścia (1, jeśli klucz jest zwalniany, 0, jeśli jest naciśnięty). |
W przypadku komunikatu WM_KEYDOWN
bit przejścia klucza (bit 15) to 0, a bit kontekstu (bit 13) to 0.
Uwagi
Niesystemowy to klawiatury, który jest naciskany, gdy ALT nie jest naciskany lub klawiatury, który jest naciskany, gdy CWnd
ma fokus wejściowy.
Ze względu na automatyczne powtarzanie może wystąpić więcej niż jedno OnKeyDown
wywołanie funkcji, zanim zostanie wykonane wywołanie funkcji składowej OnKeyUp
. Bit wskazujący poprzedni stan klucza może służyć do określenia, czy OnKeyDown
wywołanie jest pierwszym przejściem w dół, czy powtarzającym się przejściem w dół.
W przypadku klawiatur IBM Enhanced 101- i 102-klawiszowych rozszerzone są właściwymi ALT i prawymi CTRL w głównej sekcji klawiatury; INS, DEL, HOME, END, PAGE UP, PAGE DOWN i arrow w klastrach po lewej stronie klawiatury liczbowej; oraz ukośnik (/) i ENTER w klawiaturze liczbowej. Niektóre inne klawiatury mogą obsługiwać bit rozszerzonego w systemie nFlags
.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnKeyUp
Platforma wywołuje tę funkcję składową po wydaniu klucza niesystemowego.
afx_msg void OnKeyUp(
UINT nChar,
UINT nRepCnt,
UINT nFlags);
Parametry
nChar
Określa kod klucza wirtualnego danego klucza. Aby uzyskać listę standardowych kodów kluczy wirtualnych, zobacz Winuser.h
nRepCnt
Powtórz liczbę (liczba powtórzeń naciśnięcia w wyniku przytrzymywania klucza przez użytkownika).
nFlags
Określa kod skanowania, kod przejścia klucza, poprzedni stan klucza i kod kontekstu, jak pokazano na poniższej liście:
Wartość | Opis |
---|---|
0-7 | Skanuj kod (wartość zależna od producenta OEM). Niski bajt wyrazu o wysokiej kolejności. |
8 | Klucz rozszerzony, taki jak klucz funkcji lub klucz na klawiaturze liczbowej (1, jeśli jest to klucz rozszerzony; w przeciwnym razie 0). |
9-10 | Nie używany. |
11-12 | Używane wewnętrznie przez system Windows. |
13 | Kod kontekstu (1, jeśli ALT jest przytrzymyany podczas naciśnięcia; w przeciwnym razie 0). |
14 | Poprzedni stan klucza (1, jeśli klucz nie działa przed wywołaniem, 0, jeśli klucz jest w górę). |
15 | Stan przejścia (1, jeśli klucz jest zwalniany, 0, jeśli jest naciśnięty). |
W przypadku komunikatu WM_KEYUP
bit przejścia klucza (bit 15) to 1, a bit kontekstu (bit 13) to 0.
Uwagi
Niesystemowy to klawiatury, który jest naciskany, gdy ALT nie jest naciskany lub klawiatury, który jest naciskany, gdy CWnd
ma fokus wejściowy.
W przypadku klawiatur IBM Enhanced 101- i 102-klawiszowych rozszerzone są właściwymi ALT i prawymi CTRL w głównej sekcji klawiatury; INS, DEL, HOME, END, PAGE UP, PAGE DOWN i arrow w klastrach po lewej stronie klawiatury liczbowej; oraz ukośnik (/) i ENTER w klawiaturze liczbowej. Niektóre inne klawiatury mogą obsługiwać bit rozszerzonego w nFlags.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnKillFocus
Struktura wywołuje tę funkcję składową bezpośrednio przed utratą fokusu wejściowego.
afx_msg void OnKillFocus(CWnd* pNewWnd);
Parametry
pNewWnd
Określa wskaźnik do okna, który odbiera fokus wejściowy (może być NULL
lub może być tymczasowy).
Uwagi
CWnd
Jeśli obiekt wyświetla daszek, karetki powinny zostać zniszczone w tym momencie.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnLButtonDblClk
Platforma wywołuje tę funkcję składową, gdy użytkownik kliknie dwukrotnie lewy przycisk myszy.
afx_msg void OnLButtonDblClk(
UINT nFlags,
CPoint point);
Parametry
nFlags
Wskazuje, czy różne klucze wirtualne nie działają. Ten parametr może być dowolną kombinacją następujących wartości:
MK_CONTROL
Ustaw, jeśli CTRL nie działa.MK_LBUTTON
Ustaw, jeśli lewy przycisk myszy jest wyłączony.MK_MBUTTON
Ustaw, jeśli środkowy przycisk myszy nie działa.MK_RBUTTON
Ustaw, jeśli prawy przycisk myszy jest wyłączony.MK_SHIFT
Ustaw, czy SHIFT nie działa.
point
Określa współrzędną x i y kursora. Te współrzędne są zawsze względne względem lewego górnego rogu okna.
Uwagi
Tylko okna, które mają CS_DBLCLKS
WNDCLASS
styl, będą odbierać OnLButtonDblClk
wywołania. Jest to ustawienie domyślne dla okien klas programu Microsoft Foundation. System Windows wywołuje wywołania OnLButtonDblClk
, gdy użytkownik naciska, zwalnia, a następnie ponownie naciska lewy przycisk myszy w ramach dwukrotnego limitu czasu. Dwukrotne kliknięcie lewego przycisku myszy powoduje wygenerowanie czterech zdarzeń: WM_LBUTTONDOWN
, WM_LBUTTONUP
komunikatów, WM_LBUTTONDBLCLK
wywołania i innego WM_LBUTTONUP
komunikatu po zwolnieniu przycisku.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnLButtonDown
Platforma wywołuje tę funkcję składową, gdy użytkownik naciska lewy przycisk myszy.
afx_msg void OnLButtonDown(
UINT nFlags,
CPoint point);
Parametry
nFlags
Wskazuje, czy różne klucze wirtualne nie działają. Ten parametr może być dowolną kombinacją następujących wartości:
MK_CONTROL
Ustaw, jeśli CTRL nie działa.MK_LBUTTON
Ustaw, jeśli lewy przycisk myszy jest wyłączony.MK_MBUTTON
Ustaw, jeśli środkowy przycisk myszy nie działa.MK_RBUTTON
Ustaw, jeśli prawy przycisk myszy jest wyłączony.MK_SHIFT
Ustaw, czy SHIFT nie działa.
point
Określa współrzędną x i y kursora. Te współrzędne są zawsze względne względem lewego górnego rogu okna.
Uwagi
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnLButtonUp
Platforma wywołuje tę funkcję składową, gdy użytkownik zwolni lewy przycisk myszy.
afx_msg void OnLButtonUp(
UINT nFlags,
CPoint point);
Parametry
nFlags
Wskazuje, czy różne klucze wirtualne nie działają. Ten parametr może być dowolną kombinacją następujących wartości:
MK_CONTROL
Ustaw, jeśli CTRL nie działa.MK_MBUTTON
Ustaw, jeśli środkowy przycisk myszy nie działa.MK_RBUTTON
Ustaw, jeśli prawy przycisk myszy jest wyłączony.MK_SHIFT
Ustaw, czy SHIFT nie działa.
point
Określa współrzędną x i y kursora. Te współrzędne są zawsze względne względem lewego górnego rogu okna.
Uwagi
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnMButtonDblClk
Platforma wywołuje tę funkcję składową, gdy użytkownik kliknie dwukrotnie środkowy przycisk myszy.
afx_msg void OnMButtonDblClk(
UINT nFlags,
CPoint point);
Parametry
nFlags
Wskazuje, czy różne klucze wirtualne nie działają. Ten parametr może być dowolną kombinacją następujących wartości:
MK_CONTROL
Ustaw, jeśli CTRL nie działa.MK_LBUTTON
Ustaw, jeśli lewy przycisk myszy jest wyłączony.MK_MBUTTON
Ustaw, jeśli środkowy przycisk myszy nie działa.MK_RBUTTON
Ustaw, jeśli prawy przycisk myszy jest wyłączony.MK_SHIFT
Ustaw, czy SHIFT nie działa.
point
Określa współrzędną x i y kursora. Te współrzędne są zawsze względne względem lewego górnego rogu okna.
Uwagi
Tylko okna, które mają CS_DBLCLKS
WNDCLASS
styl, będą odbierać OnMButtonDblClk
wywołania. Jest to ustawienie domyślne dla wszystkich okien klas programu Microsoft Foundation. System Windows generuje wywołanie OnMButtonDblClk
, gdy użytkownik naciska, zwalnia, a następnie ponownie naciska środkowy przycisk myszy w ramach limitu czasu dwukrotnego kliknięcia systemu. Dwukrotne kliknięcie środkowego przycisku myszy powoduje wygenerowanie czterech zdarzeń: WM_MBUTTONDOWN
i WM_MBUTTONUP
komunikatów, wywołania i innego WM_MBUTTONUP
komunikatuWM_MBUTTONDBLCLK
.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnMButtonDown
Struktura wywołuje tę funkcję składową, gdy użytkownik naciska środkowy przycisk myszy.
afx_msg void OnMButtonDown(
UINT nFlags,
CPoint point);
Parametry
nFlags
Wskazuje, czy różne klucze wirtualne nie działają. Ten parametr może być dowolną kombinacją następujących wartości:
MK_CONTROL
Ustaw, jeśli CTRL nie działa.MK_LBUTTON
Ustaw, jeśli lewy przycisk myszy jest wyłączony.MK_MBUTTON
Ustaw, jeśli środkowy przycisk myszy nie działa.MK_RBUTTON
Ustaw, jeśli prawy przycisk myszy jest wyłączony.MK_SHIFT
Ustaw, czy SHIFT nie działa.
point
Określa współrzędną x i y kursora. Te współrzędne są zawsze względne względem lewego górnego rogu okna.
Uwagi
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnMButtonUp
Platforma wywołuje tę funkcję składową, gdy użytkownik zwolni środkowy przycisk myszy.
afx_msg void OnMButtonUp(
UINT nFlags,
CPoint point);
Parametry
nFlags
Wskazuje, czy różne klucze wirtualne nie działają. Ten parametr może być dowolną kombinacją następujących wartości:
MK_CONTROL
Ustaw, jeśli CTRL nie działa.MK_LBUTTON
Ustaw, jeśli lewy przycisk myszy jest wyłączony.MK_RBUTTON
Ustaw, jeśli prawy przycisk myszy jest wyłączony.MK_SHIFT
Ustaw, czy SHIFT nie działa.
point
Określa współrzędną x i y kursora. Te współrzędne są zawsze względne względem lewego górnego rogu okna.
Uwagi
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnMDIActivate
Struktura wywołuje tę funkcję składową dla dezaktywowanego okna podrzędnego i aktywowanego okna podrzędnego.
afx_msg void OnMDIActivate(
BOOL bActivate,
CWnd* pActivateWnd,
CWnd* pDeactivateWnd);
Parametry
bActivate
TRUE
jeśli element podrzędny jest aktywowany i FALSE
czy jest dezaktywowany.
pActivateWnd
Zawiera wskaźnik do okna podrzędnego MDI do aktywowania. Po odebraniu przez okno pActivateWnd
podrzędne MDI zawiera wskaźnik do aktywowanego okna podrzędnego. Ten wskaźnik może być tymczasowy i nie powinien być przechowywany do późniejszego użycia.
pDeactivateWnd
Zawiera wskaźnik do dezaktywowanego okna podrzędnego MDI. Ten wskaźnik może być tymczasowy i nie powinien być przechowywany do późniejszego użycia.
Uwagi
Okno podrzędne MDI jest aktywowane niezależnie od okna ramki MDI. Gdy ramka stanie się aktywna, okno podrzędne, które zostało ostatnio aktywowane za OnMDIActivate
pomocą wywołania, odbiera komunikat, aby narysować aktywną ramkę WM_NCACTIVATE
okna i pasek podpisu, ale nie odbiera innego OnMDIActivate
wywołania.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnMeasureItem
Struktura wywołuje tę funkcję składową przez platformę dla właściciela przycisku rysowania właściciela, pola kombi, pola listy lub elementu menu podczas tworzenia kontrolki.
afx_msg void OnMeasureItem(
int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStruct);
Parametry
nIDCtl
Identyfikator kontrolki.
lpMeasureItemStruct
Wskazuje strukturę danych zawierającą MEASUREITEMSTRUCT
wymiary kontrolki rysowania właściciela.
Uwagi
Przesłoń tę funkcję składową i wypełnij MEASUREITEMSTRUCT
strukturę danych wskazywaną przez lpMeasureItemStruct
i zwracaj. Informuje to system Windows o wymiarach kontrolki i umożliwia systemowi Windows prawidłowe przetwarzanie interakcji użytkownika z kontrolką.
Jeśli pole listy lub pole kombi zostanie utworzone za pomocą LBS_OWNERDRAWVARIABLE
stylu lub CBS_OWNERDRAWVARIABLE
, struktura wywołuje tę funkcję dla właściciela dla każdego elementu w kontrolce. W przeciwnym razie ta funkcja jest wywoływana raz.
System Windows inicjuje wywołanie OnMeasureItem
elementu dla właściciela pól kombi i pól listy utworzonych przy użyciu OWNERDRAWFIXED
stylu przed wysłaniem WM_INITDIALOG
wiadomości. W związku z tym, gdy właściciel otrzyma to wywołanie, system Windows nie określił jeszcze wysokości i szerokości czcionki używanej w kontrolce; wywołania funkcji i obliczenia, które wymagają tych wartości, powinny wystąpić w funkcji głównej aplikacji lub biblioteki.
Jeśli mierzony element jest obiektem CMenu
lub CComboBox
, CListBox
MeasureItem
wywoływana jest funkcja wirtualna odpowiedniej klasy. Zastąpi MeasureItem
funkcję składową odpowiedniej klasy kontrolki, aby obliczyć i ustawić rozmiar każdego elementu.
OnMeasureItem
zostanie wywołana tylko wtedy, gdy klasa kontrolki zostanie utworzona w czasie wykonywania lub zostanie utworzona za pomocą LBS_OWNERDRAWVARIABLE
stylu lub CBS_OWNERDRAWVARIABLE
. Jeśli kontrolka zostanie utworzona przez edytor okien dialogowych, OnMeasureItem
nie zostanie wywołana. Dzieje się tak, ponieważ WM_MEASUREITEM
komunikat jest wysyłany na wczesnym etapie procesu tworzenia kontrolki. W przypadku podklasy przy użyciu klasy DDX_Control
, SubclassDlgItem
lub SubclassWindow
podklasy zwykle występuje po procesie tworzenia. W związku z tym nie ma możliwości obsługi komunikatu WM_MEASUREITEM
w funkcji kontrolki OnChildNotify
, który jest mechanizmem MFC używa do implementowania ON_WM_MEASUREITEM_REFLECT
.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnMenuChar
Platforma wywołuje tę funkcję składową, gdy użytkownik naciska znak mnemonic menu, który nie pasuje do żadnego ze wstępnie zdefiniowanych mnemonics w bieżącym menu.
afx_msg LRESULT OnMenuChar(
UINT nChar,
UINT nFlags,
CMenu* pMenu);
Parametry
nChar
W zależności od ustawień kompilacji określa znak ANSI lub Unicode naciśnięty przez użytkownika.
nFlags
Zawiera flagę MF_POPUP
, jeśli menu jest menu podręczne. Zawiera flagę MF_SYSMENU
, jeśli menu jest menu Kontrolka.
pMenu
Zawiera wskaźnik do wybranego CMenu
elementu . Wskaźnik może być tymczasowy i nie powinien być przechowywany.
Wartość zwracana
Wyraz zwracanej wartości o wysokiej kolejności powinien zawierać jeden z następujących kodów poleceń:
Wartość | Opis |
---|---|
0 | Informuje system Windows o odrzuceniu znaku, który użytkownik nacisnął i tworzy krótki sygnał dźwiękowy na głośniku systemowym. |
1 | Informuje system Windows o zamknięciu bieżącego menu. |
2 | Informuje system Windows, że słowo zwracane o niskiej kolejności zawiera numer elementu dla określonego elementu. Ten element jest wybierany przez system Windows. |
Wyraz o niskiej kolejności jest ignorowany, jeśli wyraz o wysokiej kolejności zawiera wartość 0 lub 1. Aplikacje powinny przetwarzać ten komunikat, gdy klucze akceleratora (skrótu) są używane do wybierania map bitowych umieszczonych w menu.
Uwagi
Jest wysyłany do CWnd
tego, który jest właścicielem menu. OnMenuChar
jest również wywoływany, gdy użytkownik naciska ALT i dowolny inny, nawet jeśli nie odpowiada znakowi mnemonic. W takim przypadku pMenu
wskazuje menu należące CWnd
do elementu i nFlags
ma wartość 0.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnMenuDrag
Struktura wywołuje tę funkcję składową bieżącego menu przeciągania i upuszczania, gdy użytkownik zacznie przeciągać element menu.
afx_msg UINT OnMenuDrag(
UINT nPos,
CMenu* pMenu);
Parametry
nPos
[in] Położenie indeksu elementu menu po rozpoczęciu operacji przeciągania.
pMenu
[in] Wskaźnik do CMenu
obiektu zawierającego element menu.
Wartość zwracana
Wartość zwracana | Znaczenie |
---|---|
MND_CONTINUE |
Menu powinno pozostać aktywne. Jeśli mysz zostanie zwolniona, powinna zostać zignorowana. |
MND_ENDMENU |
Menu powinno zostać zakończone. |
Uwagi
Ta metoda odbiera WM_MENUDRAG
powiadomienie opisane w zestawie Windows SDK.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnMenuGetObject
Struktura wywołuje tę funkcję składową bieżącego menu przeciągania i upuszczania, gdy kursor myszy przechodzi do elementu menu lub przenosi się z środka elementu do góry lub dołu elementu.
afx_msg UINT OnMenuGetObject(MENUGETOBJECTINFO* pMenuGetObjectInfo);
Parametry
pMenu
[in] Wskaźnik do struktury zawierającej MENUGETOBJECTINFO
informacje o menu przeciągania i upuszczania, na którym znajduje się kursor myszy.
Wartość zwracana
Wartość zwracana | Znaczenie |
---|---|
MNGO_NOERROR |
Wskaźnik interfejsu obsługujący operacje upuszczania i przeciągania jest zwracany w elemencie pvObj MENUGETOBJECTINFO członkowskim struktury. Obecnie obsługiwany jest tylko IDropTarget interfejs. |
MNGO_NOINTERFACE |
Nie jest obsługiwany interfejs upuszczania i przeciągania. |
Uwagi
Ta metoda odbiera WM_MENUGETOBJECT
powiadomienie opisane w zestawie Windows SDK.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnMenuRButtonUp
Struktura wywołuje tę funkcję składową, gdy użytkownik zwolni prawy przycisk myszy, gdy kursor znajduje się w elemencie menu.
afx_msg void OnMenuRButtonUp(
UINT nPos,
CMenu* pMenu);
Parametry
nPos
[in] Położenie indeksu elementu menu po zwolnieniu prawego przycisku myszy.
pMenu
[in] Wskaźnik do CMenu
obiektu zawierającego element menu.
Uwagi
Ta metoda odbiera WM_MENURBUTTONUP
powiadomienie opisane w zestawie Windows SDK. Komunikat WM_MENURBUTTONUP
umożliwia aplikacji podanie menu kontekstowego dla elementu menu określonego w komunikacie.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnMenuSelect
CWnd
Jeśli obiekt jest skojarzony z menu, jest wywoływany przez platformę, OnMenuSelect
gdy użytkownik wybierze element menu.
afx_msg void OnMenuSelect(
UINT nItemID,
UINT nFlags,
HMENU hSysMenu);
Parametry
nItemID
Identyfikuje wybrany element. Jeśli wybrany element jest elementem menu, nItemID
zawiera identyfikator elementu menu. Jeśli wybrany element zawiera menu podręczne, nItemID
zawiera indeks menu podręcznego i hSysMenu
zawiera uchwyt menu głównego (klikniętego).
nFlags
Zawiera kombinację następujących flag menu:
MF_BITMAP
Element jest mapą bitową.MF_CHECKED
Element jest zaznaczony.MF_DISABLED
Element jest wyłączony.MF_GRAYED
Element jest wygaszony.MF_MOUSESELECT
Element został wybrany za pomocą myszy.MF_OWNERDRAW
Element jest elementem rysowania właściciela.MF_POPUP
Element zawiera menu podręczne.MF_SEPARATOR
Element jest separatorem elementów menu.MF_SYSMENU
Element jest zawarty w menu Kontrolka.
hSysMenu
Jeśli nFlags
element zawiera MF_SYSMENU
, identyfikuje menu skojarzone z komunikatem. Jeśli nFlags
element zawiera MF_POPUP
, identyfikuje uchwyt menu głównego. Jeśli nFlags
nie zawiera ani MF_SYSMENU
MF_POPUP
, nie jest on używany.
Uwagi
Jeśli nFlags
zawiera 0xFFFF i hSysMenu
zawiera 0, system Windows zamknął menu, ponieważ użytkownik nacisnął ESC lub kliknął poza menu.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnMouseActivate
Struktura wywołuje tę funkcję składową, gdy kursor znajduje się w nieaktywnym oknie, a użytkownik naciska przycisk myszy.
afx_msg int OnMouseActivate(
CWnd* pDesktopWnd,
UINT nHitTest,
UINT message);
Parametry
pDesktopWnd
Określa wskaźnik do okna nadrzędnego najwyższego poziomu aktywowanego okna. Wskaźnik może być tymczasowy i nie powinien być przechowywany.
nHitTest
Określa kod obszaru testu trafień . Test trafienia to test określający lokalizację kursora.
message
Określa numer komunikatu myszy.
Wartość zwracana
Określa, czy uaktywnić CWnd
i czy odrzucić zdarzenie myszy. Musi to być jedna z następujących wartości:
MA_ACTIVATE
UaktywnijCWnd
obiekt.MA_NOACTIVATE
Nie aktywujCWnd
obiektu.MA_ACTIVATEANDEAT
AktywujCWnd
obiekt i odrzuć zdarzenie myszy.MA_NOACTIVATEANDEAT
Nie aktywujCWnd
obiektu i odrzuć zdarzenie myszy.
Uwagi
Domyślna implementacja przekazuje ten komunikat do okna nadrzędnego przed rozpoczęciem przetwarzania. Jeśli okno nadrzędne zwróci wartość TRUE, przetwarzanie zostanie zatrzymane.
Aby uzyskać opis poszczególnych kodów obszaru testu trafień, zobacz funkcję składową OnNcHitTest
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
Przykład
// 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
Struktura wywołuje tę funkcję składową, gdy kursor znajduje się na obszarze klienta okna przez okres określony w poprzednim wywołaniu metody TrackMouseEvent
.
afx_msg void OnMouseHover(
UINT nFlags,
CPoint point);
Parametry
nFlags
[in] Kombinacja bitowa (OR) flag wskazująca, które modyfikujące są naciskane. Na przykład flaga MK_CONTROL
wskazuje, że naciśnięcie CTRL.
point
[in] CPoint
Obiekt określający x
współrzędne i y
kursora względem lewego górnego rogu obszaru klienta.
Uwagi
Ta metoda odbiera WM_MOUSEHOVER
powiadomienie opisane w zestawie Windows SDK.
Parametr nFlags
może być kombinacją kluczy modyfikatora wymienionych w poniższej tabeli. Aby uzyskać więcej informacji, zobacz Informacje o danych wejściowych myszy.
Klucz modyfikatora | opis |
---|---|
MK_CONTROL |
Naciśnięcie CTRL. |
MK_LBUTTON |
Lewy przycisk myszy jest naciskany. |
MK_MBUTTON |
Środkowy przycisk myszy jest naciśnięty. |
MK_RBUTTON |
Naciśnięty jest prawy przycisk myszy. |
MK_SHIFT |
Naciśnięcie SHIFT. |
MK_XBUTTON1 |
Naciśnięty XBUTTON1 jest przycisk myszy narzędzia Microsoft IntelliMouse. |
MK_XBUTTON2 |
Naciśnięty XBUTTON2 jest przycisk myszy narzędzia Microsoft IntelliMouse. |
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnMouseHWheel
Struktura wywołuje ten element członkowski, gdy kółko przewijania myszy jest przechylone lub obracane.
afx_msg void OnMouseHWheel(
UINT nFlags,
short zDelta,
CPoint pt);
Parametry
nFlags
[in] Kombinacja bitowa (OR) flag wskazująca, które modyfikujące są naciskane. Na przykład flaga MK_CONTROL
wskazuje, że naciśnięcie CTRL. Aby uzyskać listę flag, zobacz podpozycję "Parametry komunikatu" w temacie About Mouse Input (Informacje o danych wejściowych myszy).
zDelta
[in] Wskazuje odległość obracania koła, wyrażoną w wielokrotnościach lub podziałach WHEEL_DELTA
, czyli 120. Wartość dodatnia wskazuje, że koło zostało obrócone po prawej stronie; wartość ujemna wskazuje, że koło zostało obrócone z lewej strony.
pt
[in] CPoint
Obiekt określający x
współrzędne i y
kursora względem lewego górnego rogu obszaru klienta.
Uwagi
Ta metoda odbiera WM_MOUSEHWHEEL
komunikat powiadomienia opisany w zestawie WINDOWS SDK. Ten komunikat jest wysyłany do okna, które ma fokus, gdy kółko przewijania myszy jest przechylone lub obracane.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnMouseLeave
Struktura wywołuje tę funkcję składową, gdy kursor opuszcza obszar klienta okna określonego w poprzednim wywołaniu metody TrackMouseEvent
.
afx_msg void OnMouseLeave();
Uwagi
Ta metoda odbiera WM_MOUSELEAVE
powiadomienie opisane w zestawie Windows SDK.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnMouseMove
Struktura wywołuje tę funkcję składową po przesunięciu kursora myszy.
afx_msg void OnMouseMove(
UINT nFlags,
CPoint point);
Parametry
nFlags
Wskazuje, czy różne klucze wirtualne nie działają. Ten parametr może być dowolną kombinacją następujących wartości:
MK_CONTROL
Ustaw, jeśli CTRL nie działa.MK_LBUTTON
Ustaw, jeśli lewy przycisk myszy jest wyłączony.MK_MBUTTON
Ustaw, jeśli środkowy przycisk myszy nie działa.MK_RBUTTON
Ustaw, jeśli prawy przycisk myszy jest wyłączony.MK_SHIFT
Ustaw, czy SHIFT nie działa.
point
Określa współrzędną x i y kursora. Te współrzędne są zawsze względne względem lewego górnego rogu okna.
Uwagi
Jeśli mysz nie zostanie przechwycona, WM_MOUSEMOVE
komunikat zostanie odebrany przez CWnd
obiekt pod kursorem myszy. W przeciwnym razie komunikat przechodzi do okna, które przechwyciło mysz.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnMouseWheel
Struktura wywołuje tę funkcję składową, gdy użytkownik obraca koło myszy i napotyka następny nacięcie koła.
afx_msg BOOL OnMouseWheel(
UINT nFlags,
short zDelta,
CPoint pt);
Parametry
nFlags
Wskazuje, czy różne klucze wirtualne nie działają. Ten parametr może być dowolną kombinacją następujących wartości:
MK_CONTROL
Ustaw, jeśli CTRL nie działa.MK_LBUTTON
Ustaw, jeśli lewy przycisk myszy jest wyłączony.MK_MBUTTON
Ustaw, jeśli środkowy przycisk myszy nie działa.MK_RBUTTON
Ustaw, jeśli prawy przycisk myszy jest wyłączony.MK_SHIFT
Ustaw, czy SHIFT nie działa.
zDelta
Wskazuje obróconą odległość. Wartość jest wyrażona zDelta
w wielokrotnościach lub podziałach WHEEL_DELTA
wartości , czyli 120. Wartość mniejsza niż zero wskazuje obracanie z powrotem (w kierunku użytkownika), podczas gdy wartość większa niż zero wskazuje obracanie się do przodu (z dala od użytkownika). Użytkownik może odwrócić tę odpowiedź, zmieniając ustawienie Wheel w oprogramowaniu myszy. Zobacz uwagi, aby uzyskać więcej informacji na temat tego parametru.
pt
Określa współrzędną x i y kursora. Te współrzędne są zawsze względne względem lewego górnego rogu ekranu.
Wartość zwracana
Niezerowe, jeśli jest włączone przewijanie kółka myszy; w przeciwnym razie 0.
Uwagi
Jeśli nie zostanie zastąpiona, OnMouseWheel
wywołaj wartość domyślną .WM_MOUSEWHEEL
System Windows automatycznie kieruje komunikat do okna sterującego lub podrzędnego, które ma fokus. Funkcja DefWindowProc
Win32 propaguje komunikat w górę łańcucha nadrzędnego do okna, które go przetwarza.
Parametr zDelta
jest wielokrotną wartością WHEEL_DELTA
, która jest ustawiona na wartość 120. Ta wartość jest progiem dla akcji, która ma zostać podjęta, a jedna taka akcja (na przykład przewijanie do przodu jednego wycięcie) powinna wystąpić dla każdej różnicy.
WHEEL_DELTA
został ustawiony na 120, aby umożliwić precyzyjne koła rozdzielczości, takie jak swobodnie obracające się koło bez wycięć. Bardziej precyzyjne koło rozpoznawania wysyła więcej komunikatów na rotację, ale każdy komunikat ma mniejszą wartość różnicową. Aby użyć takiego koła, dodaj wartości przychodzące zDelta
do momentu WHEEL_DELTA
osiągnięcia (aby uzyskać tę samą odpowiedź dla danego obrotu różnicowego) lub przewiń częściowe linie w odpowiedzi na częstsze komunikaty. Możesz również wybrać stopień szczegółowości przewijania i gromadzić różnice do momentu WHEEL_DELTA
osiągnięcia.
Zastąp tę funkcję składową, aby zapewnić własne zachowanie przewijania kółkiem myszy.
Uwaga
OnMouseWheel
obsługuje komunikaty dla systemu Windows NT 4.0 i nowszych wersji. W przypadku obsługi komunikatów systemu Windows 95/98 lub Windows NT 3.51 użyj polecenia OnRegisteredMouseWheel
.
CWnd::OnMove
Struktura wywołuje tę funkcję składową po przeniesieniu CWnd
obiektu.
afx_msg void OnMove(
int x,
int y);
Parametry
x
Określa nową lokalizację współrzędnych x lewego górnego rogu obszaru klienta. Ta nowa lokalizacja jest podawana we współrzędnych ekranu dla nakładających się okien podręcznych i współrzędnych klienta nadrzędnego dla okien podrzędnych.
y
Określa nową współrzędną y w lewym górnym rogu obszaru klienta. Ta nowa lokalizacja jest podawana we współrzędnych ekranu dla nakładających się okien podręcznych i współrzędnych klienta nadrzędnego dla okien podrzędnych.
Uwagi
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnMoving
Struktura wywołuje tę funkcję składową, gdy użytkownik przenosi CWnd
obiekt.
afx_msg void OnMoving(
UINT nSide,
LPRECT lpRect);
Parametry
nSide
Krawędź okna do przeniesienia.
lpRect
CRect
Adres struktury lubRECT
, która będzie zawierać współrzędne elementu.
Uwagi
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnNcActivate
Struktura wywołuje tę funkcję składową, gdy obszar niekliencki musi zostać zmieniony, aby wskazać stan aktywny lub nieaktywny.
afx_msg BOOL OnNcActivate(BOOL bActive);
Parametry
bActive
Określa, kiedy należy zmienić pasek lub ikonę podpisu, aby wskazać stan aktywny lub nieaktywny. Parametr bActive
ma TRUE
być rysowany, jeśli ma zostać narysowany aktywny podpis lub ikona. FALSE
Jest on przeznaczony dla nieaktywnego podpisu lub ikony.
Wartość zwracana
Bezzerowe, jeśli system Windows powinien kontynuować przetwarzanie domyślne; 0, aby zapobiec dezaktywowaniu paska napisów lub ikony.
Uwagi
Domyślna implementacja rysuje pasek tytułu i tekst paska tytułu w aktywnych kolorach, jeśli bActive
jest TRUE
i w nieaktywnych kolorach, jeśli bActive
ma wartość FALSE
.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnNcCalcSize
Struktura wywołuje tę funkcję składową, gdy należy obliczyć rozmiar i położenie obszaru klienta.
afx_msg void OnNcCalcSize(
BOOL bCalcValidRects,
NCCALCSIZE_PARAMS* lpncsp);
Parametry
bCalcValidRects
Określa, czy aplikacja powinna określić, która część obszaru klienta zawiera prawidłowe informacje. System Windows skopiuje prawidłowe informacje do określonego obszaru w nowym obszarze klienta. Jeśli ten parametr ma wartość TRUE, aplikacja powinna określić, która część obszaru klienta jest prawidłowa.
lpncsp
Wskazuje strukturę danych zawierającą NCCALCSIZE_PARAMS
informacje, których aplikacja może użyć do obliczenia nowego rozmiaru i położenia CWnd
prostokąta (w tym obszaru klienta, obramowań, podpisów, pasków przewijania itd.).
Uwagi
Przetwarzając ten komunikat, aplikacja może kontrolować zawartość obszaru klienta okna, gdy zmienia się rozmiar lub położenie okna.
Niezależnie od wartości bCalcValidRects
, pierwszy prostokąt w tablicy określony przez rgrc
składową NCCALCSIZE_PARAMS
struktury struktury zawiera współrzędne okna. W przypadku okna podrzędnego współrzędne są względne względem obszaru klienta okna nadrzędnego. W przypadku okien najwyższego poziomu współrzędne ekranu są współrzędnymi ekranu. Aplikacja powinna zmodyfikować rgrc[0]
prostokąt, aby odzwierciedlał rozmiar i położenie obszaru klienta.
Prostokąty rgrc[1]
i rgrc[2]
są prawidłowe tylko wtedy, gdy bCalcValidRects
ma wartość TRUE
. W takim przypadku rgrc[1]
prostokąt zawiera współrzędne okna przed jego przeniesieniem lub zmianą rozmiaru. Prostokąt rgrc[2]
zawiera współrzędne obszaru klienta okna przed przeniesieniem okna. Wszystkie współrzędne są względne względem okna nadrzędnego lub ekranu.
Domyślna implementacja oblicza rozmiar obszaru klienta na podstawie właściwości okna (obecność pasków przewijania, menu itd.) i umieszcza wynik w .lpncsp
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnNcCreate
Struktura wywołuje tę funkcję składową przed komunikatem po pierwszym utworzeniu WM_CREATE
CWnd
obiektu.
afx_msg BOOL OnNcCreate(LPCREATESTRUCT lpCreateStruct);
Parametry
lpCreateStruct
CREATESTRUCT
Wskazuje strukturę danych dla elementu CWnd
.
Wartość zwracana
Niezero, jeśli zostanie utworzony obszar niekliencki. Jest to wartość 0, jeśli wystąpi błąd; Create
funkcja zwróci failure
w tym przypadku wartość .
Uwagi
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnNcDestroy
Wywoływana przez platformę, gdy obszar niekliencki jest niszczony, i jest ostatnią funkcją składową wywoływaną podczas niszczenia okna systemu Windows.
afx_msg void OnNcDestroy();
Uwagi
Domyślna implementacja wykonuje oczyszczanie, a następnie wywołuje funkcję PostNcDestroy
wirtualnego elementu członkowskiego .
Zastąpij PostNcDestroy
, jeśli chcesz wykonać własne czyszczenie, takie jak delete this
operacja. Jeśli zastąpisz OnNcDestroy
metodę , musisz wywołać metodę OnNcDestroy
w klasie bazowej, aby upewnić się, że każda pamięć wewnętrznie przydzielona do okna zostanie zwolniona.
CWnd::OnNcHitTest
Struktura wywołuje tę funkcję składową dla CWnd
obiektu zawierającego kursor (lub CWnd
obiekt, który używał SetCapture
funkcji składowej do przechwytywania danych wejściowych myszy) za każdym razem, gdy mysz zostanie przeniesiona.
afx_msg LRESULT OnNcHitTest(CPoint point);
Parametry
point
Zawiera współrzędne x i y kursora. Te współrzędne są zawsze współrzędnymi ekranu.
Wartość zwracana
Jedna z wartości testu trafień myszy wyliczyła. Zobacz WM_NCHITTEST
listę wartości.
Uwagi
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnNcLButtonDblClk
Struktura wywołuje tę funkcję składową, gdy użytkownik dwukrotnie kliknie lewy przycisk myszy, gdy kursor znajduje się w obszarze nieklientnym CWnd
.
afx_msg void OnNcLButtonDblClk(
UINT nHitTest,
CPoint point);
Parametry
nHitTest
Określa kod testu trafień. Test trafienia to test określający lokalizację kursora. Zobacz WM_NCHITTEST
listę wartości.
point
Określa CPoint
obiekt zawierający współrzędne ekranu x i y położenia kursora. Te współrzędne są zawsze względne względem lewego górnego rogu ekranu.
Uwagi
W razie potrzeby zostanie wysłana WM_SYSCOMMAND
wiadomość.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnNcLButtonDown
Struktura wywołuje tę funkcję składową, gdy użytkownik naciska lewy przycisk myszy, gdy kursor znajduje się w obszarze nieklientowym CWnd
obiektu.
afx_msg void OnNcLButtonDown(
UINT nHitTest,
CPoint point);
Parametry
nHitTest
Określa kod testu trafień. Test trafienia to test określający lokalizację kursora. Zobacz WM_NCHITTEST
listę wartości.
point
Określa CPoint
obiekt zawierający współrzędne ekranu x i y położenia kursora. Te współrzędne są zawsze względne względem lewego górnego rogu ekranu.
Uwagi
W razie potrzeby WM_SYSCOMMAND
element jest wysyłany.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnNcLButtonUp
Struktura wywołuje tę funkcję składową, gdy użytkownik zwalnia lewy przycisk myszy, gdy kursor znajduje się w obszarze nieklientnym.
afx_msg void OnNcLButtonUp(
UINT nHitTest,
CPoint point);
Parametry
nHitTest
Określa kod testu trafień. Test trafienia to test określający lokalizację kursora. Zobacz WM_NCHITTEST
listę wartości.
point
Określa CPoint
obiekt zawierający współrzędne ekranu x i y położenia kursora. Te współrzędne są zawsze względne względem lewego górnego rogu ekranu.
Uwagi
Jeśli jest to konieczne, WM_SYSCOMMAND
zostanie wysłane.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnNcMButtonDblClk
Struktura wywołuje tę funkcję składową, gdy użytkownik kliknie dwukrotnie środkowy przycisk myszy, gdy kursor znajduje się w obszarze nieklientnym.
afx_msg void OnNcMButtonDblClk(
UINT nHitTest,
CPoint point);
Parametry
nHitTest
Określa kod testu trafień. Test trafienia to test określający lokalizację kursora.
point
Określa CPoint
obiekt zawierający współrzędne ekranu x i y położenia kursora. Te współrzędne są zawsze względne względem lewego górnego rogu ekranu.
Uwagi
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnNcMButtonDown
Struktura wywołuje tę funkcję składową, gdy użytkownik naciska środkowy przycisk myszy, gdy kursor znajduje się w obszarze nieklientnym.
afx_msg void OnNcMButtonDown(
UINT nHitTest,
CPoint point);
Parametry
nHitTest
Określa kod testu trafień. Test trafienia to test określający lokalizację kursora.
point
Określa CPoint
obiekt zawierający współrzędne ekranu x i y położenia kursora. Te współrzędne są zawsze względne względem lewego górnego rogu ekranu.
Uwagi
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnNcMButtonUp
Struktura wywołuje tę funkcję składową, gdy użytkownik zwalnia środkowy przycisk myszy, gdy kursor znajduje się w obszarze nieklientnym.
afx_msg void OnNcMButtonUp(
UINT nHitTest,
CPoint point);
Parametry
nHitTest
Określa kod testu trafień. Test trafienia to test określający lokalizację kursora.
point
Określa CPoint
obiekt zawierający współrzędne ekranu x i y położenia kursora. Te współrzędne są zawsze względne względem lewego górnego rogu ekranu.
Uwagi
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnNcMouseHover
Struktura wywołuje tę funkcję składową, gdy kursor najecha kursorem na obszar niekliencki okna przez okres określony w poprzednim wywołaniu metody TrackMouseEvent
.
afx_msg void OnNcMouseHover(
UINT nHitTest,
CPoint point);
Parametry
nHitTest
[in] Wartość testu trafień zwrócona CWnd::DefWindowProc
przez funkcję w wyniku przetworzenia komunikatu WM_NCHITTEST
.
point
[in] CPoint
Obiekt, który określa współrzędne x i y kursora względem lewego górnego rogu ekranu.
Uwagi
Ta metoda odbiera WM_NCMOUSEHOVER
powiadomienie opisane w zestawie Windows SDK.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnNcMouseLeave
Struktura wywołuje tę funkcję składową, gdy kursor opuszcza obszar nieklienta okna określonego w poprzednim wywołaniu metody TrackMouseEvent
.
afx_msg void OnNcMouseLeave();
Uwagi
Ta metoda odbiera WM_NCMOUSELEAVE
powiadomienie opisane w zestawie Windows SDK.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnNcMouseMove
Struktura wywołuje tę funkcję składową, gdy kursor jest przenoszony w obszarze nonclient.
afx_msg void OnNcMouseMove(
UINT nHitTest,
CPoint point);
Parametry
nHitTest
Określa kod testu trafień. Test trafienia to test określający lokalizację kursora.
point
Określa CPoint
obiekt zawierający współrzędne ekranu x i y położenia kursora. Te współrzędne są zawsze względne względem lewego górnego rogu ekranu.
Uwagi
W razie potrzeby zostanie wysłana WM_SYSCOMMAND
wiadomość.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnNcPaint
Struktura wywołuje tę funkcję składową, gdy obszar niekliencki musi być malowany.
afx_msg void OnNcPaint();
Uwagi
Domyślna implementacja maluje ramkę okna.
Aplikacja może zastąpić to wywołanie i malować własną niestandardową ramkę okna. Obszar wycinków jest zawsze prostokątny, nawet jeśli kształt ramki zostanie zmieniony.
CWnd::OnNcRButtonDblClk
Struktura wywołuje tę funkcję składową, gdy użytkownik kliknie dwukrotnie prawym przyciskiem myszy, gdy kursor znajduje się w obszarze nieklientnym CWnd
.
afx_msg void OnNcRButtonDblClk(
UINT nHitTest,
CPoint point);
Parametry
nHitTest
Określa kod testu trafień. Test trafienia to test określający lokalizację kursora.
point
Określa CPoint
obiekt zawierający współrzędne ekranu x i y położenia kursora. Te współrzędne są zawsze względne względem lewego górnego rogu ekranu.
Uwagi
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnNcRButtonDown
Struktura wywołuje tę funkcję składową, gdy użytkownik naciska prawy przycisk myszy, gdy kursor znajduje się w obszarze nieklientnym.
afx_msg void OnNcRButtonDown(
UINT nHitTest,
CPoint point);
Parametry
nHitTest
Określa kod testu trafień. Test trafienia to test określający lokalizację kursora.
point
Określa CPoint
obiekt zawierający współrzędne ekranu x i y położenia kursora. Te współrzędne są zawsze względne względem lewego górnego rogu ekranu.
Uwagi
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnNcRButtonUp
Struktura wywołuje tę funkcję składową, gdy użytkownik zwolni prawy przycisk myszy, gdy kursor znajduje się w obszarze nieklientnym.
afx_msg void OnNcRButtonUp(
UINT nHitTest,
CPoint point);
Parametry
nHitTest
Określa kod testu trafień. Test trafienia to test określający lokalizację kursora.
point
Określa CPoint
obiekt zawierający współrzędne ekranu x i y położenia kursora. Te współrzędne są zawsze względne względem lewego górnego rogu ekranu.
Uwagi
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnNcRenderingChanged
Struktura wywołuje ten element członkowski, gdy zasady renderowania dla obszaru nieklientowego uległy zmianie.
afx_msg void OnNcRenderingChanged(BOOL bIsRendering);
Parametry
bIsRendering
[in] TRUE
jeśli renderowanie programu Desktop Window Manager (DWM) jest włączone dla obszaru innego niż klient okna; FALSE
jeśli renderowanie jest wyłączone.
Uwagi
Ta metoda odbiera WM_DWMNCRENDERINGCHANGED
powiadomienie opisane w zestawie Windows SDK.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnNcXButtonDblClk
Platforma wywołuje tę funkcję składową, gdy użytkownik kliknie XBUTTON1
dwukrotnie lub XBUTTON2
gdy kursor znajduje się w obszarze innym niż klient okna.
void OnNcXButtonDblClk(
short nHitTest,
UINT nButton,
CPoint point);
Parametry
nHitTest
[in] Wartość testu trafień zwrócona CWnd::DefWindowProc
przez funkcję w wyniku przetworzenia komunikatu WM_NCHITTEST
.
nButton
[in] Wartość XBUTTON1
, jeśli pierwszy przycisk Microsoft Intellimouse X jest dwukrotnie kliknięty lub XBUTTON2
jeśli drugi przycisk X jest dwukrotnie kliknięty.
point
[in] CPoint
Obiekt określający x
współrzędne i y
kursora względem lewego górnego rogu obszaru klienta.
Uwagi
Ta metoda odbiera WM_XBUTTONDBLCLK
powiadomienie opisane w zestawie Windows SDK. Ta wiadomość jest publikowana w oknie zawierającym kursor. Jeśli okno przechwyciło mysz, ta wiadomość nie zostanie wysłana.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnNcXButtonDown
Struktura wywołuje tę funkcję składową, gdy użytkownik naciska XBUTTON1
lub XBUTTON2
myszy, gdy kursor znajduje się w obszarze innym niż klient okna.
afx_msg void OnNcXButtonDown(
short nHitTest,
UINT nButton,
CPoint point);
Parametry
nHitTest
[in] Wartość testu trafień zwrócona CWnd::DefWindowProc
przez funkcję w wyniku przetworzenia komunikatu WM_NCHITTEST
.
nButton
[in] Wartość w przypadku naciśnięcia XBUTTON1
pierwszego przycisku myszy X lub XBUTTON2
naciśnięcia drugiego przycisku X.
point
[in] CPoint
Obiekt określający x
współrzędne i y
kursora względem lewego górnego rogu ekranu.
Uwagi
Ta metoda odbiera WM_NCXBUTTONDOWN
powiadomienie opisane w zestawie Windows SDK. Ta wiadomość jest publikowana w oknie zawierającym kursor. Jeśli okno przechwyciło mysz, ta wiadomość nie zostanie wysłana.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnNcXButtonUp
Struktura wywołuje tę funkcję składową, gdy użytkownik zwalnia XBUTTON1
lub XBUTTON2
myszy, gdy kursor znajduje się w obszarze innym niż klient okna.
afx_msg void OnNcXButtonUp(
short nHitTest,
UINT nButton,
CPoint point);
Parametry
nHitTest
[in] Wartość testu trafień zwrócona CWnd::DefWindowProc
przez funkcję w wyniku przetworzenia komunikatu WM_NCHITTEST
.
nButton
[in] Wartość XBUTTON1
w przypadku zwolnienia pierwszego przycisku myszy X lub XBUTTON2
zwolnienia drugiego przycisku X.
point
[in] CPoint
Obiekt, który określa współrzędne x i y kursora względem lewego górnego rogu ekranu.
Uwagi
Ta metoda odbiera WM_NCXBUTTONUP
powiadomienie opisane w zestawie Windows SDK. Ta wiadomość jest publikowana w oknie zawierającym kursor. Jeśli okno przechwyciło mysz, ta wiadomość nie zostanie wysłana.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnNextMenu
Struktura wywołuje tę funkcję składową, gdy strzałki w prawo lub w lewo jest używany do przełączania się między paskiem menu a menu systemowym.
afx_msg void OnNextMenu(
UINT nKey,
LPMDINEXTMENU lpMdiNextMenu);
Parametry
nKey
[in] Bitowa kombinacja (OR
) flag wskazująca, które modyfikujące są naciskane. Na przykład flaga MK_CONTROL
wskazuje, że naciśnięcie CTRL. Aby uzyskać listę flag, zobacz podpozycję "Parametry komunikatu" w temacie About Mouse Input (Informacje o danych wejściowych myszy).
lpMdiNextMenu
[in] Wskaźnik do struktury zawierającej MDINEXTMENU
informacje o menu do aktywowania.
Uwagi
Ta metoda odbiera WM_UNINITMENUPOPUP
powiadomienie opisane w zestawie Windows SDK. W odpowiedzi na ten komunikat aplikacja może ustawić hmenuNext
element członkowski struktury, aby określić menu do przełączenia, oraz hwndNext
element członkowskiMDINEXTMENU
, aby określić okno do odbierania komunikatów powiadomień menu.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnNotify
Struktura wywołuje tę funkcję składową, aby poinformować okno nadrzędne kontrolki o wystąpieniu zdarzenia w kontrolce lub że kontrolka wymaga pewnego rodzaju informacji.
virtual BOOL OnNotify(
WPARAM wParam,
LPARAM lParam,
LRESULT* pResult);
Parametry
wParam
Identyfikuje kontrolkę, która wysyła komunikat, jeśli komunikat pochodzi z kontrolki. wParam
W przeciwnym razie wartość to 0.
lParam
Wskaźnik do struktury komunikatu powiadomienia (NMHDR
), która zawiera kod powiadomienia i dodatkowe informacje. W przypadku niektórych komunikatów powiadomień ten parametr wskazuje większą strukturę, która ma NMHDR
strukturę jako pierwszy element członkowski.
pResult
Wskaźnik do zmiennej LRESULT
, w której ma być przechowywany kod wyniku, jeśli komunikat jest obsługiwany.
Wartość zwracana
Aplikacja zwraca wartość niezerową, jeśli przetwarza ten komunikat; w przeciwnym razie 0.
Uwagi
OnNotify
przetwarza mapę komunikatów w celu powiadomienia o kontrolce.
Zastąp tę funkcję składową w klasie pochodnej WM_NOTIFY
, aby obsłużyć komunikat. Przesłonięcia nie będą przetwarzać mapy komunikatów, chyba że zostanie wywołana klasa OnNotify
bazowa.
Aby uzyskać więcej informacji na temat komunikatu WM_NOTIFY
, zobacz Informacje techniczne 61 (TN061) ON_NOTIFY
i WM_NOTIFY
komunikaty. Możesz również zainteresować się powiązanymi tematami opisanymi w temacie Tematy sterowania i TN062, odbicie komunikatu dla kontrolek systemu Windows.
CWnd::OnNotifyFormat
Struktura wywołuje tę funkcję składową, aby określić, czy bieżące okno akceptuje struktury ANSI lub Unicode w WM_NOTIFY
komunikacie powiadomienia.
afx_msg UINT OnNotifyFormat(
CWnd* pWnd,
UINT nCommand);
Parametry
pWnd
[in] Wskaźnik do CWnd
obiektu reprezentującego okno wysyłające WM_NOTIFY
komunikat. Ten parametr jest wskaźnikiem do kontrolki, jeśli nCommand
parametr ma NF_QUERY
wartość , lub wskaźnik do okna nadrzędnego kontrolki, jeśli nCommand
ma wartość NF_REQUERY
.
nCommand
[in] Wartość polecenia, która specjalizuje się w WM_NOTIFY
komunikacie. Możliwe wartości to:
NF_QUERY
— Komunikat jest zapytaniem określającym, czy struktury ANSI lub Unicode powinny być używane wWM_NOTIFY
komunikatach. Ten komunikat jest wysyłany z kontrolki do okna nadrzędnego podczas tworzenia kontrolki i w odpowiedzi naNF_REQUERY
formularz tego komunikatu.NF_REQUERY
— Komunikat jest żądaniem wysłaniaNF_QUERY
formularza tej wiadomości do okna nadrzędnego kontrolki. To żądanie jest wysyłane z okna nadrzędnego i prosi kontrolkę o ponowne zapytanie elementu nadrzędnego o typ struktury do użycia wWM_NOTIFY
komunikatach.nCommand
Jeśli parametr maNF_REQUERY
wartość , zwracana wartość jest wynikiem operacji ponownego zapytania.
Wartość zwracana
Wartość zwracana | Znaczenie |
---|---|
NFR_ANSI |
Struktury ANSI powinny być używane w WM_NOTIFY komunikatach wysyłanych przez kontrolkę. |
NFR_UNICODE |
Struktury Unicode powinny być używane w WM_NOTIFY komunikatach wysyłanych przez kontrolkę. |
0 | Wystąpił błąd. |
Uwagi
Ta metoda odbiera WM_NOTIFYFORMAT
powiadomienie opisane w zestawie Windows SDK. WM_NOTIFY
komunikaty są wysyłane ze wspólnej kontrolki do okna nadrzędnego i z okna nadrzędnego do wspólnej kontrolki.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnPaint
Platforma wywołuje tę funkcję składową, gdy system Windows lub aplikacja wysyła żądanie przemalowania części okna aplikacji.
afx_msg void OnPaint();
Uwagi
Komunikat WM_PAINT
jest wysyłany po wywołaniu UpdateWindow
funkcji lub RedrawWindow
składowej.
Okno może odbierać wewnętrzne komunikaty malowania w wyniku wywołania RedrawWindow
funkcji składowej z zestawem RDW_INTERNALPAINT
flag. W takim przypadku okno może nie mieć regionu aktualizacji. Aplikacja powinna wywołać GetUpdateRect
funkcję składową, aby określić, czy okno ma region aktualizacji. Jeśli GetUpdateRect
zwraca wartość 0, aplikacja nie powinna wywoływać funkcji składowych BeginPaint
i EndPaint
.
Obowiązkiem aplikacji jest sprawdzenie wszelkich niezbędnych wewnętrznych przemalowania lub aktualizacji przez sprawdzenie wewnętrznych struktur danych dla każdego WM_PAINT
komunikatu, ponieważ WM_PAINT
komunikat mógł być spowodowany zarówno nieprawidłowym obszarem, jak i wywołaniem RedrawWindow
funkcji składowej z zestawem RDW_INTERNALPAINT
flag.
Wiadomość wewnętrzna WM_PAINT
jest wysyłana tylko raz przez system Windows. Po wysłaniu komunikatu wewnętrznego WM_PAINT
do okna przez UpdateWindow
funkcję składową żadne dalsze WM_PAINT
komunikaty nie będą wysyłane ani publikowane, dopóki okno nie zostanie unieważnione lub dopóki RedrawWindow
funkcja składowa nie zostanie ponownie wywołana z ustawionym flagą RDW_INTERNALPAINT
.
Aby uzyskać informacje na temat renderowania obrazu w aplikacjach dokumentów/widoków, zobacz CView::OnDraw
.
Aby uzyskać więcej informacji na temat korzystania z programu WM_Paint
, zobacz następujące tematy w zestawie Windows SDK:
CWnd::OnPaintClipboard
Funkcja składowa właściciela OnPaintClipboard
schowka jest wywoływana przez przeglądarkę Schowka, gdy właściciel Schowka umieścił dane w Schowku w CF_OWNERDISPLAY
formacie, a obszar klienta przeglądarki Schowka wymaga przemalowania.
afx_msg void OnPaintClipboard(
CWnd* pClipAppWnd,
HGLOBAL hPaintStruct);
Parametry
pClipAppWnd
Określa wskaźnik do okna Schowek-aplikacja. Wskaźnik może być tymczasowy i nie powinien być przechowywany do późniejszego użycia.
hPaintStruct
PAINTSTRUCT
Określa strukturę danych, która definiuje część obszaru klienta do malowania.
Uwagi
Aby określić, czy cały obszar klienta, czy tylko jego część wymaga przemalowania, właściciel Schowka musi porównać wymiary obszaru rysunku podane w rcpaint
elemencie członkowskim PAINTSTRUCT
struktury do wymiarów podanych w najnowszym OnSizeClipboard
wywołaniu funkcji składowej.
OnPaintClipboard
należy użyć GlobalLock
funkcji systemu Windows, aby zablokować pamięć zawierającą PAINTSTRUCT
strukturę danych i odblokować tę pamięć za pomocą GlobalUnlock
funkcji systemu Windows przed jej zamknięciem.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnPaletteChanged
Struktura wywołuje tę funkcję składową dla wszystkich okien najwyższego poziomu po oknie z fokusem wejściowym zdał sobie sprawę z palety logicznej, zmieniając w ten sposób paletę systemową.
afx_msg void OnPaletteChanged(CWnd* pFocusWnd);
Parametry
pFocusWnd
Określa wskaźnik do okna, które spowodowało zmianę palety systemowej. Wskaźnik może być tymczasowy i nie powinien być przechowywany.
Uwagi
To wywołanie umożliwia okno bez fokusu wejściowego, który używa palety kolorów do realizacji palet logicznych i aktualizowania obszaru klienta.
Funkcja OnPaletteChanged
składowa jest wywoływana dla wszystkich okien najwyższego poziomu i nakładających się okien, w tym tych, które zmieniły paletę systemową i spowodowały wysłanie komunikatu WM_PALETTECHANGED
. Jeśli jakiekolwiek okno podrzędne używa palety kolorów, ten komunikat musi zostać przekazany do niego.
Aby uniknąć nieskończonej pętli, okno nie powinno zdawać sobie sprawy z palety, chyba że określa, że pFocusWnd
nie zawiera wskaźnika do siebie.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnPaletteIsChanging
Struktura wywołuje tę funkcję składową, aby poinformować aplikacje, że aplikacja będzie realizować paletę logiczną.
afx_msg void OnPaletteIsChanging(CWnd* pRealizeWnd);
Parametry
pRealizeWnd
Określa okno, które ma zrealizować paletę logiczną.
Uwagi
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnParentNotify
Funkcja składowa elementu nadrzędnego OnParentNotify
jest wywoływana przez strukturę, gdy jego okno podrzędne jest tworzone lub niszczone, albo gdy użytkownik kliknie przycisk myszy, gdy kursor znajduje się nad oknem podrzędnym.
afx_msg void OnParentNotify(
UINT message,
LPARAM lParam);
Parametry
message
Określa zdarzenie, dla którego element nadrzędny jest powiadamiany i identyfikator okna podrzędnego. Zdarzenie jest wyrazem o niskiej kolejności .message
Jeśli zdarzenie to WM_CREATE
lub WM_DESTROY
, wyraz o wysokiej kolejności message
jest identyfikatorem okna podrzędnego; w przeciwnym razie wyraz o wysokiej kolejności jest niezdefiniowany. Zdarzenie (słowo message
o niskiej kolejności ) może być dowolną z następujących wartości:
WM_CREATE
Tworzone jest okno podrzędne.WM_DESTROY
Okno podrzędne jest niszczone.WM_LBUTTONDOWN
Użytkownik umieścił kursor myszy nad oknem podrzędnym i kliknął lewy przycisk myszy.WM_MBUTTONDOWN
Użytkownik umieścił kursor myszy nad oknem podrzędnym i kliknął środkowy przycisk myszy.WM_RBUTTONDOWN
Użytkownik umieścił kursor myszy nad oknem podrzędnym i kliknął prawy przycisk myszy.
lParam
Jeśli zdarzenie (słowo o niskiej kolejności) message
to WM_CREATE
lub WM_DESTROY
, lParam
określa uchwyt okna okna okna; w przeciwnym razie lParam
zawiera współrzędne x i y kursora. Współrzędna x znajduje się w wyrazie o niskiej kolejności, a współrzędna y znajduje się w wyrazie o wysokiej kolejności.
Uwagi
Po utworzeniu okna podrzędnego system wywołuje OnParentNotify
tuż przed funkcją składową Create
, która tworzy okno. Gdy okno podrzędne zostanie zniszczone, wywołania OnParentNotify
systemowe przed rozpoczęciem przetwarzania zostaną zniszczone okno.
OnParentNotify
parametr jest wywoływany dla wszystkich okien nadrzędnych okna podrzędnego, w tym okna najwyższego poziomu.
Wszystkie okna podrzędne z wyjątkiem tych, które mają WS_EX_NOPARENTNOTIFY
styl, wysyłają tę wiadomość do okien nadrzędnych. Domyślnie okna podrzędne w oknie dialogowym mają WS_EX_NOPARENTNOTIFY
styl, chyba że okno podrzędne zostało utworzone bez tego stylu przez wywołanie funkcji składowej CreateEx
.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnPowerBroadcast
Platforma wywołuje tę funkcję składową, gdy wystąpi zdarzenie zarządzania energią.
afx_msg UINT OnPowerBroadcast(
UINT nPowerEvent,
UINT nEventData);
Parametry
nPowerEvent
[in] Zdarzenie zarządzania energią.
nEventData
[in] Dane specyficzne dla zdarzenia.
Wartość zwracana
Jeśli zdarzenie jest żądaniem, wróć TRUE
, aby udzielić żądania lub BROADCAST_QUERY_DENY
odmówić żądania.
Uwagi
Ta metoda odbiera WM_POWERBROADCAST
komunikat opisany w zestawie Windows SDK.
Parametr nPowerEvent
określa zdarzenia, takie jak zasilanie baterii jest niskie, stan zasilania został zmieniony, uprawnienie do wstrzymania operacji jest żądane lub odrzucone, operacja jest wznawiana automatycznie po zdarzeniu, system zawiesza działanie lub operacja jest wznawiana po zawieszeniu. Parametr nEventData
jest zwykle nieużytny. Aby uzyskać więcej informacji, zobacz wParam
parametry i lParam
komunikatu WM_POWERBROADCAST
.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnQueryDragIcon
Struktura wywołuje tę funkcję składową przez zminimalizowane (kultowe) okno, które nie ma ikony zdefiniowanej dla jej klasy.
afx_msg HCURSOR OnQueryDragIcon();
Wartość zwracana
Podwójna wartość zawierająca uchwyt kursora lub ikony w wyrazie o niskiej kolejności. Kursor lub ikona muszą być zgodne z rozdzielczością sterownika wyświetlania. Jeśli aplikacja zwróci NULL
wartość , system wyświetli domyślny kursor. Domyślna wartość zwracana to NULL
.
Uwagi
System wykonuje to wywołanie w celu uzyskania kursora do wyświetlenia, gdy użytkownik przeciąga zminimalizowane okno. Jeśli aplikacja zwraca uchwyt ikony lub kursora, system konwertuje go na czarno-biały. Jeśli aplikacja zwróci uchwyt, uchwyt musi zidentyfikować kursor monochromatyczny lub ikonę zgodną z rozdzielczością sterownika wyświetlania. Aplikacja może wywołać CWinApp::LoadCursor
funkcje członkowskie lub CWinApp::LoadIcon
, aby załadować kursor lub ikonę z zasobów w pliku wykonywalnym i uzyskać ten uchwyt.
CWnd::OnQueryEndSession
Platforma wywołuje tę funkcję składową, gdy użytkownik zdecyduje się zakończyć sesję systemu Windows lub gdy aplikacja wywołuje ExitWindows
funkcję systemu Windows.
afx_msg BOOL OnQueryEndSession();
Wartość zwracana
Nonzero, jeśli aplikacja może być wygodnie zamknięta; w przeciwnym razie 0.
Uwagi
Jeśli jakakolwiek aplikacja zwróci wartość 0, sesja systemu Windows nie zostanie zakończona. System Windows zatrzymuje wywoływanie OnQueryEndSession
, gdy tylko jedna aplikacja zwróci wartość 0 i wysyła WM_ENDSESSION
komunikat z wartością parametru FALSE
dla dowolnej aplikacji, która już zwróciła wartość niezerową.
CWnd::OnQueryNewPalette
Struktura wywołuje tę funkcję składową, gdy CWnd
obiekt ma otrzymać fokus wejściowy, co daje CWnd
możliwość realizacji palety logicznej podczas odbierania fokusu.
afx_msg BOOL OnQueryNewPalette();
Wartość zwracana
Nonzero, jeśli CWnd
zdaje sobie sprawę z palety logicznej; w przeciwnym razie 0.
CWnd::OnQueryOpen
Struktura wywołuje tę funkcję składową, gdy CWnd
obiekt jest zminimalizowany, a użytkownik żąda CWnd
przywrócenia do jego rozmiaru i położenia premiimizowanego.
afx_msg BOOL OnQueryOpen();
Wartość zwracana
Nonzero, jeśli można otworzyć ikonę lub 0, aby zapobiec otwarciu ikony.
Uwagi
W programie OnQueryOpen
CWnd
nie należy wykonywać żadnych akcji, które spowodują zmianę aktywacji lub fokusu (na przykład utworzenie okna dialogowego).
CWnd::OnQueryUIState
Wywoływana w celu pobrania stanu interfejsu użytkownika dla okna.
afx_msg UINT OnQueryUIState();
Wartość zwracana
Wartość zwracana jest NULL
, jeśli wskaźniki fokusu i akceleratory klawiatury są widoczne. W przeciwnym razie wartość zwracana może być co najmniej jedną z następujących wartości:
UISF_HIDEFOCUS
Wskaźniki fokusu są ukryte.UISF_HIDEACCEL
Akceleratory klawiatury są ukryte.UISF_ACTIVE
Windows XP: Kontrolka powinna być rysowana w stylu używanym do aktywnych kontrolek.
Uwagi
Ta funkcja składowa emuluje funkcjonalność komunikatu WM_QUERYUISTATE
zgodnie z opisem w zestawie WINDOWS SDK.
CWnd::OnRawInput
Struktura wywołuje tę funkcję składową, gdy bieżące okno pobiera nieprzetworzone dane wejściowe.
afx_msg void OnRawInput(
UINT nInputCode,
HRAWINPUT hRawInput);
Parametry
nInputCode
[in] Kod wejściowy wskazujący, czy dane wejściowe wystąpiły, gdy aplikacja znajdowała się na pierwszym planie, czy nie. W obu przypadkach aplikacja musi wywołać metodę CWnd::DefWindowProc
, aby system mógł przeprowadzić oczyszczanie. Ten parametr może być jedną z następujących wartości:
RIM_INPUT
— Dane wejściowe wystąpiły, gdy aplikacja znajdowała się na pierwszym planie.RIM_INPUTSINK
— Dane wejściowe wystąpiły, gdy aplikacja nie znajdowała się na pierwszym planie.
hRawInput
[in] Dojmij do RAWINPUT
struktury zawierającej nieprzetworzone dane wejściowe z urządzenia.
Uwagi
Ta metoda odbiera WM_INPUT
powiadomienie opisane w zestawie Windows SDK.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnRButtonDblClk
Platforma wywołuje tę funkcję składową, gdy użytkownik kliknie dwukrotnie prawym przyciskiem myszy.
afx_msg void OnRButtonDblClk(
UINT nFlags,
CPoint point);
Parametry
nFlags
Wskazuje, czy różne klucze wirtualne nie działają. Ten parametr może być dowolną kombinacją następujących wartości:
MK_CONTROL
Ustaw, jeśli CTRL nie działa.MK_LBUTTON
Ustaw, jeśli lewy przycisk myszy jest wyłączony.MK_MBUTTON
Ustaw, jeśli środkowy przycisk myszy jest wyłączony.MK_RBUTTON
Ustaw, jeśli prawy przycisk myszy jest wyłączony.MK_SHIFT
Ustaw, czy SHIFT nie działa.
point
Określa współrzędne x i y kursora. Te współrzędne są zawsze względne względem lewego górnego rogu okna.
Uwagi
Tylko okna, które mają styl CS_DBLCLKS WNDCLASS
, mogą odbierać OnRButtonDblClk
wywołania. Jest to wartość domyślna dla okien w bibliotece klas programu Microsoft Foundation. System Windows wywołuje OnRButtonDblClk
wywołania, gdy użytkownik naciska, zwalnia, a następnie ponownie naciska prawy przycisk myszy w ramach dwukrotnego limitu czasu kliknięcia systemu. Dwukrotne kliknięcie prawego przycisku myszy powoduje wygenerowanie czterech zdarzeń: WM_RBUTTONDOWN
i WM_RBUTTONUP
komunikatów, OnRButtonDblClk
wywołania i innego komunikatu WM_RBUTTONUP po zwolnieniu przycisku.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnRButtonDown
Platforma wywołuje tę funkcję składową, gdy użytkownik naciska prawy przycisk myszy.
afx_msg void OnRButtonDown(
UINT nFlags,
CPoint point);
Parametry
nFlags
Wskazuje, czy różne klucze wirtualne nie działają. Ten parametr może być dowolną kombinacją następujących wartości:
MK_CONTROL
Ustaw, jeśli CTRL nie działa.MK_LBUTTON
Ustaw, jeśli lewy przycisk myszy jest wyłączony.MK_MBUTTON
Ustaw, jeśli środkowy przycisk myszy jest wyłączony.MK_RBUTTON
Ustaw, jeśli prawy przycisk myszy jest wyłączony.MK_SHIFT
Ustaw, czy SHIFT nie działa.
point
Określa współrzędne x i y kursora. Te współrzędne są zawsze względne względem lewego górnego rogu okna.
Uwagi
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnRButtonUp
Struktura wywołuje tę funkcję składową, gdy użytkownik zwolni prawy przycisk myszy.
afx_msg void OnRButtonUp(
UINT nFlags,
CPoint point);
Parametry
nFlags
Wskazuje, czy różne klucze wirtualne nie działają. Ten parametr może być dowolną kombinacją następujących wartości:
MK_CONTROL
Ustaw, jeśli CTRL nie działa.MK_LBUTTON
Ustaw, jeśli lewy przycisk myszy jest wyłączony.MK_MBUTTON
Ustaw, jeśli środkowy przycisk myszy jest wyłączony.MK_SHIFT
Ustaw, czy SHIFT nie działa.
point
Określa współrzędne x i y kursora. Te współrzędne są zawsze względne względem lewego górnego rogu okna.
Uwagi
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnRegisteredMouseWheel
Struktura wywołuje tę funkcję składową, gdy użytkownik obraca koło myszy i napotyka następny nacięcie koła.
afx_msg LRESULT OnRegisteredMouseWheel(
WPARAM wParam,
LPARAM lParam);
Parametry
wParam
Położenie w poziomie wskaźnika.
lParam
Położenie w pionie wskaźnika.
Wartość zwracana
W tej chwili nieistotne. Zawsze zero.
Uwagi
Jeśli nie zostanie zastąpiony, OnRegisteredMouseWheel
przekierowuje komunikat do odpowiedniego okna (okno nadrzędne z fokusem) i wywołuje procedurę WM_MOUSEWHEEL
obsługi dla tego okna.
Zastąp tę funkcję składową, aby zapewnić własny routing komunikatów lub zmienić zachowanie przewijania kół myszy.
Uwaga
OnRegisteredMouseWheel
obsługuje komunikaty dla systemów Windows 95/98 i Windows NT 3.51. W przypadku obsługi komunikatów systemu Windows NT 4.0 użyj polecenia OnMouseWheel
.
CWnd::OnRenderAllFormats
Funkcja składowa właściciela OnRenderAllFormats
schowka jest wywoływana przez platformę, gdy aplikacja właściciela jest niszczona.
afx_msg void OnRenderAllFormats();
Uwagi
Właściciel schowka powinien renderować dane we wszystkich formatach, które może wygenerować i przekazać uchwyt danych dla każdego formatu do Schowka, wywołując SetClipboardData
funkcję systemu Windows. Gwarantuje to, że Schowek zawiera prawidłowe dane, mimo że aplikacja, która renderowała dane, zostanie zniszczona. Aplikacja powinna wywołać OpenClipboard
funkcję składową przed wywołaniem SetClipboardData
funkcji systemu Windows i wywołać CloseClipboard
funkcję systemu Windows później.
CWnd::OnRenderFormat
Funkcja składowa właściciela OnRenderFormat
schowka jest wywoływana przez platformę, gdy należy renderować określony format z opóźnionym renderowaniem.
afx_msg void OnRenderFormat(UINT nFormat);
Parametry
nFormat
Określa format Schowka.
Uwagi
Odbiornik powinien renderować dane w tym formacie i przekazywać je do Schowka przez wywołanie SetClipboardData
funkcji systemu Windows.
Nie należy wywoływać funkcji składowej OpenClipboard
ani CloseClipboard
funkcji systemu Windows z poziomu programu OnRenderFormat
.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnSessionChange
Struktura wywołuje tę funkcję składową, aby powiadomić aplikację o zmianie stanu sesji.
afx_msg void OnSessionChange(
UINT nSessionState,
UINT nId);
Parametry
nSessionState
[in] Kod stanu opisuje zmianę stanu sesji.
nId
[in] Identyfikator sesji.
Uwagi
Ta metoda odbiera WM_WTSSESSION_CHANGE
powiadomienie opisane w zestawie Windows SDK.
Parametr nSessionState
określa, że sesja jest połączona lub odłączona od konsoli lub terminalu zdalnego, użytkownik zalogowany lub wyłączony, sesja jest zablokowana lub odblokowana albo sesja została zmieniona na stan sterowany zdalnie. Aby uzyskać więcej informacji, zobacz wParam
parametr komunikatu WM_WTSSESSION_CHANGE
.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnSetCursor
Struktura wywołuje tę funkcję składową, jeśli dane wejściowe myszy nie są przechwytywane, a mysz powoduje ruch kursora CWnd
w obiekcie.
afx_msg BOOL OnSetCursor(
CWnd* pWnd,
UINT nHitTest,
UINT message);
Parametry
pWnd
Określa wskaźnik do okna zawierającego kursor. Wskaźnik może być tymczasowy i nie powinien być przechowywany do późniejszego użycia.
nHitTest
Określa kod obszaru testu trafień . Test trafienia określa lokalizację kursora.
message
Określa numer komunikatu myszy.
Wartość zwracana
Niezerowe, aby zatrzymać dalsze przetwarzanie, lub 0, aby kontynuować.
Uwagi
Domyślna implementacja wywołuje okno nadrzędne OnSetCursor
przed przetworzeniem. Jeśli okno nadrzędne zwróci TRUE
wartość , dalsze przetwarzanie zostanie zatrzymane. Wywołanie okna nadrzędnego daje kontrolkę okna nadrzędnego nad ustawieniem kursora w oknie podrzędnym.
Domyślna implementacja ustawia kursor na strzałkę, jeśli nie znajduje się w obszarze klienta lub do kursora klasy zarejestrowanej, jeśli jest.
Jeśli nHitTest
jest HTERROR
i message
jest komunikatem myszy w dół, MessageBeep
funkcja składowa jest wywoływana.
Parametr komunikatu to 0, gdy CWnd
wchodzi w tryb menu.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnSetFocus
Struktura wywołuje tę funkcję składową po uzyskaniu fokusu danych wejściowych.
afx_msg void OnSetFocus(CWnd* pOldWnd);
Parametry
pOldWnd
CWnd
Zawiera obiekt, który traci fokus wejściowy (może to być NULL
). Wskaźnik może być tymczasowy i nie powinien być przechowywany do późniejszego użycia.
Uwagi
Aby wyświetlić karetki, CWnd
należy w tym momencie wywołać odpowiednie funkcje karetki.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnSettingChange
Struktura wywołuje OnSettingChange
wszystkie okna najwyższego poziomu, gdy funkcja Win32 SystemParametersInfo zmienia ustawienie całego systemu.
afx_msg void OnSettingChange(
UINT uFlags,
LPCTSTR lpszSection);
Parametry
uFlags
Gdy system wysyła komunikat w wyniku SystemParametersInfo
wywołania, ten parametr jest flagą wskazującą parametr systemowy, który został zmieniony. Aby uzyskać listę wartości, zobacz SystemParametersInfo
w zestawie Windows SDK. Gdy aplikacja wysyła komunikat, ten parametr musi mieć wartość 0.
lpszSection
Wskazuje ciąg, który określa nazwę zmienionej sekcji. (Ciąg nie zawiera nawiasów kwadratowych, które zawierają nazwę sekcji).
Uwagi
Aplikacja powinna wysłać komunikat do wszystkich okien najwyższego poziomu podczas wprowadzania zmian w parametrach systemowych, a system Windows wyśle komunikat, jeśli użytkownik zmieni ustawienia za pośrednictwem Panel sterowania.
Komunikat ON_WM_SETTINGCHANGE
jest podobny do komunikatu ON_WM_WININICHANGE
z następującą różnicą:
Użyj
ON_WM_SETTINGCHANGE
polecenia podczas uruchamiania systemu Windows NT 4.0 lub nowszego albo w systemie Windows 95/98.Użyj
ON_WININICHANGE
polecenia podczas uruchamiania systemu Windows NT 3.51 lub starszego. Ta wiadomość jest teraz przestarzała.
Na mapie komunikatów powinien znajdować się tylko jedno z tych makr. Aby napisać program, który działa zarówno dla systemów Windows 95/98, jak i Windows NT 4.0, napisz program obsługi dla programu ON_WM_SETTINGCHANGE
. W systemie Windows NT 3.51 program obsługi będzie wywoływany przez OnSettingChange
program i uFlags
zawsze będzie zero.
CWnd::OnShowWindow
Struktura wywołuje tę funkcję składową, gdy CWnd
obiekt ma zostać ukryty lub pokazany.
afx_msg void OnShowWindow(
BOOL bShow,
UINT nStatus);
Parametry
bShow
Określa, czy jest wyświetlane okno. Jest to TRUE
, jeśli okno jest wyświetlane; jest FALSE
to, czy okno jest ukryte.
nStatus
Określa stan wyświetlanego okna. Jest to 0, jeśli komunikat jest wysyłany z powodu wywołania funkcji składowej ShowWindow
; w przeciwnym razie nStatus
jest jednym z następujących:
SW_PARENTCLOSING
Okno nadrzędne zamyka (jest kultowe) lub jest ukryte okno podręczne.SW_PARENTOPENING
Zostanie otwarte okno nadrzędne (wyświetlane) lub zostanie wyświetlone okno podręczne.
Uwagi
Okno jest ukryte lub wyświetlane po ShowWindow
wywołaniu funkcji składowej, gdy nakładające się okno jest zmaksymalizowane lub przywrócone albo gdy nakładające się lub wyskakujące okno jest zamknięte (wykonane jako ikoniczne) lub otwarte (wyświetlane na ekranie). Gdy nakładające się okno zostanie zamknięte, wszystkie okna podręczne skojarzone z tym oknem są ukryte.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnSize
Struktura wywołuje tę funkcję składową po zmianie rozmiaru okna.
afx_msg void OnSize(
UINT nType,
int cx,
int cy);
Parametry
nType
Określa typ żądanej zmiany rozmiaru. Ten parametr może być jedną z następujących wartości:
SIZE_MAXIMIZED
Okno zostało zmaksymalizowane.SIZE_MINIMIZED
Okno zostało zminimalizowane.SIZE_RESTORED
Rozmiar okna został zmieniony, ale aniSIZE_MINIMIZED
SIZE_MAXIMIZED
nie ma zastosowania.SIZE_MAXHIDE
Komunikat jest wysyłany do wszystkich okien podręcznych, gdy inne okno jest zmaksymalizowane.SIZE_MAXSHOW
Wiadomość jest wysyłana do wszystkich okien podręcznych, gdy inne okno zostało przywrócone do poprzedniego rozmiaru.
cx
Określa nową szerokość obszaru klienta.
cy
Określa nową wysokość obszaru klienta.
Uwagi
SetScrollPos
Jeśli funkcja lub MoveWindow
jest wywoływana dla okna podrzędnego z OnSize
, bRedraw
parametr SetScrollPos
MoveWindow
lub powinien być niezerowy, aby spowodować CWnd
przemalowane.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
Przykład
// 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
Funkcja składowa właściciela OnSizeClipboard
schowka jest wywoływana przez przeglądarkę Schowka, gdy Schowek zawiera dane z atrybutem CF_OWNERDISPLAY
, a rozmiar obszaru klienta okna Schowka przeglądarki uległ zmianie.
afx_msg void OnSizeClipboard(
CWnd* pClipAppWnd,
HGLOBAL hRect);
Parametry
pClipAppWnd
Identyfikuje okno Schowek-aplikacja. Wskaźnik może być tymczasowy i nie powinien być przechowywany.
hRect
Identyfikuje obiekt pamięci globalnej. Obiekt pamięci zawiera RECT
strukturę danych, która określa obszar dla właściciela Schowka do malowania.
Uwagi
Funkcja OnSizeClipboard
składowa jest wywoływana przy użyciu prostokąta o wartości null (0,0,0,0) jako nowego rozmiaru, gdy aplikacja Schowka ma zostać zniszczona lub zminimalizowana. Dzięki temu właściciel Schowka może zwolnić swoje zasoby wyświetlania.
W OnSizeClipboard
programie aplikacja musi używać GlobalLock
funkcji systemu Windows, aby zablokować pamięć zawierającą RECT
strukturę danych. Aby aplikacja odblokowała tę pamięć za pomocą GlobalUnlock
funkcji systemu Windows, zanim zwróci lub zwróci kontrolę.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnSizing
Struktura wywołuje tę funkcję składową, aby wskazać, że użytkownik zmienia rozmiar prostokąta.
afx_msg void OnSizing(
UINT nSide,
LPRECT lpRect);
Parametry
nSide
Krawędź okna do przeniesienia.
lpRect
CRect
Adres struktury lubRECT
, która będzie zawierać współrzędne elementu.
Uwagi
Przetwarzając ten komunikat, aplikacja może monitorować rozmiar i położenie prostokąta przeciągania, a w razie potrzeby zmienić jego rozmiar lub położenie.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
Przykład
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
Struktura wywołuje tę funkcję składową z Menedżera wydruku przy każdym dodaniu lub usunięciu zadania z kolejki Menedżera wydruku.
afx_msg void OnSpoolerStatus(
UINT nStatus,
UINT nJobs);
Parametry
nStatus
Określa flagę SP_JOBSTATUS
.
nJobs
Określa liczbę zadań pozostałych w kolejce Menedżera wydruku.
Uwagi
To wywołanie służy tylko do celów informacyjnych.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnStyleChanged
Struktura wywołuje tę funkcję składową po SetWindowLong
zmianie co najmniej jednego stylu okna.
afx_msg void OnStyleChanged(
int nStyleType,
LPSTYLESTRUCT lpStyleStruct);
Parametry
nStyleType
Określa, czy style rozszerzone lub nieostrojone okna zostały zmienione. Ten parametr może być kombinacją następujących wartości:
GWL_EXSTYLE
Style rozszerzone okna uległy zmianie.GWL_STYLE
Niestępowane style okna uległy zmianie.
lpStyleStruct
Wskazuje strukturę zawierającą STYLESTRUCT
nowe style okna. Aplikacja może zbadać style, ale nie może ich zmienić.
Uwagi
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnStyleChanging
Struktura wywołuje tę funkcję składową, gdy SetWindowLong
funkcja zmieni co najmniej jeden styl okna.
afx_msg void OnStyleChanging(
int nStyleType,
LPSTYLESTRUCT lpStyleStruct);
Parametry
nStyleType
Określa, czy style rozszerzone lub nieostrojone okna zostały zmienione. Ten parametr może być kombinacją następujących wartości:
GWL_EXSTYLE
Style rozszerzone okna uległy zmianie.GWL_STYLE
Niestępowane style okna uległy zmianie.
lpStyleStruct
Wskazuje strukturę zawierającą STYLESTRUCT
nowe style okna. Aplikacja może zbadać style i zmienić je.
Uwagi
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnSysChar
Struktura wywołuje tę funkcję składową, jeśli CWnd
ma fokus wejściowy, a WM_SYSKEYUP
komunikaty i WM_SYSKEYDOWN
są tłumaczone.
afx_msg void OnSysChar(
UINT nChar,
UINT nRepCnt,
UINT nFlags);
Parametry
nChar
Określa kod klucza ASCII-znak klucza Control-menu.
nRepCnt
Określa liczbę powtórzeń, czyli liczbę powtórzeń, ile razy naciśnięcie jest powtarzane w wyniku przytrzymywania klucza przez użytkownika.
nFlags
Parametr nFlags
może mieć następujące wartości:
Wartość | Znaczenie |
---|---|
0-15 | Określa liczbę powtórzeń. Wartość jest liczbą powtórzeń naciśnięć w wyniku przytrzymywania klucza przez użytkownika. |
16-23 | Określa kod skanowania. Wartość zależy od producenta oryginalnego sprzętu (OEM) |
24 | Określa, czy klucz jest rozszerzonym, takim jak ALT po prawej stronie i CTRL, które są wyświetlane na ulepszonej klawiaturze 101- lub 102-klawiszowej. Wartość to 1, jeśli jest to klucz rozszerzony; w przeciwnym razie wartość wynosi 0. |
25-28 | Używane wewnętrznie przez system Windows. |
29 | Określa kod kontekstu. Wartość to 1, jeśli ALT jest przytrzymyany podczas naciśnięcia ; w przeciwnym razie wartość to 0. |
30 | Określa poprzedni stan klucza. Wartość to 1, jeśli klucz nie działa przed wysłaniem komunikatu lub wynosi 0, jeśli klucz jest w górę. |
31 | Określa stan przejścia. Wartość to 1, jeśli klucz jest zwalniany, lub wynosi 0, jeśli jest naciśnięty. |
Uwagi
Określa kod klucza wirtualnego klucza Control-menu. (Aby uzyskać listę standardowych kodów kluczy wirtualnych, zobacz Winuser.h)
Gdy kod kontekstu ma wartość 0, WM_SYSCHAR
może przekazać WM_SYSCHAR
komunikat do TranslateAccelerator
funkcji systemu Windows, która będzie obsługiwać go tak, jakby był to normalny komunikat klucza zamiast systemowego klucza. Dzięki temu klucze akceleratora mogą być używane z aktywnym oknem, nawet jeśli aktywne okno nie ma fokusu wejściowego.
W przypadku klawiatur IBM Enhanced 101- i 102-klawiszowych rozszerzone są właściwymi ALT i prawymi CTRL w głównej sekcji klawiatury; INS, DEL, HOME, END, PAGE UP, PAGE DOWN i arrow w klastrach po lewej stronie klawiatury liczbowej; oraz ukośnik (/) i ENTER w klawiaturze liczbowej. Niektóre inne klawiatury mogą obsługiwać bit rozszerzonego w systemie nFlags
.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnSysColorChange
Struktura wywołuje tę funkcję składową dla wszystkich okien najwyższego poziomu po wprowadzeniu zmiany w ustawieniu koloru systemu.
afx_msg void OnSysColorChange();
Uwagi
System Windows wywołuje OnSysColorChange
każde okno, którego dotyczy zmiana koloru systemu.
Aplikacje, które mają pędzle korzystające z istniejących kolorów systemowych, powinny usunąć te pędzle i ponownie utworzyć je za pomocą nowych kolorów systemowych.
CWnd::OnSysCommand
Platforma wywołuje tę funkcję składową, gdy użytkownik wybierze polecenie z menu Kontrolka lub gdy użytkownik wybierze przycisk Maksymalizuj lub Minimalizuj.
afx_msg void OnSysCommand(
UINT nID,
LPARAM lParam);
Parametry
nID
Określa typ żądanego polecenia systemowego. Ten parametr może być jedną z następujących wartości:
SC_CLOSE
CWnd
Zamknij obiekt.SC_HOTKEY
CWnd
Aktywuj obiekt skojarzony z określonym przez aplikację kluczem gorącym. Słowo o niskiej kolejnościlParam
identyfikujeHWND
okno do aktywowania.SC_HSCROLL
Przewiń w poziomie.SC_KEYMENU
Pobierz menu za pomocą naciśnięcia.SC_MAXIMIZE
(lubSC_ZOOM
)CWnd
Maksymalizuj obiekt.SC_MINIMIZE
(lubSC_ICON
)CWnd
Zminimalizuj obiekt.SC_MOUSEMENU
Pobierz menu za pomocą kliknięcia myszy.SC_MOVE
CWnd
Przenieś obiekt.SC_NEXTWINDOW
Przejdź do następnego okna.SC_PREVWINDOW
Przejdź do poprzedniego okna.SC_RESTORE
Przywróć okno do normalnego położenia i rozmiaru.SC_SCREENSAVE
Wykonuje aplikację wygaszacza ekranu określoną w sekcjiSYSTEM.INI
[rozruch] pliku.SC_SIZE
CWnd
Rozmiar obiektu.SC_TASKLIST
Wykonaj lub aktywuj aplikację Menedżera zadań systemu Windows.SC_VSCROLL
Przewiń w pionie.
lParam
Jeśli wybrano polecenie Control-menu z myszą, lParam
zawiera współrzędne kursora. Wyraz o niskiej kolejności zawiera współrzędną x, a wyraz o wysokiej kolejności zawiera współrzędną y. W przeciwnym razie ten parametr nie jest używany.
SC_HOTKEY
Aktywuj okno skojarzone z określonym przez aplikację kluczem gorącym. Słowo o niskiej kolejnościlParam
identyfikuje okno do aktywowania.SC_SCREENSAVE
Wykonaj aplikację zapisywania ekranu określoną w sekcji Desktop Panel sterowania.
Uwagi
Domyślnie OnSysCommand
wykonuje żądanie control-menu dla wstępnie zdefiniowanych akcji określonych w poprzedniej tabeli.
W WM_SYSCOMMAND
komunikatach cztery bity o niskiej kolejności parametru nID
są używane wewnętrznie przez system Windows. Gdy aplikacja testuje wartość nID
, musi połączyć wartość 0xFFF0 z wartością nID
przy użyciu operatora bitowego AND w celu uzyskania poprawnego wyniku.
Elementy menu w menu Kontrolka można modyfikować za pomocą GetSystemMenu
funkcji , AppendMenu
, InsertMenu
i ModifyMenu
elementów członkowskich. Aplikacje modyfikujące menu Kontrolka muszą przetwarzać WM_SYSCOMMAND
komunikaty, a wszystkie WM_SYSCOMMAND
komunikaty, które nie są obsługiwane przez aplikację, muszą być przekazywane do OnSysCommand
usługi . Wszystkie wartości poleceń dodane przez aplikację muszą być przetwarzane przez aplikację i nie mogą być przekazywane do OnSysCommand
.
Aplikacja może wykonywać dowolne polecenie systemowe w dowolnym momencie, przekazując WM_SYSCOMMAND
komunikat do OnSysCommand
.
Naciśnięcia skrótu zdefiniowane w celu wybrania elementów z menu Kontrolka są tłumaczone na OnSysCommand
wywołania; wszystkie inne naciśnięcia akceleratora są tłumaczone na WM_COMMAND
komunikaty.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnSysDeadChar
Struktura wywołuje tę funkcję składową, jeśli CWnd
obiekt ma fokus wejściowy, gdy OnSysKeyUp
wywoływana jest funkcja składowa lub OnSysKeyDown
.
afx_msg void OnSysDeadChar(
UINT nChar,
UINT nRepCnt,
UINT nFlags);
Parametry
nChar
Określa wartość znaku dead-key.
nRepCnt
Określa liczbę powtórzeń.
nFlags
Określa kod skanowania, kod przejścia klucza, poprzedni stan klucza i kod kontekstu, jak pokazano na poniższej liście:
Wartość | Znaczenie |
---|---|
0-7 | Skanuj kod (wartość zależna od producenta OEM). Niski bajt wyrazu o wysokiej kolejności. |
8 | Klucz rozszerzony, taki jak klucz funkcji lub klucz na klawiaturze liczbowej (1, jeśli jest to klucz rozszerzony; w przeciwnym razie 0). |
9-10 | Nie używany. |
11-12 | Używane wewnętrznie przez system Windows. |
13 | Kod kontekstu (1, jeśli ALT jest przytrzymyany podczas naciśnięcia; w przeciwnym razie 0). |
14 | Poprzedni stan klucza (1, jeśli klucz nie działa przed wywołaniem, 0, jeśli klucz jest w górę). |
15 | Stan przejścia (1, jeśli klucz jest zwalniany, 0, jeśli jest naciśnięty). |
Uwagi
Określa wartość znaku martwego klucza.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnSysKeyDown
CWnd
Jeśli obiekt ma fokus wejściowy, funkcja składowa jest wywoływana przez platformę, OnSysKeyDown
gdy użytkownik przytrzymuje ALT, a następnie naciska inny.
afx_msg void OnSysKeyDown(
UINT nChar,
UINT nRepCnt,
UINT nFlags);
Parametry
nChar
Określa kod klucza wirtualnego naciśnięcia. Aby uzyskać listę standardowych kodów kluczy wirtualnych, zobacz Winuser.h
nRepCnt
Określa liczbę powtórzeń.
nFlags
Określa kod skanowania, kod przejścia klucza, poprzedni stan klucza i kod kontekstu, jak pokazano na poniższej liście:
Wartość | Znaczenie |
---|---|
0-7 | Skanuj kod (wartość zależna od producenta OEM). Niski bajt wyrazu o wysokiej kolejności. |
8 | Klucz rozszerzony, taki jak klucz funkcji lub klucz na klawiaturze liczbowej (1, jeśli jest to klucz rozszerzony; w przeciwnym razie 0). |
9-10 | Nie używany. |
11-12 | Używane wewnętrznie przez system Windows. |
13 | Kod kontekstu (1, jeśli ALT jest przytrzymyany podczas naciśnięcia, 0 w przeciwnym razie). |
14 | Poprzedni stan klucza (1, jeśli klucz nie działa przed wysłaniem komunikatu, 0, jeśli klucz jest uruchomiony). |
15 | Stan przejścia (1, jeśli klucz jest zwalniany, 0, jeśli jest naciśnięty). |
W przypadku OnSysKeyDown
wywołań bit przejścia klucza (bit 15) to 0. Bit kodu kontekstowego (bit 13) to 1, jeśli ALT nie działa podczas naciśnięcia ; jest to 0, jeśli komunikat jest wysyłany do aktywnego okna, ponieważ żadne okno nie ma fokusu wejściowego.
Uwagi
Jeśli żadne okno nie ma obecnie fokusu wejściowego, wywoływana OnSysKeyDown
jest funkcja składowa aktywnego okna. CWnd
Obiekt, który odbiera komunikat, może odróżnić te dwa konteksty, sprawdzając kod kontekstu w pliku nFlags
.
Gdy kod kontekstu ma wartość 0, WM_SYSKEYDOWN
komunikat odebrany przez OnSysKeyDown
program może zostać przekazany do TranslateAccelerator
funkcji systemu Windows, która będzie obsługiwać go tak, jakby był to normalny komunikat klucza zamiast komunikatu klucza systemowego. Dzięki temu klucze akceleratora mogą być używane z aktywnym oknem, nawet jeśli aktywne okno nie ma fokusu wejściowego.
Ze względu na automatyczne powtarzanie może wystąpić więcej niż jedno OnSysKeyDown
wywołanie przed odebraniem komunikatu WM_SYSKEYUP
. Poprzedni stan klucza (bit 14) może służyć do określenia, czy OnSysKeyDown
wywołanie wskazuje pierwsze przejście w dół, czy powtarzające się przejście w dół.
W przypadku klawiatur IBM Enhanced 101- i 102-klawiszowych rozszerzone są prawym ALT i prawymi CTRL w głównej sekcji klawiatury; INS, DEL, HOME, END, PAGE UP, PAGE UP, PAGE DOWN i strzałki w klastrach po lewej stronie klawiatury liczbowej, a ukośnik (/) i ENTER w klawiaturze liczbowej. Niektóre inne klawiatury mogą obsługiwać bit rozszerzonego w systemie nFlags
.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnSysKeyUp
CWnd
Jeśli obiekt ma fokus, funkcja składowa jest wywoływana przez platformę, OnSysKeyUp
gdy użytkownik zwalnia, który został naciśnięty, gdy ALT został zatrzymany.
afx_msg void OnSysKeyUp(
UINT nChar,
UINT nRepCnt,
UINT nFlags);
Parametry
nChar
Określa kod klucza wirtualnego naciśnięcia. Aby uzyskać listę standardowych kodów kluczy wirtualnych, zobacz Winuser.h
nRepCnt
Określa liczbę powtórzeń.
nFlags
Określa kod skanowania, kod przejścia klucza, poprzedni stan klucza i kod kontekstu, jak pokazano na poniższej liście:
Wartość | Znaczenie |
---|---|
0-7 | Skanuj kod (wartość zależna od producenta OEM). Niski bajt wyrazu o wysokiej kolejności. |
8 | Klucz rozszerzony, taki jak klucz funkcji lub klucz na klawiaturze liczbowej (1, jeśli jest to klucz rozszerzony; w przeciwnym razie 0). |
9-10 | Nie używany. |
11-12 | Używane wewnętrznie przez system Windows. |
13 | Kod kontekstu (1, jeśli ALT jest przytrzymyany podczas naciśnięcia, 0 w przeciwnym razie). |
14 | Poprzedni stan klucza (1, jeśli klucz nie działa przed wysłaniem komunikatu, 0, jeśli klucz jest uruchomiony). |
15 | Stan przejścia (1, jeśli klucz jest zwalniany, 0, jeśli jest naciśnięty). |
W przypadku OnSysKeyUp
wywołań bit przejścia klucza (bit 15) to 1. Bit kodu kontekstowego (bit 13) to 1, jeśli ALT nie działa podczas naciśnięcia ; jest to 0, jeśli komunikat jest wysyłany do aktywnego okna, ponieważ żadne okno nie ma fokusu wejściowego.
Uwagi
Jeśli żadne okno nie ma obecnie fokusu wejściowego, wywoływana OnSysKeyUp
jest funkcja składowa aktywnego okna. CWnd
Obiekt odbierający wywołanie może odróżnić te dwa konteksty, sprawdzając kod kontekstu w pliku nFlags
.
Gdy kod kontekstu ma wartość 0, WM_SYSKEYUP
komunikat odebrany przez OnSysKeyUp
program może zostać przekazany do TranslateAccelerator
funkcji systemu Windows, która będzie obsługiwać go tak, jakby był to normalny komunikat klucza zamiast komunikatu klucza systemowego. Umożliwia to używanie skrótu (skrótów) z aktywnym oknem, nawet jeśli aktywne okno nie ma fokusu wejściowego.
W przypadku klawiatur IBM Enhanced 101- i 102-klawiszowych rozszerzone są właściwymi ALT i prawymi CTRL w głównej sekcji klawiatury; INS, DEL, HOME, END, PAGE UP, PAGE DOWN i arrow w klastrach po lewej stronie klawiatury liczbowej; oraz ukośnik (/) i ENTER w klawiaturze liczbowej. Niektóre inne klawiatury mogą obsługiwać bit rozszerzonego w nFlags.
W przypadku stanów innych niż USA Ulepszone klawiatury 102-klawiszowe, prawy ALT jest obsługiwany jako kombinacja CTRL+ALT. Poniżej przedstawiono sekwencję komunikatów i wywołań, które powodują naciśnięcie i wydanie tego klucza przez użytkownika:
Sequence | Dostęp do funkcji | Przekazano komunikat |
---|---|---|
1. | WM_KEYDOWN |
VK_CONTROL |
2. | WM_KEYDOWN |
VK_MENU |
3. | WM_KEYUP |
VK_CONTROL |
4. | WM_SYSKEYUP |
VK_MENU |
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnTCard
Struktura wywołuje tę funkcję składową, gdy użytkownik kliknie przycisk możliwy do utworzenia.
afx_msg void OnTCard(
UINT idAction,
DWORD dwActionData);
Parametry
idAction
Wskazuje akcję, która została podjęta przez użytkownika. Ten parametr może być jedną z następujących wartości:
IDABORT
Użytkownik kliknął przycisk Autorable Abort.IDCANCEL
Użytkownik kliknął przycisk Anuluj, który można utworzyć.IDCLOSE
Użytkownik zamknął kartę szkoleniową.IDHELP
Użytkownik kliknął przycisk Autorable Windows Help (Pomoc systemu Windows).IDIGNORE
Użytkownik kliknął przycisk Ignoruj.IDOK
Użytkownik kliknął przycisk AUTORABLE OK.IDNO
Użytkownik kliknął przycisk Nie.IDRETRY
Użytkownik kliknął przycisk Ponów próbę autora.HELP_TCARD_DATA
Użytkownik kliknął przycisk z możliwością tworzenia. ParametrdwActionData
zawiera długą liczbę całkowitą określoną przez autora pomocy.HELP_TCARD_NEXT
Użytkownik kliknął przycisk Next (Dalej).HELP_TCARD_OTHER_CALLER
Inna aplikacja zażądała kart szkoleniowych.IDYES
Użytkownik kliknął przycisk Tak.
dwActionData
Jeśli idAction
parametr określa HELP_TCARD_DATA
, ten parametr jest długą liczbą całkowitą określoną przez autora pomocy. W przeciwnym razie ten parametr ma wartość zero.
Uwagi
Ta funkcja jest wywoływana tylko wtedy, gdy aplikacja zainicjowała kartę szkoleniową za pomocą Pomocy systemu Windows. Aplikacja inicjuje kartę szkoleniową, określając HELP_TCARD
polecenie w wywołaniu WinHelp
funkcji.
CWnd::OnTimeChange
Struktura wywołuje tę funkcję składową po zmianie czasu systemu.
afx_msg void OnTimeChange();
Uwagi
Mieć dowolną aplikację, która zmienia czas systemowy, wysyła ten komunikat do wszystkich okien najwyższego poziomu. Aby wysłać WM_TIMECHANGE
komunikat do wszystkich okien najwyższego poziomu, aplikacja może użyć SendMessage
funkcji systemu Windows z jej hwnd
parametrem ustawionym na HWND_BROADCAST
.
CWnd::OnTimer
Struktura wywołuje tę funkcję składową po każdym interwale określonym w funkcji składowej SetTimer
używanej do instalowania czasomierza.
afx_msg void OnTimer(UINT_PTR nIDEvent);
Parametry
nIDEvent
Określa identyfikator czasomierza.
Uwagi
Funkcja DispatchMessage
systemu Windows wysyła WM_TIMER
komunikat, gdy żadne inne komunikaty nie znajdują się w kolejce komunikatów aplikacji.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
Przykład
Zobacz przykład w pliku CWnd::SetTimer
.
CWnd::OnToolHitTest
Struktura wywołuje tę funkcję składową, aby określić, czy punkt znajduje się w prostokątze ograniczenia określonego narzędzia.
virtual INT_PTR OnToolHitTest(
CPoint point,
TOOLINFO* pTI) const;
Parametry
point
Określa współrzędną x i y kursora. Współrzędne te są zawsze względne względem lewego górnego rogu okna
pTI
Wskaźnik do TOOLINFO
struktury. Następujące wartości struktury są ustawiane domyślnie:
hwnd
=m_hWnd
Obsługa w oknieuId
=(UINT)hWndChild
Dojście do okna podrzędnegouFlags
|=TTF_IDISHWND
Uchwyt narzędzialpszText
=LPSTR_TEXTCALLBACK
Wskaźnik do ciągu, który ma być wyświetlany w określonym oknie
Wartość zwracana
Jeśli znaleziono kontrolkę etykietki narzędzia, identyfikator kontrolki okna. Jeśli kontrolka etykietki narzędzia nie została znaleziona, -1.
Uwagi
Jeśli punkt znajduje się w prostokątze, pobiera informacje o narzędziu.
Jeśli obszar, z którym skojarzona jest etykietka narzędzia, nie jest przyciskiem, OnToolHitTest
ustawia flagi struktury na TTF_NOTBUTTON
i TTF_CENTERTIP
.
Zastąpij OnToolHitTest
, aby podać inne informacje niż wartość domyślna.
Aby uzyskać więcej informacji na temat struktury, zobacz TOOLINFO
, w zestawie Sdk systemu Windows.
CWnd::OnTouchInput
Przetwarzanie pojedynczych danych wejściowych z poziomu dotyku systemu Windows.
virtual BOOL OnTouchInput(
CPoint pt,
int nInputNumber,
int nInputsCount,
PTOUCHINPUT pInput);
Parametry
pt
Punkt, w którym został dotknięty ekran (we współrzędnych klienta).
nInputNumber
Liczba wejść dotykowych.
nInputsCount
Całkowita liczba wejść dotykowych.
pInput
Wskaźnik do TOUCHINPUT
struktury.
Wartość zwracana
TRUE
jeśli aplikacja przetwarza dane wejściowe systemu Windows touch; w przeciwnym razie FALSE
.
Uwagi
CWnd::OnTouchInputs
Przetwarza dane wejściowe z dotyku systemu Windows.
virtual BOOL OnTouchInputs(
UINT nInputsCount,
PTOUCHINPUT pInputs);
Parametry
nInputsCount
Łączna liczba wejść dotykowych systemu Windows.
pInputs
Tablica .TOUCHINPUT
Wartość zwracana
TRUE
jeśli aplikacja przetwarza dane wejściowe systemu Windows touch; w przeciwnym razie FALSE
.
Uwagi
CWnd::OnUniChar
Platforma wywołuje tę funkcję składową po naciśnięciu. Oznacza to, że bieżące okno ma fokus klawiatury, a WM_KEYDOWN
komunikat jest tłumaczony przez TranslateMessage
funkcję.
afx_msg void OnUniChar(
UINT nChar,
UINT nRepCnt,
UINT nFlags);
Parametry
nChar
[in] Określa kod znaku naciśnięcia.
nRepCnt
[in] Określa liczbę powtórzeń dla bieżącego komunikatu. Wartość jest liczbą, ile razy naciśnięcie jest autorepeowane w wyniku przytrzymywania klucza przez użytkownika. Jeśli naciśnięcie jest wystarczająco długie, wysyłanych jest wiele komunikatów. Jednak liczba powtórzeń nie jest skumulowana.
nFlags
[in] Flagi określające kod skanowania, klucz rozszerzony, kod kontekstu, poprzedni stan klucza i stan przejścia, jak pokazano w poniższej tabeli:
Bity flagi | opis |
---|---|
0-7 | Określa kod skanowania. Wartość zależy od producenta oryginalnego sprzętu (OEM). |
8 | Określa rozszerzony, taki jak ALT po prawej stronie i CTRL, które są wyświetlane na ulepszonej klawiaturze 101 lub 102. Flaga to 1, jeśli klucz jest kluczem rozszerzonym; w przeciwnym razie wartość wynosi 0. |
9-12 | Używane wewnętrznie przez system Windows. |
13 | Określa kod kontekstu. Flaga to 1, jeśli ALT jest przytrzymyany podczas naciśnięcia; w przeciwnym razie wartość to 0. |
14 Określa poprzedni stan klucza. Flaga to 1, jeśli klucz nie działa przed wysłaniem komunikatu, lub 0, jeśli klucz jest w górę. | |
15 | Określa stan przejścia. Flaga to 1, jeśli klucz jest zwalniany, lub 0, jeśli jest naciśnięty. |
Uwagi
Ta metoda odbiera WM_UNICHAR
powiadomienie opisane w zestawie Windows SDK. Wiadomość jest przeznaczona do wysyłania WM_UNICHAR
lub publikowania znaków Unicode w oknach ANSI. Jest to odpowiednik komunikatu WM_CHAR
, ale używa kodowania Unicode Transformation Format-32 (UTF-32), podczas gdy WM_CHAR
komunikat używa formatu UTF-16.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnUnInitMenuPopup
Struktura wywołuje tę funkcję składową, gdy menu rozwijane lub podmenu zostało zniszczone.
afx_msg void OnUnInitMenuPopup(
CMenu* pPopupMenu,
UINT nFlags);
Parametry
pMenu
[in] Wskaźnik do CMenu
obiektu reprezentującego menu lub podmenu.
nFlags
[in] Menu, które zostało zniszczone. Obecnie może to być tylko menu okna, MF_SYSMENU
.
Uwagi
Ta metoda odbiera WM_UNINITMENUPOPUP
powiadomienie opisane w zestawie Windows SDK.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnUpdateUIState
Wywoływana w celu zmiany stanu interfejsu użytkownika dla określonego okna i wszystkich okien podrzędnych.
afx_msg void OnUpdateUIState(
UINT nAction,
UINT nUIElement);
Parametry
nAction
Określa akcję do wykonania. Może być jedną z następujących wartości:
UIS_CLEAR
Element stanu interfejsu użytkownika (określony przeznUIElement
) powinien być ukryty.UIS_INITIALIZE
Element stanu interfejsu użytkownika (określony przeznUIElement
) powinien zostać zmieniony na podstawie ostatniego zdarzenia wejściowego. Aby uzyskać więcej informacji, zobacz sekcję Uwagi w temacieWM_UPDATEISTATE
.UIS_SET
Element stanu interfejsu użytkownika (określony przeznUIElement
) powinien być widoczny.
nUIElement
Określa, które elementy stanu interfejsu użytkownika mają wpływ lub styl kontrolki. Może być jedną z następujących wartości:
UISF_HIDEACCEL
Akceleratory klawiatury.UISF_HIDEFOCUS
Wskaźniki fokusu.UISF_ACTIVE
Windows XP: Kontrolka powinna być rysowana w stylu używanym do aktywnych kontrolek.
Uwagi
Ta funkcja składowa emuluje funkcjonalność komunikatu WM_UPDATEUISTATE
zgodnie z opisem w zestawie WINDOWS SDK.
CWnd::OnUserChanged
Platforma wywołuje ten element członkowski dla wszystkich okien po zalogowaniu lub wyłączeniu użytkownika.
afx_msg void OnUserChanged();
Uwagi
Ta metoda odbiera WM_USERCHANGED
komunikat powiadomienia opisany w zestawie WINDOWS SDK. Gdy użytkownik loguje się lub wyłącza, system operacyjny aktualizuje ustawienia specyficzne dla użytkownika. System wysyła ten komunikat natychmiast po zaktualizowaniu ustawień.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnVKeyToItem
CWnd
Jeśli obiekt jest właścicielem pola listy ze LBS_WANTKEYBOARDINPUT
stylemWM_KEYDOWN
, pole listy wyśle WM_VKEYTOITEM
komunikat w odpowiedzi na komunikat.
afx_msg int OnVKeyToItem(
UINT nKey,
CListBox* pListBox,
UINT nIndex);
Parametry
nKey
Określa kod klucza wirtualnego klucza, który użytkownik nacisnął. Aby uzyskać listę standardowych kodów kluczy wirtualnych, zobacz Winuser.h
pListBox
Określa wskaźnik do pola listy. Wskaźnik może być tymczasowy i nie powinien być przechowywany do późniejszego użycia.
nIndex
Określa bieżącą pozycję karetki.
Wartość zwracana
Określa akcję wykonywaną przez aplikację w odpowiedzi na komunikat. Wartość zwracana -2 wskazuje, że aplikacja obsłużyła wszystkie aspekty wybierania elementu i nie wymaga dalszych działań według pola listy. Wartość zwracana -1 wskazuje, że pole listy powinno wykonać domyślną akcję w odpowiedzi na naciśnięcie. Wartość zwracana 0 lub większa określa indeks zerowy elementu w polu listy i wskazuje, że pole listy powinno wykonać domyślną akcję naciśnięcia dla danego elementu.
Uwagi
Ta funkcja składowa jest wywoływana przez strukturę tylko dla pól listy, które mają LBS_HASSTRINGS
styl.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnVScroll
Platforma wywołuje tę funkcję składową, gdy użytkownik kliknie pionowy pasek przewijania okna.
afx_msg void OnVScroll(
UINT nSBCode,
UINT nPos,
CScrollBar* pScrollBar);
Parametry
nSBCode
Określa kod paska przewijania wskazujący żądanie przewijania użytkownika. Ten parametr może być jednym z następujących parametrów:
SB_BOTTOM
Przewiń do dołu.SB_ENDSCROLL
Zakończ przewijanie.SB_LINEDOWN
Przewiń jedną linię w dół.SB_LINEUP
Przewiń jeden wiersz w górę.SB_PAGEDOWN
Przewiń jedną stronę w dół.SB_PAGEUP
Przewiń jedną stronę w górę.SB_THUMBPOSITION
Przewiń do położenia bezwzględnego. Bieżące położenie jest podane w elemencienPos
.SB_THUMBTRACK
Przeciągnij pole przewijania do określonej pozycji. Bieżące położenie jest podane w elemencienPos
.SB_TOP
Przewiń do góry.
nPos
Zawiera bieżące położenie pola przewijania, jeśli kod paska przewijania jest SB_THUMBPOSITION
lub SB_THUMBTRACK
; w przeciwnym razie nie jest używany. W zależności od początkowego zakresu nPos
przewijania może być ujemny i w razie potrzeby rzutować do elementu int
.
pScrollBar
Jeśli komunikat przewijania pochodzi z kontrolki paska przewijania, zawiera wskaźnik do kontrolki. Jeśli użytkownik kliknął pasek przewijania okna, ten parametr to NULL
. Wskaźnik może być tymczasowy i nie powinien być przechowywany do późniejszego użycia.
Uwagi
OnVScroll
zazwyczaj są używane przez aplikacje, które przesyłają opinię podczas przeciągania pola przewijania.
Jeśli OnVScroll
przewija zawartość CWnd
obiektu, musi również zresetować położenie pola przewijania za pomocą funkcji składowej SetScrollPos
.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnVScrollClipboard
Funkcja składowa właściciela OnVScrollClipboard
schowka jest wywoływana przez przeglądarkę Schowka, gdy dane Schowka mają CF_OWNERDISPLAY
format i istnieje zdarzenie na pionowym pasku przewijania schowka.
afx_msg void OnVScrollClipboard(
CWnd* pClipAppWnd,
UINT nSBCode,
UINT nPos);
Parametry
pClipAppWnd
Określa wskaźnik do okna Schowka przeglądarki. Wskaźnik może być tymczasowy i nie powinien być przechowywany do późniejszego użycia.
nSBCode
Określa jedną z następujących wartości paska przewijania:
SB_BOTTOM
Przewiń do dołu.SB_ENDSCROLL
Zakończ przewijanie.SB_LINEDOWN
Przewiń jedną linię w dół.SB_LINEUP
Przewiń jeden wiersz w górę.SB_PAGEDOWN
Przewiń jedną stronę w dół.SB_PAGEUP
Przewiń jedną stronę w górę.SB_THUMBPOSITION
Przewiń do położenia bezwzględnego. Bieżące położenie jest podane w elemencienPos
.SB_TOP
Przewiń do góry.
nPos
Zawiera położenie pola przewijania, jeśli kod paska przewijania to SB_THUMBPOSITION
; w przeciwnym razie nPos
nie jest używany.
Uwagi
Właściciel powinien przewinąć obraz Schowka, unieważnić odpowiednią sekcję i zaktualizować wartości paska przewijania.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnWindowMaximizedChanged
Struktura wywołuje ten element członkowski, gdy bieżące okno jest zmaksymalizowane, a okno składa się z Menedżera okien pulpitu (DWM).
afx_msg void OnWindowMaximizedChanged(BOOL bIsMaximized);
Parametry
bIsMaximized
[in] TRUE
jeśli bieżące okno jest zmaksymalizowane, a FALSE
jeśli tak nie jest.
Uwagi
Ta metoda odbiera WM_DWMWINDOWMAXIMIZEDCHANGE
komunikat powiadomienia opisany w zestawie WINDOWS SDK.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnWindowPosChanged
Struktura wywołuje tę funkcję składową, gdy rozmiar, pozycja lub kolejność Z uległy zmianie w wyniku wywołania SetWindowPos
funkcji składowej lub innej funkcji zarządzania oknami.
afx_msg void OnWindowPosChanged(WINDOWPOS* lpwndpos);
Parametry
lpwndpos
Wskazuje strukturę danych zawierającą WINDOWPOS
informacje o nowym rozmiarze i położeniu okna.
Uwagi
Domyślna implementacja wysyła WM_SIZE
komunikaty i WM_MOVE
do okna. Te komunikaty nie są wysyłane, jeśli aplikacja obsługuje OnWindowPosChanged
wywołanie bez wywoływania jej klasy bazowej. Wydajniejsze jest przeprowadzenie dowolnego przenoszenia lub zmiany rozmiaru przetwarzania podczas wywołania metody OnWindowPosChanged
bez wywoływania jej klasy bazowej.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnWindowPosChanging
Struktura wywołuje tę funkcję składową, gdy rozmiar, pozycja lub kolejność Z zmieni się w wyniku wywołania SetWindowPos
funkcji składowej lub innej funkcji zarządzania oknami.
afx_msg void OnWindowPosChanging(WINDOWPOS* lpwndpos);
Parametry
lpwndpos
Wskazuje strukturę danych zawierającą WINDOWPOS
informacje o nowym rozmiarze i położeniu okna.
Uwagi
Aplikacja może zapobiec zmianom w oknie przez ustawienie lub wyczyszczenie odpowiednich bitów w flags
składowej WINDOWPOS
struktury.
W przypadku okna ze WS_OVERLAPPED
stylem lub WS_THICKFRAME
domyślna implementacja wysyła WM_GETMINMAXINFO
komunikat do okna. Należy to zrobić, aby zweryfikować nowy rozmiar i położenie okna oraz wymusić CS_BYTEALIGNCLIENT
style klienta i CS_BYTEALIGN
. Aplikacja może zastąpić tę funkcję, nie wywołując jej klasy bazowej.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnWinIniChange
Struktura wywołuje tę funkcję składową po wprowadzeniu zmiany w pliku inicjowania systemu Windows. WIN.INI
afx_msg void OnWinIniChange(LPCTSTR lpszSection);
Parametry
lpszSection
Wskazuje ciąg, który określa nazwę zmienionej sekcji. (Ciąg nie zawiera nawiasów kwadratowych, które zawierają nazwę sekcji).
Uwagi
Funkcja SystemParametersInfo
systemu Windows wywołuje funkcję OnWinIniChange
po użyciu funkcji w celu zmiany ustawienia w WIN.INI
pliku.
Aby wysłać WM_WININICHANGE
komunikat do wszystkich okien najwyższego poziomu, aplikacja może użyć SendMessage
funkcji systemu Windows z jej hwnd
parametrem ustawionym na HWND_BROADCAST
.
Jeśli aplikacja zmieni wiele różnych sekcji w WIN.INI
tym samym czasie, aplikacja powinna wysłać jeden WM_WININICHANGE
komunikat z ustawioną wartością NULL
lpszSection
. W przeciwnym razie aplikacja powinna wysyłać WM_WININICHANGE
za każdym razem, gdy wprowadza zmianę w pliku WIN.INI
.
Jeśli aplikacja odbiera wywołanie z ustawioną wartością OnWinIniChange
lpszSection
NULL
, aplikacja powinna sprawdzić wszystkie sekcje w systemie WIN. INI, które wpływają na aplikację.
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnWndMsg
Ta funkcja składowa jest wywoływana przez WindowProc
element lub jest wywoływana podczas odbicia komunikatu.
virtual BOOL OnWndMsg(
UINT message,
WPARAM wParam,
LPARAM lParam,
LRESULT* pResult);
Parametry
message
Określa komunikat do wysłania.
wParam
Określa dodatkowe informacje zależne od komunikatów.
lParam
Określa dodatkowe informacje zależne od komunikatów.
pResult
Zwracana wartość .WindowProc
Zależy od komunikatu; może mieć wartość NULL
.
Wartość zwracana
WARTOŚĆ TRUE, jeśli komunikat został obsłużony; w przeciwnym razie FAŁSZ.
Uwagi
OnWndMsg
określa typ komunikatu i wywołuje odpowiednią funkcję struktury (na przykład OnCommand
dla WM_COMMAND
) lub znajduje odpowiedni komunikat na mapie komunikatów.
Aby uzyskać więcej informacji na temat odbicia komunikatów, zobacz Obsługa odbitych komunikatów.
CWnd::OnXButtonDblClk
Platforma wywołuje tę funkcję składową, gdy użytkownik kliknie XBUTTON1
dwukrotnie lub XBUTTON2
gdy kursor znajduje się w obszarze klienta okna.
afx_msg void OnXButtonDblClk(
UINT nFlags,
UINT nButton,
CPoint point);
Parametry
nFlags
[in] Kombinacja bitowa (OR) flag wskazująca, które modyfikujące są naciskane. Na przykład flaga MK_CONTROL
wskazuje, że naciśnięcie CTRL.
nButton
[in] Wartość XBUTTON1
, jeśli pierwszy przycisk Microsoft Intellimouse X jest dwukrotnie kliknięty lub XBUTTON2, jeśli drugi przycisk X jest dwukrotnie kliknięty.
point
[in] CPoint
Obiekt określający x
współrzędne i y
kursora względem lewego górnego rogu obszaru klienta.
Uwagi
Ta metoda odbiera WM_XBUTTONDBLCLK
powiadomienie opisane w zestawie Windows SDK. Jeśli mysz nie zostanie przechwycona, wiadomość zostanie wysłana do okna pod kursorem. W przeciwnym razie wiadomość zostanie wysłana do okna, które przechwyciło mysz.
Parametr nFlags
może być kombinacją kluczy modyfikatora wymienionych w poniższej tabeli. Aby uzyskać więcej informacji, zobacz Informacje o danych wejściowych myszy.
Klucz modyfikatora | opis |
---|---|
MK_CONTROL |
Naciśnięcie CTRL. |
MK_LBUTTON |
Lewy przycisk myszy jest naciskany. |
MK_MBUTTON |
Środkowy przycisk myszy jest naciśnięty. |
MK_RBUTTON |
Naciśnięty jest prawy przycisk myszy. |
MK_SHIFT |
Naciśnięcie SHIFT. |
MK_XBUTTON1 |
Naciśnięty XBUTTON1 jest przycisk myszy narzędzia Microsoft IntelliMouse. |
MK_XBUTTON2 |
Naciśnięty XBUTTON2 jest przycisk myszy narzędzia Microsoft IntelliMouse. |
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnXButtonDown
Struktura wywołuje tę funkcję składową, gdy użytkownik naciska XBUTTON1
lub XBUTTON2
gdy kursor znajduje się w obszarze klienta okna.
afx_msg void OnXButtonDown(
UINT nFlags,
UINT nButton,
CPoint point);
Parametry
nFlags
[in] Kombinacja bitowa (OR) flag wskazująca, które modyfikujące są naciskane. Na przykład flaga MK_CONTROL
wskazuje, że naciśnięcie CTRL.
nButton
[in] Wartość XBUTTON1
w przypadku kliknięcia pierwszego przycisku Microsoft Intellimouse X lub XBUTTON2
kliknięcia drugiego przycisku X.
point
[in] CPoint
Obiekt określający x
współrzędne i y
kursora względem lewego górnego rogu obszaru klienta.
Uwagi
Ta metoda odbiera WM_XBUTTONDOWN
powiadomienie opisane w zestawie Windows SDK. Jeśli mysz nie zostanie przechwycona, wiadomość zostanie wysłana do okna pod kursorem. W przeciwnym razie wiadomość zostanie wysłana do okna, które przechwyciło mysz.
Parametr nFlags
może być kombinacją kluczy modyfikatora wymienionych w poniższej tabeli. Aby uzyskać więcej informacji, zobacz Informacje o danych wejściowych myszy.
Klucz modyfikatora | opis |
---|---|
MK_CONTROL |
Naciśnięcie CTRL. |
MK_LBUTTON |
Lewy przycisk myszy jest naciskany. |
MK_MBUTTON |
Środkowy przycisk myszy jest naciśnięty. |
MK_RBUTTON |
Naciśnięty jest prawy przycisk myszy. |
MK_SHIFT |
Naciśnięcie SHIFT. |
MK_XBUTTON1 |
Naciśnięty XBUTTON1 jest przycisk myszy narzędzia Microsoft IntelliMouse. |
MK_XBUTTON2 |
Naciśnięty XBUTTON2 jest przycisk myszy narzędzia Microsoft IntelliMouse. |
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OnXButtonUp
Struktura wywołuje tę funkcję składową, gdy użytkownik zwalnia XBUTTON1
lub XBUTTON2
gdy kursor znajduje się w obszarze klienta okna.
afx_msg void OnXButtonUp(
UINT nFlags,
UINT nButton,
CPoint point);
Parametry
nFlags
[in] Kombinacja bitowa (OR) flag wskazująca, które modyfikujące są naciskane. Na przykład flaga MK_CONTROL
wskazuje, że naciśnięcie CTRL.
nButton
[in] Wartość XBUTTON1
, jeśli pierwszy przycisk Microsoft Intellimouse X został dwukrotnie kliknięty lub XBUTTON2
jeśli drugi przycisk X został dwukrotnie kliknięty.
point
[in] CPoint
Obiekt określający x
współrzędne i y
kursora względem lewego górnego rogu obszaru klienta.
Uwagi
Ta metoda odbiera WM_XBUTTONUP
powiadomienie opisane w zestawie Windows SDK. Jeśli mysz nie zostanie przechwycona, wiadomość zostanie wysłana do okna pod kursorem. W przeciwnym razie wiadomość zostanie wysłana do okna, które przechwyciło mysz.
Parametr nFlags
może być kombinacją kluczy modyfikatora wymienionych w poniższej tabeli. Aby uzyskać więcej informacji, zobacz Informacje o danych wejściowych myszy.
Klucz modyfikatora | opis |
---|---|
MK_CONTROL |
Naciśnięcie CTRL. |
MK_LBUTTON |
Lewy przycisk myszy jest naciskany. |
MK_MBUTTON |
Środkowy przycisk myszy jest naciśnięty. |
MK_RBUTTON |
Naciśnięty jest prawy przycisk myszy. |
MK_SHIFT |
Naciśnięcie SHIFT. |
MK_XBUTTON1 |
Naciśnięty XBUTTON1 jest przycisk myszy narzędzia Microsoft IntelliMouse. |
MK_XBUTTON2 |
Naciśnięty XBUTTON2 jest przycisk myszy narzędzia Microsoft IntelliMouse. |
Uwaga
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić aplikacji obsługę komunikatu systemu Windows. Parametry przekazane do funkcji odzwierciedlają parametry odebrane przez platformę po odebraniu komunikatu. Jeśli wywołasz implementację klasy bazowej tej funkcji, ta implementacja będzie używać parametrów pierwotnie przekazanych z komunikatem, a nie parametrów dostarczonych do funkcji.
CWnd::OpenClipboard
Otwiera Schowek.
BOOL OpenClipboard();
Wartość zwracana
Niezero, jeśli Schowek jest otwarty za pośrednictwem CWnd
, lub 0, jeśli inna aplikacja lub okno ma otwarte Schowek.
Uwagi
Inne aplikacje nie będą mogły modyfikować Schowka do momentu CloseClipboard
wywołania funkcji systemu Windows.
Bieżący CWnd
obiekt nie stanie się właścicielem Schowka, dopóki EmptyClipboard
funkcja systemu Windows nie zostanie wywołana.
Przykład
//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
Użyj tego operatora, aby uzyskać dojście CWnd
do obiektu.
operator HWND() const;
CWnd::operator !=
Porównuje dwa CWnd
obiekty, aby określić, czy nie mają tego samego m_hWnd
obiektu .
BOOL operator!=(const CWnd& wnd) const;
Parametry
wnd
Odwołanie do CWnd
obiektu.
Wartość zwracana
Niezerowe, jeśli równe; w przeciwnym razie 0.
CWnd::operator ==
Porównuje dwa CWnd
obiekty, aby ustalić, czy mają one ten sam m_hWnd
obiekt .
BOOL operator==(const CWnd& wnd) const;
Parametry
wnd
Odwołanie do CWnd
obiektu.
Wartość zwracana
Niezerowe, jeśli równe; w przeciwnym razie 0.
CWnd::PaintWindowlessControls
Rysuje kontrolki bez okien w kontenerze sterowania.
BOOL PaintWindowlessControls(CDC* pDC);
Parametry
pDC
Kontekst urządzenia, na którym mają być rysowanie kontrolek bez okien.
Wartość zwracana
Zwraca wartość TRUE
, jeśli istnieje kontener sterowania, a kontrolki bez okien są rysowane pomyślnie, w przeciwnym razie FALSE
.
CWnd::PostMessage
Umieszcza komunikat w kolejce komunikatów okna, a następnie powraca bez oczekiwania na przetworzenie komunikatu przez odpowiednie okno.
BOOL PostMessage(
UINT message,
WPARAM wParam = 0,
LPARAM lParam = 0);
Parametry
message
Określa komunikat do opublikowania.
wParam
Określa dodatkowe informacje o wiadomościach. Zawartość tego parametru zależy od publikowanego komunikatu.
lParam
Określa dodatkowe informacje o wiadomościach. Zawartość tego parametru zależy od publikowanego komunikatu.
Wartość zwracana
Nonzero, jeśli wiadomość jest opublikowana; w przeciwnym razie 0.
Uwagi
Komunikaty w kolejce komunikatów są pobierane przez wywołania GetMessage
funkcji lub PeekMessage
systemu Windows.
Funkcja systemu Windows PostMessage
może służyć do uzyskiwania dostępu do innej aplikacji.
Przykład
Zobacz przykład dla elementu AfxGetMainWnd
.
CWnd::PostNcDestroy
Wywoływana przez domyślną OnNcDestroy
funkcję składową po zniszczeniu okna.
virtual void PostNcDestroy();
Uwagi
Klasy pochodne mogą używać tej funkcji do czyszczenia niestandardowego this
, takiego jak usunięcie wskaźnika.
CWnd::PreCreateWindow
Wywoływana przez platformę przed utworzeniem okna systemu Windows dołączonego do tego CWnd
obiektu.
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
Parametry
cs
Struktura CREATESTRUCT
.
Wartość zwracana
Niezerowe, jeśli tworzenie okna powinno kontynuować; 0, aby wskazać niepowodzenie tworzenia.
Uwagi
Ostrzeżenie
CWnd::PreCreateWindow
teraz przypisuje element członkowski cs
hMenu do this
wskaźnika, jeśli menu to NULL
, a styl zawiera WS_CHILD
. Aby uzyskać odpowiednie funkcje, upewnij się, że kontrolka okna dialogowego ma identyfikator, który nie NULL
jest .
Ta zmiana naprawia awarię w scenariuszach międzyoperacyjności zarządzanej/natywnej. Instrukcja TRACE
w CWnd::Create
alertach dla dewelopera problemu.
Nigdy nie wywołaj tej funkcji bezpośrednio.
Domyślna implementacja tej funkcji sprawdza NULL
nazwę klasy okna i zastępuje odpowiednią wartość domyślną. Zastąpi tę funkcję składową, aby zmodyfikować CREATESTRUCT
strukturę przed utworzeniem okna.
Każda klasa pochodząca z CWnd
klasy dodaje własną funkcjonalność do zastąpienia elementu PreCreateWindow
. Zgodnie z projektem te wyprowadzenia PreCreateWindow
nie są udokumentowane. Aby określić style odpowiednie dla każdej klasy i współzależności między stylami, możesz zbadać kod źródłowy MFC dla klasy bazowej aplikacji. Jeśli zdecydujesz się zastąpić PreCreateWindow,
, możesz określić, czy style używane w klasie bazowej aplikacji zapewniają potrzebne funkcje, korzystając z informacji zebranych z kodu źródłowego MFC.
Aby uzyskać więcej informacji na temat zmieniania stylów okien, zobacz Zmienianie stylów okna utworzonego przez MFC.
Przykład
// 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
Ta funkcja składowa jest wywoływana przez platformę, aby umożliwić wykonywanie innych niezbędnych podklas przed podklasą okna.
virtual void PreSubclassWindow();
Uwagi
Zastąpienie tej funkcji składowej umożliwia dynamiczne podklasowanie kontrolek. Jest to zaawansowane przesłonięcia.
CWnd::PreTranslateMessage
Używany przez klasę CWinApp
do tłumaczenia komunikatów okien przed ich wysłaniem do TranslateMessage
funkcji systemu Windows i DispatchMessage
.
virtual BOOL PreTranslateMessage(MSG* pMsg);
Parametry
pMsg
Wskazuje strukturę zawierającą MSG
komunikat do przetworzenia.
Wartość zwracana
Nonzero, jeśli wiadomość została przetłumaczona i nie powinna być wysyłana; 0, jeśli wiadomość nie została przetłumaczona i powinna zostać wysłana.
CWnd::Print
Wywołaj tę funkcję składową, aby narysować bieżące okno w określonym kontekście urządzenia, który jest najczęściej w kontekście urządzenia drukarki.
void Print(
CDC* pDC,
DWORD dwFlags) const;
Parametry
pDC
Wskaźnik do kontekstu urządzenia.
dwFlags
Określa opcje rysunku. Ten parametr może być co najmniej jedną z następujących flag:
PRF_CHECKVISIBLE
Rysuj okno tylko wtedy, gdy jest widoczne.PRF_CHILDREN
Rysuj wszystkie widoczne okna podrzędne.PRF_CLIENT
Rysuj obszar klienta okna.PRF_ERASEBKGND
Wymazywanie tła przed rysowaniem okna.PRF_NONCLIENT
Rysuj obszar niekliencki okna.PRF_OWNED
Rysuj wszystkie okna należące do użytkownika.
Uwagi
CWnd::DefWindowProc
funkcja przetwarza ten komunikat w oparciu o to, która opcja rysunku jest określona:
Jeśli
PRF_CHECKVISIBLE
zostanie określony, a okno nie jest widoczne, nie rób nic.Jeśli
PRF_NONCLIENT
zostanie określony, narysuj obszar niekliencki w danym kontekście urządzenia.Jeśli
PRF_ERASEBKGND
zostanie określony, wyślij komunikat wWM_ERASEBKGND
oknie.Jeśli
PRF_CLIENT
zostanie określony, wyślij komunikat wWM_PRINTCLIENT
oknie.Jeśli
PRF_CHILDREN
jest ustawiona, wyślij każde widoczne okno podrzędne komunikatWM_PRINT
.Jeśli
PRF_OWNED
jest ustawiona, wyślij komunikat z każdym widocznym oknem należącym doWM_PRINT
użytkownika.
CWnd::PrintClient
Wywołaj tę funkcję składową, aby narysować dowolne okno w określonym kontekście urządzenia (zazwyczaj kontekst urządzenia drukarki).
void PrintClient(
CDC* pDC,
DWORD dwFlags) const;
Parametry
pDC
Wskaźnik do kontekstu urządzenia.
dwFlags
Określa opcje rysunku. Ten parametr może być co najmniej jedną z następujących flag:
PRF_CHECKVISIBLE
Rysuj okno tylko wtedy, gdy jest widoczne.PRF_CHILDREN
Rysuj wszystkie widoczne okna podrzędne.PRF_CLIENT
Rysuj obszar klienta okna.PRF_ERASEBKGND
Wymazywanie tła przed rysowaniem okna.PRF_NONCLIENT
Rysuj obszar niekliencki okna.PRF_OWNED
Rysuj wszystkie okna należące do użytkownika.
CWnd::PrintWindow
Kopiuje okno wizualizacji do określonego kontekstu urządzenia, zazwyczaj kontrolera domeny drukarki.
BOOL PrintWindow(
CDC* pDC,
UINT nFlags) const;
Parametry
pDC
Wskaźnik do kontekstu urządzenia do wydrukowania.
nFlags
Określa opcje rysunku. Aby uzyskać listę możliwych wartości, zobacz PrintWindow
.
Wartość zwracana
Nonzero, jeśli funkcja powiedzie się; w przeciwnym razie 0.
Uwagi
Ta funkcja składowa emuluje funkcjonalność funkcji PrintWindow
, zgodnie z opisem w zestawie Windows SDK.
CWnd::RedrawWindow
Aktualizuje określony prostokąt lub region w obszarze klienta danego okna.
BOOL RedrawWindow(
LPCRECT lpRectUpdate = NULL,
CRgn* prgnUpdate = NULL,
UINT flags = RDW_INVALIDATE | RDW_UPDATENOW | RDW_ERASE);
Parametry
lpRectUpdate
Wskazuje strukturę zawierającą RECT
współrzędne prostokąta aktualizacji. Ten parametr jest ignorowany, jeśli prgnUpdate
zawiera prawidłowy uchwyt regionu.
prgnUpdate
Identyfikuje region aktualizacji. Jeśli oba prgnUpdate
elementy i lpRectUpdate
są NULL
, cały obszar klienta zostanie dodany do regionu aktualizacji.
flags
Następujące flagi służą do unieważnienia okna:
RDW_ERASE
Powoduje, że okno otrzymujeWM_ERASEBKGND
komunikat po przemalowywaniu okna. Należy również określić flagęRDW_INVALIDATE
; w przeciwnym razie RDW_ERASE nie ma wpływu.RDW_FRAME
Powoduje, że dowolna część obszaru innego niż klient okna przecina region aktualizacji w celu odebrania komunikatuWM_NCPAINT
. Należy również określić flagęRDW_INVALIDATE
; w przeciwnym razieRDW_FRAME
nie ma żadnego efektu.RDW_INTERNALPAINT
WM_PAINT
Powoduje opublikowanie komunikatu w oknie niezależnie od tego, czy okno zawiera nieprawidłowy region.RDW_INVALIDATE
UnieważnijlpRectUpdate
lubprgnUpdate
(tylko jeden może nieNULL
być ). Jeśli oba sąNULL
, całe okno jest unieważnione.
Następujące flagi służą do sprawdzania poprawności okna:
RDW_NOERASE
Pomija wszystkie oczekująceWM_ERASEBKGND
komunikaty.RDW_NOFRAME
Pomija wszystkie oczekująceWM_NCPAINT
komunikaty. Ta flaga musi być używana zRDW_VALIDATE
programem i jest zwykle używana zRDW_NOCHILDREN
programem . Ta opcja powinna być używana z ostrożnością, ponieważ może uniemożliwić prawidłowe malowanie części okna.RDW_NOINTERNALPAINT
Pomija wszystkie oczekujące komunikaty wewnętrzneWM_PAINT
. Ta flaga nie ma wpływu naWM_PAINT
komunikaty wynikające z nieprawidłowych obszarów.RDW_VALIDATE
Sprawdza poprawnośćlpRectUpdate
lubprgnUpdate
(tylko jeden może nieNULL
być ). Jeśli oba sąNULL
, całe okno zostanie zweryfikowane. Ta flaga nie ma wpływu na komunikaty wewnętrzneWM_PAINT
.
Następujące flagi steruje podczas ponownego malowania. Obraz nie jest wykonywany przez RedrawWindow
funkcję, chyba że określono jeden z tych bitów.
RDW_ERASENOW
Powoduje, że objęte okna (określone przezRDW_ALLCHILDREN
flagi iRDW_NOCHILDREN
) odbierająWM_NCPAINT
komunikaty iWM_ERASEBKGND
, jeśli to konieczne, przed zwróceniem funkcji.WM_PAINT
komunikaty są odroczone.RDW_UPDATENOW
Powoduje, że objęte okna (określone przezRDW_ALLCHILDREN
flagi iRDW_NOCHILDREN
) odbierająWM_NCPAINT
komunikaty ,WM_ERASEBKGND
iWM_PAINT
, jeśli to konieczne, przed zwróceniem funkcji.
Domyślnie okna, na które ma wpływ RedrawWindow
funkcja, zależą od tego, czy określone okno ma WS_CLIPCHILDREN
styl. Nie ma to wpływu na okna podrzędne WS_CLIPCHILDREN
okien. Jednak te okna, które nie WS_CLIPCHILDREN
są oknami, są rekursywnie weryfikowane lub unieważniane do momentu WS_CLIPCHILDREN
napotkania okna. Następujące flagi sterują oknami, na które ma wpływ RedrawWindow
funkcja:
RDW_ALLCHILDREN
Obejmuje okna podrzędne, jeśli istnieją, w operacji przemalowania.RDW_NOCHILDREN
Wyklucza okna podrzędne, jeśli istnieją, z operacji przemalowania.
Wartość zwracana
Niezero, jeśli okno zostało pomyślnie ponownie wyrysowane; w przeciwnym razie 0.
Uwagi
RedrawWindow
Gdy funkcja składowa jest używana do unieważnienia części okna pulpitu, to okno nie odbiera komunikatuWM_PAINT
. Aby ponownie zaintować pulpit, aplikacja powinna używać CWnd::ValidateRgn
, CWnd::InvalidateRgn
, CWnd::UpdateWindow
lub RedrawWindow
CWnd::ReflectChildNotify
Ta funkcja komunikatu jest wywoływana przez strukturę z .OnChildNotify
BOOL ReflectChildNotify(
UINT message,
WPARAM wParam,
LPARAM lParam,
LRESULT* pResult);
Parametry
message
Określa komunikat, który ma zostać odzwierciedlony.
wParam
Określa dodatkowe informacje zależne od komunikatów.
lParam
Określa dodatkowe informacje zależne od komunikatów.
pResult
Wynik wygenerowany przez okno podrzędne, które ma zostać zwrócone przez okno nadrzędne. Może to być NULL
.
Wartość zwracana
TRUE
jeśli wiadomość została odzwierciedlona; w przeciwnym razie FALSE
.
Uwagi
Jest to funkcja pomocnika, która odzwierciedla message
jej źródło.
Odzwierciedlone komunikaty są wysyłane bezpośrednio do CWnd::OnWndMsg
lub CCmdTarget::OnCmdMsg
.
Aby uzyskać więcej informacji na temat odbicia komunikatów, zobacz Obsługa odbitych komunikatów.
CWnd::ReflectLastMsg
Ta funkcja składowa jest wywoływana przez strukturę, aby odzwierciedlić ostatni komunikat w oknie podrzędnym.
static BOOL PASCAL ReflectLastMsg(
HWND hWndChild,
LRESULT* pResult = NULL);
Parametry
hWndChild
Uchwyt do okna podrzędnego.
pResult
Wynik wygenerowany przez okno podrzędne, które ma zostać zwrócone przez okno nadrzędne. Może to być NULL
.
Wartość zwracana
Nonzero, jeśli komunikat został obsłużony; w przeciwnym razie 0.
Uwagi
Ta funkcja składowa wywołuje SendChildNotifyLastMsg
, jeśli okno zidentyfikowane przez hWndChild
jest kontrolką OLE lub oknem na stałej mapy.
Aby uzyskać więcej informacji na temat odbicia komunikatów, zobacz Obsługa odbitych komunikatów.
CWnd::ReleaseDC
Zwalnia kontekst urządzenia, zwalniając go do użytku przez inne aplikacje.
int ReleaseDC(CDC* pDC);
Parametry
pDC
Identyfikuje kontekst urządzenia, który ma zostać zwolniony.
Wartość zwracana
Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.
Uwagi
Wpływ funkcji składowej ReleaseDC
zależy od typu kontekstu urządzenia.
Aplikacja musi wywołać ReleaseDC
funkcję składową dla każdego wywołania funkcji składowej GetWindowDC
i dla każdego wywołania funkcji składowej GetDC
.
CWnd::RepositionBars
Wywoływana w celu zmiany położenia i zmiany rozmiaru pasków sterowania w obszarze klienta okna.
void RepositionBars(UINT nIDFirst,
UINT nIDLast,
UINT nIDLeftOver,
UINT nFlag = reposDefault,
LPRECT lpRectParam = NULL,
LPCRECT lpRectClient = NULL,
BOOL bStretch = TRUE) ;
Parametry
nIDFirst
Identyfikator pierwszego w zakresie pasków sterowania w celu zmiany położenia i zmiany rozmiaru.
nIDLast
Identyfikator ostatniego paska sterowania w celu zmiany położenia i zmiany rozmiaru.
nIDLeftOver
Określa identyfikator okienka, który wypełnia pozostałą część obszaru klienta.
nFlag
Może mieć jedną z następujących wartości:
CWnd::reposDefault
Wykonuje układ pasków sterowania.lpRectParam
nie jest używany i może mieć wartośćNULL
.CWnd::reposQuery
Układ pasków sterowania nie jest wykonywany; zamiast tegolpRectParam
jest inicjowany z rozmiarem obszaru klienta, tak jakby układ został rzeczywiście wykonany.CWnd::reposExtra
Dodaje wartości dolpRectParam
obszarunIDLast
klienta programu , a także wykonuje układ.
lpRectParam
RECT
Wskazuje strukturę, której użycie zależy od wartości nFlag
.
lpRectClient
Wskazuje strukturę zawierającą RECT
dostępny obszar klienta. Jeśli NULL
zostanie użyty obszar klienta okna.
bStretch
Wskazuje, czy słupek powinien być rozciągnięty do rozmiaru ramki.
Uwagi
Parametry nIDFirst
i nIDLast
definiują zakres identyfikatorów paska sterowania, które mają być zmieniane w obszarze klienta. Parametr nIDLeftOver
określa identyfikator okna podrzędnego (zwykle widok), który jest zmieniany i zmieniany w celu wypełnienia reszty obszaru klienta, który nie jest wypełniony paskami sterowania.
CWnd::RunModalLoop
Wywołaj tę funkcję składową, aby pobrać, przetłumaczyć lub wysłać komunikaty, dopóki nie ContinueModal
zwróci wartości FALSE
.
int RunModalLoop(DWORD dwFlags = 0);
Parametry
dwFlags
Określa komunikat systemu Windows do wysłania. Może być jedną z następujących wartości:
MLF_NOIDLEMSG
Nie wysyłajWM_ENTERIDLE
wiadomości do elementu nadrzędnego.MLF_NOKICKIDLE
Nie wysyłajWM_KICKIDLE
wiadomości do okna.MLF_SHOWONIDLE
Pokaż okno, gdy kolejka komunikatów przejdzie w stan bezczynności.
Wartość zwracana
Określa wartość parametru nResult
przekazanego do funkcji składowej EndModalLoop
, która jest następnie używana do zakończenia pętli modalnej.
Uwagi
Domyślnie ContinueModal
funkcja zwraca wartość FALSE
po EndModalLoop
wywołaniu. Zwraca wartość podaną jako nResult
.EndModalLoop
CWnd::ScreenToClient
Konwertuje współrzędne ekranu danego punktu lub prostokąta na ekranie na współrzędne klienta.
void ScreenToClient(LPPOINT lpPoint) const; void ScreenToClient(LPRECT lpRect) const;
Parametry
lpPoint
Wskazuje obiekt lub POINT
strukturę zawierającą CPoint
współrzędne ekranu, które mają zostać przekonwertowane.
lpRect
Wskazuje obiekt lub RECT
strukturę zawierającą CRect
współrzędne ekranu, które mają zostać przekonwertowane.
Uwagi
Funkcja ScreenToClient
składowa zastępuje współrzędne ekranu podane we lpPoint
współrzędnych lub lpRect
z współrzędnymi klienta. Nowe współrzędne są względem lewego górnego rogu CWnd
obszaru klienta.
Przykład
Zobacz przykład dla elementu CListCtrl::GetItemRect
.
CWnd::ScrollWindow
Przewija zawartość obszaru klienta bieżącego CWnd
obiektu.
void ScrollWindow(
int xAmount,
int yAmount,
LPCRECT lpRect = NULL,
LPCRECT lpClipRect = NULL);
Parametry
xAmount
Określa ilość w jednostkach urządzeń przewijania w poziomie. Ten parametr musi być wartością ujemną, aby przewinąć do lewej strony.
yAmount
Określa ilość w jednostkach urządzenia przewijania w pionie. Ten parametr musi być wartością ujemną, aby przewinąć w górę.
lpRect
CRect
Wskazuje obiekt lub RECT
strukturę, która określa część obszaru klienta do przewinięcia. Jeśli lpRect
wartość to NULL
, cały obszar klienta jest przewijany. Daszek jest zmieniany, jeśli prostokąt kursora przecina prostokąt przewijania.
lpClipRect
CRect
Wskazuje obiekt lub RECT
strukturę, która określa prostokąt wycinków do przewijania. Przewijane są tylko bity wewnątrz tego prostokąta. Bity poza tym prostokątem nie mają wpływu, nawet jeśli znajdują się w prostokątie lpRect
. Jeśli lpClipRect
wartość to NULL
, na prostokątze przewijania nie jest wykonywane żadne wycinki.
Uwagi
Jeśli daszek jest przewijany CWnd
, automatycznie ukrywa karetki, ScrollWindow
aby zapobiec wymazaniu, a następnie przywraca karetki po zakończeniu przewijania. Położenie karetki jest odpowiednio dostosowywane.
Obszar odkryty przez funkcję składową ScrollWindow
nie jest przemalowany, ale jest połączony z regionem aktualizacji bieżącego CWnd
obiektu. Aplikacja w końcu otrzyma komunikat z powiadomieniem WM_PAINT
o konieczności przemalowania regionu. Aby przemalować odkryty obszar w tym samym czasie przewijania, wywołaj UpdateWindow
funkcję składową natychmiast po wywołaniu metody ScrollWindow
.
Jeśli lpRect
wartość to NULL
, pozycje dowolnego okna podrzędnego w oknie są przesunięte o kwotę określoną przez xAmount
i yAmount
, a wszystkie nieprawidłowe (niezapłacone) obszary w oknie CWnd
są również przesunięte. ScrollWindow
funkcja jest szybsza, gdy lpRect
wartość to NULL
.
Jeśli lpRect
nie NULL
jest , pozycje okien podrzędnych nie są zmieniane, a nieprawidłowe obszary w CWnd
nie są przesunięte. Aby zapobiec aktualizowaniu problemów, gdy lpRect
nie NULL
jest , wywołaj UpdateWindow
funkcję składową, aby przemalować CWnd
przed wywołaniem metody ScrollWindow
.
CWnd::ScrollWindowEx
Przewija zawartość obszaru klienta okna.
int ScrollWindowEx(
int dx,
int dy,
LPCRECT lpRectScroll,
LPCRECT lpRectClip,
CRgn* prgnUpdate,
LPRECT lpRectUpdate,
UINT flags);
Parametry
dx
Określa ilość w jednostkach urządzeń przewijania w poziomie. Ten parametr musi mieć wartość ujemną, aby przewinąć do lewej strony.
dy
Określa ilość w jednostkach urządzenia przewijania w pionie. Ten parametr musi mieć wartość ujemną, aby przewinąć w górę.
lpRectScroll
RECT
Wskazuje strukturę, która określa część obszaru klienta do przewinięcia. Jeśli ten parametr to NULL
, cały obszar klienta jest przewijany.
lpRectClip
Wskazuje strukturę określającą RECT
prostokąt wycinków do przewijania. Ta struktura ma pierwszeństwo przed prostokątem wskazywany przez lpRectScroll
. Przewijane są tylko bity wewnątrz tego prostokąta. Bity poza tym prostokątem nie mają wpływu, nawet jeśli znajdują się w prostokątie lpRectScroll
. Jeśli ten parametr ma NULL
wartość , nie jest wykonywane wycinki na prostokątze przewijania.
prgnUpdate
Identyfikuje region, który został zmodyfikowany w celu przechowywania regionu unieważnionego, przewijając. Ten parametr może mieć wartość NULL
.
lpRectUpdate
RECT
Wskazuje strukturę, która otrzyma granice prostokąta unieważnione przez przewinięcie. Ten parametr może mieć wartość NULL
.
flags
Może mieć jedną z następujących wartości:
SW_ERASE
Po określeniu za pomocą polecenia programSW_INVALIDATE
wymazuje nowo unieważniony region, wysyłającWM_ERASEBKGND
komunikat do okna.SW_INVALIDATE
Unieważnia region zidentyfikowanyprgnUpdate
po przewinięciu.SW_SCROLLCHILDREN
Przewija wszystkie okna podrzędne, które przecinają prostokąt wskazywany przezlpRectScroll
liczbę pikseli określonych w idx
dy
. System Windows wysyłaWM_MOVE
komunikat do wszystkich okien podrzędnych, które przecinająlpRectScroll
element , nawet jeśli nie zostaną przeniesione. Daszek jest zmieniany po przewinięciu okna podrzędnego, a prostokąt kursora przecina prostokąt przewijania.
Wartość zwracana
Wartość zwracana to SIMPLEREGION
(prostokątny region unieważniony), COMPLEXREGION
(nieodtworzony region nieprawidłowy; nakładające się prostokąty) lub NULLREGION
(bez unieważnionego regionu), jeśli funkcja zakończy się pomyślnie; w przeciwnym razie zwracana wartość to ERROR
.
Uwagi
Ta funkcja jest podobna ScrollWindow
do funkcji z dodatkowymi funkcjami.
Jeśli SW_INVALIDATE
funkcja składowa nie zostanie określona i SW_ERASE
nie zostanie określona, ScrollWindowEx
nie unieważnia obszaru, od którego jest przewijany. Jeśli którakolwiek z tych flag jest ustawiona, ScrollWindowEx
unieważnia ten obszar. Obszar nie jest aktualizowany, dopóki aplikacja nie wywołuje UpdateWindow
funkcji składowej, wywołuje RedrawWindow
funkcję składową (określającą RDW_UPDATENOW
lub RDW_ERASENOW
) lub pobiera WM_PAINT
komunikat z kolejki aplikacji.
Jeśli okno ma WS_CLIPCHILDREN
styl, zwrócone obszary określone przez prgnUpdate
i lpRectUpdate
reprezentują całkowity obszar okna przewijania, który musi zostać zaktualizowany, w tym wszystkie obszary w oknach podrzędnych, które wymagają aktualizacji.
Jeśli zostanie określona flaga SW_SCROLLCHILDREN
, system Windows nie zaktualizuje poprawnie ekranu, jeśli część okna podrzędnego zostanie przewinięta. Część przewijanego okna podrzędnego, która znajduje się poza prostokątem źródłowym, nie zostanie wymazana i nie zostanie poprawnie wyrysowana w nowym miejscu docelowym. DeferWindowPos
Użyj funkcji systemu Windows, aby przenieść okna podrzędne, które nie leżą całkowicie w prostokątzelpRectScroll
. Kursor jest zmieniany, jeśli flaga SW_SCROLLCHILDREN
jest ustawiona, a prostokąt karetki przecina prostokąt przewijania.
Przyjmuje się, że wszystkie współrzędne wejściowe i wyjściowe (dla lpRectScroll
, lpRectClip
, lpRectUpdate
i prgnUpdate
) znajdują się we współrzędnych klienta, niezależnie od tego, czy okno ma CS_OWNDC
styl klasy lub .CS_CLASSDC
LPtoDP
W razie potrzeby użyj funkcji i DPtoLP
Systemu Windows, aby przekonwertować na i z współrzędnych logicznych.
CWnd::SendChildNotifyLastMsg
Ta funkcja składowa jest wywoływana przez strukturę w celu dostarczenia komunikatu powiadomienia do okna podrzędnego z okna nadrzędnego, aby okno podrzędne może obsłużyć zadanie.
BOOL SendChildNotifyLastMsg(LRESULT* pResult = NULL);
Parametry
pResult
Wynik wygenerowany przez okno podrzędne, które ma zostać zwrócone przez okno nadrzędne.
Wartość zwracana
Nonzero, jeśli okno podrzędne obsłużyło wiadomość wysłaną do elementu nadrzędnego; w przeciwnym razie 0.
Uwagi
SendChildNotifyLastMsg
wyślij bieżący komunikat do źródła, jeśli jest to komunikat, który jest odzwierciedlony.
Aby uzyskać więcej informacji na temat odbicia komunikatów, zobacz Obsługa odbitych komunikatów.
CWnd::SendDlgItemMessage
Wysyła komunikat do kontrolki.
LRESULT SendDlgItemMessage(
int nID,
UINT message,
WPARAM wParam = 0,
LPARAM lParam = 0);
Parametry
nID
Określa identyfikator kontrolki okna dialogowego, która będzie odbierać komunikat.
message
Określa komunikat do wysłania.
wParam
Określa dodatkowe informacje zależne od komunikatów.
lParam
Określa dodatkowe informacje zależne od komunikatów.
Wartość zwracana
Określa wartość zwracaną przez procedurę okna kontrolki lub 0, jeśli kontrolka nie została znaleziona.
Uwagi
SendDlgItemMessage
Funkcja składowa nie zwraca się do momentu przetworzenia komunikatu.
Użycie SendDlgItemMessage
jest identyczne z uzyskaniem CWnd
* dla danej kontrolki i wywoływaniem funkcji składowej SendMessage
.
Przykład
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
Wysyła określony komunikat do tego okna.
LRESULT SendMessage(
UINT message,
WPARAM wParam = 0,
LPARAM lParam = 0);
Parametry
message
Określa komunikat do wysłania.
wParam
Określa dodatkowe informacje zależne od komunikatów.
lParam
Określa dodatkowe informacje zależne od komunikatów.
Wartość zwracana
Wynik przetwarzania komunikatów; jego wartość zależy od wysłanej wiadomości.
Uwagi
SendMessage
Funkcja składowa wywołuje procedurę okna bezpośrednio i nie zwraca się, dopóki ta procedura okna nie przetworzyła komunikatu. Jest to w przeciwieństwie do funkcji składowej PostMessage
, która umieszcza komunikat w kolejce komunikatów okna i zwraca natychmiast.
Przykład
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
Wywołaj tę funkcję składową, aby wysłać określony komunikat systemu Windows do wszystkich okien potomnych.
void SendMessageToDescendants(
UINT message,
WPARAM wParam = 0,
LPARAM lParam = 0,
BOOL bDeep = TRUE,
BOOL bOnlyPerm = FALSE);
Parametry
message
Określa komunikat do wysłania.
wParam
Określa dodatkowe informacje zależne od komunikatów.
lParam
Określa dodatkowe informacje zależne od komunikatów.
bDeep
Określa poziom, do którego ma być wyszukiwane. Jeśli TRUE
, rekursywnie przeszukaj wszystkie elementy podrzędne; jeśli FALSE
, wyszukaj tylko natychmiastowe dzieci.
bOnlyPerm
Określa, czy komunikat zostanie odebrany przez okna tymczasowe. Jeśli TRUE
, okna tymczasowe mogą odbierać komunikat; jeśli FALSE
tylko stałe okna odbierają komunikat. Aby uzyskać więcej informacji na temat okien tymczasowych, zobacz Technical Note 3 (Uwaga techniczna 3).
Uwagi
Jeśli bDeep
to FALSE
, wiadomość jest wysyłana tylko do natychmiastowych elementów podrzędnych okna. W przeciwnym razie wiadomość jest wysyłana do wszystkich okien potomnych.
Jeśli bDeep
element i bOnlyPerm
to TRUE
, wyszukiwanie będzie kontynuowane poniżej okien tymczasowych. W takim przypadku tylko stałe okna napotkane podczas wyszukiwania otrzymają komunikat. Jeśli bDeep
to FALSE
, komunikat jest wysyłany tylko do natychmiastowych elementów podrzędnych okna.
Przykład
// 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
Wysyła określony komunikat do okna.
BOOL SendNotifyMessage(
UINT message,
WPARAM wParam,
LPARAM lParam);
Parametry
message
Określa komunikat do wysłania.
wParam
Określa dodatkowe informacje zależne od komunikatów.
lParam
Określa dodatkowe informacje zależne od komunikatów.
Wartość zwracana
Różne od zera, jeśli funkcja zakończyła się pomyślnie; w przeciwnym razie 0.
Uwagi
Jeśli okno zostało utworzone przez wątek wywołujący, SendNotifyMessage
wywołuje procedurę okna dla okna i nie zwraca się do momentu przetworzenia komunikatu przez procedurę okna. Jeśli okno zostało utworzone przez inny wątek, SendNotifyMessage
przekazuje komunikat do procedury okna i zwraca się natychmiast. Nie czeka na zakończenie przetwarzania komunikatu przez procedurę okna.
CWnd::SetActiveWindow
Powoduje, że CWnd
aktywne okno.
CWnd* SetActiveWindow();
Wartość zwracana
Okno, które było wcześniej aktywne.
Zwrócony wskaźnik może być tymczasowy i nie powinien być przechowywany do późniejszego użycia.
Uwagi
Funkcja SetActiveWindow
składowa powinna być używana z ostrożnością, ponieważ umożliwia aplikacji arbitralne przejęcie aktywnego okna i fokusu wejściowego. Zwykle system Windows zajmuje się całą aktywacją.
CWnd::SetCapture
Powoduje wysłanie wszystkich kolejnych danych wejściowych myszy do bieżącego CWnd
obiektu niezależnie od położenia kursora.
CWnd* SetCapture();
Wartość zwracana
Wskaźnik do obiektu okna, który wcześniej otrzymał wszystkie dane wejściowe myszy. To jest NULL
, jeśli nie ma takiego okna. Zwrócony wskaźnik może być tymczasowy i nie powinien być przechowywany do późniejszego użycia.
Uwagi
Jeśli CWnd
nie wymaga już wszystkich danych wejściowych myszy, aplikacja powinna wywołać ReleaseCapture
funkcję, aby inne okna mogły odbierać dane wejściowe myszy.
Gdy dane wejściowe myszy są przechwytywane, żadne komunikaty lub WM_SETCURSOR
nie WM_NCHITTEST
są wysyłane do aktywnego okna.
CWnd::SetCaretPos
Ustawia położenie karetki.
static void PASCAL SetCaretPos(POINT point);
Parametry
point
Określa nowe współrzędne x i y (we współrzędnych klienta) karetki.
Uwagi
Funkcja SetCaretPos
składowa przenosi daszek tylko wtedy, gdy jest własnością okna w bieżącym zadaniu. SetCaretPos
przesuwa karetki, czy karetki są ukryte.
Daszek jest zasobem udostępnionym. Okno nie powinno przenosić karetki, jeśli nie jest właścicielem karetki.
Przykład
// 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
Dodaje to okno do łańcucha okien, które są powiadamiane (za pomocą komunikatu WM_DRAWCLIPBOARD
) za każdym razem, gdy zawartość Schowka zostanie zmieniona.
HWND SetClipboardViewer();
Wartość zwracana
Uchwyt do następnego okna w łańcuchu Schowek-viewer, jeśli się powiedzie. Aplikacje powinny zapisywać ten uchwyt (może być przechowywany jako zmienna składowa) i używać go podczas odpowiadania na komunikaty łańcucha Schowka-viewer.
Uwagi
Okno będące częścią łańcucha Schowka-viewer musi odpowiadać na WM_DRAWCLIPBOARD
komunikaty , WM_CHANGECBCHAIN
i WM_DESTROY
przekazać komunikat do następnego okna w łańcuchu.
Ta funkcja składowa WM_DRAWCLIPBOARD
wysyła komunikat do okna. Ponieważ dojście do następnego okna w łańcuchu Schowka-viewer nie zostało jeszcze zwrócone, aplikacja nie powinna przekazać komunikatu WM_DRAWCLIPBOARD
odbieranego podczas wywołania metody SetClipboardViewer
.
Aby usunąć się z łańcucha Clipboard-viewer, aplikacja musi wywołać funkcję składową ChangeClipboardChain
.
CWnd::SetDlgCtrlID
Ustawia identyfikator okna lub identyfikator kontrolki dla okna na nową wartość.
int SetDlgCtrlID(int nID);
Parametry
nID
Nowa wartość ustawiana dla identyfikatora kontrolki.
Wartość zwracana
Poprzedni identyfikator okna, jeśli się powiedzie; w przeciwnym razie 0.
Uwagi
Okno może być dowolnym oknem podrzędnym, a nie tylko kontrolką w oknie dialogowym. Okno nie może być oknem najwyższego poziomu.
CWnd::SetDlgItemInt
Ustawia tekst danej kontrolki w oknie dialogowym na ciąg reprezentujący określoną wartość całkowitą.
void SetDlgItemInt(
int nID,
UINT nValue,
BOOL bSigned = TRUE);
Parametry
nID
Określa identyfikator liczby całkowitej kontrolki, która ma zostać zmieniona.
nValue
Określa wartość całkowitą użytą do wygenerowania tekstu elementu.
bSigned
Określa, czy wartość całkowita jest podpisana, czy niepodpisane. Jeśli ten parametr ma TRUE
wartość , nValue
jest podpisany. Jeśli ten parametr jest TRUE
mniejszy niż nValue
0, znak minus zostanie umieszczony przed pierwszą cyfrą w ciągu. Jeśli ten parametr to FALSE
, nValue
jest niepodpisany.
Uwagi
SetDlgItemInt
WM_SETTEXT
wysyła komunikat do danej kontrolki.
Przykład
Zobacz przykład dla elementu CWnd::SetDlgItemText
.
CWnd::SetDlgItemText
Ustawia podpis lub tekst kontrolki należącej do okna lub okna dialogowego.
void SetDlgItemText(
int nID,
LPCTSTR lpszString);
Parametry
nID
Identyfikuje kontrolkę, której tekst ma zostać ustawiony.
lpszString
CString
Wskazuje obiekt lub ciąg zakończony wartością null, który zawiera tekst, który ma zostać skopiowany do kontrolki.
Uwagi
SetDlgItemText
WM_SETTEXT
wysyła komunikat do danej kontrolki.
Przykład
// 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
Umieszcza wątek, który utworzył okno na pierwszym planie i aktywuje okno.
BOOL SetForegroundWindow();
Wartość zwracana
Różne od zera, jeśli funkcja zakończyła się pomyślnie; w przeciwnym razie 0.
Uwagi
Dane wejściowe klawiatury są kierowane do okna, a dla użytkownika zmieniane są różne sygnały wizualne. Okno pierwszego planu to okno, w którym użytkownik aktualnie pracuje. Okno pierwszego planu dotyczy tylko okien najwyższego poziomu (okien ramowych lub okien dialogowych).
Przykład
Zobacz przykład dla elementu CWnd::FindWindow
.
CWnd::SetFocus
Twierdzi, że fokus danych wejściowych.
CWnd* SetFocus();
Wartość zwracana
Wskaźnik do obiektu okna, który wcześniej miał fokus wejściowy. To jest NULL
, jeśli nie ma takiego okna. Zwrócony wskaźnik może być tymczasowy i nie powinien być przechowywany.
Uwagi
Fokus wejściowy kieruje wszystkie kolejne dane wejściowe klawiatury do tego okna. Każde okno, które wcześniej miało fokus wejściowy, traci je.
SetFocus
Funkcja składowa WM_KILLFOCUS
wysyła komunikat do okna, które traci fokus wejściowy i WM_SETFOCUS
komunikat do okna, które odbiera fokus wejściowy. Aktywuje również okno lub jego element nadrzędny.
Jeśli bieżące okno jest aktywne, ale nie ma fokusu (oznacza to, że żadne okno nie ma fokusu), każdy naciśnięty spowoduje wygenerowanie komunikatów WM_SYSCHAR
, WM_SYSKEYDOWN
lub WM_SYSKEYUP
.
CWnd::SetFont
WM_SETFONT
Wysyła komunikat do okna, aby użyć określonej czcionki.
void SetFont(
CFont* pFont,
BOOL bRedraw = TRUE);
Parametry
pFont
Wskaźnik do CFont
obiektu.
bRedraw
TRUE
aby okno było ponownie rysowane natychmiast po jego zakończeniu przetwarzania komunikatu WM_SETFONT
; w przeciwnym razie FALSE
.
Uwagi
Ta metoda nie ma żadnego efektu, chyba że okno przetwarza WM_SETFONT
komunikat. Wiele klas MFC, które pochodzą z CWnd
procesu tego komunikatu, ponieważ są one dołączone do wstępnie zdefiniowanej klasy okna, która zawiera procedurę obsługi komunikatów dla komunikatu WM_SETFONT
. Aby użyć tej metody, klasy pochodzące z CWnd
klasy muszą definiować procedurę obsługi dla komunikatu WM_SETFONT
.
CWnd::SetIcon
Wywołaj tę funkcję składową, aby ustawić uchwyt na określoną ikonę, zidentyfikowaną przez hIcon
element .
HICON SetIcon(
HICON hIcon,
BOOL bBigIcon);
Parametry
hIcon
Uchwyt do poprzedniej ikony.
bBigIcon
Określa ikonę 32 pikseli na 32 pikseli, jeśli TRUE
; określa ikonę 16 pikseli na 16 pikseli, jeśli FALSE
.
Wartość zwracana
Uchwyt do ikony.
Uwagi
Po zarejestrowaniu klasy okna zostanie wybrana ikona.
Przykład
Zobacz przykład dla elementu CWnd::GetSystemMenu
.
CWnd::SetLayeredWindowAttributes
Ustawia nieprzezroczystość i klucz koloru przezroczystości okna warstwowego.
BOOL SetLayeredWindowAttributes(
COLORREF crKey,
BYTE bAlpha,
DWORD dwFlags);
Parametry
crKey
Wskaźnik do COLORREF
wartości, która określa klucz koloru przezroczystości, który ma być używany podczas komponowania okna warstwowego. Wszystkie piksele malowane przez okno w tym kolorze będą przezroczyste. Aby wygenerować element COLORREF
, użyj makra RGB
.
bAlpha
Wartość alfa używana do opisania nieprzezroczystości okna warstwowego. Aby uzyskać więcej informacji, zobacz SourceConstantAlpha
element członkowski BLENDFUNCTION
struktury. Gdy bAlpha
wartość wynosi 0, okno jest całkowicie przezroczyste. Gdy bAlpha
ma wartość 255, okno jest nieprzezroczyste.
dwFlags
Określa akcję do wykonania. Ten parametr może być co najmniej jedną z następujących wartości. Aby uzyskać listę możliwych wartości, zobacz SetLayeredWindowAttributes
.
Wartość zwracana
Nonzero, jeśli funkcja powiedzie się; w przeciwnym razie 0.
Uwagi
Ta funkcja składowa emuluje funkcjonalność funkcji SetLayeredWindowAttributes
, zgodnie z opisem w zestawie Windows SDK.
CWnd::SetMenu
Ustawia bieżące menu na określone menu.
BOOL SetMenu(CMenu* pMenu);
Parametry
pMenu
Identyfikuje nowe menu. Jeśli ten parametr to NULL
, bieżące menu zostanie usunięte.
Wartość zwracana
Niezerowe, jeśli menu zostanie zmienione; w przeciwnym razie 0.
Uwagi
Powoduje ponowne rysowanie okna w celu odzwierciedlenia zmiany menu.
SetMenu
nie spowoduje zniszczenia poprzedniego menu. Aplikacja powinna wywołać funkcję składową CMenu::DestroyMenu
, aby wykonać to zadanie.
Przykład
Zobacz przykład dla elementu CMenu::LoadMenu
.
CWnd::SetOwner
Ustawia właściciela bieżącego okna na określony obiekt okna.
void SetOwner(CWnd* pOwnerWnd);
Parametry
pOwnerWnd
Identyfikuje nowego właściciela obiektu okna. Jeśli ten parametr to NULL
, obiekt okna nie ma właściciela.
Uwagi
Ten właściciel może następnie odbierać komunikaty poleceń z bieżącego obiektu okna. Domyślnie element nadrzędny bieżącego okna jest jego właścicielem.
Często przydaje się nawiązywanie połączeń między obiektami okien, które nie są powiązane z hierarchią okien. Na przykład CToolBar
wysyła powiadomienia do właściciela zamiast do elementu nadrzędnego. Dzięki temu pasek narzędzi staje się elementem podrzędnym jednego okna (takiego jak okno aplikacji kontenera OLE) podczas wysyłania powiadomień do innego okna (takiego jak okno ramki w miejscu). Ponadto, gdy okno serwera jest dezaktywowane lub aktywowane podczas edycji w miejscu, każde okno należące do okna ramki jest ukryte lub wyświetlane. Ta własność jest jawnie ustawiana za pomocą wywołania metody SetOwner
.
Koncepcja własności tej funkcji różni się od koncepcji własności .GetWindow
CWnd::SetParent
Zmienia okno nadrzędne okna podrzędnego.
CWnd* SetParent(CWnd* pWndNewParent);
Parametry
pWndNewParent
Identyfikuje nowe okno nadrzędne.
Wartość zwracana
Wskaźnik do poprzedniego obiektu okna nadrzędnego, jeśli się powiedzie. Zwrócony wskaźnik może być tymczasowy i nie powinien być przechowywany do późniejszego użycia.
Uwagi
Jeśli okno podrzędne jest widoczne, system Windows wykonuje odpowiednie ponowne rysowanie i przemalowywanie.
CWnd::SetProperty
Wywołaj tę funkcję składową, aby ustawić właściwość kontrolki OLE określoną przez dwDispID
.
void AFX_CDECL SetProperty(
DISPID dwDispID,
VARTYPE vtProp, ...);
Parametry
dwDispID
Określa właściwość, która ma zostać ustawiona.
vtProp
Określa typ właściwości, która ma zostać ustawiona. Aby uzyskać możliwe wartości, zobacz sekcję Uwagi dla COleDispatchDriver::InvokeHelper
elementu .
...
Pojedynczy parametr typu określony przez vtProp
.
Uwagi
Uwaga
Ta funkcja powinna być wywoływana tylko w obiekcie reprezentującym CWnd
kontrolkę OLE.
Aby uzyskać więcej informacji na temat korzystania z tej funkcji składowej z kontenerami kontrolek OLE, zobacz artykuł ActiveX Control Containers: Programming ActiveX Controls in an ActiveX Control Container (Kontenery kontrolek ActiveX: programowanie kontrolek ActiveX w kontenerze kontrolek ActiveX).
CWnd::SetRedraw
Wywołania SetRedraw
aplikacji, aby umożliwić ponowne rysowanie zmian lub uniemożliwienie ponownego rysowania zmian.
void SetRedraw(BOOL bRedraw = TRUE);
Parametry
bRedraw
Określa stan flagi redraw. Jeśli ten parametr to TRUE
, flaga redraw jest ustawiona; jeśli FALSE
flaga zostanie wyczyszczone.
Uwagi
Ta funkcja składowa ustawia lub czyści flagę ponownego rysowania. Podczas wyczyszczenia flagi ponownego rysowania zawartość nie zostanie zaktualizowana po każdej zmianie i nie zostanie przemalowana do momentu ustawienia flagi ponownego rysowania. Na przykład aplikacja, która musi dodać kilka elementów do pola listy, może wyczyścić flagę ponownego rysowania, dodać elementy, a następnie ustawić flagę ponownego rysowania. Na koniec aplikacja może wywołać Invalidate
funkcję składową lub InvalidateRect
, aby pole listy było przemalowane.
Przykład
// 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
Wywołaj tę funkcję składową, aby ustawić informacje, które SCROLLINFO
struktura utrzymuje na pasku przewijania.
BOOL SetScrollInfo(
int nBar,
LPSCROLLINFO lpScrollInfo,
BOOL bRedraw = TRUE);
Parametry
nBar
Określa, czy pasek przewijania jest kontrolką, czy częścią obszaru innego niż klient okna. Jeśli jest on częścią obszaru innego niż klient, nBar wskazuje również, czy pasek przewijania jest umieszczony w poziomie, w pionie, czy w obu przypadkach. Musi to być jeden z następujących elementów:
SB_CTL
Zawiera parametry kontrolki paska przewijania. Elementm_hWnd
członkowski danych musi być uchwytem kontrolki paska przewijania.SB_HORZ
Określa, że okno jest poziomym paskiem przewijania.SB_VERT
Określa, że okno jest pionowym paskiem przewijania.
lpScrollInfo
Wskaźnik do SCROLLINFO
struktury. Aby uzyskać więcej informacji na temat tej struktury, zobacz zestaw Windows SDK.
bRedraw
Określa, czy pasek przewijania ma zostać ponownie wyrysowyny, aby odzwierciedlić nową pozycję. Jeśli bRedraw
ma wartość TRUE
, pasek przewijania zostanie ponownie narysowane. Jeśli jest FALSE
to wartość , nie jest ona rysowana ponownie. Pasek przewijania jest domyślnie ponownie rysowany.
Wartość zwracana
Jeśli operacja powiedzie się, zwraca wartość TRUE
. W przeciwnym razie jest to FALSE
.
Uwagi
Struktura SCROLLINFO
zawiera informacje o pasku przewijania, w tym minimalne i maksymalne pozycje przewijania, rozmiar strony i położenie pola przewijania (kciuk). SCROLLINFO
Zobacz temat struktury w zestawie Windows SDK, aby uzyskać więcej informacji na temat zmieniania domyślnych ustawień struktury.
Programy obsługi komunikatów systemu Windows MFC wskazujące położenie CWnd::OnHScroll
paska przewijania i CWnd::OnVScroll
, udostępniają tylko 16 bitów danych położenia. GetScrollInfo
i SetScrollInfo
podaj 32 bity danych położenia paska przewijania. W związku z tym aplikacja może wywołać GetScrollInfo
funkcję przetwarzania CWnd::OnHScroll
lub CWnd::OnVScroll
uzyskać 32-bitowe dane położenia paska przewijania.
Uwaga
CWnd::GetScrollInfo
Umożliwia aplikacjom używanie 32-bitowych pozycji paska przewijania.
CWnd::SetScrollPos
Ustawia bieżące położenie pola przewijania i, jeśli jest to wymagane, ponownie rysuje pasek przewijania, aby odzwierciedlić nową pozycję pola przewijania.
int SetScrollPos(
int nBar,
int nPos,
BOOL bRedraw = TRUE);
Parametry
nBar
Określa pasek przewijania, który ma zostać ustawiony. Ten parametr może mieć jedną z następujących wartości:
SB_HORZ
Ustawia położenie pola przewijania na poziomym pasku przewijania okna.SB_VERT
Ustawia położenie pola przewijania na pionowym pasku przewijania okna.
nPos
Określa nowe położenie pola przewijania. Musi znajdować się w zakresie przewijania.
bRedraw
Określa, czy pasek przewijania powinien zostać przemalowany, aby odzwierciedlić nową pozycję pola przewijania. Jeśli ten parametr to TRUE
, pasek przewijania zostanie przemalowany. Jeśli FALSE
pasek przewijania nie zostanie przemalowany.
Wartość zwracana
Poprzednie położenie pola przewijania.
Uwagi
Ustawienie bRedraw
wartości jest FALSE
przydatne za każdym razem, gdy pasek przewijania zostanie ponownie narysowany przez kolejne wywołanie innej funkcji.
CWnd::SetScrollRange
Ustawia wartości minimalnej i maksymalnej pozycji dla danego paska przewijania.
void SetScrollRange(
int nBar,
int nMinPos,
int nMaxPos,
BOOL bRedraw = TRUE);
Parametry
nBar
Określa pasek przewijania, który ma zostać ustawiony. Ten parametr może być jedną z następujących wartości:
SB_HORZ
Ustawia zakres poziomego paska przewijania okna.SB_VERT
Ustawia zakres pionowego paska przewijania okna.
nMinPos
Określa minimalną pozycję przewijania.
nMaxPos
Określa maksymalną pozycję przewijania.
bRedraw
Określa, czy pasek przewijania ma zostać ponownie wyrysowyny, aby odzwierciedlić zmianę. Jeśli bRedraw
ma TRUE
wartość , pasek przewijania zostanie ponownie narysowy; jeśli FALSE
pasek przewijania nie zostanie ponownie wyrysy.
Uwagi
Można go również użyć do ukrywania lub pokazywania standardowych pasków przewijania.
Aplikacja nie powinna wywoływać tej funkcji, aby ukryć pasek przewijania podczas przetwarzania komunikatu powiadomienia paska przewijania.
Jeśli wywołanie polecenia SetScrollRange
natychmiast następuje wywołanie funkcji składowejSetScrollPos
, parametr w SetScrollPos
funkcji składowej powinien mieć wartość 0, bRedraw
aby zapobiec dwukrotnemu narysowaniu paska przewijania.
Domyślny zakres standardowego paska przewijania to od 0 do 100. Domyślny zakres kontrolki paska przewijania jest pusty (wartości nMinPos
i nMaxPos
to 0). Różnica między wartościami określonymi przez nMinPos
element i nMaxPos
nie może być większa niż INT_MAX
.
CWnd::SetTimer
Instaluje czasomierz systemowy.
UINT_PTR SetTimer(
UINT_PTR nIDEvent,
UINT nElapse,
void (CALLBACK* lpfnTimer)(HWND,
UINT,
UINT_PTR,
DWORD));
Parametry
nIDEvent
Określa niezerowy identyfikator czasomierza. Jeśli identyfikator czasomierza jest unikatowy, ta sama wartość jest zwracana przez SetTimer
. SetTimer
W przeciwnym razie określa nową unikatową wartość i zwraca to. W przypadku czasomierza okna (z funkcją wywołania zwrotnego NULL
) wartość musi być unikatowa tylko dla innych czasomierzy okien skojarzonych z bieżącym oknem. W przypadku czasomierza wywołania zwrotnego wartość musi być unikatowa dla wszystkich czasomierzy we wszystkich procesach. W związku z tym podczas tworzenia czasomierza wywołania zwrotnego jest bardziej prawdopodobne, że zwrócona wartość może różnić się od określonej wartości.
nElapse
Określa wartość limitu czasu lub interwał w milisekundach.
lpfnTimer
Określa adres funkcji wywołania zwrotnego dostarczonej TimerProc
przez aplikację, która przetwarza WM_TIMER
komunikaty. Jeśli ten parametr to NULL
, WM_TIMER
komunikaty są umieszczane w kolejce komunikatów aplikacji i obsługiwane przez CWnd
obiekt.
Wartość zwracana
Identyfikator czasomierza nowego czasomierza, jeśli funkcja zakończy się pomyślnie. Ta wartość może być równa wartości przekazanej za pośrednictwem parametru nIDEvent
. Aplikacja powinna zawsze przekazywać wartość zwracaną do funkcji składowej KillTimer
, aby zabić czasomierz. Bezzerowe, jeśli się powiedzie; w przeciwnym razie, 0.
Uwagi
Określana jest wartość interwału i za każdym razem, gdy upłynie interwał, system publikuje WM_TIMER
komunikat w kolejce komunikatów instalacji aplikacji lub przekazuje komunikat do funkcji wywołania zwrotnego zdefiniowanego przez TimerProc
aplikację.
Funkcja lpfnTimer
wywołania zwrotnego nie musi mieć nazwy TimerProc
, ale musi być zadeklarowana jako statyczna i zdefiniowana w następujący sposób.
void CALLBACK TimerProc(
HWND hWnd, // handle of CWnd that called SetTimer
UINT nMsg, // WM_TIMER
UINT_PTR nIDEvent, // timer identification
DWORD dwTime // system time);
Przykład
W tym przykładzie użyto wartości CWnd::SetTimer
, CWnd::OnTimer
i CWnd::KillTimer
do obsługi WM_TIMER
komunikatów. Pierwszy czasomierz jest skonfigurowany do wysyłania komunikatu WM_TIMER
do głównego okna ramki co 2 sekundy w .OnStartTimer
Program OnTimer
obsługi zdarzeń obsługuje WM_TIMER
komunikaty dla głównego okna ramki. Ta metoda powoduje, że głośnik pc jest sygnałem dźwiękowym co 2 sekundy. Drugi czasomierz wysyła komunikat do funkcji wywołania zwrotnego co 3,75 sekundy. OnStopTimer
spowoduje zatrzymanie obu czasomierzy przez wywołanie CWnd::KillTimer
każdego identyfikatora czasomierza.
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
Wywołaj tę funkcję składową, aby skojarzyć identyfikator kontekstu pomocy z określonym oknem.
BOOL SetWindowContextHelpId(DWORD dwContextHelpId);
Parametry
dwContextHelpId
Identyfikator kontekstu pomocy.
Wartość zwracana
Różne od zera, jeśli funkcja zakończyła się pomyślnie; w przeciwnym razie 0.
Uwagi
Jeśli okno podrzędne nie ma identyfikatora kontekstu pomocy, dziedziczy identyfikator okna nadrzędnego. Podobnie, jeśli okno należące do użytkownika nie ma identyfikatora kontekstu pomocy, dziedziczy identyfikator okna właściciela. To dziedziczenie identyfikatorów kontekstu pomocy umożliwia aplikacji ustawienie tylko jednego identyfikatora okna dialogowego i wszystkich jego kontrolek.
Przykład
// 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
Ustawia stan wyświetlania i normalne (przywrócone), zminimalizowane i zmaksymalizowane pozycje dla okna.
BOOL SetWindowPlacement(const WINDOWPLACEMENT* lpwndpl);
Parametry
lpwndpl
Wskazuje strukturę określającą WINDOWPLACEMENT
nowy stan show i pozycje.
Wartość zwracana
Różne od zera, jeśli funkcja zakończyła się pomyślnie; w przeciwnym razie 0.
CWnd::SetWindowPos
Zmienia rozmiar, położenie i kolejność Z okna podrzędnego, wyskakującego i najwyższego poziomu.
BOOL SetWindowPos(
const CWnd* pWndInsertAfter,
int x,
int y,
int cx,
int cy,
UINT nFlags);
Parametry
pWndInsertAfter
CWnd
Identyfikuje obiekt, który będzie poprzedni (większy niż) ten CWnd
obiekt w kolejności Z. Ten parametr może być wskaźnikiem do CWnd
wskaźnika lub wskaźnikiem do jednej z następujących wartości:
wndBottom
Umieszcza okno w dolnej części kolejności Z. Jeśli jest toCWnd
najbardziej górne okno, okno traci najwyższy stan; system umieszcza okno w dolnej części wszystkich innych okien.wndTop
Umieszcza okno w górnej części kolejności Z.wndTopMost
Umieszcza okno powyżej wszystkich okien nienależących do góry. Okno utrzymuje najwyższą pozycję nawet wtedy, gdy jest dezaktywowana.wndNoTopMost
Zmienia położenie okna na górę wszystkich okien innych niż najwyższe (czyli za wszystkimi oknami z góry). Ta flaga nie ma żadnego wpływu, jeśli okno jest już nienajmniejsze okno.
Aby uzyskać informacje o sposobie używania tego parametru, zobacz sekcję "Uwagi" tego tematu.
x
Określa nowe położenie lewej strony okna.
y
Określa nowe położenie górnej części okna.
cx
Określa nową szerokość okna.
cy
Określa nową wysokość okna.
nFlags
Określa opcje określania rozmiaru i pozycjonowania. Ten parametr może być kombinacją następujących flag:
SWP_DRAWFRAME
Rysuje ramkę (zdefiniowaną podczas tworzenia okna) wokół okna.SWP_FRAMECHANGED
WM_NCCALCSIZE
Wysyła komunikat do okna, nawet jeśli rozmiar okna nie jest zmieniany. Jeśli ta flaga nie zostanie określona, zostanie wysłana tylko wtedy,WM_NCCALCSIZE
gdy rozmiar okna zostanie zmieniony.SWP_HIDEWINDOW
Ukrywa okno.SWP_NOACTIVATE
Nie aktywuje okna. Jeśli ta flaga nie jest ustawiona, okno zostanie aktywowane i przeniesione na górną część górnej lub nienajdącej do góry grupy (w zależności od ustawienia parametrupWndInsertAfter
).SWP_NOCOPYBITS
Odrzuca całą zawartość obszaru klienta. Jeśli ta flaga nie zostanie określona, prawidłowa zawartość obszaru klienta zostanie zapisana i skopiowana z powrotem do obszaru klienta po rozmiarze lub zmianie położenia okna.SWP_NOMOVE
Zachowuje bieżące położenie (ignorujex
parametry iy
).SWP_NOOWNERZORDER
Nie zmienia pozycji okna właściciela w kolejności Z.SWP_NOREDRAW
Nie rysuje zmian ponownie. Jeśli ta flaga jest ustawiona, nie ma żadnego przemalowania jakiegokolwiek rodzaju. Dotyczy to obszaru klienta, obszaru nieklienta (w tym tytułów i pasków przewijania) oraz dowolnej części okna nadrzędnego odkrytego w wyniku przeniesionego okna. Po ustawieniu tej flagi aplikacja musi jawnie unieważnić lub ponownie wyrysować wszystkie części okna i okna nadrzędnego, które muszą zostać ponownie rysowane.SWP_NOREPOSITION
Tak samo jakSWP_NOOWNERZORDER
.SWP_NOSENDCHANGING
Uniemożliwia odbieranie komunikatu przezWM_WINDOWPOSCHANGING
okno.SWP_NOSIZE
Zachowuje bieżący rozmiar (ignorujecx
parametry icy
).SWP_NOZORDER
Zachowuje bieżące kolejność (ignorujepWndInsertAfter
).SWP_SHOWWINDOW
Wyświetla okno.
Wartość zwracana
Nonzero, jeśli funkcja zakończyła się pomyślnie; w przeciwnym razie, 0.
Uwagi
Okna są uporządkowane na ekranie zgodnie z kolejnością Z; okno w górnej części kolejności Z jest wyświetlane w górnej części wszystkich pozostałych okien w kolejności.
Wszystkie współrzędne okien podrzędnych to współrzędne klienta (względem lewego górnego rogu obszaru klienta okna nadrzędnego).
Okno można przenieść do góry kolejności Z przez ustawienie parametru pWndInsertAfter
na &wndTopMost
i upewnienie się, że SWP_NOZORDER
flaga nie jest ustawiona lub przez ustawienie kolejności Z okna tak, aby było powyżej istniejących okien najwyższego poziomu. Gdy okno nienajmnie najwyższego poziomu jest najwięcej, jego własnością okna są również wykonane na najwyższym szczycie. Jego właściciele nie są zmieniani.
Najbardziej górne okno nie jest już najbardziej górne, jeśli znajduje się w dolnej części (&wndBottom
) kolejności Z lub po każdym nieopowierzchniowym oknie. Gdy najbardziej górne okno jest nienajechsze, wszyscy jego właściciele i jego własnością okna są również wykonane nienajechomienie okna.
Jeśli żadna z SWP_NOACTIVATE
nich nie SWP_NOZORDER
zostanie określona (oznacza to, że gdy aplikacja żąda, aby okno zostało jednocześnie aktywowane i umieszczone w określonej kolejności Z), wartość określona w pWndInsertAfter
pliku jest używana tylko w następujących okolicznościach:
Ani nie
&wndTopMost
&wndNoTopMost
jest określony w parametrzepWndInsertAfter
.To okno nie jest aktywnym oknem.
Aplikacja nie może aktywować nieaktywnego okna, nie przenosząc go również do góry kolejności Z. Aplikacje mogą zmieniać kolejność Z aktywowanego okna bez ograniczeń.
Okno spoza góry może być właścicielem najbardziej górnego okna, ale nie odwrotnie. Każde okno (na przykład okno dialogowe) należące do najwyższego poziomu okna jest tworzone na najwyższym poziomie okna, aby upewnić się, że wszystkie okna należące do właściciela pozostają nad ich właścicielem.
W systemie Windows w wersji 3.1 lub nowszej okna można przenosić do góry kolejności Z i blokować je, ustawiając ich WS_EX_TOPMOST
style. Takie najbardziej najwyższe okno utrzymuje najwyższą pozycję nawet w przypadku dezaktywacji. Na przykład wybranie polecenia WinHelp Always On Top powoduje, że okno Pomoc jest najbardziej widoczne, a następnie pozostaje widoczne po powrocie do aplikacji.
Aby utworzyć najbardziej najwyższe okno, wywołaj SetWindowPos
metodę z parametrem pWndInsertAfter
równym &wndTopMost
lub ustaw WS_EX_TOPMOST
styl podczas tworzenia okna.
Jeśli kolejność Z zawiera okna ze WS_EX_TOPMOST
stylem, okno przeniesione z wartością &wndTopMost
znajduje się w górnej części wszystkich okien nienachwytnych, ale poniżej dowolnego najwyższego poziomu okien. Gdy aplikacja aktywuje nieaktywne okno bez bitu WS_EX_TOPMOST
, okno zostanie przeniesione powyżej wszystkich okien nienależących do góry, ale poniżej dowolnego najwyższego poziomu okien.
Jeśli SetWindowPos
parametr jest wywoływany, gdy pWndInsertAfter
parametr to &wndBottom
i CWnd
jest najbardziej górnym oknem, okno traci najwyższy stan (WS_EX_TOPMOST
jest czyszczone), a system umieszcza okno w dolnej części kolejności Z.
Przykład
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
Wywołaj tę funkcję składową, aby ustawić region okna.
int SetWindowRgn(
HRGN hRgn,
BOOL bRedraw);
Parametry
hRgn
Uchwyt do regionu.
bRedraw
Jeśli TRUE
system operacyjny ponownie wyrysuje okno po ustawieniu regionu; w przeciwnym razie nie. Zazwyczaj ustaw wartość na bRedraw
TRUE
, jeśli okno jest widoczne. Jeśli ustawiono wartość TRUE
, system wysyła WM_WINDOWPOSCHANGING
komunikaty i WM_WINDOWPOSCHANGED
do okna.
Wartość zwracana
Jeśli funkcja powiedzie się, zwracana wartość jest niezerowa. Jeśli funkcja zakończy się niepowodzeniem, zwracana wartość to zero.
Uwagi
Współrzędne regionu okna są względem lewego górnego rogu okna, a nie obszaru klienta okna.
Po pomyślnym wywołaniu do SetWindowRgn
programu system operacyjny jest właścicielem regionu określonego przez region dojścia hRgn
. System operacyjny nie wykonuje kopii regionu, dlatego nie wykonuje żadnych kolejnych wywołań funkcji za pomocą tego uchwytu regionu i nie zamykaj tego uchwytu regionu.
CWnd::SetWindowText
Ustawia tytuł okna na określony tekst.
void SetWindowText(LPCTSTR lpszString);
Parametry
lpszString
CString
Wskazuje obiekt lub ciąg zakończony wartością null, który ma być używany jako nowy tytuł lub tekst sterujący.
Uwagi
Jeśli okno jest kontrolką, tekst w kontrolce jest ustawiony.
Ta funkcja powoduje wysłanie komunikatu WM_SETTEXT
do tego okna.
Przykład
// 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
Pokazuje karetki na ekranie w bieżącej pozycji karetki.
void ShowCaret();
Uwagi
Po pokazaniu karetki zaczynają migać automatycznie.
Funkcja ShowCaret
składowa pokazuje daszek tylko wtedy, gdy ma bieżący kształt i nie został ukryty dwa lub więcej razy z rzędu. Jeśli daszek nie jest własnością tego okna, daszek nie jest wyświetlany.
Ukrywanie karetki jest skumulowane. HideCaret
Jeśli funkcja składowa została wywołana pięć razy z rzędu, musi być wywoływana pięć razy, ShowCaret
aby pokazać daszek.
Daszek jest zasobem udostępnionym. Okno powinno pokazywać karetki tylko wtedy, gdy ma fokus wejściowy lub jest aktywny.
Przykład
Zobacz przykład dla elementu CWnd::CreateCaret
.
CWnd::ShowOwnedPopups
Wyświetla lub ukrywa wszystkie wyskakujące okna należące do tego okna.
void ShowOwnedPopups(BOOL bShow = TRUE);
Parametry
bShow
Określa, czy okna podręczne mają być wyświetlane, czy ukryte. Jeśli ten parametr to TRUE
, zostaną wyświetlone wszystkie ukryte okna podręczne. Jeśli ten parametr to FALSE
, wszystkie widoczne okna podręczne są ukryte.
Przykład
Zobacz przykład dla elementu CWnd::SetWindowPos
.
CWnd::ShowScrollBar
Wyświetla lub ukrywa pasek przewijania.
void ShowScrollBar(
UINT nBar,
BOOL bShow = TRUE);
Parametry
nBar
Określa, czy pasek przewijania jest kontrolką, czy częścią obszaru innego niż klient okna. Jeśli jest on częścią obszaru innego niż klient, wskazuje również, nBar
czy pasek przewijania jest umieszczony w poziomie, w pionie, czy w obu przypadkach. Musi to być jeden z następujących elementów:
SB_BOTH
Określa poziome i pionowe paski przewijania okna.SB_HORZ
Określa, że okno jest poziomym paskiem przewijania.SB_VERT
Określa, że okno jest pionowym paskiem przewijania.
bShow
Określa, czy system Windows pokazuje, czy ukrywa pasek przewijania. Jeśli ten parametr to TRUE
, zostanie wyświetlony pasek przewijania; w przeciwnym razie pasek przewijania jest ukryty.
Uwagi
Aplikacja nie powinna wywoływać ShowScrollBar
w celu ukrycia paska przewijania podczas przetwarzania komunikatu powiadomienia paska przewijania.
CWnd::ShowWindow
Ustawia stan widoczności okna.
BOOL ShowWindow(int nCmdShow);
Parametry
nCmdShow
Określa sposób wyświetlania parametru CWnd
. Musi to być jedna z następujących wartości:
SW_HIDE
Ukrywa to okno i przekazuje aktywację do innego okna.SW_MINIMIZE
Minimalizuje okno i aktywuje okno najwyższego poziomu na liście systemu.SW_RESTORE
Aktywuje i wyświetla okno. Jeśli okno zostanie zminimalizowane lub zmaksymalizowane, system Windows przywróci go do oryginalnego rozmiaru i położenia.SW_SHOW
Aktywuje okno i wyświetla go w bieżącym rozmiarze i położeniu.SW_SHOWMAXIMIZED
Aktywuje okno i wyświetla je jako zmaksymalizowane okno.SW_SHOWMINIMIZED
Aktywuje okno i wyświetla je jako ikonę.SW_SHOWMINNOACTIVE
Wyświetla okno jako ikonę. Okno, które jest obecnie aktywne, pozostaje aktywne.SW_SHOWNA
Wyświetla okno w bieżącym stanie. Okno, które jest obecnie aktywne, pozostaje aktywne.SW_SHOWNOACTIVATE
Wyświetla okno w najnowszym rozmiarze i pozycji. Okno, które jest obecnie aktywne, pozostaje aktywne.SW_SHOWNORMAL
Aktywuje i wyświetla okno. Jeśli okno zostanie zminimalizowane lub zmaksymalizowane, system Windows przywróci go do oryginalnego rozmiaru i położenia.
Wartość zwracana
Niezerowe, jeśli okno było wcześniej widoczne; 0, jeśli CWnd
element został wcześniej ukryty.
Uwagi
ShowWindow
element musi być wywoływany tylko raz na aplikację dla okna głównego za pomocą polecenia CWinApp::m_nCmdShow
. Kolejne wywołania muszą używać ShowWindow
jednej z wartości wymienionych powyżej zamiast określonej przez CWinApp::m_nCmdShow
element .
Przykład
Zobacz przykład dla elementu CWnd::CalcWindowRect
.
CWnd::SubclassDlgItem
Wywołaj tę funkcję składową do "dynamicznie podklasy" kontrolki utworzonej na podstawie szablonu okna dialogowego i dołącz ją do tego CWnd
obiektu.
BOOL SubclassDlgItem(
UINT nID,
CWnd* pParent);
Parametry
nID
Identyfikator kontrolki.
pParent
Element nadrzędny kontrolki (zazwyczaj okno dialogowe).
Wartość zwracana
Różne od zera, jeśli funkcja zakończyła się pomyślnie; w przeciwnym razie 0.
Uwagi
Gdy kontrolka jest dynamicznie podklasowana, komunikaty systemu Windows będą kierować przez CWnd
mapę komunikatów i wywołać programy obsługi komunikatów w pierwszej klasie klasy CWnd
. Komunikaty przekazywane do klasy bazowej zostaną przekazane do domyślnej procedury obsługi komunikatów w kontrolce.
Ta funkcja składowa dołącza kontrolkę CWnd
systemu Windows do obiektu i zastępuje funkcje i AfxWndProc
kontrolkiWndProc
. Funkcja przechowuje stare WndProc
w lokalizacji zwróconej przez funkcję składową GetSuperWndProcAddr
.
Przykład
// 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
Wywołaj tę funkcję składową, aby "dynamicznie podklasy" okno i dołączyć je do tego CWnd
obiektu.
BOOL SubclassWindow(HWND hWnd);
Parametry
hWnd
Uchwyt do okna.
Wartość zwracana
Różne od zera, jeśli funkcja zakończyła się pomyślnie; w przeciwnym razie 0.
Uwagi
Gdy okno jest dynamicznie podklasowane, komunikaty systemu Windows będą kierować przez CWnd
mapę komunikatów i wywołać programy obsługi komunikatów w CWnd
pierwszej klasie klasy. Komunikaty przekazywane do klasy bazowej zostaną przekazane do domyślnej procedury obsługi komunikatów w oknie.
Ta funkcja składowa dołącza kontrolkę CWnd
systemu Windows do obiektu i zastępuje funkcje i AfxWndProc
oknaWndProc
. Funkcja przechowuje wskaźnik do starego WndProc
CWnd
obiektu.
Uwaga
Okno nie może być jeszcze dołączone do obiektu MFC po wywołaniu tej funkcji.
Przykład
// 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
Wywołaj tę funkcję składową, aby odblokować okno, które zostało zablokowane za pomocą CWnd::LockWindowUpdate
polecenia .
void UnlockWindowUpdate();
Uwagi
Za pomocą polecenia LockWindowUpdate
można zablokować tylko jedno okno jednocześnie. Aby uzyskać więcej informacji na temat blokowania okien, zobacz CWnd::LockWindowUpdate
lub funkcja LockWindowUpdate
Win32.
CWnd::UnsubclassWindow
Wywołaj tę funkcję składową, aby przywrócić WndProc
jej oryginalną wartość i odłączyć okno zidentyfikowane przez HWND z CWnd
obiektu.
HWND UnsubclassWindow();
Wartość zwracana
Uchwyt do okna nieklasyfikowanego.
Przykład
Zobacz przykład dla elementu CWnd::SubclassWindow
.
CWnd::UpdateData
Wywołaj tę funkcję składową, aby zainicjować dane w oknie dialogowym lub pobrać i zweryfikować dane okna dialogowego.
BOOL UpdateData(BOOL bSaveAndValidate = TRUE);
Parametry
bSaveAndValidate
Flaga wskazująca, czy okno dialogowe jest inicjowane (FALSE
) lub dane są pobierane (TRUE
).
Wartość zwracana
Nonzero, jeśli operacja zakończyła się pomyślnie; w przeciwnym razie 0. Jeśli bSaveAndValidate
wartość to TRUE
, zwracana wartość niezerowa oznacza, że dane zostały pomyślnie zweryfikowane.
Uwagi
Platforma automatycznie wywołuje metodę UpdateData
z ustawioną wartością bSaveAndValidate
FALSE
, gdy modalne okno dialogowe zostanie utworzone w domyślnej implementacji programu CDialog::OnInitDialog
. Wywołanie występuje przed widocznym oknom dialogowym. Domyślna implementacja wywołań tej funkcji składowej CDialog::OnOK
z ustawioną wartością bSaveAndValidate
w celu TRUE
pobrania danych, a jeśli zakończy się pomyślnie, spowoduje zamknięcie okna dialogowego. (Jeśli przycisk Anuluj jest klikany w oknie dialogowym, okno dialogowe jest zamykane bez pobierania danych).
CWnd::UpdateDialogControls
Wywołaj tę funkcję składową, aby zaktualizować stan przycisków okna dialogowego i innych kontrolek w oknie dialogowym lub oknie, które korzysta z ON_UPDATE_COMMAND_UI
mechanizmu wywołania zwrotnego.
void UpdateDialogControls(
CCmdTarget* pTarget,
BOOL bDisableIfNoHndler);
Parametry
pTarget
Wskazuje główne okno ramki aplikacji i służy do routingu komunikatów aktualizacji.
bDisableIfNoHndler
Flaga wskazująca, czy kontrolka, która nie ma programu obsługi aktualizacji, powinna być automatycznie wyświetlana jako wyłączona.
Uwagi
Jeśli kontrolka podrzędna nie ma programu obsługi i bDisableIfNoHndler
ma TRUE
wartość , kontrolka podrzędna zostanie wyłączona.
Struktura wywołuje tę funkcję składową dla kontrolek na paskach okien dialogowych lub paskach narzędzi w ramach bezczynnego przetwarzania aplikacji.
CWnd::UpdateLayeredWindow
Aktualizuje położenie, rozmiar, kształt, zawartość i przezroczystość okna warstwowego.
BOOL UpdateLayeredWindow(
CDC* pDCDst,
POINT* pptDst,
SIZE* psize,
CDC* pDCSrc,
POINT* pptSrc,
COLORREF crKey,
BLENDFUNCTION* pblend,
DWORD dwFlags);
Parametry
pDCDst
Wskaźnik do kontekstu urządzenia dla ekranu. Służy do dopasowywania kolorów palety podczas aktualizowania zawartości okna. Jeśli pDCDst
wartość to NULL
, zostanie użyta paleta domyślna.
Jeśli pDCSrc
parametr ma NULL
wartość , pDCDst
musi mieć wartość NULL
.
pptDst
Wskaźnik do POINT
struktury określającej położenie nowego ekranu okna warstwowego. Jeśli bieżące położenie nie zmienia się, pptDst
może to być NULL
.
psize
Wskaźnik do SIZE
struktury, która określa nowy rozmiar okna warstwowego. Jeśli rozmiar okna nie zmienia się, psize
może to być NULL
.
Jeśli pDCSrc
parametr ma NULL
wartość , psize
musi mieć wartość NULL
.
pDCSrc
Wskaźnik kontrolera domeny dla powierzchni definiującej okno warstwowe. Jeśli kształt i kontekst wizualny okna nie ulegają zmianie, pDCSrc
może to być NULL
.
pptSrc
Wskaźnik do POINT
struktury, która określa lokalizację warstwy w kontekście urządzenia.
Jeśli pDCSrc
parametr ma NULL
wartość , pptSrc
powinien mieć wartość NULL
.
crKey
Wskaźnik do COLORREF
wartości, która określa klucz koloru przezroczystości, który ma być używany podczas komponowania okna warstwowego. Wszystkie piksele malowane przez okno w tym kolorze będą przezroczyste. Aby wygenerować element , użyj makra COLORREF
RGB.
pblend
Wskaźnik do BLENDFUNCTION
struktury, która określa wartość przezroczystości, która ma być używana podczas komponowania okna warstwowego.
dwFlags
Określa akcję do wykonania. Ten parametr może być co najmniej jedną z następujących wartości. Aby uzyskać listę możliwych wartości, zobacz UpdateLayeredWindow
.
Wartość zwracana
Nonzero, jeśli funkcja powiedzie się; w przeciwnym razie 0.
Uwagi
Ta funkcja składowa emuluje funkcjonalność funkcji UpdateLayeredWindow
, zgodnie z opisem w zestawie Windows SDK.
CWnd::UpdateWindow
Aktualizuje obszar klienta, wysyłając komunikat, WM_PAINT
jeśli region aktualizacji nie jest pusty.
void UpdateWindow();
Uwagi
UpdateWindow
Funkcja składowa wysyła WM_PAINT
komunikat bezpośrednio, pomijając kolejkę aplikacji. Jeśli region aktualizacji jest pusty, WM_PAINT
nie jest wysyłany.
Przykład
// 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
Sprawdza poprawność obszaru klienta w danym prostokątze przez usunięcie prostokąta z regionu aktualizacji okna.
void ValidateRect(LPCRECT lpRect);
Parametry
lpRect
Wskazuje obiekt lub RECT
strukturę zawierającą CRect
współrzędne klienta prostokąta do usunięcia z regionu aktualizacji. Jeśli lpRect
wartość to NULL
, całe okno zostanie zweryfikowane.
Uwagi
Funkcja BeginPaint
składowa automatycznie weryfikuje cały obszar klienta. Ani ValidateRect
funkcja składowa nie ValidateRgn
powinna być wywoływana, jeśli przed następnym wygenerowaniem należy zweryfikować WM_PAINT
część regionu aktualizacji.
System Windows nadal generuje WM_PAINT
komunikaty do momentu zweryfikowania bieżącego regionu aktualizacji.
CWnd::ValidateRgn
Weryfikuje obszar klienta w danym regionie, usuwając region z bieżącego regionu aktualizacji okna.
void ValidateRgn(CRgn* pRgn);
Parametry
pRgn
Wskaźnik do CRgn
obiektu, który identyfikuje region, który definiuje obszar, który ma zostać usunięty z regionu aktualizacji. Jeśli ten parametr to NULL
, cały obszar klienta zostanie usunięty.
Uwagi
Dany region musi zostać utworzony wcześniej przez funkcję regionu. Przyjmuje się, że współrzędne regionu są współrzędnymi klienta.
Funkcja BeginPaint
składowa automatycznie weryfikuje cały obszar klienta. Ani ValidateRect
ValidateRgn
funkcja ani składowa nie powinna być wywoływana, jeśli część regionu aktualizacji musi zostać zweryfikowana przed wygenerowaniem następnego WM_PAINT
komunikatu.
CWnd::WindowFromPoint
Pobiera okno zawierające określony punkt; point
musi określać współrzędne ekranu punktu na ekranie.
static CWnd* PASCAL WindowFromPoint(POINT point);
Parametry
point
Określa CPoint
obiekt lub POINT
strukturę danych, która definiuje punkt do sprawdzenia.
Wartość zwracana
Wskaźnik do obiektu okna, w którym znajduje się punkt. Jest to NULL
, jeśli w danym momencie nie istnieje okno. Zwrócony wskaźnik może być tymczasowy i nie powinien być przechowywany do późniejszego użycia.
Uwagi
WindowFromPoint
nie pobiera ukrytego lub wyłączonego okna, nawet jeśli punkt znajduje się w oknie. Aplikacja powinna używać funkcji składowej ChildWindowFromPoint
do wyszukiwania bez ograniczeń.
CWnd::WindowProc
Zawiera procedurę systemu Windows (WindowProc
) dla CWnd
obiektu.
virtual LRESULT WindowProc(
UINT message,
WPARAM wParam,
LPARAM lParam);
Parametry
message
Określa komunikat systemu Windows do przetworzenia.
wParam
Udostępnia dodatkowe informacje używane podczas przetwarzania komunikatu. Wartość parametru zależy od komunikatu.
lParam
Udostępnia dodatkowe informacje używane podczas przetwarzania komunikatu. Wartość parametru zależy od komunikatu.
Wartość zwracana
Wartość zwracana zależy od komunikatu.
Uwagi
Wysyła komunikaty za pośrednictwem mapy komunikatów okna.
CWnd::WinHelp
Wywołana w celu zainicjowania aplikacji WinHelp.
virtual void WinHelp(
DWORD_PTR dwData,
UINT nCmd = HELP_CONTEXT);
Parametry
dwData
Określa dodatkowe dane. Użyta wartość zależy od wartości parametru nCmd
.
nCmd
Określa typ żądanej pomocy. Aby uzyskać listę możliwych wartości i ich wpływ na dwData
parametr, zobacz WinHelp
funkcję systemu Windows w zestawie Windows SDK.
Uwagi
Aby uzyskać więcej informacji, zobacz CWinApp::WinHelp
.
CWnd::RegisterTouchWindow
Rejestruje lub wyrejestrowuje obsługę dotykową systemu Windows.
BOOL RegisterTouchWindow(
BOOL bRegister = TRUE,
ULONG ulFlags = 0);
Parametry
bRegister
TRUE
wskazuje rejestrację obsługi dotyku systemu Windows; FALSE
inaczej.
ulFlags
Zestaw flag bitowych określających opcjonalne modyfikacje. To pole może zawierać 0 lub jedną z następujących wartości: TWF_FINETOUCH
, TWF_WANTPALM
.
Wartość zwracana
TRUE
w przypadku powodzenia; w przeciwnym razie FALSE
.
Uwagi
CWnd::ResizeDynamicLayout
Wywoływana przez platformę, gdy rozmiar okna zmienia się w celu dostosowania układu okien podrzędnych, jeśli dynamiczny układ jest włączony dla okna.
virtual void ResizeDynamicLayout();
Uwagi
Zobacz też
CCmdTarget
Klasa
Wykres hierarchii
CFrameWnd
Klasa
CView
Klasa