Classe CWnd
Fornisce la funzionalità di base di tutte le classi di finestre nella libreria Microsoft Foundation Class (MFC).
Sintassi
class CWnd : public CCmdTarget
Membri
Costruttori pubblici
Nome | Descrizione |
---|---|
CWnd::CWnd |
Costruisce un oggetto CWnd . |
Metodi pubblici
Nome | Descrizione |
---|---|
CWnd::accDoDefaultAction |
Chiamata eseguita dal framework per eseguire l'azione predefinita dell'oggetto. |
CWnd::accHitTest |
Chiamata eseguita dal framework per recuperare l'elemento figlio o l'oggetto figlio in un determinato punto dello schermo. |
CWnd::accLocation |
Chiamata eseguita dal framework per recuperare la posizione sullo schermo corrente dell'oggetto specificato. |
CWnd::accNavigate |
Chiamata eseguita dal framework per passare a un altro elemento dell'interfaccia utente all'interno di un contenitore e, se possibile, recuperare l'oggetto. |
CWnd::accSelect |
Chiamata eseguita dal framework per modificare la selezione o per spostare lo stato attivo della tastiera dell'oggetto specificato. |
CWnd::AnimateWindow |
Consente di animare l'oggetto finestra associato. |
CWnd::ArrangeIconicWindows |
Dispone tutte le finestre figlio ridotte a icona. |
CWnd::Attach |
Associa un handle di Windows a un oggetto CWnd . |
CWnd::BeginModalState |
Chiamare questa funzione membro per impostare lo stato modale per una finestra cornice. |
CWnd::BeginPaint |
Prepara CWnd per il disegno. |
CWnd::BindDefaultProperty |
Associa la proprietà associata semplice predefinita dell'oggetto chiamante, come da contrassegno nella libreria dei tipi, a un cursore associato a un controllo origine dati. |
CWnd::BindProperty |
Associa una proprietà con associazione al cursore per un controllo con associazione a dati a un controllo origine dati e registra tale relazione nel gestore delle associazioni MFC. |
CWnd::BringWindowToTop |
Porta CWnd in cima a una pila di finestre sovrapposte. |
CWnd::CalcWindowRect |
Chiamata eseguita per calcolare il rettangolo della finestra dal rettangolo client. |
CWnd::CancelToolTips |
Disabilita il controllo ToolTip. |
CWnd::CenterWindow |
Centra una finestra rispetto al padre. |
CWnd::ChangeClipboardChain |
Rimuove CWnd dalla catena di visualizzatori degli Appunti. |
CWnd::CheckDlgButton |
Inserisce un segno di spunta accanto a o rimuove un segno di spunta da un controllo pulsante. |
CWnd::CheckRadioButton |
Seleziona il pulsante di opzione specificato e rimuove il segno di spunta da tutti gli altri pulsanti di opzione nel gruppo specificato di pulsanti. |
CWnd::ChildWindowFromPoint |
Determina quale delle finestre figlio contiene eventualmente il punto specificato. |
CWnd::ClientToScreen |
Converte le coordinate client di un determinato punto o rettangolo sullo schermo in coordinate dello schermo. |
CWnd::CloseWindow |
Riduce a icona la finestra. |
CWnd::ContinueModal |
Continua lo stato modale di una finestra. |
CWnd::Create |
Crea e inizializza la finestra figlio associata all'oggetto CWnd . |
CWnd::CreateAccessibleProxy |
Crea un proxy Active Accessibility per l'oggetto specificato. |
CWnd::CreateCaret |
Crea una nuova forma per il cursore di sistema e ottiene la proprietà del cursore. |
CWnd::CreateControl |
Crea un controllo ActiveX che verrà rappresentato in un programma MFC da un oggetto CWnd . |
CWnd::CreateEx |
Crea una finestra di Windows sovrapposta, popup o figlio e la collega a un oggetto CWnd . |
CWnd::CreateGrayCaret |
Crea un blocco grigio per il cursore di sistema e ottiene la proprietà del cursore. |
CWnd::CreateSolidCaret |
Crea un blocco in tinta unita per il cursore di sistema e ottiene la proprietà del cursore. |
CWnd::DeleteTempMap |
Chiamato automaticamente dal gestore del tempo di inattivitàCWinApp , consente di eliminare qualsiasi oggetto CWnd temporaneo creato da FromHandle . |
CWnd::DestroyWindow |
Elimina definitivamente la finestra di Windows collegata. |
CWnd::Detach |
Scollega un handle di Windows da un oggetto CWnd e restituisce l'handle. |
CWnd::DlgDirList |
Compila una casella di riepilogo con un elenco di file o directory. |
CWnd::DlgDirListComboBox |
Compila la casella di riepilogo di una casella combinata con un elenco di file o directory. |
CWnd::DlgDirSelect |
Recupera la selezione corrente da una casella di riepilogo. |
CWnd::DlgDirSelectComboBox |
Recupera la selezione corrente da una casella di riepilogo di una casella combinata. |
CWnd::DragAcceptFiles |
Indica che la finestra accetterà file trascinati. |
CWnd::DragDetect |
Acquisisce il mouse e tiene traccia del suo movimento fino a quando l'utente rilascia il pulsante sinistro, preme ESC o sposta il mouse all'esterno del rettangolo di trascinamento attorno al punto specificato. |
CWnd::DrawAnimatedRects |
Disegna un rettangolo wireframe e aggiunge un'animazione in modo da indicare l'apertura di un'icona oppure la riduzione a icona o l'ingrandimento di una finestra. |
CWnd::DrawCaption |
Disegna una didascalia. |
CWnd::DrawMenuBar |
Ridisegna la barra dei menu. |
CWnd::EnableActiveAccessibility |
Abilita le funzioni Active Accessibility definite dall'utente. |
CWnd::EnableDynamicLayout |
Abilita l'adattamento automatico di posizione e dimensioni delle finestre figlio quando l'utente ridimensiona la finestra. |
CWnd::EnableD2DSupport |
Abilita o disabilita il supporto D2D per la finestra. Chiamare questo metodo prima dell'inizializzazione della finestra principale. |
CWnd::EnableScrollBar |
Abilita o disabilita una o entrambe le frecce di una barra di scorrimento. |
CWnd::EnableScrollBarCtrl |
Abilita o disabilita un controllo barra di scorrimento di pari livello. |
CWnd::EnableToolTips |
Abilita il controllo ToolTip. |
CWnd::EnableTrackingToolTips |
Abilita il controllo ToolTip in modalità di rilevamento. |
CWnd::EnableWindow |
Abilita o disabilita l'input da mouse e tastiera. |
CWnd::EndModalLoop |
Termina lo stato modale di una finestra. |
CWnd::EndModalState |
Chiamare questa funzione membro per cambiare lo stato di una finestra cornice da modale a non modale. |
CWnd::EndPaint |
Contrassegna la fine del disegno. |
CWnd::ExecuteDlgInit |
Inizializza una risorsa di una finestra di dialogo. |
CWnd::FilterToolTipMessage |
Recupera il titolo o il testo associato a un controllo in una finestra di dialogo. |
CWnd::FindWindow |
Restituisce l'handle della finestra, identificata in base al nome e alla classe. |
CWnd::FindWindowEx |
Restituisce l'handle della finestra, identificata in base al nome e alla classe. |
CWnd::FlashWindow |
Fa lampeggiare una volta la finestra. |
CWnd::FlashWindowEx |
Fa lampeggiare la finestra con funzionalità aggiuntive. |
CWnd::FromHandle |
Restituisce un puntatore a un oggetto CWnd quando viene specificato un handle di una finestra. Se un CWnd oggetto non è collegato all'handle, viene creato e collegato un oggetto temporaneo CWnd . |
CWnd::FromHandlePermanent |
Restituisce un puntatore a un oggetto CWnd quando viene specificato un handle di una finestra. |
CWnd::get_accChild |
Chiamata eseguita dal framework per recuperare l'indirizzo di un'interfaccia IDispatch per l'elemento figlio specificato. |
CWnd::get_accChildCount |
Chiamata eseguita dal framework per recuperare il numero di elementi figlio appartenenti all'oggetto corrente. |
CWnd::get_accDefaultAction |
Chiamata eseguita dal framework per recuperare una stringa che descrive l'azione predefinita dell'oggetto. |
CWnd::get_accDescription |
Chiamata eseguita dal framework per recuperare una stringa che descrive l'aspetto visivo dell'oggetto specificato. |
CWnd::get_accFocus |
Chiamata eseguita dal framework per recuperare l'oggetto con lo stato attivo della tastiera. |
CWnd::get_accHelp |
Chiamato dal framework per recuperare la stringa di proprietà della Guida di un oggetto. |
CWnd::get_accHelpTopic |
Chiamata eseguita dal framework per recuperare il percorso completo del file WinHelp associato all'oggetto specificato e l'identificatore dell'argomento appropriato all'interno del file. |
CWnd::get_accKeyboardShortcut |
Chiamata eseguita dal framework per recuperare la combinazione di tasti o il tasto di scelta dell'oggetto specificato. |
CWnd::get_accName |
Chiamata eseguita dal framework per recuperare il nome dell'oggetto specificato. |
CWnd::get_accParent |
Chiamata eseguita dal framework per recuperare l'interfaccia IDispatch del padre dell'oggetto. |
CWnd::get_accRole |
Chiamata eseguita dal framework per recuperare informazioni che descrivono il ruolo dell'oggetto specificato. |
CWnd::get_accSelection |
Chiamata eseguita dal framework per recuperare gli elementi figlio selezionati dell'oggetto. |
CWnd::get_accState |
Chiamata eseguita dal framework per recuperare lo stato corrente dell'oggetto specificato. |
CWnd::get_accValue |
Chiamata eseguita dal framework per recuperare il valore dell'oggetto specificato. |
CWnd::GetActiveWindow |
Recupera la finestra attiva. |
CWnd::GetAncestor |
Recupera l'oggetto finestra predecessore della finestra specificata. |
CWnd::GetCapture |
Recupera l'oggetto CWnd con il mouse capture. |
CWnd::GetCaretPos |
Recupera le coordinate client della posizione corrente del cursore. |
CWnd::GetCheckedRadioButton |
Restituisce l'ID del pulsante di opzione attualmente selezionato in un gruppo di pulsanti. |
CWnd::GetClientRect |
Recupera le dimensioni dell'area client di CWnd . |
CWnd::GetClipboardOwner |
Recupera un puntatore al proprietario corrente degli Appunti. |
CWnd::GetClipboardViewer |
Recupera un puntatore alla prima finestra nella catena di visualizzatori degli Appunti. |
CWnd::GetControlUnknown |
Recupera un puntatore a un controllo ActiveX sconosciuto. |
CWnd::GetDC |
Recupera un contesto di visualizzazione per l'area client. |
CWnd::GetDCEx |
Recupera un contesto di visualizzazione per l'area client e consente il ritaglio durante il disegno. |
CWnd::GetDCRenderTarget |
Recupera la destinazione di rendering del contesto di dispositivo per la finestra CWnd . |
CWnd::GetDescendantWindow |
Cerca tutte le finestre discendenti e restituisce la finestra con l'ID specificato. |
CWnd::GetDesktopWindow |
Recupera la finestra del desktop di Windows. |
CWnd::GetDlgCtrlID |
Se CWnd è una finestra figlio, chiamare questa funzione restituisce il valore ID. |
CWnd::GetDlgItem |
Recupera il controllo con l'ID specificato dalla finestra di dialogo specificata. |
CWnd::GetDlgItemInt |
Converte il testo di un controllo nella finestra di dialogo specificata in un valore Integer. |
CWnd::GetDlgItemText |
Recupera la didascalia o il testo associato a un controllo. |
CWnd::GetDSCCursor |
Recupera un puntatore al cursore sottostante definito dalle proprietà DataSource, UserName, Password e SQL di un controllo origine dati. |
CWnd::GetDynamicLayout |
Recupera un puntatore all'oggetto di gestione del layout dinamico. |
CWnd::GetExStyle |
Restituisce lo stile esteso della finestra. |
CWnd::GetFocus |
Recupera l'oggetto CWnd che dispone attualmente dello stato attivo per l'input. |
CWnd::GetFont |
Recupera il tipo di carattere corrente. |
CWnd::GetForegroundWindow |
Restituisce un puntatore alla finestra in primo piano (finestra di primo livello attualmente usata dall'utente). |
CWnd::GetIcon |
Recupera l'handle per un'icona. |
CWnd::GetLastActivePopup |
Determina la finestra popup di proprietà di CWnd attiva più di recente. |
CWnd::GetLayeredWindowAttributes |
Recupera la chiave di colore per trasparenza e opacità di una finestra a livelli. |
CWnd::GetMenu |
Recupera un puntatore al menu specificato. |
CWnd::GetNextDlgGroupItem |
Cerca il controllo successivo (o precedente) all'interno di un gruppo di controlli. |
CWnd::GetNextDlgTabItem |
Recupera il primo controllo con lo WS_TABSTOP stile che segue (o precede) il controllo specificato. |
CWnd::GetNextWindow |
Restituisce la finestra successiva (o precedente) nell'elenco del gestore delle finestre. |
CWnd::GetOleControlSite |
Recupera il sito personalizzato per il controllo ActiveX specificato. |
CWnd::GetOpenClipboardWindow |
Recupera un puntatore alla finestra con gli Appunti attualmente aperti. |
CWnd::GetOwner |
Recupera un puntatore al proprietario di un oggetto CWnd . |
CWnd::GetParent |
Recupera l'eventuale finestra padre dell'oggetto CWnd . |
CWnd::GetParentFrame |
Recupera la finestra cornice padre dell'oggetto CWnd . |
CWnd::GetParentOwner |
Restituisce un puntatore alla finestra padre di una finestra figlio. |
CWnd::GetProperty |
Recupera una proprietà di un controllo ActiveX. |
CWnd::GetRenderTarget |
Ottiene una destinazione di rendering associata alla finestra. |
CWnd::GetSafeHwnd |
Restituisce m_hWnd , o NULL se il this puntatore è NULL. |
CWnd::GetSafeOwner |
Recupera il proprietario sicuro della finestra specificata. |
CWnd::GetScrollBarCtrl |
Restituisce un controllo barra di scorrimento di pari livello. |
CWnd::GetScrollBarInfo |
Recupera le informazioni sulla barra di scorrimento specificata. |
CWnd::GetScrollInfo |
Recupera le informazioni gestite dalla struttura SCROLLINFO su una barra di scorrimento. |
CWnd::GetScrollLimit |
Recupera il limite della barra di scorrimento. |
CWnd::GetScrollPos |
Recupera la posizione corrente di una casella di scorrimento. |
CWnd::GetScrollRange |
Copia le posizioni della barra di scorrimento minima e massima correnti per la barra di scorrimento specificata. |
CWnd::GetStyle |
Restituisce lo stile della finestra corrente. |
CWnd::GetSystemMenu |
Consente all'applicazione di accedere al menu di controllo per la copia e la modifica. |
CWnd::GetTitleBarInfo |
Recupera le informazioni sulla barra del titolo specificata. |
CWnd::GetTopLevelFrame |
Recupera la finestra cornice di primo livello della finestra. |
CWnd::GetTopLevelOwner |
Recupera la finestra di primo livello. |
CWnd::GetTopLevelParent |
Recupera il padre di primo livello della finestra. |
CWnd::GetTopWindow |
Restituisce la prima finestra figlio appartenente a CWnd . |
CWnd::GetUpdateRect |
Recupera le coordinate del rettangolo più piccolo che racchiude completamente l'area di aggiornamento di CWnd . |
CWnd::GetUpdateRgn |
Recupera l'area di aggiornamento di CWnd . |
CWnd::GetWindow |
Restituisce la finestra con la relazione specificata con questa finestra. |
CWnd::GetWindowContextHelpId |
Recupera l'identificatore di contesto della Guida. |
CWnd::GetWindowDC |
Recupera il contesto di visualizzazione per l'intera finestra, inclusi la barra del titolo, i menu e le barre di scorrimento. |
CWnd::GetWindowedChildCount |
Restituisce il numero di finestre figlio associate. |
CWnd::GetWindowInfo |
Restituisce informazioni sulla finestra. |
CWnd::GetWindowlessChildCount |
Restituisce il numero di finestre figlio senza finestra associate. |
CWnd::GetWindowPlacement |
Recupera lo stato di visualizzazione e le posizioni normale (ripristinata), ridotta a icona e ingrandita di una finestra. |
CWnd::GetWindowRect |
Ottiene le coordinate dello schermo di CWnd . |
CWnd::GetWindowRgn |
Recupera una copia dell'area della finestra di una finestra. |
CWnd::GetWindowText |
Restituisce il testo o il titolo della didascalia (se disponibile) della finestra. |
CWnd::GetWindowTextLength |
Restituisce la lunghezza del testo o del titolo della didascalia della finestra. |
CWnd::HideCaret |
Nasconde il cursore rimuovendolo dallo schermo. |
CWnd::HiliteMenuItem |
Evidenzia o rimuove l'evidenziazione da una voce di menu di primo livello (barra dei menu). |
CWnd::HtmlHelp |
Chiamata eseguita per avviare l'applicazione HTMLHelp |
CWnd::Invalidate |
Invalida l'intera area client. |
CWnd::InvalidateRect |
Invalida l'area client all'interno del rettangolo specificato mediante l'aggiunta di questo rettangolo all'area di aggiornamento corrente. |
CWnd::InvalidateRgn |
Invalida l'area client all'interno dell'area specificata mediante l'aggiunta di questa area all'area di aggiornamento corrente. |
CWnd::InvokeHelper |
Richiama un metodo o una proprietà di un controllo ActiveX. |
CWnd::IsChild |
Indica se CWnd è una finestra figlio o un altro tipo di discendente diretto della finestra specificata. |
CWnd::IsD2DSupportEnabled |
Determina se il supporto D2D è abilitato. |
CWnd::IsDialogMessage |
Determina se il messaggio specificato è destinato alla finestra di dialogo non modale e, in caso affermativo, lo elabora. |
CWnd::IsDlgButtonChecked |
Determina se un controllo pulsante è selezionato. |
CWnd::IsDynamicLayoutEnabled |
Determina se il layout dinamico è abilitato in questa finestra. Se il layout dinamico è abilitato, la posizione e le dimensioni delle finestre figlio possono cambiare quando l'utente ridimensiona la finestra padre. |
CWnd::IsIconic |
Determina se CWnd è ridotta a icona. |
CWnd::IsTouchWindow |
Specifica se CWnd include il supporto del tocco. |
CWnd::IsWindowEnabled |
Determina se la finestra è abilitata per l'input da tastiera e mouse. |
CWnd::IsWindowVisible |
Determina se la finestra è visibile. |
CWnd::IsZoomed |
Determina se CWnd è ingrandita. |
CWnd::KillTimer |
Termina un timer di sistema. |
CWnd::LockWindowUpdate |
Disabilita o riabilita il disegno nella finestra specificata. |
CWnd::MapWindowPoints |
Converte (mappa) un set di punti dallo spazio delle coordinate di CWnd nello spazio delle coordinate di un'altra finestra. |
CWnd::MessageBox |
Crea e visualizza una finestra che contiene un messaggio e una didascalia forniti dall'applicazione. |
CWnd::ModifyStyle |
Modifica lo stile della finestra corrente. |
CWnd::ModifyStyleEx |
Modifica lo stile esteso della finestra. |
CWnd::MoveWindow |
Modifica la posizione e dimensioni di CWnd . |
CWnd::NotifyWinEvent |
Segnala al sistema che si è verificato un evento predefinito. |
CWnd::OnAmbientProperty |
Implementa i valori delle proprietà di ambiente. |
CWnd::OnDrawIconicThumbnailOrLivePreview |
Chiamata eseguita dal framework quando è necessario ottenere una bitmap da visualizzare nell'anteprima della scheda di Windows 7 o nel client per l'anteprima dell'applicazione. |
CWnd::OnHelp |
Gestisce F1 Guida all'interno dell'applicazione (usando il contesto corrente). |
CWnd::OnHelpFinder |
Gestisce i ID_HELP_FINDER comandi e ID_DEFAULT_HELP . |
CWnd::OnHelpIndex |
Gestisce il ID_HELP_INDEX comando e fornisce un argomento della Guida predefinito. |
CWnd::OnHelpUsing |
Gestisce il comando ID_HELP_USING . |
CWnd::OnToolHitTest |
Determina se un punto è incluso nel rettangolo che circoscrive lo strumento specificato e recupera informazioni sullo strumento stesso. |
CWnd::OpenClipboard |
Apre gli Appunti. Altre applicazioni non saranno in grado di modificare gli Appunti finché non viene chiamata la funzione Windows CloseClipboard . |
CWnd::PaintWindowlessControls |
Disegna controlli senza finestra nel contenitore del controllo. |
CWnd::PostMessage |
Inserisce un messaggio nella coda dell'applicazione, quindi restituisce il controllo senza attendere che la finestra elabori il messaggio. |
CWnd::PreCreateWindow |
Chiamata eseguita prima della creazione della finestra di Windows collegata a questo oggetto CWnd . |
CWnd::PreSubclassWindow |
Consente l'esecuzione di altre sottoclassi necessarie prima SubclassWindow della chiamata. |
CWnd::PreTranslateMessage |
Elemento usato da CWinApp per filtrare i messaggi della finestra prima che vengano inviati alle funzioni di Windows TranslateMessage e DispatchMessage . |
CWnd::Print |
Disegna la finestra corrente nel contesto di dispositivo specificato. |
CWnd::PrintClient |
Disegna qualsiasi finestra nel contesto di dispositivo specificato (in genere un contesto di dispositivo stampante). |
CWnd::PrintWindow |
Copia una finestra visiva nel contesto di dispositivo specificato, in genere un contesto di dispositivo stampante. |
CWnd::RedrawWindow |
Aggiorna il rettangolo o l'area specificati nell'area client. |
CWnd::RegisterTouchWindow |
Registra/annulla la registrazione del supporto del tocco di Windows per la finestra. |
CWnd::ReleaseDC |
Rilascia i contesti di dispositivo client e finestra, liberandoli per l'uso da parte di altre applicazioni. |
CWnd::RepositionBars |
Riposiziona le barre di controllo nell'area client. |
CWnd::RunModalLoop |
Recupera, converte o invia i messaggi per una finestra in stato modale. |
CWnd::ScreenToClient |
Converte le coordinate dello schermo di un determinato punto o rettangolo sullo schermo in coordinate client. |
CWnd::ScrollWindow |
Scorre il contenuto dell'area client. |
CWnd::ScrollWindowEx |
Scorre il contenuto dell'area client. Simile a ScrollWindow , con funzionalità aggiuntive. |
CWnd::SendChildNotifyLastMsg |
Fornisce un messaggio di notifica a una finestra figlio, dalla finestra padre, in modo che la finestra figlio possa gestire un'attività. |
CWnd::SendDlgItemMessage |
Invia un messaggio al controllo specificato. |
CWnd::SendMessage |
Invia un messaggio all'oggetto CWnd e non restituisce il controllo fino a quando non ha elaborato il messaggio. |
CWnd::SendMessageToDescendants |
Invia un messaggio a tutte le finestre discendenti della finestra. |
CWnd::SendNotifyMessage |
Invia il messaggio specificato alla finestra e restituisce il controllo il prima possibile, a seconda che il thread chiamante abbia creato la finestra. |
CWnd::SetActiveWindow |
Attiva la finestra. |
CWnd::SetCapture |
Determina l'invio di tutto l'input da mouse successivo a CWnd . |
CWnd::SetCaretPos |
Sposta il cursore in una posizione specificata. |
CWnd::SetClipboardViewer |
Aggiunge CWnd alla catena di finestre che ricevono notifica di ogni modifica del contenuto degli Appunti. |
CWnd::SetDlgCtrlID |
Imposta l'ID di controllo o finestra per la finestra (che può essere qualsiasi finestra figlio e non solo un controllo in una finestra di dialogo). |
CWnd::SetDlgItemInt |
Imposta il testo di un controllo su una stringa che rappresenta un valore Integer. |
CWnd::SetDlgItemText |
Imposta la didascalia o il testo di un controllo nella finestra di dialogo specificata. |
CWnd::SetFocus |
Richiede lo stato attivo per l'input. |
CWnd::SetFont |
Imposta il tipo di carattere corrente. |
CWnd::SetForegroundWindow |
Posiziona il thread che ha creato la finestra in primo piano e attiva la finestra. |
CWnd::SetIcon |
Imposta l'handle su un'icona specifica. |
CWnd::SetLayeredWindowAttributes |
Imposta la chiave di colore per trasparenza e opacità di una finestra a livelli. |
CWnd::SetMenu |
Imposta il menu sul menu specificato. |
CWnd::SetOwner |
Cambia il proprietario di un oggetto CWnd . |
CWnd::SetParent |
Cambia la finestra padre. |
CWnd::SetProperty |
Imposta una proprietà di un controllo ActiveX. |
CWnd::SetRedraw |
Consente di ridisegnare le modifiche in CWnd oppure impedisce che vengano ridisegnate. |
CWnd::SetScrollInfo |
Imposta informazioni sulla barra di scorrimento. |
CWnd::SetScrollPos |
Imposta la posizione corrente di una casella di scorrimento e, se specificato, ridisegna la barra di scorrimento in base alla nuova posizione. |
CWnd::SetScrollRange |
Imposta i valori di posizione minima e massima correnti per la barra di scorrimento specificata. |
CWnd::SetTimer |
Installa un timer di sistema che invia un WM_TIMER messaggio quando viene attivato. |
CWnd::SetWindowContextHelpId |
Imposta l'identificatore di contesto della Guida. |
CWnd::SetWindowPlacement |
Imposta lo stato di visualizzazione e le posizioni normale (ripristinata), ridotta a icona e ingrandita per una finestra. |
CWnd::SetWindowPos |
Modifica dimensioni, posizione e ordinamento delle finestre figlio, popup e di primo livello. |
CWnd::SetWindowRgn |
Imposta l'area di una finestra. |
CWnd::SetWindowText |
Imposta il testo o il titolo della didascalia (se disponibile) della finestra sul testo specificato. |
CWnd::ShowCaret |
Mostra il cursore sullo schermo in corrispondenza della posizione corrente del cursore. Dopo la visualizzazione, il cursore inizia a lampeggiare automaticamente. |
CWnd::ShowOwnedPopups |
Mostra o nasconde tutte le finestre popup appartenenti alla finestra. |
CWnd::ShowScrollBar |
Visualizza o nasconde una barra di scorrimento. |
CWnd::ShowWindow |
Mostra o nasconde la finestra. |
CWnd::SubclassDlgItem |
Collega un controllo di Windows a un oggetto CWnd e lo imposta per l'indirizzamento dei messaggi tramite la mappa messaggi di CWnd . |
CWnd::SubclassWindow |
Collega una finestra a un oggetto CWnd e lo imposta per l'indirizzamento dei messaggi tramite la mappa messaggi di CWnd . |
CWnd::UnlockWindowUpdate |
Sblocca una finestra che è stata bloccata con CWnd::LockWindowUpdate . |
CWnd::UnsubclassWindow |
Scollega una finestra da un CWnd oggetto |
CWnd::UpdateData |
Inizializza o recupera dati da una finestra di dialogo. |
CWnd::UpdateDialogControls |
Chiamata eseguita per aggiornare lo stato dei pulsanti e di altri controlli della finestra di dialogo. |
CWnd::UpdateLayeredWindow |
Aggiorna posizione, dimensioni, forma, contenuto e traslucidità di una finestra a livelli. |
CWnd::UpdateWindow |
Aggiorna l'area client. |
CWnd::ValidateRect |
Convalida l'area client all'interno del rettangolo specificato mediante la rimozione del rettangolo dall'area di aggiornamento corrente. |
CWnd::ValidateRgn |
Convalida l'area client all'interno dell'area specificata mediante la rimozione dell'area dall'area di aggiornamento corrente. |
CWnd::WindowFromPoint |
Identifica la finestra che contiene il punto specificato. |
CWnd::WinHelp |
Chiamata eseguita per avviare l'applicazione WinHelp. |
Metodi protetti
Nome | Descrizione |
---|---|
CWnd::Default |
Chiama la routine predefinita per la finestra, che fornisce l'elaborazione predefinita per gli eventuali messaggi della finestra non elaborati da un'applicazione. |
CWnd::DefWindowProc |
Chiama la routine predefinita per la finestra, che fornisce l'elaborazione predefinita per gli eventuali messaggi della finestra non elaborati da un'applicazione. |
CWnd::DoDataExchange |
Per inviare, ricevere e convalidare i dati della finestra di dialogo. Chiamato da UpdateData . |
CWnd::GetCurrentMessage |
Restituisce un puntatore al messaggio che questa finestra sta elaborando. Deve essere chiamato solo quando si trova in una On Message funzione membro del gestore di messaggi. |
CWnd::InitDynamicLayout |
Chiamata eseguita dal framework per inizializzare il layout dinamico per la finestra. |
CWnd::LoadDynamicLayoutResource |
Carica le informazioni di layout dinamico dal file di risorse. |
CWnd::OnActivate |
Chiamata eseguita quando è in corso l'attivazione o la disattivazione di CWnd . |
CWnd::OnActivateApp |
Chiamata eseguita quando l'applicazione sta per essere attivata o disattivata. |
CWnd::OnAppCommand |
Chiamata eseguita quando l'utente genera un evento di comando per l'applicazione. |
CWnd::OnAskCbFormatName |
Chiamata eseguita da un'applicazione visualizzatore degli Appunti quando un proprietario degli Appunti visualizza il contenuto degli Appunti. |
CWnd::OnCancelMode |
Chiamata eseguita per consentire a CWnd di annullare eventuali modalità interne, ad esempio mouse capture. |
CWnd::OnCaptureChanged |
Invia un messaggio alla finestra che sta perdendo il mouse capture. |
CWnd::OnChangeCbChain |
Invia notifica che una finestra specificata sta per essere rimossa dalla catena. |
CWnd::OnChangeUIState |
Chiamata eseguita quando lo stato dell'interfaccia utente deve essere modificato. |
CWnd::OnChar |
Chiamata eseguita quando una sequenza di tasti viene convertita in un carattere non di sistema. |
CWnd::OnCharToItem |
Chiamato da una casella di riepilogo figlio con lo LBS_WANTKEYBOARDINPUT stile in risposta a un WM_CHAR messaggio. |
CWnd::OnChildActivate |
Chiamata eseguita per più finestre figlio dell'interfaccia a documenti multipli (MDI) ogni volta che cambiano le dimensioni o la posizione di CWnd o viene attivato l'oggetto CWnd . |
CWnd::OnChildNotify |
Chiamata eseguita da una finestra padre per offrire a un controllo di notifica la possibilità di rispondere a una notifica del controllo. |
CWnd::OnClipboardUpdate |
Chiamata eseguita quando il contenuto degli Appunti viene modificato. |
CWnd::OnClose |
Chiamata eseguita per segnalare che l'oggetto CWnd deve essere chiuso. |
CWnd::OnColorizationColorChanged |
Chiamata eseguita quando i criteri di rendering per l'area non client vengono modificati. |
CWnd::OnCommand |
Chiamata eseguita quando l'utente seleziona un comando. |
CWnd::OnCompacting |
Chiamata eseguita quando Windows rileva la memoria di sistema è insufficiente. |
CWnd::OnCompareItem |
Chiamata eseguita per determinare la posizione relativa di un nuovo elemento in una casella combinata o casella di riepilogo disegnata dal proprietario e ordinata in base agli elementi figlio. |
CWnd::OnCompositionChanged |
Chiamata eseguita per tutte le finestre di primo livello quando la composizione di Gestione finestre desktop viene abilitata o disabilitata. |
CWnd::OnContextMenu |
Chiamata eseguita quando l'utente fa clic con il pulsante destro del mouse nella finestra. |
CWnd::OnCopyData |
Copia i dati da un'applicazione a un'altra. |
CWnd::OnCreate |
Chiamata eseguita durante la creazione della finestra. |
CWnd::OnCtlColor |
Chiamata eseguita se CWnd è l'elemento padre di un controllo quando il controllo sta per essere disegnato. |
CWnd::OnDeadChar |
Chiamata eseguita quando una sequenza di tasti viene convertita in un carattere non utilizzato non di sistema (come i caratteri accentati). |
CWnd::OnDeleteItem |
Chiamata eseguita quando viene eliminata definitivamente una casella di riepilogo o una casella combinata figlio disegnata dal proprietario o quando vengono rimossi elementi dal controllo. |
CWnd::OnDestroy |
Chiamata eseguita quando viene eliminato in modo permanente l'oggetto CWnd . |
CWnd::OnDestroyClipboard |
Viene chiamato quando gli Appunti vengono svuotati tramite una chiamata alla funzione Windows EmptyClipboard . |
CWnd::OnDeviceChange |
Invia notifica a un'applicazione o driver di dispositivo di una modifica alla configurazione hardware di un dispositivo o del computer. |
CWnd::OnDevModeChange |
Chiamata eseguita per tutte le finestre di primo livello quando l'utente modifica le impostazioni della modalità dispositivo. |
CWnd::OnDrawClipboard |
Chiamata eseguita quando il contenuto degli Appunti viene modificato. |
CWnd::OnDrawItem |
Chiamata eseguita quando deve essere disegnato un aspetto visivo di un controllo pulsante, controllo casella combinata, controllo casella di riepilogo o menu figlio disegnato dal proprietario. |
CWnd::OnDropFiles |
Chiamata eseguita quando l'utente rilascia il pulsante sinistro del mouse su una finestra che si è registrata come destinatario dei file rilasciati. |
CWnd::OnEnable |
Chiamata eseguita in caso di abilitazione o disabilitazione di CWnd . |
CWnd::OnEndSession |
Chiamata eseguita al termine della sessione. |
CWnd::OnEnterIdle |
Chiamata eseguita per informare la routine della finestra principale di un'applicazione che una finestra di dialogo modale o un menu sta entrando in uno stato di inattività. |
CWnd::OnEnterMenuLoop |
Chiamata eseguita all'inizio di un ciclo modale di menu. |
CWnd::OnEnterSizeMove |
Chiamata eseguita dopo che la finestra interessata entra in un ciclo modale di spostamento o di ridimensionamento. |
CWnd::OnEraseBkgnd |
Chiamata eseguita quando lo sfondo della finestra deve essere cancellato. |
CWnd::OnExitMenuLoop |
Chiamata eseguita all'uscita da un ciclo modale di menu. |
CWnd::OnExitSizeMove |
Chiamata eseguita dopo che la finestra interessata esce da un ciclo modale di spostamento o di ridimensionamento. |
CWnd::OnFontChange |
Chiamata eseguita quando viene modificato il pool di risorse di tipo di carattere. |
CWnd::OnGetDlgCode |
Chiamata eseguita per un controllo in modo che il controllo possa elaborare esso stesso l'input con tasto di direzione e tasto TAB. |
CWnd::OnGetMinMaxInfo |
Chiamata eseguita ogni volta che Windows deve conoscere la posizione o le dimensioni ingrandite oppure le dimensioni minime o massime di rilevamento. |
CWnd::OnHelpInfo |
Chiamata eseguita dal framework quando l'utente preme F1. |
CWnd::OnHotKey |
Chiamata eseguita quando l'utente preme un tasto di scelta rapida a livello di sistema. |
CWnd::OnHScroll |
Chiamata eseguita quando l'utente fa clic sulla barra di scorrimento orizzontale di CWnd . |
CWnd::OnHScrollClipboard |
Chiamata eseguita quando un proprietario degli Appunti deve scorrere l'immagine negli Appunti, invalidare la sezione appropriata e aggiornare i valori della barra di scorrimento. |
CWnd::OnIconEraseBkgnd |
Chiamata eseguita quando CWnd è ridotta a icona ed è necessario riempire lo sfondo dell'icona prima di disegnarla. |
CWnd::OnInitMenu |
Chiamata eseguita quando un menu sta per diventare attivo. |
CWnd::OnInitMenuPopup |
Chiamata eseguita quando un menu popup sta per diventare attivo. |
CWnd::OnInputDeviceChange |
Chiamata eseguita quando un dispositivo di I/O viene aggiunto o rimosso dal sistema. |
CWnd::OnInputLangChange |
Chiamata eseguita dopo la modifica della lingua di input di un'applicazione. |
CWnd::OnInputLangChangeRequest |
Chiamata eseguita quando l'utente sceglie una nuova lingua di input. |
CWnd::OnKeyDown |
Chiamata eseguita quando viene premuto un tasto non di sistema. |
CWnd::OnKeyUp |
Chiamata eseguita quando viene rilasciato un tasto non di sistema. |
CWnd::OnKillFocus |
Chiamata eseguita immediatamente prima che CWnd perda lo stato attivo per l'input. |
CWnd::OnLButtonDblClk |
Chiamata eseguita quando l'utente fa doppio clic con il pulsante sinistro del mouse. |
CWnd::OnLButtonDown |
Chiamata eseguita quando l'utente preme il pulsante sinistro del mouse. |
CWnd::OnLButtonUp |
Chiamata eseguita quando l'utente rilascia il pulsante sinistro del mouse. |
CWnd::OnMButtonDblClk |
Chiamata eseguita quando l'utente fa doppio clic con il pulsante centrale del mouse. |
CWnd::OnMButtonDown |
Chiamata eseguita quando l'utente preme il pulsante centrale del mouse. |
CWnd::OnMButtonUp |
Chiamata eseguita quando l'utente rilascia il pulsante centrale del mouse. |
CWnd::OnMDIActivate |
Chiamata eseguita quando una finestra figlio MDI viene attivata o disattivata. |
CWnd::OnMeasureItem |
Chiamata eseguita per una casella combinata, una casella di riepilogo o una voce di menu figlio disegnata dal proprietario quando il controllo viene creato. CWnd informa Windows delle dimensioni del controllo. |
CWnd::OnMenuChar |
Chiamata eseguita quando l'utente preme tasto di scelta di menu che non corrisponde ad alcuno dei tasti di scelta predefiniti nel menu corrente. |
CWnd::OnMenuDrag |
Chiamata eseguita quando l'utente inizia a trascinare una voce di menu. |
CWnd::OnMenuGetObject |
Chiamata eseguita quando il cursore del mouse passa su una voce di menu o viene spostato dal centro della voce verso la relativa parte superiore o inferiore. |
CWnd::OnMenuRButtonUp |
Chiamata eseguita quando l'utente rilascia il pulsante destro del mouse mentre il cursore si trova su una voce di menu. |
CWnd::OnMenuSelect |
Chiamata eseguita quando l'utente seleziona una voce di menu. |
CWnd::OnMouseActivate |
Chiamata eseguita quando il cursore si trova in una finestra inattiva e l'utente preme un pulsante del mouse. |
CWnd::OnMouseHover |
Chiamato quando il cursore passa il puntatore sull'area client della finestra per il periodo di tempo specificato in una chiamata precedente a TrackMouseEvent . |
CWnd::OnMouseHWheel |
Viene chiamato quando la rotellina orizzontale del mouse è inclinata o ruotata. |
CWnd::OnMouseLeave |
Chiamato quando il cursore lascia l'area client della finestra specificata in una chiamata precedente a TrackMouseEvent . |
CWnd::OnMouseMove |
Chiamata eseguita alla spostamento del cursore del mouse. |
CWnd::OnMouseWheel |
Chiamata eseguita quando un utente ruota la rotellina del mouse. Usa la gestione dei messaggi di Windows NT 4.0. |
CWnd::OnMove |
Chiamata eseguita dopo la modifica della posizione di CWnd . |
CWnd::OnMoving |
Indica che un utente sta spostando un oggetto CWnd . |
CWnd::OnNcActivate |
Chiamata eseguita quando l'area non client deve essere modificata per indicare uno stato attivo o inattivo. |
CWnd::OnNcCalcSize |
Chiamata eseguita quando devono essere calcolate le dimensioni e la posizione dell'area client. |
CWnd::OnNcCreate |
Chiamato prima della OnCreate creazione dell'area non client. |
CWnd::OnNcDestroy |
Chiamata eseguita quando l'area non client viene eliminata definitivamente. |
CWnd::OnNcHitTest |
Chiamata eseguita da Windows ogni volta che il mouse viene spostato se CWnd contiene il cursore o ha acquisito l'input del mouse con SetCapture . |
CWnd::OnNcLButtonDblClk |
Chiamata eseguita quando l'utente fa doppio clic sul pulsante sinistro del mouse mentre il cursore si trova nell'area client di CWnd . |
CWnd::OnNcLButtonDown |
Chiamata eseguita quando l'utente preme il pulsante sinistro del mouse mentre il cursore si trova nell'area client di CWnd . |
CWnd::OnNcLButtonUp |
Chiamata eseguita quando l'utente rilascia il pulsante sinistro del mouse mentre il cursore si trova nell'area client di CWnd . |
CWnd::OnNcMButtonDblClk |
Chiamata eseguita quando l'utente fa doppio clic sul pulsante centrale del mouse mentre il cursore si trova nell'area client di CWnd . |
CWnd::OnNcMButtonDown |
Chiamata eseguita quando l'utente preme il pulsante centrale del mouse mentre il cursore si trova nell'area client di CWnd . |
CWnd::OnNcMButtonUp |
Chiamata eseguita quando l'utente rilascia il pulsante centrale del mouse mentre il cursore si trova nell'area client di CWnd . |
CWnd::OnNcMouseHover |
Chiamato quando il cursore passa il puntatore sull'area non client della finestra per il periodo di tempo specificato in una chiamata precedente a TrackMouseEvent . |
CWnd::OnNcMouseLeave |
Il framework chiama questa funzione membro quando il cursore lascia l'area non client della finestra specificata in una chiamata precedente a TrackMouseEvent . |
CWnd::OnNcMouseMove |
Chiamata eseguita quando il cursore viene spostato all'interno di un'area non client di CWnd . |
CWnd::OnNcPaint |
Chiamata eseguita quando l'area non client deve essere disegnata. |
CWnd::OnNcRButtonDblClk |
Chiamata eseguita quando l'utente fa doppio clic sul pulsante destro del mouse mentre il cursore si trova nell'area client di CWnd . |
CWnd::OnNcRButtonDown |
Chiamata eseguita quando l'utente preme il pulsante destro del mouse mentre il cursore si trova nell'area client di CWnd . |
CWnd::OnNcRButtonUp |
Chiamata eseguita quando l'utente rilascia il pulsante destro del mouse mentre il cursore si trova nell'area client di CWnd . |
CWnd::OnNcRenderingChanged |
Chiamata eseguita quando i criteri di rendering per l'area non client vengono modificati. |
CWnd::OnNcXButtonDblClk |
Viene chiamato quando l'utente fa doppio clic XBUTTON1 o XBUTTON2 mentre il cursore si trova nell'area non client di una finestra. |
CWnd::OnNcXButtonDown |
Viene chiamato quando l'utente preme XBUTTON1 o XBUTTON2 del mouse mentre il cursore si trova nell'area non client di una finestra. |
CWnd::OnNcXButtonUp |
Viene chiamato quando l'utente rilascia XBUTTON1 o XBUTTON2 del mouse mentre il cursore si trova nell'area non client di una finestra. |
CWnd::OnNextMenu |
Chiamata eseguita quando il tasto freccia DESTRA o freccia SINISTRA viene usato per passare dalla barra dei menu al menu di sistema e viceversa. |
CWnd::OnNotify |
Chiamata eseguita dal framework per informare una finestra padre che si è verificato un evento in uno dei relativi controlli o che il controllo richiede informazioni. |
CWnd::OnNotifyFormat |
Chiamato per determinare se la finestra corrente accetta strutture ANSI o Unicode nel messaggio di WM_NOTIFY notifica. |
CWnd::OnPaint |
Chiamata eseguita per ridisegnare una parte della finestra. |
CWnd::OnPaintClipboard |
Chiamata eseguita quando l'area client del visualizzatore degli Appunti deve essere ridisegnata. |
CWnd::OnPaletteChanged |
Chiamata eseguita per consentire alle finestre che usano una tavolozza dei colori di realizzare le tavolozze logiche e aggiornare le rispettive aree client. |
CWnd::OnPaletteIsChanging |
Informa altre applicazioni quando un'applicazione sta per realizzare la propria tavolozza logica. |
CWnd::OnParentNotify |
Chiamata eseguita quando una finestra figlio viene creata o eliminata in modo permanente oppure quando l'utente fa clic su un pulsante del mouse mentre il cursore è posizionato sopra la finestra figlio. |
CWnd::OnPowerBroadcast |
Chiamata eseguita quando si verifica un evento di risparmio energia. |
CWnd::OnQueryDragIcon |
Chiamata eseguita quando un oggetto CWnd ridotto a icona sta per essere trascinato dall'utente. |
CWnd::OnQueryEndSession |
Chiamata eseguita quando l'utente sceglie di terminare la sessione di Windows. |
CWnd::OnQueryNewPalette |
Informa CWnd che sta per ricevere lo stato attivo per l'input. |
CWnd::OnQueryOpen |
Chiamata eseguita quando CWnd è un'icona e l'utente richiede l'apertura dell'icona. |
CWnd::OnQueryUIState |
Chiamata eseguita per recuperare lo stato dell'interfaccia utente per una finestra. |
CWnd::OnRawInput |
Chiamata eseguita quando la finestra corrente riceve input non elaborato. |
CWnd::OnRButtonDblClk |
Chiamata eseguita quando l'utente fa doppio clic con il pulsante destro del mouse. |
CWnd::OnRButtonDown |
Chiamata eseguita quando l'utente preme il pulsante destro del mouse. |
CWnd::OnRButtonUp |
Chiamata eseguita quando l'utente rilascia il pulsante destro del mouse. |
CWnd::OnRenderAllFormats |
Chiamata eseguita quando l'applicazione proprietaria viene eliminata in modo permanente e deve eseguire il rendering di tutti i formati. |
CWnd::OnRenderFormat |
Chiamata eseguita per il proprietario degli Appunti quando è necessario eseguire il rendering di un formato particolare con rendering ritardato. |
CWnd::OnSessionChange |
Chiamata eseguita per notificare a un'applicazione una modifica nello stato della sessione. |
CWnd::OnSetCursor |
Chiamato se l'input del mouse non viene acquisito e il mouse causa lo spostamento del cursore all'interno di una finestra. |
CWnd::OnSetFocus |
Chiamata eseguita dopo che CWnd ottiene lo stato attivo per l'input. |
CWnd::OnSettingChange |
Chiamata eseguita quando la funzione Win32 SystemParametersInfo modifica un'impostazione a livello di sistema. |
CWnd::OnShowWindow |
Chiamata eseguita quando CWnd deve essere nascosto o visualizzato. |
CWnd::OnSize |
Chiamata eseguita dopo la modifica delle dimensioni di CWnd . |
CWnd::OnSizeClipboard |
Chiamata eseguita quando cambiano le dimensioni dell'area client della finestra del visualizzatore degli Appunti. |
CWnd::OnSizing |
Indica che l'utente sta ridimensionando il rettangolo. |
CWnd::OnSpoolerStatus |
Chiamata eseguita da Print Manager ogni volta che un processo viene aggiunto o rimosso dalla coda di Print Manager. |
CWnd::OnStyleChanged |
Indica che la SetWindowLong funzione windows ha modificato uno o più stili della finestra. |
CWnd::OnStyleChanging |
Indica che la SetWindowLong funzione di Windows sta per modificare uno o più stili della finestra. |
CWnd::OnSysChar |
Chiamata eseguita quando una sequenza di tasti viene convertita in un carattere di sistema. |
CWnd::OnSysColorChange |
Chiamata eseguita per tutte le finestre di primo livello in seguito alla modifica delle impostazioni di colore del sistema. |
CWnd::OnSysCommand |
Chiamata eseguita quando l'utente seleziona un comando dal menu di controllo o quando l'utente seleziona il pulsante di ingrandimento o riduzione a icona. |
CWnd::OnSysDeadChar |
Chiamata eseguita quando una sequenza di tasti viene convertita in un carattere non utilizzato di sistema (come i caratteri accentati). |
CWnd::OnSysKeyDown |
Chiamata eseguita quando l'utente tiene premuto il tasto ALT e quindi ne preme un altro. |
CWnd::OnSysKeyUp |
Chiamata eseguita quando l'utente rilascia un tasto premuto mentre il tasto ALT era premuto. |
CWnd::OnTCard |
Chiamata eseguita quando l'utente fa clic su un pulsante modificabile. |
CWnd::OnTimeChange |
Chiamata eseguita per tutte le finestre di primo livello dopo la modifica dell'ora di sistema. |
CWnd::OnTimer |
Chiamato dopo ogni intervallo specificato in SetTimer . |
CWnd::OnTouchInput |
Consente di elaborare singoli input tramite tocco di Windows. |
CWnd::OnTouchInputs |
Consente di elaborare input tramite tocco di Windows. |
CWnd::OnUniChar |
Chiamata eseguita alla pressione di un tasto. Ovvero, la finestra corrente ha lo stato attivo della tastiera e un WM_KEYDOWN messaggio viene convertito dalla TranslateMessage funzione. |
CWnd::OnUnInitMenuPopup |
Chiamata eseguita quando un menu a discesa o un sottomenu viene eliminato in modo permanente. |
CWnd::OnUpdateUIState |
Chiamata eseguita per cambiare lo stato dell'interfaccia utente per la finestra specificata e tutte le finestre figlio. |
CWnd::OnUserChanged |
Chiamata eseguita dopo che l'utente ha effettuato l'accesso o la disconnessione. |
CWnd::OnVKeyToItem |
Chiamato da una casella di riepilogo di proprietà CWnd di in risposta a un WM_KEYDOWN messaggio. |
CWnd::OnVScroll |
Chiamata eseguita quando l'utente fa clic sulla barra di scorrimento verticale della finestra. |
CWnd::OnVScrollClipboard |
Chiamata eseguita quando il proprietario deve scorrere l'immagine negli Appunti, invalidare la sezione appropriata e aggiornare i valori della barra di scorrimento. |
CWnd::OnWindowPosChanged |
Chiamato quando le dimensioni, la posizione o l'ordine Z sono state modificate in seguito a una chiamata a o a SetWindowPos un'altra funzione di gestione delle finestre. |
CWnd::OnWindowPosChanging |
Chiamato quando la dimensione, la posizione o l'ordine Z sta per cambiare in seguito a una chiamata a SetWindowPos o a un'altra funzione di gestione delle finestre. |
CWnd::OnWinIniChange |
Chiamato per tutte le finestre di primo livello dopo la modifica del file di inizializzazione di Windows, WIN.INI , . |
CWnd::OnWndMsg |
Indica se un messaggio della finestra è stato gestito. |
CWnd::OnXButtonDblClk |
Viene chiamato quando l'utente fa doppio clic XBUTTON1 o XBUTTON2 mentre il cursore si trova nell'area client di una finestra. |
CWnd::OnXButtonDown |
Viene chiamato quando l'utente preme XBUTTON1 o XBUTTON2 mentre il cursore si trova nell'area client di una finestra. |
CWnd::OnXButtonUp |
Viene chiamato quando l'utente rilascia XBUTTON1 o XBUTTON2 mentre il cursore si trova nell'area client di una finestra. |
CWnd::PostNcDestroy |
Questa funzione virtuale viene chiamata dalla funzione OnNcDestroy predefinita dopo che la finestra è stata eliminata definitivamente. |
CWnd::ReflectChildNotify |
Funzione helper, che riflette un messaggio nella relativa origine. |
CWnd::ReflectLastMsg |
Esegue la reflection dell'ultimo messaggio alla finestra figlio. |
CWnd::ResizeDynamicLayout |
Chiamata eseguita dal framework quando le dimensioni della finestra cambiano per adattare il layout delle finestre figlio, se il layout dinamico è abilitato per la finestra. |
CWnd::WindowProc |
Fornisce una procedura di finestra per un oggetto CWnd . L'impostazione predefinita prevede l'invio dei messaggi tramite la mappa messaggi. |
Operatori pubblici
Nome | Descrizione |
---|---|
CWnd::operator HWND |
Chiamata eseguita per ottenere un handle per una finestra. |
CWnd::operator != |
Determina se una finestra non corrisponde alla finestra il cui handle è m_hWnd . |
CWnd::operator == |
Determina se una finestra è uguale alla finestra il cui handle è m_hWnd . |
Membri dati pubblici
Nome | Descrizione |
---|---|
CWnd::m_hWnd |
Indica l'oggetto HWND associato all'oggetto CWnd . |
Osservazioni:
Un oggetto CWnd
è diverso da una finestra di Windows, ma i due oggetti sono strettamente collegati. Un oggetto CWnd
viene creato o eliminato definitivamente dal costruttore e distruttore CWnd
. La finestra di Windows, invece, è una struttura di dati interna a Windows creata da una Create
funzione membro e distrutta dal CWnd
distruttore virtuale. La DestroyWindow
funzione elimina definitivamente la finestra di Windows senza distruggere l'oggetto.
La CWnd
classe e il meccanismo message-map nascondono la WndProc
funzione. I messaggi di notifica di Windows in arrivo vengono indirizzati automaticamente tramite il mapping dei messaggi alle funzioni membro OnMessage CWnd
appropriate. Si esegue l'override di una funzione membro OnMessage per gestire il messaggio specifico di un membro nelle classi derivate.
La classe CWnd
consente inoltre di creare una finestra figlio di Windows per l'applicazione. Derivare una classe da CWnd
e quindi aggiungere le variabili membro alla classe derivata per archiviare i dati specifici dell'applicazione. Implementare funzioni membro di gestione dei messaggi e una mappa messaggi nella classe derivata per specificare cosa succede quando i messaggi vengono indirizzati alla finestra.
È possibile creare una finestra figlio in due passaggi. Chiamare prima di tutto il costruttore CWnd
per costruire l'oggetto CWnd
, quindi chiamare la Create
funzione membro per creare la finestra figlio e collegarla all'oggetto CWnd
.
Quando l'utente termina la finestra figlio, eliminare l'oggetto CWnd
in modo permanente oppure chiamare la funzione membro DestroyWindow
per rimuovere la finestra ed eliminare in modo permanente le relative strutture dei dati.
All'interno della libreria Microsoft Foundation Class ulteriori classi sono derivate da CWnd
per rendere disponibili tipi specifici di finestra. Molte di queste classi, tra cui CFrameWnd
, CMDIFrameWnd
CMDIChildWnd
, CView
, e CDialog
, sono progettate per un'ulteriore derivazione. Le classi di controllo derivate da CWnd
, ad esempio CButton
, possono essere usate direttamente o possono essere usate per un'ulteriore derivazione delle classi.
Per altre informazioni sull'uso CWnd
di , vedere Frame Windows
e Oggetti Window.
Gerarchia di ereditarietà
CWnd
Requisiti
Intestazione: afxwin.h
CWnd::accDoDefaultAction
Chiamata eseguita dal framework per eseguire l'azione predefinita dell'oggetto.
virtual HRESULT accDoDefaultAction(VARIANT varChild);
Parametri
varChild
Specifica se l'azione predefinita da richiamare è quella dell'oggetto o uno degli elementi figlio dell'oggetto. Questo parametro può essere CHILDID_SELF (per eseguire l'azione predefinita dell'oggetto) o un ID figlio (per eseguire l'azione predefinita di uno degli elementi figlio dell'oggetto).
Valore restituito
Restituisce S_OK in caso di esito positivo, un codice di errore COM in caso di errore. Vedere Valori restituiti in IAccessible::accDoDefaultAction in Windows SDK.
Osservazioni:
Questa funzione fa parte del supporto per l'accessibilità attiva di MFC.
Eseguire l'override di questa funzione nella CWnd
classe derivata da per eseguire l'azione predefinita dell'oggetto. Per altre informazioni, vedere IAccessible::accDoDefaultAction in Windows SDK.
CWnd::accHitTest
Chiamata eseguita dal framework per recuperare l'elemento figlio o l'oggetto figlio in un determinato punto dello schermo.
virtual HRESULT accHitTest(
long xLeft,
long yTop,
VARIANT* pvarChild);
Parametri
xLeft
Coordinata X del punto da testare (in unità schermo).
yTop
Coordinata Y del punto da testare (in unità schermo).
pvarChild
Riceve informazioni che identificano l'oggetto nel punto specificato da xLeft
e yTop
. Vedere pvarID
in IAccessible::accHitTest
Windows SDK.
Valore restituito
Restituisce S_OK
in caso di esito positivo, un codice di errore COM in caso di errore. Vedere Valori restituiti in IAccessible::accHitTest
Windows SDK.
Osservazioni:
Questa funzione fa parte del supporto per l'accessibilità attiva di MFC.
Eseguire l'override di questa funzione nella CWnd
classe derivata da se sono presenti elementi dell'interfaccia utente nonwindowed (diversi dai controlli ActiveX senza finestra, gestiti da MFC).
Per altre informazioni, vedere IAccessible::accHitTest
in Windows SDK.
CWnd::accLocation
Chiamata eseguita dal framework per recuperare la posizione sullo schermo corrente dell'oggetto specificato.
virtual HRESULT accLocation(
long* pxLeft,
long* pyTop,
long* pcxWidth,
long* pcyHeight,
VARIANT varChild);
Parametri
pxLeft
Riceve la coordinata x dell'angolo superiore sinistro dell'oggetto (in unità schermo).
pyTop
Riceve la coordinata y dell'angolo superiore sinistro dell'oggetto (in unità schermo).
pcxWidth
Riceve la larghezza dell'oggetto (in unità schermo).
pcyHeight
Riceve l'altezza dell'oggetto (in unità schermo).
varChild
Specifica se la posizione da recuperare è quella dell'oggetto o uno degli elementi figlio dell'oggetto. Questo parametro può essere CHILDID_SELF
(per ottenere informazioni sull'oggetto) o un ID figlio (per ottenere informazioni sull'elemento figlio dell'oggetto).
Valore restituito
Restituisce S_OK in caso di esito positivo, un codice di errore COM in caso di errore. Vedere Valori restituiti in IAccessible::accLocation
Windows SDK.
Osservazioni:
Eseguire l'override di questa funzione nella CWnd
classe derivata da se sono presenti elementi dell'interfaccia utente nonwindowed (diversi dai controlli ActiveX senza finestra, gestiti da MFC).
Per altre informazioni, vedere IAccessible::accLocation
in Windows SDK.
CWnd::accNavigate
Chiamata eseguita dal framework per passare a un altro elemento dell'interfaccia utente all'interno di un contenitore e, se possibile, recuperare l'oggetto.
virtual HRESULT accNavigate(
long navDir,
VARIANT varStart,
VARIANT* pvarEndUpAt);
Parametri
navDir
Specifica la direzione di spostamento. Vedere navDir
in IAccessible::accNavigate
Windows SDK.
varStart
Specifica l'oggetto iniziale. Vedere varStart
in IAccessible::accNavigate
Windows SDK.
pvarEndUpAt
Riceve informazioni sull'oggetto interfaccia utente di destinazione. Vedere pvarEnd
in IAccessible::accNavigate
Windows SDK.
Valore restituito
Restituisce S_OK
in caso di esito positivo, un codice di errore COM in caso di errore. Vedere Valori restituiti in IAccessible::accNavigate
Windows SDK.
Osservazioni:
Questa funzione fa parte del supporto per l'accessibilità attiva di MFC.
Eseguire l'override di questa funzione nella CWnd
classe derivata da se sono presenti elementi dell'interfaccia utente nonwindowed (diversi dai controlli ActiveX senza finestra, gestiti da MFC).
Per altre informazioni, vedere IAccessible::accNavigate
in Windows SDK.
CWnd::accSelect
Chiamata eseguita dal framework per modificare la selezione o per spostare lo stato attivo della tastiera dell'oggetto specificato.
virtual HRESULT accSelect(
long flagsSelect,
VARIANT varChild);
Parametri
flagsSelect
Specifica come modificare la selezione o lo stato attivo correnti. Vedere flagsSelect
in IAccessible::accSelect
Windows SDK.
varChild
Specifica l'oggetto da selezionare. Questo parametro può essere CHILDID_SELF
(per selezionare l'oggetto stesso) o un ID figlio (per selezionare uno degli elementi figlio dell'oggetto).
Valore restituito
Restituisce S_OK
in caso di esito positivo, un codice di errore COM in caso di errore. Vedere Valori restituiti in IAccessible::accSelect
Windows SDK.
Osservazioni:
Questa funzione fa parte del supporto per l'accessibilità attiva di MFC.
Eseguire l'override di questa funzione nella CWnd
classe derivata da se sono presenti elementi dell'interfaccia utente nonwindowed (diversi dai controlli ActiveX senza finestra, gestiti da MFC).
Per altre informazioni, vedere IAccessible::accSelect
in Windows SDK.
CWnd::AnimateWindow
Produce effetti speciali quando si visualizzano o si nascondono finestre.
BOOL AnimateWindow(
DWORD dwTime,
DWORD dwFlags);
Parametri
dwTime
Specifica il tempo necessario per riprodurre l'animazione, in millisecondi. In genere, un'animazione richiede 200 millisecondi per la riproduzione.
dwFlags
Specifica il tipo di animazione. Per un elenco completo dei valori possibili, vedere AnimateWindow
.
Valore restituito
Viene restituito un valore diverso da zero se la funzione viene eseguita correttamente; in caso contrario viene restituito 0.
Osservazioni:
Questa funzione membro emula la funzionalità della funzione AnimateWindow
, come descritto in Windows SDK.
CWnd::ArrangeIconicWindows
Dispone tutte le finestre figlio ridotte a icona.
UINT ArrangeIconicWindows();
Valore restituito
Altezza di una riga di icone se la funzione ha esito positivo; in caso contrario, 0.
Osservazioni:
Questa funzione membro dispone anche le icone nella finestra desktop, che copre l'intero schermo. La GetDesktopWindow
funzione membro recupera un puntatore all'oggetto finestra desktop.
Per disporre le finestre figlio MDI iconiche in una finestra del client MDI, chiamare CMDIFrameWnd::MDIIconArrange
.
Esempio
// 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
Collega una finestra di Windows a un CWnd
oggetto .
BOOL Attach(HWND hWndNew);
Parametri
hWndNew
Specifica un handle per una finestra di Windows.
Valore restituito
Diverso da zero se ha esito positivo; in caso contrario 0.
Esempio
In questo esempio viene illustrato come usare Attach
e Detach
per eseguire il mapping alla finestra del client 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
Chiamare questa funzione membro per impostare lo stato modale per una finestra cornice.
virtual void BeginModalState();
CWnd::BeginPaint
Prepara la pittura e riempie CWnd
una PAINTSTRUCT
struttura di dati con informazioni sul disegno.
CDC* BeginPaint(LPPAINTSTRUCT lpPaint);
Parametri
lpPaint
Punta alla PAINTSTRUCT
struttura che deve ricevere informazioni di disegno.
Valore restituito
Identifica il contesto del dispositivo per CWnd
. Il puntatore può essere temporaneo e non deve essere archiviato oltre l'ambito di EndPaint
.
Osservazioni:
La struttura di disegno contiene una RECT
struttura di dati con il rettangolo più piccolo che racchiude completamente l'area di aggiornamento e un flag che specifica se lo sfondo è stato cancellato.
L'area Invalidate
di aggiornamento viene impostata dalle funzioni membro , InvalidateRect
o InvalidateRgn
e dal sistema dopo le dimensioni, lo spostamento, la creazione, lo scorrimento o l'esecuzione di qualsiasi altra operazione che influisce sull'area client. Se l'area di aggiornamento è contrassegnata per la cancellazione, BeginPaint
invia un WM_ONERASEBKGND
messaggio.
Non chiamare la BeginPaint
funzione membro tranne in risposta a un WM_PAINT
messaggio. Ogni chiamata alla BeginPaint
funzione membro deve avere una chiamata corrispondente alla EndPaint
funzione membro. Se il cursore si trova nell'area da disegnare, la BeginPaint
funzione membro nasconde automaticamente il cursore per evitare che venga cancellato.
Esempio
// 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
Associa la proprietà associata semplice predefinita dell'oggetto chiamante ,ad esempio un controllo di modifica, come contrassegnato nella libreria dei tipi, al cursore sottostante definito dalle DataSource
proprietà , UserName
Password
, e SQL
del controllo origine dati.
void BindDefaultProperty(
DISPID dwDispID,
VARTYPE vtProp,
LPCTSTR szFieldName,
CWnd* pDSCWnd);
Parametri
dwDispID
Specifica l'oggetto DISPID
di una proprietà in un controllo associato a dati da associare a un controllo origine dati.
vtProp
Specifica il tipo della proprietà da associare. Ad esempio, VT_BSTR
, VT_VARIANT
e così via.
szFieldName
Specifica il nome della colonna, nel cursore fornito dal controllo origine dati, a cui verrà associata la proprietà.
pDSCWnd
Punta alla finestra che ospita il controllo origine dati a cui verrà associata la proprietà. Chiamare GetDlgItem
con l'ID risorsa della finestra host di DCS per recuperare questo puntatore.
Osservazioni:
L'oggetto CWnd
su cui si chiama questa funzione deve essere un controllo associato a dati.
Esempio
BindDefaultProperty
potrebbe essere usato nel contesto seguente:
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
Associa una proprietà associata a cursore su un controllo associato a dati ,ad esempio un controllo griglia, a un controllo origine dati e registra tale relazione con la gestione associazioni MFC.
void BindProperty(
DISPID dwDispId,
CWnd* pWndDSC);
Parametri
dwDispId
Specifica l'oggetto DISPID
di una proprietà in un controllo associato a dati da associare a un controllo origine dati.
pWndDSC
Punta alla finestra che ospita il controllo origine dati a cui verrà associata la proprietà. Chiamare GetDlgItem
con l'ID risorsa della finestra host di DCS per recuperare questo puntatore.
Osservazioni:
L'oggetto CWnd
su cui si chiama questa funzione deve essere un controllo associato a dati.
Esempio
BindProperty
potrebbe essere usato nel contesto seguente:
BOOL CMyDlg::OnInitDialog()
{
CWnd *pDSC = GetDlgItem(IDC_DATASOURCE);
CWnd *pMyBound = GetDlgItem(IDC_MYBOUNDCTRL2);
pMyBound->BindProperty(0x1, pDSC);
return TRUE;
}
CWnd::BringWindowToTop
Porta CWnd
in cima a una pila di finestre sovrapposte.
void BringWindowToTop();
Osservazioni:
Inoltre, BringWindowToTop
attiva le finestre popup, di livello superiore e figlio MDI. È necessario utilizzare la funzione membro BringWindowToTop
per rivelare eventuali finestre parzialmente o completamente nascoste da finestre sovrapposte.
Questa funzione chiama solo la funzione Win32 BringWindowToTop
. Chiamare la funzione per modificare la SetWindowPos
posizione di una finestra nell'ordine Z. La funzione BringWindowToTop
non modifica lo stile della finestra per renderla una finestra di livello superiore. Per altre informazioni, vedere Qual è la differenza tra HWND_TOP
e HWND_TOPMOST
Esempio
// 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
Calcola il rettangolo della finestra che può contenere il rettangolo client specificato.
virtual void CalcWindowRect(
LPRECT lpClientRect,
UINT nAdjustType = adjustBorder);
Parametri
lpClientRect
[in, out] Puntatore a una struttura rettangolo. All'input, questa struttura contiene il rettangolo client. Al termine del metodo, questa struttura contiene il rettangolo della finestra che può contenere il rettangolo client specificato.
nAdjustType
[in] Utilizzare CWnd::adjustBorder
per calcolare le coordinate della finestra senza lo WS_EX_CLIENTEDGE
stile; in caso contrario, utilizzare CWnd::adjustOutside
.
Osservazioni:
Le dimensioni del rettangolo della finestra calcolata non includono lo spazio per una barra dei menu.
Per altre restrizioni di utilizzo, vedere AdjustWindowRectEx
.
Esempio
// 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
Chiamare questa funzione membro per rimuovere una descrizione comando dalla schermata se è attualmente visualizzata una descrizione comando.
static void PASCAL CancelToolTips(BOOL bKeys = FALSE);
Parametri
bKeys
TRUE
per annullare i suggerimenti degli strumenti quando viene premuto un tasto e impostare il testo della barra di stato sul valore predefinito; in caso contrario FALSE
, .
Osservazioni:
Nota
L'uso di questa funzione membro non ha alcun effetto sui suggerimenti degli strumenti gestiti dal codice. Influisce solo sul controllo della descrizione comando gestito da CWnd::EnableToolTips
.
Esempio
// 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
Centra una finestra rispetto al padre.
void CenterWindow(CWnd* pAlternateOwner = NULL);
Parametri
pAlternateOwner
Puntatore a una finestra alternativa rispetto alla quale verrà centrata (diversa dalla finestra padre).
Osservazioni:
In genere vengono chiamate dalle CDialog::OnInitDialog
finestre di dialogo al centro rispetto alla finestra principale dell'applicazione. Per impostazione predefinita, la funzione centra le finestre figlio rispetto alla finestra padre e le finestre popup relative al proprietario. Se la finestra popup non è di proprietà, viene allineata al centro rispetto allo schermo. Per allineare al centro una finestra relativa a una finestra specifica che non è il proprietario o l'elemento padre, il pAlternateOwner
parametro può essere impostato su una finestra valida. Per forzare il centro rispetto allo schermo, passare il valore restituito da CWnd::GetDesktopWindow
come pAlternateOwner
.
Esempio
BOOL CAboutDlg::OnInitDialog()
{
CDialog::OnInitDialog();
CenterWindow();
return TRUE;
}
CWnd::ChangeClipboardChain
Rimuove dalla CWnd
catena di visualizzatori degli Appunti e imposta la finestra specificata dal hWndNext
discendente del CWnd
predecessore nella catena.
BOOL ChangeClipboardChain(HWND hWndNext);
Parametri
hWndNext
Identifica la finestra che segue CWnd
nella catena del visualizzatore appunti.
Valore restituito
Diverso da zero se ha esito positivo; in caso contrario 0.
CWnd::CheckDlgButton
Seleziona (posiziona un segno di spunta accanto a) o cancella (rimuove un segno di spunta da) un pulsante oppure modifica lo stato di un pulsante a tre stati.
void CheckDlgButton(
int nIDButton,
UINT nCheck);
Parametri
nIDButton
Specifica il pulsante da modificare.
nCheck
Specifica l'azione da eseguire. Se nCheck
è diverso da zero, la CheckDlgButton
funzione membro inserisce un segno di spunta accanto al pulsante; se 0, il segno di spunta viene rimosso. Per i pulsanti a tre stati, se nCheck
è 2, lo stato del pulsante è indeterminato.
Osservazioni:
La CheckDlgButton
funzione invia un BM_SETCHECK
messaggio al pulsante specificato.
Esempio
// 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
Seleziona (aggiunge un segno di spunta a) un determinato pulsante di opzione in un gruppo e cancella (rimuove un segno di spunta da) tutti gli altri pulsanti di opzione del gruppo.
void CheckRadioButton(
int nIDFirstButton,
int nIDLastButton,
int nIDCheckButton);
Parametri
nIDFirstButton
Specifica l'identificatore intero del primo pulsante di opzione nel gruppo.
nIDLastButton
Specifica l'identificatore intero dell'ultimo pulsante di opzione nel gruppo.
nIDCheckButton
Specifica l'identificatore intero del pulsante di opzione da controllare.
Osservazioni:
La CheckRadioButton
funzione invia un BM_SETCHECK
messaggio al pulsante di opzione specificato.
Esempio
// Of the 4 radio buttons, selects radio button 3.
void CMyDlg::OnMarkRadio()
{
CheckRadioButton(IDC_RADIO1, IDC_RADIO4, IDC_RADIO3);
}
CWnd::ChildWindowFromPoint
Determina quale, se presente, delle finestre figlio appartenenti a CWnd
contiene il punto specificato.
CWnd* ChildWindowFromPoint(POINT point) const;
CWnd* ChildWindowFromPoint(
POINT point,
UINT nFlags) const;
Parametri
point
Specifica le coordinate client del punto da testare.
nflags
Specifica le finestre figlio da ignorare. Questo parametro può essere una combinazione dei valori seguenti:
Valore | Significato |
---|---|
CWP_ALL |
Non ignorare alcuna finestra figlio |
CWP_SKIPINVISIBLE |
Ignora finestre figlio invisibili |
CWP_SKIPDISABLED |
Ignorare le finestre figlio disabilitate |
CWP_SKIPTRANSPARENT |
Ignorare le finestre figlio trasparenti |
Valore restituito
Identifica la finestra figlio che contiene il punto. È NULL
se il punto specificato si trova all'esterno dell'area client. Se il punto si trova all'interno dell'area client ma non è contenuto in alcuna finestra figlio, CWnd
viene restituito .
Questa funzione membro restituirà una finestra figlio nascosta o disabilitata che contiene il punto specificato.
Più finestre possono contenere il punto specificato. Tuttavia, questa funzione restituisce solo il CWnd
* della prima finestra rilevata che contiene il punto.
Il CWnd
* restituito può essere temporaneo e non deve essere archiviato per un uso successivo.
Esempio
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
Converte le coordinate client di un determinato punto o rettangolo sullo schermo in coordinate dello schermo.
void ClientToScreen(LPPOINT lpPoint) const; void ClientToScreen(LPRECT lpRect) const;
Parametri
lpPoint
Punta a una struttura o CPoint
a un POINT
oggetto che contiene le coordinate client da convertire.
lpRect
Punta a una struttura o CRect
a un RECT
oggetto che contiene le coordinate client da convertire.
Osservazioni:
La ClientToScreen
funzione membro utilizza le coordinate client nella POINT
struttura o RECT
o nell'oggetto CPoint
o CRect
a lpPoint
cui punta o lpRect
per calcolare nuove coordinate dello schermo, quindi sostituisce le coordinate nella struttura con le nuove coordinate. Le nuove coordinate dello schermo sono relative all'angolo superiore sinistro della visualizzazione del sistema.
La ClientToScreen
funzione membro presuppone che il punto o il rettangolo specificato si trova nelle coordinate client.
Esempio
// 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
Riduce a icona la finestra.
void CloseWindow();
Osservazioni:
Questa funzione membro emula la funzionalità della funzione CloseWindow
, come descritto in Windows SDK.
CWnd::ContinueModal
Questa funzione membro viene chiamata da RunModalLoop
per determinare quando deve essere chiuso lo stato modale.
virtual BOOL ContinueModal();
Valore restituito
Diverso da zero se il ciclo modale deve essere continuato; 0 quando EndModalLoop
viene chiamato.
Osservazioni:
Per impostazione predefinita, restituisce un valore diverso da zero finché EndModalLoop
non viene chiamato .
CWnd::Create
Crea la finestra figlio specificata e la collega all'oggetto CWnd
.
virtual BOOL Create(
LPCTSTR lpszClassName,
LPCTSTR lpszWindowName,
DWORD dwStyle,
Const RECT& rect,
CWnd* pParentWnd,
UINT nID,
CCreateContext* pContext = NULL);
Parametri
lpszClassName
[in] Puntatore a una stringa con terminazione Null contenente il nome di una classe della finestra di sistema registrata; o il nome di una classe della finestra di sistema predefinita.
lpszWindowName
[in] Puntatore a una stringa con terminazione Null che contiene il nome visualizzato della finestra; in caso contrario NULL
, per nessun nome visualizzato della finestra.
dwStyle
[in] Combinazione bit per bit (OR) degli stili di finestra. L'opzione WS_POPUP
non è uno stile valido.
rect
[in] Dimensioni e posizione della finestra rispetto all'angolo superiore sinistro della finestra padre.
pParentWnd
[in] Puntatore alla finestra padre.
nID
[in] ID della finestra.
pContext
[in] Puntatore a una CCreateContext
struttura utilizzata per personalizzare l'architettura di visualizzazione documento per l'applicazione.
Valore restituito
TRUE
se il metodo ha avuto esito positivo; in caso contrario FALSE
, .
Osservazioni:
Avviso
CWnd::PreCreateWindow
assegna ora il hMenu
membro del parametro CREATESTRUCT
al this
puntatore se il menu è NULL
e lo stile contiene WS_CHILD
. Per una funzionalità appropriata, assicurarsi che il controllo della finestra di dialogo abbia un ID che non NULL
è .
Questa modifica corregge un arresto anomalo in scenari di interoperabilità gestiti/nativi. Un'istruzione TRACE
in CWnd::Create
avvisa lo sviluppatore del problema.
Usare la AfxRegisterWndClass
funzione per registrare le classi di finestre. Le classi di finestre definite dall'utente sono disponibili nel modulo in cui sono registrate.
Il metodo viene chiamato prima della CWnd::OnCreate
restituzione del Create
metodo e prima che la finestra diventi visibile.
Esempio
// 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
Crea un proxy Active Accessibility per l'oggetto specificato.
virtual HRESULT CreateAccessibleProxy(
WPARAM wParam,
LPARAM lParam,
LRESULT* pResult);
Parametri
wParam
Identifica l'oggetto a cui si accede dal proxy di accessibilità attiva. Può essere uno dei valori seguenti
Valore | Significato |
---|---|
OBJID_CLIENT |
Fa riferimento all'area client della finestra. |
lParam
Fornisce informazioni aggiuntive dipendenti dai messaggi.
pResult
Puntatore a un oggetto LRESULT
che archivia il codice del risultato.
Osservazioni:
Crea un proxy Active Accessibility per l'oggetto specificato.
CWnd::CreateCaret
Crea una nuova forma per il cursore di sistema e dichiara la proprietà del cursore.
void CreateCaret(CBitmap* pBitmap);
Parametri
pBitmap
Identifica la bitmap che definisce la forma del cursore.
Osservazioni:
La bitmap deve essere stata creata in precedenza dalla CBitmap::CreateBitmap
funzione membro, dalla CreateDIBitmap
funzione Windows o dalla CBitmap::LoadBitmap
funzione membro.
CreateCaret
elimina automaticamente la forma del cursore precedente, se presente, indipendentemente dalla finestra che possiede il cursore. Una volta creato, il cursore viene inizialmente nascosto. Per visualizzare il cursore, è necessario chiamare la ShowCaret
funzione membro.
Il cursore di sistema è una risorsa condivisa. CWnd
deve creare un cursore solo quando ha lo stato attivo o è attivo. Deve distruggere il cursore prima di perdere lo stato attivo dell'input o diventa inattivo.
Esempio
// 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
Utilizzare questa funzione membro per creare un controllo ActiveX che verrà rappresentato nel programma MFC da un CWnd
oggetto .
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);
Parametri
pszClass
Questa stringa può contenere il "nome breve" OLE (ProgID
) per la classe . Ad esempio: "CIRC3.Circ3Ctrl.1"
. Il nome deve corrispondere allo stesso nome registrato dal controllo . In alternativa, la stringa può contenere la forma stringa di un CLSID
oggetto , contenuto tra parentesi graffe. Ad esempio: "{9DBAFCCF-592F-101B-85CE-00608CEC297B}"
. In entrambi i casi, CreateControl
converte la stringa nell'ID della classe corrispondente.
pszWindowName
Puntatore al testo da visualizzare nel controllo . Imposta il valore della proprietà Caption o Text del controllo (se presente). Se NULL
, la proprietà Caption o Text del controllo non viene modificata.
dwStyle
Stili di Windows. Gli stili disponibili sono elencati in Osservazioni.
rect
Specifica le dimensioni e la posizione del controllo. Può essere un CRect
oggetto o una RECT
struttura.
ppt
Punta a una struttura o CPoint
a un POINT
oggetto che contiene l'angolo superiore sinistro del controllo.
pSize
Punta a una struttura o CSize
a un SIZE
oggetto che contiene le dimensioni del controllo
*pParentWnd*
Specifica la finestra padre del controllo. Non deve essere NULL
.
nID
Specifica l'ID del controllo.
pPersist
Puntatore a un oggetto CFile
contenente lo stato permanente per il controllo . Il valore predefinito è NULL
, che indica che il controllo si inizializza senza ripristinarne lo stato da alcuna risorsa di archiviazione permanente. In caso contrario NULL
, deve essere un puntatore a un CFile
oggetto derivato da che contiene i dati persistenti del controllo, sotto forma di flusso o di archiviazione. Questi dati potrebbero essere stati salvati in un'attivazione precedente del client. CFile
Può contenere altri dati, ma deve avere il puntatore di lettura/scrittura impostato sul primo byte di dati persistenti al momento della chiamata a CreateControl
.
bStorage
Indica se i dati in pPersist
devono essere interpretati come IStorage
o IStream
dati. Se i dati in pPersist
sono una risorsa di archiviazione, bStorage
deve essere TRUE
. Se i dati in pPersist
sono un flusso, bStorage
deve essere FALSE
. Il valore predefinito è FALSE
.
bstrLicKey
Dati facoltativi della chiave di licenza. Questi dati sono necessari solo per la creazione di controlli che richiedono un codice di licenza di runtime. Se il controllo supporta le licenze, è necessario fornire un codice di licenza per la creazione del controllo per avere esito positivo. Il valore predefinito è NULL
.
clsid
ID univoco della classe del controllo.
Valore restituito
Diverso da zero se ha esito positivo; in caso contrario 0.
Osservazioni:
CreateControl
è un analogico diretto della CWnd::Create
funzione , che crea la finestra per un oggetto CWnd
. CreateControl
crea un controllo ActiveX anziché una finestra normale.
Per sono supportati solo un subset dei flag di Windows dwStyle
per CreateControl
:
WS_VISIBLE
Crea una finestra inizialmente visibile. Obbligatorio se si desidera che il controllo sia visibile immediatamente, ad esempio le finestre normali.WS_DISABLED
Crea una finestra inizialmente disabilitata. Una finestra disabilitata non può ricevere input dall'utente. Può essere impostato se il controllo dispone di una proprietà Enabled.WS_BORDER
Crea una finestra con un bordo sottile. Può essere impostato se il controllo dispone di unaBorderStyle
proprietà .WS_GROUP
Specifica il primo controllo di un gruppo di controlli. L'utente può modificare lo stato attivo della tastiera da un controllo del gruppo al successivo usando i tasti di direzione. Tutti i controlli definiti con loWS_GROUP
stile dopo il primo controllo appartengono allo stesso gruppo. Il controllo successivo con lo stile termina ilWS_GROUP
gruppo e avvia il gruppo successivo.WS_TABSTOP
Specifica un controllo che può ricevere lo stato attivo della tastiera quando l'utente preme il tasto TAB. Premendo TAB lo stato attivo della tastiera viene impostato sul controllo successivo delloWS_TABSTOP
stile.
Esempio
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
Crea la finestra specificata e la collega all'oggetto CWnd
.
virtual BOOL CreateEx(
DWORD dwExStyle,
LPCTSTR lpszClassName,
LPCTSTR lpszWindowName,
DWORD dwStyle,
int x,
int y,
int nWidth,
int nHeight,
HWND hWndParent,
HMENU nIDorHMenu,
LPVOID lpParam = NULL);
virtual BOOL CreateEx(
DWORD dwExStyle,
LPCTSTR lpszClassName,
LPCTSTR lpszWindowName,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID,
LPVOID lpParam = NULL);
Parametri
dwExStyle
Combinazione bit per bit (OR) di stili di finestra estesi; in caso contrario NULL
, per lo stile predefinito della finestra estesa.
lpszClassName
Puntatore a una stringa con terminazione Null contenente il nome di una classe della finestra di sistema registrata; o il nome di una classe della finestra di sistema predefinita.
lpszWindowName
Puntatore a una stringa con terminazione Null che contiene il nome visualizzato della finestra; in caso contrario NULL
, per nessun nome visualizzato della finestra.
dwStyle
Combinazione bit per bit (OR) degli stili di finestra; in caso contrarioNULL
, per lo stile della finestra predefinito.
x
Distanza orizzontale iniziale della finestra dal lato sinistro dello schermo o dalla finestra padre.
y
Distanza verticale iniziale della finestra dalla parte superiore dello schermo o dalla finestra padre.
nWidth
Larghezza, in pixel, della finestra.
nHeight
Altezza, in pixel, della finestra.
hwndParent
Per una finestra figlio, l'handle per la finestra padre; in caso contrario, l'handle della finestra del proprietario se la finestra ha un proprietario.
nIDorHMenu
Per una finestra figlio, l'ID finestra; in caso contrario, l'ID di un menu per la finestra.
lpParam
Puntatore ai dati utente passati al CWnd::OnCreate
metodo nel lpCreateParams
campo .
rect
Dimensioni e posizione della finestra rispetto allo schermo o alla finestra padre.
pParentWnd
Per una finestra figlio, puntatore alla finestra padre; in caso contrario, puntatore alla finestra del proprietario se la finestra ha un proprietario.
nID
Per una finestra figlio, l'ID finestra; in caso contrario, l'ID di un menu per la finestra.
Valore restituito
TRUE
se il metodo ha avuto esito positivo; in caso contrario FALSE
, .
Osservazioni:
Avviso
CWnd::PreCreateWindow
assegna ora il hMenu
membro del parametro CREATESTRUCT
al this
puntatore se il menu è NULL
e lo stile contiene WS_CHILD
. Per una funzionalità appropriata, assicurarsi che il controllo della finestra di dialogo abbia un ID che non NULL
è .
Questa modifica corregge un arresto anomalo in scenari di interoperabilità gestiti/nativi. Un'istruzione TRACE
in CWnd::Create
avvisa lo sviluppatore del problema.
Lo stile predefinito della finestra estesa è WS_EX_LEFT
. Lo stile della finestra predefinito è WS_OVERLAPPED
.
Usare la AfxRegisterWndClass
funzione per registrare le classi di finestre. Le classi di finestre definite dall'utente sono disponibili nel modulo in cui sono registrate.
Le dimensioni per le finestre figlio sono relative all'angolo superiore sinistro dell'area client della finestra padre. Le dimensioni per le finestre di primo livello sono relative all'angolo superiore sinistro dello schermo.
Il metodo viene chiamato prima della CWnd::OnCreate
restituzione del CreateEx
metodo e prima che la finestra diventi visibile.
Esempio
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
Crea un rettangolo grigio per il cursore di sistema e la proprietà delle attestazioni del cursore.
void CreateGrayCaret(
int nWidth,
int nHeight);
Parametri
nWidth
Specifica la larghezza del cursore (in unità logiche). Se questo parametro è 0, la larghezza viene impostata sulla larghezza del bordo della finestra definita dal sistema.
nHeight
Specifica l'altezza del cursore (in unità logiche). Se questo parametro è 0, l'altezza viene impostata sull'altezza del bordo finestra definita dal sistema.
Osservazioni:
La forma del cursore può essere una linea o un blocco.
I parametri nWidth
e nHeight
specificano la larghezza e l'altezza del cursore (in unità logiche); la larghezza e l'altezza esatte (in pixel) dipendono dalla modalità di mapping.
La larghezza o l'altezza GetSystemMetrics
del bordo della finestra del sistema possono essere recuperate dalla funzione Windows con gli SM_CXBORDER
indici e SM_CYBORDER
. L'uso della larghezza o dell'altezza del bordo della finestra garantisce che il cursore sia visibile su uno schermo ad alta risoluzione.
La CreateGrayCaret
funzione membro elimina automaticamente la forma del cursore precedente, se presente, indipendentemente dalla finestra proprietaria del cursore. Una volta creato, il cursore viene inizialmente nascosto. Per visualizzare il cursore, è necessario chiamare la ShowCaret
funzione membro.
Il cursore di sistema è una risorsa condivisa. CWnd
deve creare un cursore solo quando ha lo stato attivo o è attivo. Deve distruggere il cursore prima di perdere lo stato attivo dell'input o diventa inattivo.
Esempio
// Create a 5x10 gray caret in the edit control.
void CMyDlg::OnCreateGrayCaret()
{
m_MyEdit.CreateGrayCaret(5, 10);
m_MyEdit.ShowCaret();
}
CWnd::CreateSolidCaret
Crea un rettangolo solido per il cursore di sistema e la proprietà delle attestazioni del cursore.
void CreateSolidCaret(
int nWidth,
int nHeight);
Parametri
nWidth
Specifica la larghezza del cursore (in unità logiche). Se questo parametro è 0, la larghezza viene impostata sulla larghezza del bordo della finestra definita dal sistema.
nHeight
Specifica l'altezza del cursore (in unità logiche). Se questo parametro è 0, l'altezza viene impostata sull'altezza del bordo finestra definita dal sistema.
Osservazioni:
La forma del cursore può essere una linea o un blocco.
I parametri nWidth
e nHeight
specificano la larghezza e l'altezza del cursore (in unità logiche); la larghezza e l'altezza esatte (in pixel) dipendono dalla modalità di mapping.
La larghezza o l'altezza GetSystemMetrics
del bordo della finestra del sistema possono essere recuperate dalla funzione Windows con gli SM_CXBORDER
indici e SM_CYBORDER
. L'uso della larghezza o dell'altezza del bordo della finestra garantisce che il cursore sia visibile su uno schermo ad alta risoluzione.
La CreateSolidCaret
funzione membro elimina automaticamente la forma del cursore precedente, se presente, indipendentemente dalla finestra proprietaria del cursore. Una volta creato, il cursore viene inizialmente nascosto. Per visualizzare il cursore, è necessario chiamare la ShowCaret
funzione membro.
Il cursore di sistema è una risorsa condivisa. CWnd
deve creare un cursore solo quando ha lo stato attivo o è attivo. Deve distruggere il cursore prima di perdere lo stato attivo dell'input o diventa inattivo.
Esempio
// Create a 5x10 solid caret in the edit control.
void CMyDlg::OnCreateSolidCaret()
{
m_MyEdit.CreateSolidCaret(5, 10);
m_MyEdit.ShowCaret();
}
CWnd::CWnd
Costruisce un oggetto CWnd
.
CWnd();
Osservazioni:
La finestra di Windows non viene creata e collegata fino a quando non viene chiamata la CreateEx
funzione membro o Create
.
CWnd::Default
Chiama la routine della finestra predefinita.
LRESULT Default();
Valore restituito
Dipende dal messaggio inviato.
Osservazioni:
La procedura predefinita della finestra fornisce l'elaborazione predefinita per qualsiasi messaggio di finestra che un'applicazione non elabora. Questa funzione membro garantisce che ogni messaggio venga elaborato.
Esempio
// 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
Chiama la procedura di finestra predefinita, che fornisce l'elaborazione predefinita per qualsiasi messaggio di finestra che un'applicazione non elabora.
virtual LRESULT DefWindowProc(
UINT message,
WPARAM wParam,
LPARAM lParam);
Parametri
message
Specifica il messaggio di Windows da elaborare.
wParam
Specifica informazioni aggiuntive dipendenti dai messaggi.
lParam
Specifica informazioni aggiuntive dipendenti dai messaggi.
Valore restituito
Dipende dal messaggio inviato.
Osservazioni:
Questa funzione membro garantisce che ogni messaggio venga elaborato. Deve essere chiamato con gli stessi parametri ricevuti dalla procedura della finestra.
CWnd::DeleteTempMap
Chiamato automaticamente dal gestore tempo di inattività dell'oggetto CWinApp
.
static void PASCAL DeleteTempMap();
Osservazioni:
Elimina tutti gli oggetti temporanei CWnd
creati dalla FromHandle
funzione membro.
Esempio
// DeleteTempMap() is a static member and does not need
// to be called within the scope of an instantiated CWnd object.
CWnd::DeleteTempMap();
CWnd::DestroyWindow
Elimina definitivamente la finestra di Windows collegata all'oggetto CWnd
.
virtual BOOL DestroyWindow();
Valore restituito
Diverso da zero se la finestra viene distrutta; in caso contrario, 0.
Osservazioni:
La DestroyWindow
funzione membro invia messaggi appropriati alla finestra per disattivarla e rimuovere lo stato attivo di input. Elimina inoltre il menu della finestra, scarica la coda dell'applicazione, elimina i timer in sospeso, rimuove la proprietà degli Appunti e interrompe la catena del visualizzatore appunti se CWnd
si trova nella parte superiore della catena del visualizzatore. WM_DESTROY
Invia messaggi e WM_NCDESTROY
alla finestra. Non distrugge l'oggetto CWnd
.
DestroyWindow
è un segnaposto per eseguire la pulizia. Poiché DestroyWindow
è una funzione virtuale, viene visualizzata in qualsiasi CWnd
classe derivata in Visualizzazione classi. Ma anche se si esegue l'override di questa funzione nella CWnd
classe derivata da , DestroyWindow
non viene necessariamente chiamata. Se DestroyWindow
non viene chiamato nel codice MFC, è necessario chiamarlo in modo esplicito nel proprio codice se si vuole chiamarlo.
Si supponga, ad esempio, di aver eseguito l'override DestroyWindow
in una CView
classe derivata da . Poiché il codice sorgente MFC non chiama DestroyWindow
in alcuna delle relative CFrameWnd
classi derivate, l'override DestroyWindow
non verrà chiamato a meno che non venga chiamato in modo esplicito.
Se la finestra è l'elemento padre di qualsiasi finestra, queste finestre figlio vengono eliminate automaticamente quando la finestra padre viene eliminata definitivamente. La DestroyWindow
funzione membro elimina innanzitutto le finestre figlio e quindi la finestra stessa.
La DestroyWindow
funzione membro elimina inoltre le finestre di dialogo senza modalità create da CDialog::Create
.
Se l'oggetto CWnd
eliminato è una finestra figlio e non dispone del WS_EX_NOPARENTNOTIFY
set di stili, il WM_PARENTNOTIFY
messaggio viene inviato all'elemento padre.
Esempio
// 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
Scollega un handle di Windows da un oggetto CWnd
e restituisce l'handle.
HWND Detach();
Valore restituito
Oggetto HWND
per l'oggetto Windows.
Esempio
Vedere l'esempio per CWnd::Attach
.
CWnd::DlgDirList
Compila una casella di riepilogo con un elenco di file o directory.
int DlgDirList(
LPTSTR lpPathSpec,
int nIDListBox,
int nIDStaticPath,
UINT nFileType);
Parametri
lpPathSpec
Punta a una stringa con terminazione Null contenente il percorso o il nome file. DlgDirList
modifica questa stringa, che deve essere sufficientemente lunga da contenere le modifiche. Per altre informazioni, vedere la sezione "Osservazioni" seguente.
nIDListBox
Specifica l'identificatore di una casella di riepilogo. Se nIDListBox
è 0, DlgDirList
si presuppone che non esista alcuna casella di riepilogo e non tenti di riempirne uno.
nIDStaticPath
Specifica l'identificatore del controllo statico-testo utilizzato per visualizzare l'unità e la directory correnti. Se nIDStaticPath
è 0, DlgDirList
si presuppone che non sia presente alcun controllo di testo di questo tipo.
nFileType
Specifica gli attributi dei file da visualizzare. Può essere una qualsiasi combinazione dei valori seguenti:
DDL_READWRITE
File di dati di lettura/scrittura senza attributi aggiuntivi.DDL_READONLY
File di sola lettura.DDL_HIDDEN
File nascosti.DDL_SYSTEM
File di sistema.DDL_DIRECTORY
Directory.DDL_ARCHIVE
Archivio.DDL_POSTMSGS
LB_DIR
bandiera. Se ilLB_DIR
flag è impostato, Windows inserisce i messaggi generati daDlgDirList
nella coda dell'applicazione; in caso contrario, vengono inviati direttamente alla routine della finestra di dialogo.DDL_DRIVES
Unità. Se ilDDL_DRIVES
flag è impostato, ilDDL_EXCLUSIVE
flag viene impostato automaticamente. Pertanto, per creare un elenco di directory che include unità e file, è necessario chiamareDlgDirList
due volte: una volta con ilDDL_DRIVES
flag impostato e una volta con i flag per il resto dell'elenco.DDL_EXCLUSIVE
Bit esclusivo. Se il bit esclusivo è impostato, vengono elencati solo i file del tipo specificato; in caso contrario, vengono elencati file e file normali del tipo specificato.
Valore restituito
Diverso da zero se la funzione ha esito positivo; in caso contrario, 0.
Osservazioni:
DlgDirList
invia LB_RESETCONTENT
messaggi e LB_DIR
alla casella di riepilogo. Riempie la casella di riepilogo specificata da nIDListBox
con i nomi di tutti i file che corrispondono al percorso specificato da lpPathSpec
.
Il lpPathSpec
parametro ha il formato seguente:
[drive:] [ [\u]directory[\idirectory]...\u] [filename]
In questo esempio, drive
è una lettera di unità, directory
è un nome di directory valido ed filename
è un nome file valido che deve contenere almeno un carattere jolly. I caratteri jolly sono un punto interrogativo (?), ovvero corrispondono a qualsiasi carattere e un asterisco (*), ovvero corrispondono a un numero qualsiasi di caratteri.
Se si specifica una stringa di lunghezza 0 per lpPathSpec
o se si specifica solo un nome di directory ma non si include alcuna specifica di file, la stringa verrà modificata in "*.*".
Se lpPathSpec
include un'unità e/o un nome di directory, l'unità e la directory correnti vengono modificate nell'unità e nella directory designata prima che la casella di riepilogo venga riempita. Il controllo di testo identificato da nIDStaticPath
viene aggiornato anche con la nuova unità e/o il nome della directory.
Dopo aver compilato la casella di riepilogo, lpPathSpec
viene aggiornata rimuovendo l'unità e/o la parte della directory del percorso.
Esempio
// 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
Compila la casella di riepilogo di una casella combinata con un elenco di file o directory.
int DlgDirListComboBox(
LPTSTR lpPathSpec,
int nIDComboBox,
int nIDStaticPath,
UINT nFileType);
Parametri
lpPathSpec
Punta a una stringa con terminazione Null contenente il percorso o il nome file. DlgDirListComboBox
modifica questa stringa, quindi questi dati non devono essere sotto forma di valore letterale stringa. Vedere la sezione "Osservazioni" seguente.
nIDComboBox
Specifica l'identificatore di una casella combinata in una finestra di dialogo. Se nIDComboBox
è 0, DlgDirListComboBox
si presuppone che non esista alcuna casella combinata e non tenti di riempirne uno.
nIDStaticPath
Specifica l'identificatore del controllo statico-testo utilizzato per visualizzare l'unità e la directory correnti. Se nIDStaticPath
è 0, DlgDirListComboBox
si presuppone che non sia presente alcun controllo di testo di questo tipo.
nFileType
Specifica gli attributi del file DOS da visualizzare. Può essere una qualsiasi combinazione dei valori seguenti:
DDL_READWRITE
File di dati di lettura/scrittura senza attributi aggiuntivi.DDL_READONLY
File di sola lettura.DDL_HIDDEN
File nascosti.DDL_SYSTEM
File di sistema.DDL_DIRECTORY
Directory.DDL_ARCHIVE
Archivio.DDL_POSTMSGS
CB_DIR
bandiera. Se ilCB_DIR
flag è impostato, Windows inserisce i messaggi generati daDlgDirListComboBox
nella coda dell'applicazione; in caso contrario, vengono inviati direttamente alla routine della finestra di dialogo.DDL_DRIVES
Unità. Se ilDDL_DRIVES
flag è impostato, ilDDL_EXCLUSIVE
flag viene impostato automaticamente. Pertanto, per creare un elenco di directory che include unità e file, è necessario chiamareDlgDirListComboBox
due volte: una volta con ilDDL_DRIVES
flag impostato e una volta con i flag per il resto dell'elenco.DDL_EXCLUSIVE
Bit esclusivo. Se il bit esclusivo è impostato, vengono elencati solo i file del tipo specificato; in caso contrario, vengono elencati file e file normali del tipo specificato.
Valore restituito
Specifica il risultato della funzione. È diverso da zero se è stato fatto un elenco, anche un elenco vuoto. Un valore restituito 0 implica che la stringa di input non contiene un percorso di ricerca valido.
Osservazioni:
DlgDirListComboBox
invia CB_RESETCONTENT
messaggi e CB_DIR
alla casella combinata. Riempie la casella di riepilogo della casella combinata specificata da nIDComboBox
con i nomi di tutti i file che corrispondono al percorso specificato da lpPathSpec
.
Il lpPathSpec
parametro ha il formato seguente:
[drive:] [ [\u]directory[\idirectory]...\u] [filename]
In questo esempio, drive
è una lettera di unità, directory
è un nome di directory valido ed filename
è un nome file valido che deve contenere almeno un carattere jolly. I caratteri jolly sono un punto interrogativo (?), ovvero corrispondono a qualsiasi carattere e un asterisco (*), il che significa che corrisponde a un numero qualsiasi di caratteri.
Se si specifica una stringa di lunghezza zero per lpPathSpec
, verrà usata la directory corrente e lpPathSpec
non verrà modificata. Se si specifica solo un nome di directory ma non si include alcuna specifica di file, la stringa verrà modificata in "*".
Se lpPathSpec
include un'unità e/o un nome di directory, l'unità e la directory correnti vengono modificate nell'unità e nella directory designata prima che la casella di riepilogo venga riempita. Il controllo di testo identificato da nIDStaticPath
viene aggiornato anche con la nuova unità e/o il nome della directory.
Dopo aver compilato la casella di riepilogo casella combinata, lpPathSpec
viene aggiornata rimuovendo l'unità e/o la parte della directory del percorso.
Esempio
// 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
Recupera la selezione corrente da una casella di riepilogo.
BOOL DlgDirSelect(
LPTSTR lpString,
int nIDListBox);
Parametri
lpString
Punta a un buffer che deve ricevere la selezione corrente nella casella di riepilogo.
nIDListBox
Specifica l'ID intero di una casella di riepilogo nella finestra di dialogo.
Valore restituito
Diverso da zero se ha esito positivo; in caso contrario 0.
Osservazioni:
Si presuppone che la casella di riepilogo sia stata compilata dalla DlgDirList
funzione membro e che la selezione sia una lettera di unità, un file o un nome di directory.
La DlgDirSelect
funzione membro copia la selezione nel buffer specificato da lpString
. Se non è presente alcuna selezione, lpString
non cambia.
DlgDirSelect
invia LB_GETCURSEL
messaggi e LB_GETTEXT
alla casella di riepilogo.
Non consente la restituzione di più nomi di file da una casella di riepilogo. La casella di riepilogo non deve essere una casella di riepilogo a selezione multipla.
CWnd::DlgDirSelectComboBox
Recupera la selezione corrente da una casella di riepilogo di una casella combinata.
BOOL DlgDirSelectComboBox(
LPTSTR lpString,
int nIDComboBox);
Parametri
lpString
Punta a un buffer che deve ricevere il percorso selezionato.
nIDComboBox
Specifica l'ID intero della casella combinata nella finestra di dialogo.
Valore restituito
Diverso da zero se ha esito positivo; in caso contrario 0.
Osservazioni:
Si presuppone che la casella di riepilogo sia stata compilata dalla DlgDirListComboBox
funzione membro e che la selezione sia una lettera di unità, un file o un nome di directory.
La DlgDirSelectComboBox
funzione membro copia la selezione nel buffer specificato. Se non è presente alcuna selezione, il contenuto del buffer non viene modificato.
DlgDirSelectComboBox
invia CB_GETCURSEL
messaggi e CB_GETLBTEXT
alla casella combinata.
Non consente la restituzione di più nomi di file da una casella combinata.
CWnd::DoDataExchange
Chiamato dal framework per scambiare e convalidare i dati delle finestre di dialogo.
virtual void DoDataExchange(CDataExchange* pDX);
Parametri
pDX
Puntatore a un oggetto CDataExchange
.
Osservazioni:
Non chiamare mai direttamente questa funzione. Viene chiamato dalla UpdateData
funzione membro. Chiamare UpdateData
per inizializzare i controlli di una finestra di dialogo o recuperare i dati da una finestra di dialogo.
Quando si deriva una classe di dialogo specifica dell'applicazione da CDialog
, è necessario eseguire l'override di questa funzione membro se si desidera utilizzare lo scambio e la convalida automatica del framework. La procedura guidata Aggiungi variabile scriverà una versione sottoposta a override di questa funzione membro contenente la "mappa dati" desiderata delle chiamate di funzione globali DDX (Dialog Data Exchange) e convalida (DDV).
Per generare automaticamente una versione sottoposta a override di questa funzione membro, creare prima una risorsa di dialogo con l'editor di dialoghi, quindi derivare una classe di dialogo specifica dell'applicazione. Usare quindi la procedura guidata Aggiungi variabile per associare variabili, dati e intervalli di convalida a vari controlli nella nuova finestra di dialogo. La procedura guidata scrive quindi l'oggetto sottoposto DoDataExchange
a override che contiene una mappa dati. Di seguito è riportato un esempio di blocco di codice DDX/DDV generato dalla procedura guidata Aggiungi variabile:
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);
}
La DoDataExchange
funzione membro sottoposta a override deve precedere le istruzioni macro nel file di origine.
Per altre informazioni sullo scambio e la convalida dei dati delle finestre di dialogo, vedere Visualizzazione e modifica dei dati in un modulo e scambio di dati di dialogo e convalida. Per una descrizione delle macro DDX_ e DDV_ generate dalla procedura guidata Aggiungi variabile, vedere La nota tecnica 26.
CWnd::DragAcceptFiles
Chiamare questa funzione membro dall'interno di una finestra, usando un CWnd
puntatore, nella funzione dell'applicazione CWinApp::InitInstance
per indicare che la finestra accetta file eliminati da Gestione file di Windows o Esplora file.
void DragAcceptFiles(BOOL bAccept = TRUE);
Parametri
BAccept
Flag che indica se i file trascinati vengono accettati.
Osservazioni:
Solo la finestra che chiama DragAcceptFiles
con il bAccept
parametro impostato su TRUE
ha identificato se stessa come in grado di elaborare il messaggio WM_DROPFILES
di Windows . Ad esempio, in un'applicazione MDI, se il puntatore della CMDIFrameWnd
finestra viene usato nella chiamata di DragAcceptFiles
funzione, solo la CMDIFrameWnd
finestra ottiene il WM_DROPFILES
messaggio. Questo messaggio non viene inviato a tutte le finestre aperte CMDIChildWnd
. Affinché una CMDIChildWnd
finestra riceva questo messaggio, è necessario chiamare DragAcceptFiles
con il puntatore della CMDIChildWnd
finestra.
Per interrompere la ricezione di file trascinati, chiamare la funzione membro con bAccept
impostato su FALSE
.
CWnd::DragDetect
Acquisisce il mouse e tiene traccia del suo movimento fino a quando l'utente rilascia il pulsante sinistro, preme ESC o sposta il mouse all'esterno del rettangolo di trascinamento attorno al punto specificato.
BOOL DragDetect(POINT pt) const;
Parametri
pt
Posizione iniziale del mouse, nelle coordinate dello schermo. La funzione determina le coordinate del rettangolo di trascinamento usando questo punto.
Valore restituito
Se l'utente ha spostato il mouse all'esterno del rettangolo di trascinamento tenendo premuto il pulsante sinistro, il valore restituito è diverso da zero.
Se l'utente non ha spostato il mouse all'esterno del rettangolo di trascinamento tenendo premuto il pulsante sinistro, il valore restituito è zero.
Osservazioni:
Questa funzione membro emula la funzionalità della funzione DragDetect
, come descritto in Windows SDK.
CWnd::DrawAnimatedRects
Disegna un rettangolo wireframe e aggiunge un'animazione in modo da indicare l'apertura di un'icona oppure la riduzione a icona o l'ingrandimento di una finestra.
BOOL DrawAnimatedRects(
int idAni,
CONST RECT* lprcFrom,
CONST RECT* lprcTo);
Parametri
idAni
Specifica il tipo di animazione. Se si specifica IDANI_CAPTION
, la didascalia della finestra verrà animata dalla posizione specificata da lprcFrom
alla posizione specificata da lprcTo
. L'effetto è simile alla riduzione al minimo o all'ottimizzazione di una finestra.
lprcFrom
Puntatore a una RECT
struttura che specifica la posizione e le dimensioni dell'icona o della finestra ridotta a icona.
lprcTo
Puntatore a una RECT
struttura che specifica la posizione e le dimensioni della finestra ripristinata
Valore restituito
Viene restituito un valore diverso da zero se la funzione viene eseguita correttamente; in caso contrario viene restituito 0.
Osservazioni:
Questa funzione membro emula la funzionalità della funzione DrawAnimatedRects
, come descritto in Windows SDK.
CWnd::DrawCaption
Disegna una didascalia della finestra.
BOOL DrawCaption(
CDC* pDC,
LPCRECT lprc,
UINT uFlags);
Parametri
pDC
Puntatore a un contesto di dispositivo. La funzione disegna la didascalia della finestra in questo contesto di dispositivo.
lprc
Puntatore a una RECT
struttura che specifica il rettangolo di delimitazione per la didascalia della finestra.
uFlags
Specifica le opzioni di disegno. Per un elenco completo dei valori, vedere DrawCaption
.
Valore restituito
Viene restituito un valore diverso da zero se la funzione viene eseguita correttamente; in caso contrario viene restituito 0.
Osservazioni:
Questa funzione membro emula la funzionalità della funzione DrawCaption
, come descritto in Windows SDK.
CWnd::DrawMenuBar
Ridisegna la barra dei menu.
void DrawMenuBar();
Osservazioni:
Se una barra dei menu viene modificata dopo che Windows ha creato la finestra, chiamare questa funzione per disegnare la barra dei menu modificata.
Esempio
Vedere l'esempio per CWnd::GetMenu
.
CWnd::EnableActiveAccessibility
Abilita le funzioni di accessibilità attiva definite dall'utente.
void EnableActiveAccessibility();
Osservazioni:
Il supporto predefinito di Active Accessibility di MFC è sufficiente per le finestre e i controlli standard, inclusi i controlli ActiveX; Tuttavia, se la CWnd
classe derivata da -contiene elementi dell'interfaccia utente non windows, MFC non ha modo di conoscerli. In tal caso, è necessario eseguire l'override delle funzioni membro Active Accessibility appropriate nella classe ed è necessario chiamare EnableActiveAccessibility
nel costruttore della classe.
CWnd::EnableDynamicLayout
Abilita o disabilita il gestore del layout dinamico. Se il layout dinamico è abilitato, la posizione e le dimensioni delle finestre figlio vengono adeguate in modo dinamico quando l'utente ridimensiona la finestra padre.
void EnableDynamicLayout(BOOL bEnable = TRUE);
Parametri
bEnable
TRUE
per abilitare il layout dinamico; FALSE
per disabilitare il layout dinamico.
Osservazioni:
Se si vuole abilitare il layout dinamico, non è sufficiente semplicemente chiamare questo metodo. È anche necessario fornire informazioni sul layout dinamico che specifichino come devono rispondere i controlli nella finestra alle modifiche delle dimensioni. È possibile specificare queste informazioni nell'Editor risorse, o a livello di codice, per ogni controllo. Vedere Layout dinamico.
CWnd::EnableD2DSupport
Abilita o disabilita il supporto D2D per la finestra. Chiamare questo metodo prima dell'inizializzazione della finestra principale.
void EnableD2DSupport(
BOOL bEnable = TRUE,
BOOL bUseDCRenderTarget = FALSE);
Parametri
bEnable
Specifica se attivare o disattivare il supporto D2D.
bUseDCRenderTarget
Specifica se usare la destinazione di rendering del contesto di dispositivo ( CDCRenderTarget
DC), . Se FALSE
, viene usato CHwndRenderTarget
.
CWnd::EnableScrollBar
Abilita o disabilita una o entrambe le frecce di una barra di scorrimento.
BOOL EnableScrollBar(
int nSBFlags,
UINT nArrowFlags = ESB_ENABLE_BOTH);
Parametri
nSBFlags
Specifica il tipo di barra di scorrimento. I valori consentiti sono i seguenti:
SB_BOTH
Abilita o disabilita le frecce delle barre di scorrimento orizzontali e verticali associate alla finestra.SB_HORZ
Abilita o disabilita le frecce della barra di scorrimento orizzontale associata alla finestra.SB_VERT
Abilita o disabilita le frecce della barra di scorrimento verticale associata alla finestra.
nArrowFlags
Specifica se le frecce della barra di scorrimento sono abilitate o disabilitate e quali frecce sono abilitate o disabilitate. I valori consentiti sono i seguenti:
ESB_ENABLE_BOTH
Abilita entrambe le frecce di una barra di scorrimento (impostazione predefinita).ESB_DISABLE_LTUP
Disabilita la freccia sinistra di una barra di scorrimento orizzontale o la freccia su di una barra di scorrimento verticale.ESB_DISABLE_RTDN
Disabilita la freccia destra di una barra di scorrimento orizzontale o la freccia giù di una barra di scorrimento verticale.ESB_DISABLE_BOTH
Disabilita entrambe le frecce di una barra di scorrimento.
Valore restituito
Diverso da zero se le frecce sono abilitate o disabilitate come specificato. In caso contrario, è 0, che indica che le frecce sono già nello stato richiesto o che si è verificato un errore.
CWnd::EnableScrollBarCtrl
Abilita o disabilita la barra di scorrimento per questa finestra.
void EnableScrollBarCtrl(
int nBar,
BOOL bEnable = TRUE);
Parametri
nBar
Identificatore della barra di scorrimento.
bEnable
Specifica se la barra di scorrimento deve essere abilitata o disabilitata.
Osservazioni:
Se la finestra dispone di un controllo barra di scorrimento di pari livello, viene utilizzata la barra di scorrimento; in caso contrario, viene utilizzata la barra di scorrimento della finestra.
CWnd::EnableToolTips
Abilita i suggerimenti per gli strumenti per la finestra specificata.
BOOL EnableToolTips(BOOL bEnable = TRUE);
Parametri
bEnable
Specifica se il controllo della descrizione comando è abilitato o disabilitato. TRUE
abilita il controllo; FALSE
disabilita il controllo .
Valore restituito
TRUE
se i suggerimenti degli strumenti sono abilitati; in caso contrario FALSE
, .
Osservazioni:
Eseguire l'override OnToolHitTest
per fornire lo TOOLINFO
struct o gli struct per la finestra.
Nota
Alcune finestre, ad esempio CToolBar
, forniscono un'implementazione predefinita di OnToolHitTest
.
Per altre informazioni su questa struttura, vedere TOOLINFO
in Windows SDK.
La semplice chiamata EnableToolTips
non è sufficiente per visualizzare i suggerimenti degli strumenti per i controlli figlio, a meno che la finestra padre non sia derivata da CFrameWnd
. Ciò è dovuto al fatto che CFrameWnd
fornisce un gestore predefinito per la TTN_NEEDTEXT
notifica. Se la finestra padre non è derivata da CFrameWnd
, ovvero se si tratta di una finestra di dialogo o di una visualizzazione modulo, i suggerimenti per gli strumenti per i controlli figlio non verranno visualizzati correttamente a meno che non si fornisca un gestore per la notifica della TTN_NEEDTEXT
descrizione comando. Vedere Suggerimenti per gli strumenti.
I suggerimenti predefiniti per gli strumenti forniti per le finestre EnableToolTips
non dispongono di testo associato. Per recuperare il testo della descrizione comando da visualizzare, la TTN_NEEDTEXT
notifica viene inviata alla finestra padre del controllo descrizione comando appena prima che venga visualizzata la finestra della descrizione comando. Se non esiste alcun gestore per questo messaggio per assegnare un valore al pszText
membro della TOOLTIPTEXT
struttura, non verrà visualizzato alcun testo per la descrizione comando.
Esempio
// 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
Abilita o disabilita le descrizioni comando di rilevamento.
BOOL EnableTrackingToolTips(BOOL bEnable = TRUE);
Parametri
bEnable
Specifica se i suggerimenti degli strumenti di rilevamento sono abilitati o disabilitati. Se questo parametro è TRUE
, verranno abilitati i suggerimenti degli strumenti di rilevamento. Se questo parametro è FALSE
, i suggerimenti degli strumenti di rilevamento verranno disabilitati.
Valore restituito
Indica lo stato prima della chiamata della EnableWindow
funzione membro. Il valore restituito è diverso da zero se la finestra è stata disabilitata in precedenza. Il valore restituito è 0 se la finestra è stata abilitata in precedenza o si è verificato un errore.
Osservazioni:
I suggerimenti per gli strumenti di rilevamento sono finestre della descrizione comando che è possibile posizionare dinamicamente sullo schermo. Aggiornando rapidamente la posizione, la finestra della descrizione comando sembra spostarsi senza problemi o "traccia". Questa funzionalità può essere utile se è necessario il testo della descrizione comando per seguire la posizione del puntatore mentre si sposta.
CWnd::EnableWindow
Abilita o disabilita l'input da mouse e tastiera.
BOOL EnableWindow(BOOL bEnable = TRUE);
Parametri
bEnable
Specifica se la finestra specificata deve essere abilitata o disabilitata. Se questo parametro è TRUE
, la finestra verrà abilitata. Se questo parametro è FALSE
, la finestra verrà disabilitata.
Valore restituito
Indica lo stato prima della chiamata della EnableWindow
funzione membro. Il valore restituito è diverso da zero se la finestra è stata disabilitata in precedenza. Il valore restituito è 0 se la finestra è stata abilitata in precedenza o si è verificato un errore.
Osservazioni:
Quando l'input è disabilitato, l'input, ad esempio i clic del mouse e le sequenze di tasti, viene ignorato. Quando l'input è abilitato, la finestra elabora tutti gli input.
Se lo stato abilitato cambia, il messaggio viene inviato prima che WM_ENABLE
venga restituita questa funzione.
Se disabilitato, tutte le finestre figlio vengono disabilitate in modo implicito, anche se non vengono inviati WM_ENABLE
messaggi.
Prima di poter essere attivata, è necessario abilitare una finestra. Ad esempio, se un'applicazione visualizza una finestra di dialogo senza modalità e ha disabilitato la finestra principale, è necessario abilitare la finestra principale prima che la finestra di dialogo venga eliminata definitivamente. In caso contrario, un'altra finestra otterrà lo stato attivo di input e verrà attivato. Se una finestra figlio è disabilitata, viene ignorata quando Windows tenta di determinare quale finestra deve ricevere messaggi del mouse.
Per impostazione predefinita, una finestra viene abilitata quando viene creata. Un'applicazione può specificare lo WS_DISABLED
stile nella Create
funzione membro o CreateEx
per creare una finestra inizialmente disabilitata. Dopo aver creato una finestra, un'applicazione può anche usare la EnableWindow
funzione membro per abilitare o disabilitare la finestra.
Un'applicazione può usare questa funzione per abilitare o disabilitare un controllo in una finestra di dialogo. Un controllo disabilitato non può ricevere lo stato attivo dell'input né può accedervi.
Esempio
//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
Termina una chiamata a RunModalLoop
.
virtual void EndModalLoop(int nResult);
Parametri
nResult
Contiene il valore da restituire al chiamante di RunModalLoop
.
Osservazioni:
Il nResult
parametro viene propagato al valore restituito da RunModalLoop
.
CWnd::EndModalState
Chiamare questa funzione membro per cambiare lo stato di una finestra cornice da modale a non modale.
virtual void EndModalState();
CWnd::EndPaint
Contrassegna la fine del dipinto nella finestra specificata.
void EndPaint(LPPAINTSTRUCT lpPaint);
Parametri
lpPaint
Punta a una PAINTSTRUCT
struttura che contiene le informazioni di disegno recuperate dalla BeginPaint
funzione membro.
Osservazioni:
La EndPaint
funzione membro è necessaria per ogni chiamata alla funzione membro, ma solo dopo il completamento del BeginPaint
disegno.
Se il cursore è stato nascosto dalla BeginPaint
funzione membro, EndPaint
ripristina il cursore sullo schermo.
Esempio
Vedere l'esempio per CWnd::BeginPaint
.
CWnd::ExecuteDlgInit
Inizializza una risorsa di una finestra di dialogo.
BOOL ExecuteDlgInit(LPCTSTR lpszResourceName);
BOOL ExecuteDlgInit(LPVOID lpResource);
Parametri
lpszResourceName
Puntatore a una stringa con terminazione Null che specifica il nome della risorsa.
lpResource
Puntatore a una risorsa.
Valore restituito
TRUE
se viene eseguita una risorsa di dialogo; in caso contrario FALSE
, .
Osservazioni:
ExecuteDlgInit
userà le risorse associate al modulo in esecuzione o alle risorse di altre origini. A tale scopo, ExecuteDlgInit
trova un handle di risorsa chiamando AfxFindResourceHandle
. Se l'applicazione MFC non usa la DLL condivisa (MFCx0[U][D].DLL), AfxFindResourceHandle
chiama AfxGetResourceHandle
, che restituisce l'handle di risorsa corrente per l'eseguibile. Se l'applicazione MFC che usa MFCx0[U][D].DLL, AfxFindResourceHandle
attraversa l'elenco CDynLinkLibrary
di oggetti di DLL di estensione condivise e MFC alla ricerca dell'handle di risorse corretto.
CWnd::FilterToolTipMessage
Chiamato dal framework per visualizzare i messaggi della descrizione comando.
void FilterToolTipMessage(MSG* pMsg);
Parametri
pMsg
Puntatore al messaggio della descrizione comando.
Osservazioni:
Nella maggior parte delle applicazioni MFC questo metodo viene chiamato dal framework da PreTranslateMessage
e EnableToolTips
e non è necessario chiamarlo manualmente.
Tuttavia, in alcune applicazioni, ad esempio alcuni controlli ActiveX, questi metodi potrebbero non essere richiamati dal framework e sarà necessario chiamare FilterToolTipMessage
se stessi. Per altre informazioni, vedere Metodi di creazione di suggerimenti per gli strumenti.
CWnd::FindWindow
Restituisce il primo livello CWnd
la cui classe di finestra viene specificata da lpszClassName
e il cui nome della finestra, o titolo, viene assegnato da lpszWindowName
.
static CWnd* PASCAL FindWindow(
LPCTSTR lpszClassName,
LPCTSTR lpszWindowName);
Parametri
lpszClassName
Punta a una stringa con terminazione Null che specifica il nome della classe della finestra (una WNDCLASS
struttura). Se lpClassName
è NULL
, tutti i nomi di classe corrispondono.
lpszWindowName
Punta a una stringa con terminazione Null che specifica il nome della finestra (titolo della finestra). Se lpWindowName
è NULL
, tutti i nomi delle finestre corrispondono.
Valore restituito
Identifica la finestra con il nome e il nome della finestra specificati. È NULL
se non viene trovata alcuna finestra di questo tipo.
* CWnd
può essere temporaneo e non deve essere archiviato per un uso successivo.
Osservazioni:
Questa funzione non esegue ricerche nelle finestre figlio.
Esempio
// 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
Recupera l'oggetto finestra il cui nome della classe e il nome della finestra corrispondono alle stringhe specificate.
static CWnd* FindWindowEx(
HWND hwndParent,
HWND hwndChildAfter,
LPCTSTR lpszClass,
LPCTSTR lpszWindow);
Parametri
hwndParent
Handle nella finestra padre di cui eseguire la ricerca nelle finestre figlio.
hwndChildAfter
Handle in una finestra figlio. La ricerca inizia con la finestra figlio successiva nell'ordine Z. La finestra figlio deve essere una finestra figlio diretta di hwndParent
, non solo una finestra discendente.
lpszClass
Puntatore a una stringa con terminazione Null che specifica il nome della classe o un atomo di classe creato da una chiamata precedente a RegisterClass
o RegisterClassEx
.
lpszWindow
Puntatore a una stringa con terminazione Null che specifica il nome della finestra (titolo della finestra). Se questo parametro è NULL
, tutti i nomi di finestra corrispondono.
Valore restituito
Se la funzione ha esito positivo, il valore restituito è un puntatore all'oggetto finestra con i nomi di classe e finestra specificati. Se la funzione ha esito negativo, il valore restituito è NULL
.
Osservazioni:
Questa funzione membro emula la funzionalità della funzione FindWindowEx
, come descritto in Windows SDK.
CWnd::FlashWindow
Lampeggia la finestra specificata una volta.
BOOL FlashWindow(BOOL bInvert);
Parametri
bInvert
Specifica se deve CWnd
essere lampeggiato o restituito allo stato originale. l'oggetto CWnd
viene lampeggiato da uno stato all'altro se bInvert
è TRUE
. Se bInvert
è FALSE
, la finestra viene restituita allo stato originale (attivo o inattivo).
Valore restituito
Diverso da zero se la finestra era attiva prima della FlashWindow
chiamata alla funzione membro; in caso contrario, 0.
Osservazioni:
Per il flashing successivo, creare un timer di sistema e chiamare FlashWindow
ripetutamente . Lampeggiando significa CWnd
modificare l'aspetto della barra del titolo come se l'oggetto CWnd
cambiasse da stato inattivo a attivo o viceversa. Una barra del titolo inattiva passa a una barra del titolo attiva; una barra del titolo attiva passa a una barra del titolo inattiva.
In genere, una finestra viene lampeggiata per informare l'utente che richiede attenzione, ma che attualmente non ha lo stato attivo per l'input.
Il bInvert
parametro deve essere FALSE
solo quando la finestra riceve lo stato attivo per l'input e non viene più lampeggiata. Dovrebbe essere TRUE
in caso di chiamate successive durante l'attesa di ottenere lo stato attivo dell'input.
Questa funzione restituisce sempre un valore diverso da zero per le finestre ridotte a icona. Se la finestra è ridotta a icona, FlashWindow
lampeggia l'icona della finestra; bInvert
viene ignorata per le finestre ridotte a icona.
Esempio
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
Lampeggia la finestra specificata.
BOOL FlashWindowEx(
DWORD dwFlags,
UINT uCount,
DWORD dwTimeout);
Parametri
*dwFlags*
Specifica lo stato del flash. Per un elenco completo dei valori, vedere la FLASHWINFO
struttura.
uCount
Specifica il numero di volte in cui lampeggiare la finestra.
dwTimeout
Specifica la frequenza, espressa in millisecondi, in cui la finestra verrà lampeggiata. Se dwTimeout
è zero, la funzione usa la frequenza di lampeggiazione del cursore predefinita.
Valore restituito
Il valore restituito specifica lo stato della finestra prima della chiamata alla FlashWindowEx
funzione. Se la didascalia della finestra è stata disegnata come attiva prima della chiamata, il valore restituito è diverso da zero. In caso contrario, il valore restituito è zero.
Osservazioni:
Questo metodo emula la funzionalità della funzione FlashWindowEx
, come descritto in Windows SDK.
CWnd::FromHandle
Restituisce un puntatore a un oggetto CWnd
quando viene specificato un handle di una finestra. Se un CWnd
oggetto non è collegato all'handle, viene creato e collegato un oggetto temporaneo CWnd
.
static CWnd* PASCAL FromHandle(HWND hWnd);
Parametri
hWnd
Oggetto HWND
di una finestra di Windows.
Valore restituito
Restituisce un puntatore a un oggetto CWnd
quando viene specificato un handle di una finestra. Se un CWnd
oggetto non è collegato all'handle, viene creato e collegato un oggetto temporaneo CWnd
.
Il puntatore può essere temporaneo e non deve essere archiviato per un uso successivo.
CWnd::FromHandlePermanent
Restituisce un puntatore a un oggetto CWnd
quando viene specificato un handle di una finestra.
static CWnd* PASCAL FromHandlePermanent(HWND hWnd);
Parametri
hWnd
Oggetto HWND
di una finestra di Windows.
Valore restituito
Puntatore a un oggetto CWnd
.
Osservazioni:
Se un CWnd
oggetto non è collegato all'handle, NULL
viene restituito .
Questa funzione, a differenza di FromHandle
, non crea oggetti temporanei.
CWnd::get_accChild
Chiamata eseguita dal framework per recuperare l'indirizzo di un'interfaccia IDispatch
per l'elemento figlio specificato.
virtual HRESULT get_accChild(
VARIANT varChild,
IDispatch** ppdispChild);
Parametri
varChild
Identifica l'elemento figlio di cui IDispatch
recuperare l'interfaccia.
ppdispChild
Riceve l'indirizzo dell'interfaccia dell'oggetto IDispatch
figlio.
Valore restituito
Restituisce S_OK
in caso di esito positivo, un codice di errore COM in caso di errore. Vedere Valori restituiti in IAccessible::get_accChild
Windows SDK.
Osservazioni:
Questa funzione fa parte del supporto per l'accessibilità attiva di MFC.
Eseguire l'override di questa funzione nella CWnd
classe derivata da se sono presenti elementi dell'interfaccia utente nonwindowed (diversi dai controlli ActiveX senza finestra, gestiti da MFC).
Per altre informazioni, vedere IAccessible::get_accChild
in Windows SDK.
CWnd::get_accChildCount
Chiamata eseguita dal framework per recuperare il numero di elementi figlio appartenenti all'oggetto corrente.
virtual HRESULT get_accChildCount(long* pcountChildren);
Parametri
pcountChildren
Riceve il numero di elementi figlio.
Valore restituito
Restituisce S_OK
in caso di esito positivo, un codice di errore COM in caso di errore. Vedere Valori restituiti in IAccessible::get_accChildCount
Windows SDK.
Osservazioni:
Questa funzione fa parte del supporto per l'accessibilità attiva di MFC.
Eseguire l'override di questa funzione nella CWnd
classe derivata da se sono presenti elementi dell'interfaccia utente nonwindowed (diversi dai controlli ActiveX senza finestra, gestiti da MFC). Chiamare la versione della classe base e quindi aggiungere gli elementi figlio nonwindowed.
Per altre informazioni, vedere IAccessible::get_accChildCount
in Windows SDK.
CWnd::get_accDefaultAction
Chiamata eseguita dal framework per recuperare una stringa che descrive l'azione predefinita dell'oggetto.
virtual HRESULT get_accDefaultAction(
VARIANT varChild,
BSTR* pszDefaultAction);
Parametri
varChild
Specifica se l'azione predefinita da recuperare è quella dell'oggetto o uno degli elementi figlio dell'oggetto. Questo parametro può essere CHILDID_SELF
(per ottenere informazioni sull'oggetto) o un ID figlio (per ottenere informazioni sull'elemento figlio dell'oggetto).
pszDefaultAction
Indirizzo di un oggetto BSTR
che riceve una stringa localizzata che descrive l'azione predefinita per l'oggetto specificato o NULL
se questo oggetto non ha alcuna azione predefinita.
Valore restituito
Restituisce S_OK in caso di esito positivo, un codice di errore COM in caso di errore. Vedere Valori restituiti in IAccessible::get_accDefaultAction in Windows SDK.
Osservazioni:
Questa funzione fa parte del supporto per l'accessibilità attiva di MFC.
Eseguire l'override di questa funzione nella CWnd
classe derivata da per descrivere l'azione predefinita dell'oggetto.
Per altre informazioni, vedere IAccessible::get_accDefaultAction
in Windows SDK.
CWnd::get_accDescription
Chiamata eseguita dal framework per recuperare una stringa che descrive l'aspetto visivo dell'oggetto specificato.
virtual HRESULT get_accDescription(
VARIANT varChild,
BSTR* pszDescription);
Parametri
varChild
Specifica se la descrizione da recuperare è quella dell'oggetto o uno degli elementi figlio dell'oggetto. Questo parametro può essere CHILDID_SELF
(per ottenere informazioni sull'oggetto) o un ID figlio (per ottenere informazioni sull'elemento figlio dell'oggetto).
pszDescription
Indirizzo di un oggetto BSTR
che riceve una stringa localizzata che descrive l'oggetto specificato o NULL
se non è disponibile alcuna descrizione per questo oggetto.
Valore restituito
Restituisce S_OK
in caso di esito positivo, un codice di errore COM in caso di errore. Vedere Valori restituiti in IAccessible::get_accDescription
Windows SDK.
Osservazioni:
Questa funzione fa parte del supporto per l'accessibilità attiva di MFC.
Eseguire l'override di questa funzione nella CWnd
classe derivata da per descrivere l'oggetto. Chiamare la versione della classe base e aggiungere la descrizione.
Per altre informazioni, vedere IAccessible::get_accDescription
in Windows SDK.
CWnd::get_accFocus
Chiamata eseguita dal framework per recuperare l'oggetto con lo stato attivo della tastiera.
virtual HRESULT get_accFocus(VARIANT* pvarChild);
Parametri
pvarChild
Riceve informazioni sull'oggetto con lo stato attivo. Vedere pvarID
in IAccessible::get_accFocus
Windows SDK.
Valore restituito
Restituisce S_OK
in caso di esito positivo, un codice di errore COM in caso di errore. Vedere Valori restituiti in IAccessible::get_accFocus
Windows SDK.
Osservazioni:
Questa funzione fa parte del supporto per l'accessibilità attiva di MFC.
Eseguire l'override di questa funzione nella CWnd
classe derivata da se sono presenti elementi dell'interfaccia utente nonwindowed (diversi dai controlli ActiveX senza finestra, gestiti da MFC).
Per altre informazioni, vedere IAccessible::get_accFocus
in Windows SDK.
CWnd::get_accHelp
Chiamato dal framework per recuperare la stringa di proprietà della Guida di un oggetto.
virtual HRESULT get_accHelp(
VARIANT varChild,
BSTR* pszHelp);
Parametri
varChild
Specifica se le informazioni della Guida da recuperare sono l'oggetto dell'oggetto o uno degli elementi figlio dell'oggetto. Questo parametro può essere CHILDID_SELF
(per ottenere informazioni sull'oggetto) o un ID figlio (per ottenere informazioni sull'elemento figlio dell'oggetto).
pszHelp
Indirizzo di un oggetto BSTR
che riceve la stringa localizzata contenente le informazioni della Guida per l'oggetto specificato o NULL
se non sono disponibili informazioni della Guida.
Valore restituito
Restituisce S_OK
in caso di esito positivo, un codice di errore COM in caso di errore. Vedere Valori restituiti in IAccessible::get_accHelp
Windows SDK.
Osservazioni:
Questa funzione fa parte del supporto per l'accessibilità attiva di MFC.
Eseguire l'override di questa funzione nella CWnd
classe derivata da per fornire il testo della Guida per l'oggetto.
Per altre informazioni, vedere IAccessible::get_accHelp
in Windows SDK.
CWnd::get_accHelpTopic
Chiamato dal framework per recuperare il percorso completo del file WinHelp associato all'oggetto specificato e all'identificatore dell'argomento appropriato all'interno del file.
virtual HRESULT get_accHelpTopic(
BSTR* pszHelpFile,
VARIANT varChild,
long* pidTopic);
Parametri
pszHelpFile
Indirizzo di un oggetto BSTR
che riceve il percorso completo del WinHelp
file associato all'oggetto specificato, se presente.
varChild
Specifica se l'argomento della Guida da recuperare è quello dell'oggetto o uno degli elementi figlio dell'oggetto. Questo parametro può essere CHILDID_SELF
(per ottenere un argomento della Guida per l'oggetto) o un ID figlio (per ottenere un argomento della Guida per uno degli elementi figlio dell'oggetto).
pidTopic
Identifica l'argomento del file della Guida associato all'oggetto specificato. Vedere pidTopic
in IAccessible::get_accHelpTopic
Windows SDK.
Valore restituito
Restituisce S_OK
in caso di esito positivo, un codice di errore COM in caso di errore. Vedere Valori restituiti in IAccessible::get_accHelpTopic
Windows SDK.
Osservazioni:
Questa funzione fa parte del supporto per l'accessibilità attiva di MFC.
Eseguire l'override di questa funzione nella CWnd
classe derivata da per fornire informazioni della Guida sull'oggetto.
Per altre informazioni, vedere IAccessible::get_accHelpTopic
in Windows SDK.
CWnd::get_accKeyboardShortcut
Chiamata eseguita dal framework per recuperare la combinazione di tasti o il tasto di scelta dell'oggetto specificato.
virtual HRESULT get_accKeyboardShortcut(
VARIANT varChild,
BSTR* pszKeyboardShortcut);
Parametri
varChild
Specifica se il tasto di scelta rapida da recuperare è quello dell'oggetto o uno degli elementi figlio dell'oggetto. Questo parametro può essere CHILDID_SELF
(per ottenere informazioni sull'oggetto) o un ID figlio (per ottenere informazioni sull'elemento figlio dell'oggetto).
pszKeyboardShortcut
Indirizzo di un oggetto BSTR
che riceve una stringa localizzata che identifica la scelta rapida da tastiera o NULL
se non è associata alcuna scelta rapida da tastiera all'oggetto specificato.
Valore restituito
Restituisce S_OK
in caso di esito positivo, un codice di errore COM in caso di errore. Vedere Valori restituiti in IAccessible::get_accKeyboardShortcut
Windows SDK.
Osservazioni:
Questa funzione fa parte del supporto di Active Accessibility
MFC.
Eseguire l'override di questa funzione nella CWnd
classe derivata da -per identificare i tasti di scelta rapida per l'oggetto.
Per altre informazioni, vedere IAccessible::get_accKeyboardShortcut
in Windows SDK.
CWnd::get_accName
Chiamata eseguita dal framework per recuperare il nome dell'oggetto specificato.
virtual HRESULT get_accName(
VARIANT varChild,
BSTR* pszName);
Parametri
varChild
Specifica se il nome da recuperare è quello dell'oggetto o uno degli elementi figlio dell'oggetto. Questo parametro può essere CHILDID_SELF
(per ottenere informazioni sull'oggetto) o un ID figlio (per ottenere informazioni sull'elemento figlio dell'oggetto).
pszName
Indirizzo di un oggetto BSTR
che riceve una stringa contenente il nome dell'oggetto specificato.
Valore restituito
Restituisce S_OK
in caso di esito positivo, un codice di errore COM in caso di errore. Vedere Valori restituiti in IAccessible::get_accName
Windows SDK.
Osservazioni:
Questa funzione fa parte del supporto per l'accessibilità attiva di MFC.
Eseguire l'override di questa funzione nella CWnd
classe derivata da per restituire il nome dell'oggetto.
Per altre informazioni, vedere IAccessible::get_accName
in Windows SDK.
CWnd::get_accParent
Chiamata eseguita dal framework per recuperare l'interfaccia IDispatch
del padre dell'oggetto.
virtual HRESULT get_accParent(IDispatch** ppdispParent);
Parametri
ppdispParent
Riceve l'indirizzo dell'interfaccia dell'oggetto IDispatch
padre. La variabile è impostata su NULL
se non esiste alcun elemento padre o se l'elemento figlio non può accedere al relativo elemento padre.
Valore restituito
Restituisce S_OK
in caso di esito positivo, un COM
codice di errore in caso di errore. Vedere Valori restituiti in IAccessible::get_accParent
Windows SDK.
Osservazioni:
Questa funzione fa parte del supporto per l'accessibilità attiva di MFC.
Nella maggior parte dei casi non è necessario eseguire l'override di questa funzione.
Per altre informazioni, vedere IAccessible::get_accParent
in Windows SDK.
CWnd::get_accRole
Chiamata eseguita dal framework per recuperare informazioni che descrivono il ruolo dell'oggetto specificato.
virtual HRESULT get_accRole(
VARIANT varChild,
VARIANT* pvarRole);
Parametri
varChild
Specifica se le informazioni sul ruolo da recuperare sono relative all'oggetto o a uno degli elementi figlio dell'oggetto. Questo parametro può essere CHILDID_SELF
(per ottenere informazioni sull'oggetto) o un ID figlio (per ottenere informazioni sull'elemento figlio dell'oggetto).
pvarRole
Riceve le informazioni sul ruolo. Vedere pvarRole
in IAccessible::get_accRole
Windows SDK.
Valore restituito
Restituisce S_OK
in caso di esito positivo, un codice di errore COM in caso di errore. Vedere Valori restituiti in IAccessible::get_accRole
Windows SDK.
Osservazioni:
Questa funzione fa parte del supporto per l'accessibilità attiva di MFC.
Eseguire l'override di questa funzione nella CWnd
classe derivata da se sono presenti elementi dell'interfaccia utente nonwindowed (diversi dai controlli ActiveX senza finestra, gestiti da MFC).
Per altre informazioni, vedere IAccessible::get_accRole
in Windows SDK.
CWnd::get_accSelection
Chiamata eseguita dal framework per recuperare gli elementi figlio selezionati dell'oggetto.
virtual HRESULT get_accSelection(VARIANT* pvarChildren);
Parametri
pvarChildren
Riceve informazioni sugli elementi figlio selezionati. Vedere pvarChildren
in IAccessible::get_accSelection
Windows SDK.
Valore restituito
Restituisce S_OK in caso di esito positivo, un codice di errore COM in caso di errore. Vedere Valori restituiti in IAccessible::get_accSelection
Windows SDK.
Osservazioni:
Questa funzione fa parte del supporto per l'accessibilità attiva di MFC.
Eseguire l'override di questa funzione nella CWnd
classe derivata da se sono presenti elementi dell'interfaccia utente nonwindowed (diversi dai controlli ActiveX senza finestra, gestiti da MFC).
Per altre informazioni, vedere IAccessible::get_accSelection
in Windows SDK.
CWnd::get_accState
Chiamata eseguita dal framework per recuperare lo stato corrente dell'oggetto specificato.
virtual HRESULT get_accState(
VARIANT varChild,
VARIANT* pvarState);
Parametri
varChild
Specifica se le informazioni sullo stato da recuperare sono relative all'oggetto o a uno degli elementi figlio dell'oggetto. Questo parametro può essere CHILDID_SELF
(per ottenere informazioni sull'oggetto) o un ID figlio (per ottenere informazioni sull'elemento figlio dell'oggetto).
pvarState
Riceve informazioni sullo stato dell'oggetto. Vedere pvarState
in IAccessible::get_accState
Windows SDK.
Valore restituito
Restituisce S_OK
in caso di esito positivo, un codice di errore COM in caso di errore. Vedere Valori restituiti in IAccessible::get_accState
Windows SDK.
Osservazioni:
Questa funzione fa parte del supporto per l'accessibilità attiva di MFC.
Eseguire l'override di questa funzione nella CWnd
classe derivata da se sono presenti elementi dell'interfaccia utente nonwindowed (diversi dai controlli ActiveX senza finestra, gestiti da MFC).
Per altre informazioni, vedere IAccessible::get_accState
in Windows SDK.
CWnd::get_accValue
Chiamata eseguita dal framework per recuperare il valore dell'oggetto specificato.
virtual HRESULT get_accValue(
VARIANT varChild,
BSTR* pszValue);
Parametri
varChild
Specifica se le informazioni sul valore da recuperare sono relative all'oggetto o a uno degli elementi figlio dell'oggetto. Questo parametro può essere CHILDID_SELF
(per ottenere informazioni sull'oggetto) o un ID figlio (per ottenere informazioni sull'elemento figlio dell'oggetto).
pszValue
Indirizzo dell'oggetto BSTR
che riceve una stringa localizzata contenente il valore corrente dell'oggetto.
Valore restituito
Restituisce S_OK
in caso di esito positivo, un codice di errore COM in caso di errore. Vedere Valori restituiti in IAccessible::get_accValue
Windows SDK.
Osservazioni:
Questa funzione fa parte del supporto per l'accessibilità attiva di MFC.
Eseguire l'override di questa funzione nella CWnd
classe derivata da se sono presenti elementi dell'interfaccia utente nonwindowed (diversi dai controlli ActiveX senza finestra, gestiti da MFC).
Per altre informazioni, vedere IAccessible::get_accValue
in Windows SDK.
CWnd::GetActiveWindow
Recupera un puntatore alla finestra attiva.
static CWnd* PASCAL GetActiveWindow();
Valore restituito
Finestra attiva o NULL
se nessuna finestra era attiva al momento della chiamata. Il puntatore può essere temporaneo e non deve essere archiviato per un uso successivo.
Osservazioni:
La finestra attiva è la finestra con lo stato attivo dell'input corrente o la finestra attivata in modo esplicito dalla SetActiveWindow
funzione membro.
CWnd::GetAncestor
Recupera l'oggetto finestra predecessore della finestra specificata.
CWnd* GetAncestor(UINT gaFlags) const;
Parametri
gaFlags
Specifica il predecessore da recuperare. Per un elenco completo dei valori possibili, vedere GetAncestor
.
Valore restituito
Se la funzione ha esito positivo, il valore restituito è un puntatore all'oggetto finestra predecessore. Se la funzione ha esito negativo, il valore restituito è NULL
.
Osservazioni:
Questa funzione membro emula la funzionalità della funzione GetAncestor
, come descritto in Windows SDK.
CWnd::GetCapture
Recupera la finestra con acquisizione del mouse.
static CWnd* PASCAL GetCapture();
Valore restituito
Identifica la finestra con acquisizione del mouse. È NULL
se nessuna finestra ha l'acquisizione del mouse.
Il valore restituito può essere temporaneo e non deve essere archiviato per un uso successivo.
Osservazioni:
Una sola finestra ha l'acquisizione del mouse in qualsiasi momento. Una finestra riceve l'acquisizione del mouse quando viene chiamata la SetCapture
funzione membro. Questa finestra riceve l'input del mouse indipendentemente dal fatto che il cursore si trova all'interno dei bordi.
CWnd::GetCaretPos
Recupera le coordinate client della posizione corrente del cursore e le restituisce come .CPoint
static CPoint PASCAL GetCaretPos();
Valore restituito
CPoint
oggetto contenente le coordinate della posizione del cursore.
Osservazioni:
La posizione del cursore viene specificata nelle coordinate client della CWnd
finestra.
CWnd::GetCheckedRadioButton
Recupera l'ID del pulsante di opzione attualmente selezionato nel gruppo specificato.
int GetCheckedRadioButton(
int nIDFirstButton,
int nIDLastButton);
Parametri
nIDFirstButton
Specifica l'identificatore intero del primo pulsante di opzione nel gruppo.
nIDLastButton
Specifica l'identificatore intero dell'ultimo pulsante di opzione nel gruppo.
Valore restituito
ID del pulsante di opzione selezionato o 0 se non è selezionato nessuno.
CWnd::GetClientRect
Copia le coordinate client dell'area CWnd
client nella struttura a lpRect
cui punta .
void GetClientRect(LPRECT lpRect) const;
Parametri
lpRect
Punta a una RECT
struttura o a un CRect
oggetto per ricevere le coordinate client. I left
membri e top
saranno 0. I right
membri e bottom
conterranno la larghezza e l'altezza della finestra.
Osservazioni:
Le coordinate client specificano gli angoli superiore sinistro e inferiore destro dell'area client. Poiché le coordinate client sono relative agli angoli superiori sinistro dell'area CWnd
client, le coordinate dell'angolo superiore sinistro sono (0,0).
Esempio
Vedere l'esempio per CWnd::IsIconic
.
CWnd::GetClipboardOwner
Recupera il proprietario corrente degli Appunti.
static CWnd* PASCAL GetClipboardOwner();
Valore restituito
Identifica la finestra proprietaria degli Appunti se la funzione ha esito positivo. In caso contrario, è NULL
.
Il puntatore restituito può essere temporaneo e non deve essere archiviato per un uso successivo.
Osservazioni:
Gli Appunti possono comunque contenere dati anche se non sono attualmente di proprietà.
CWnd::GetClipboardViewer
Recupera la prima finestra della catena del visualizzatore Appunti.
static CWnd* PASCAL GetClipboardViewer();
Valore restituito
Identifica la finestra attualmente responsabile della visualizzazione degli Appunti in caso di esito positivo; in caso contrario NULL
(ad esempio, se non è presente alcun visualizzatore).
Il puntatore restituito può essere temporaneo e non deve essere archiviato per un uso successivo.
CWnd::GetControlUnknown
Chiamare questa funzione membro per recuperare un puntatore a un controllo OLE sconosciuto.
LPUNKNOWN GetControlUnknown();
Valore restituito
Puntatore all'interfaccia IUnknown
del controllo OLE rappresentato da questo CWnd
oggetto. Se questo oggetto non rappresenta un controllo OLE, il valore restituito è NULL
.
Osservazioni:
Non è consigliabile rilasciare questo IUnknown
puntatore. In genere, è possibile usare per ottenere un'interfaccia specifica del controllo .
Il puntatore di interfaccia restituito da GetControlUnknown
non viene conteggiato come riferimento. Non chiamare IUnknown::Release
sul puntatore, a meno che non sia stato chiamato IUnknown::AddRef
in precedenza.
Esempio
// 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
Restituisce un puntatore al messaggio che questa finestra sta elaborando. Deve essere chiamato solo quando si trova in una funzione membro del gestore messaggi on message.
static const MSG* PASCAL GetCurrentMessage();
Valore restituito
Restituisce un puntatore alla MSG
struttura che contiene il messaggio in cui è in corso l'elaborazione della finestra. Deve essere chiamato solo quando si trova in un gestore messaggi on.
Esempio
Vedere l'esempio per CMDIFrameWnd::MDICascade
.
CWnd::GetDC
Recupera un puntatore a un contesto di dispositivo comune, di classe o privato per l'area client a seconda dello stile di classe specificato per .CWnd
CDC* GetDC();
Valore restituito
Identifica il contesto di dispositivo per l'area CWnd
client se ha esito positivo; in caso contrario, il valore restituito è NULL
. Il puntatore può essere temporaneo e non deve essere archiviato per un uso successivo.
Osservazioni:
Per i contesti di dispositivo comuni, GetDC
assegna gli attributi predefiniti al contesto ogni volta che viene recuperato. Per i contesti di classe e privati, GetDC
lascia invariati gli attributi assegnati in precedenza. Il contesto di dispositivo può essere usato nelle funzioni GDI (Graphics Device Interface) successive per disegnare nell'area client.
A meno che il contesto del dispositivo non appartenga a una classe window, la ReleaseDC
funzione membro deve essere chiamata per rilasciare il contesto dopo il disegno.
Un contesto di dispositivo appartenente alla CWnd
classe viene restituito dalla GetDC
funzione membro se CS_CLASSDC
, CS_OWNDC
o CS_PARENTDC
è stato specificato come stile nella WNDCLASS
struttura quando la classe è stata registrata.
CWnd::GetDCEx
Recupera l'handle di un contesto di dispositivo per la CWnd
finestra.
CDC* GetDCEx(
CRgn* prgnClip,
DWORD flags);
Parametri
prgnClip
Identifica un'area di ritaglio che può essere combinata con l'area visibile della finestra client.
flags
Può avere uno dei valori predefiniti seguenti:
DCX_CACHE
Restituisce un contesto di dispositivo dalla cache anziché dallaOWNDC
finestra oCLASSDC
. Esegue l'override diCS_OWNDC
eCS_CLASSDC
.DCX_CLIPCHILDREN
Esclude le aree visibili di tutte le finestre figlio sotto laCWnd
finestra.DCX_CLIPSIBLINGS
Esclude le aree visibili di tutte le finestre di pari livello sopra laCWnd
finestra.DCX_EXCLUDERGN
Esclude l'area di ritaglio identificata dall'areaprgnClip
visibile del contesto di dispositivo restituito.DCX_INTERSECTRGN
Interseca l'area di ritaglio identificata dall'areaprgnClip
visibile del contesto di dispositivo restituito.DCX_LOCKWINDOWUPDATE
Consente il disegno anche se esiste unaLockWindowUpdate
chiamata in vigore che altrimenti escluderebbe questa finestra. Questo valore viene utilizzato per disegnare durante il rilevamento.DCX_PARENTCLIP
Usa l'area visibile della finestra padre e ignora i bit di stile eWS_PARENTDC
dellaWS_CLIPCHILDREN
finestra padre. Questo valore imposta l'origine del contesto di dispositivo sull'angolo superiore sinistro dellaCWnd
finestra.DCX_WINDOW
Restituisce un contesto di dispositivo che corrisponde al rettangolo della finestra anziché al rettangolo client.
Valore restituito
Contesto del dispositivo per la finestra specificata se la funzione ha esito positivo; in caso contrario NULL
, .
Osservazioni:
Il contesto di dispositivo può essere usato nelle funzioni GDI successive per disegnare nell'area client.
Questa funzione, che è un'estensione della GetDC
funzione, fornisce un'applicazione più controllo su come e se un contesto di dispositivo per una finestra viene ritagliato.
A meno che il contesto di dispositivo non appartenga a una classe window, la ReleaseDC
funzione deve essere chiamata per rilasciare il contesto dopo il disegno. Poiché solo cinque contesti di dispositivo comuni sono disponibili in un determinato momento, l'impossibilità di rilasciare un contesto di dispositivo può impedire ad altre applicazioni di accedere a un contesto di dispositivo.
Per ottenere un contesto di dispositivo memorizzato nella cache, un'applicazione deve specificare DCX_CACHE
. Se DCX_CACHE non è specificato e la finestra non è né CS_OWNDC
né CS_CLASSDC
, questa funzione restituisce NULL
.
Un contesto di dispositivo con caratteristiche speciali viene restituito dalla GetDCEx
funzione se lo CS_CLASSDC
stile , CS_OWNDC
o CS_PARENTDC
è stato specificato nella WNDCLASS
struttura quando la classe è stata registrata.
Per altre informazioni su queste caratteristiche, vedere la descrizione della WNDCLASS
struttura in Windows SDK.
CWnd::GetDCRenderTarget
Recupera la destinazione di rendering del contesto di dispositivo per la finestra CWnd
.
CDCRenderTarget* GetDCRenderTarget();
Valore restituito
Destinazione di rendering del contesto di dispositivo per la finestra specificata se la funzione ha esito positivo; in caso contrario NULL
, .
Osservazioni:
CWnd::GetDescendantWindow
Chiamare questa funzione membro per trovare la finestra discendente specificata dall'ID specificato.
CWnd* GetDescendantWindow(
int nID,
BOOL bOnlyPerm = FALSE) const;
Parametri
nID
Specifica l'identificatore del controllo o della finestra figlio da recuperare.
bOnlyPerm
Specifica se la finestra da restituire può essere temporanea. Se TRUE
, è possibile restituire solo una finestra permanente; se FALSE
, la funzione può restituire una finestra temporanea. Per altre informazioni sulle finestre temporanee, vedere La nota tecnica 3.
Valore restituito
Puntatore a un CWnd
oggetto o NULL
se non viene trovata alcuna finestra figlio.
Osservazioni:
Questa funzione membro cerca l'intero albero delle finestre figlio, non solo le finestre che sono elementi figlio immediati.
CWnd::GetDesktopWindow
Restituisce la finestra desktop di Windows.
static CWnd* PASCAL GetDesktopWindow();
Valore restituito
Identifica la finestra desktop di Windows. Questo puntatore può essere temporaneo e non deve essere archiviato per un uso successivo.
Osservazioni:
La finestra desktop copre l'intero schermo ed è l'area in cui vengono dipinte tutte le icone e altre finestre.
CWnd::GetDlgCtrlID
Restituisce il valore dell'ID finestra o del controllo per qualsiasi finestra figlio, non solo per quello di un controllo in una finestra di dialogo.
int GetDlgCtrlID() const;
Valore restituito
Identificatore numerico della CWnd
finestra figlio se la funzione ha esito positivo; in caso contrario, 0.
Osservazioni:
Poiché le finestre di primo livello non hanno un valore ID, il valore restituito di questa funzione non è valido se CWnd
è una finestra di primo livello.
Esempio
Vedere l'esempio per CWnd::OnCtlColor
.
CWnd::GetDlgItem
Recupera un puntatore al controllo o alla finestra figlio specificata in una finestra di dialogo o in un'altra finestra.
CWnd* GetDlgItem(int nID) const;
void GetDlgItem(
int nID,
HWND* phWnd) const;
Parametri
nID
Specifica l'identificatore del controllo o della finestra figlio da recuperare.
phWnd
Puntatore a una finestra figlio.
Valore restituito
Puntatore al controllo o alla finestra figlio specificata. Se non esiste alcun controllo con l'ID intero specificato dal nID
parametro , il valore è NULL
.
Il puntatore restituito può essere temporaneo e non deve essere archiviato per un uso successivo.
Osservazioni:
Il puntatore restituito viene in genere sottoposto a cast al tipo di controllo identificato da nID
.
Esempio
// uses GetDlgItem to return a pointer to a user interface control
CEdit *pBoxOne;
pBoxOne = (CEdit*)GetDlgItem(IDC_MYEDIT);
GotoDlgCtrl(pBoxOne);
CWnd::GetDlgItemInt
Recupera il testo del controllo identificato da nID
.
UINT GetDlgItemInt(
int nID,
BOOL* lpTrans = NULL,
BOOL bSigned = TRUE) const;
Parametri
nID
Specifica l'identificatore integer del controllo della finestra di dialogo da convertire.
lpTrans
Punta alla variabile booleana che deve ricevere il flag convertito.
bSigned
Specifica se il valore da recuperare è firmato.
Valore restituito
Specifica il valore tradotto del testo dell'elemento della finestra di dialogo. Poiché 0 è un valore restituito valido, lpTrans
deve essere usato per rilevare gli errori. Se si desidera un valore restituito con segno, eseguirne il cast come int
tipo.
La funzione restituisce 0 se il numero convertito è maggiore di INT_MAX
(per i numeri con segno) o UINT_MAX
(per non firmato).
Quando si verificano errori, ad esempio l'incontro di caratteri non numerici e il superamento del valore massimo, GetDlgItemInt
copia 0 nella posizione a lpTrans
cui punta . Se non sono presenti errori, lpTrans
riceve un valore diverso da zero. Se lpTrans
è NULL
, GetDlgItemInt
non avvisa gli errori.
Osservazioni:
Converte il testo del controllo specificato nella finestra di dialogo specificata in un valore intero rimuovendo gli spazi aggiuntivi all'inizio del testo e convertendo cifre decimali. Interrompe la traduzione quando raggiunge la fine del testo o incontra qualsiasi carattere non numerico.
Se bSigned
è TRUE
, GetDlgItemInt
cerca un segno meno (-) all'inizio del testo e converte il testo in un numero firmato. In caso contrario, crea un valore senza segno.
Invia un WM_GETTEXT
messaggio al controllo .
CWnd::GetDlgItemText
Chiamare questa funzione membro per recuperare il titolo o il testo associato a un controllo in una finestra di dialogo.
int GetDlgItemText(
int nID,
LPTSTR lpStr,
int nMaxCount) const;
int GetDlgItemText(
int nID,
CString& rString) const;
Parametri
nID
Specifica l'identificatore integer del controllo il cui titolo deve essere recuperato.
lpStr
Punta al buffer per ricevere il titolo o il testo del controllo.
nMaxCount
Specifica la lunghezza massima, espressa in caratteri, della stringa da copiare in lpStr
. Se la stringa è più lunga di nMaxCount
, viene troncata.
rString
Riferimento a un oggetto CString
.
Valore restituito
Specifica il numero effettivo di caratteri copiati nel buffer, senza includere il carattere Null di terminazione. Il valore è 0 se non viene copiato alcun testo.
Osservazioni:
La GetDlgItemText
funzione membro copia il testo nella posizione a lpStr
cui punta e restituisce un conteggio del numero di byte copiato.
CWnd::GetDSCCursor
Chiamare questa funzione membro per recuperare un puntatore al cursore sottostante definito dalle DataSource
proprietà , UserName
Password
, e SQL del controllo origine dati.
IUnknown* GetDSCCursor();
Valore restituito
Puntatore a un cursore definito da un controllo origine dati. MFC si occupa di chiamare AddRef
il puntatore.
Osservazioni:
Utilizzare il puntatore restituito per impostare la ICursor
proprietà di un controllo complesso associato a dati, ad esempio il controllo griglia associato a dati. Un controllo origine dati non diventerà attivo fino a quando il primo controllo associato non richiede il cursore. Ciò può verificarsi in modo esplicito tramite una chiamata a GetDSCCursor
o in modo implicito dalla gestione associazioni MFC. In entrambi i casi, è possibile forzare un controllo origine dati a diventare attivo chiamando GetDSCCursor
e quindi chiamando Release
sul puntatore restituito a IUnknown
. L'attivazione causerà il tentativo di connessione del controllo origine dati all'origine dati sottostante. Il puntatore restituito può essere usato nel contesto seguente:
Esempio
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
Recupera un puntatore all'oggetto di gestione del layout dinamico.
CMFCDynamicLayout* GetDynamicLayout();
Valore restituito
Puntatore all'oggetto di gestione layout dinamico o NULL
se il layout dinamico non è abilitato.
Osservazioni:
L'oggetto finestra possiede e gestisce la durata del puntatore restituito. Per tale motivo, deve essere usato solo per accedere all'oggetto. Non eliminare o archiviare definitivamente il puntatore.
CWnd::GetExStyle
Restituisce lo stile esteso della finestra.
DWORD GetExStyle() const;
Valore restituito
Stile esteso della finestra. Per altre informazioni sugli stili delle finestre estese usati in MFC, vedere Stili di finestra estesa.
CWnd::GetFocus
Recupera un puntatore all'oggetto CWnd
che ha attualmente lo stato attivo per l'input.
static CWnd* PASCAL GetFocus();
Valore restituito
Puntatore alla finestra con lo stato attivo corrente o NULL
se non è presente alcuna finestra messa a fuoco.
Il puntatore può essere temporaneo e non deve essere archiviato per un uso successivo.
CWnd::GetFont
Invia il WM_GETFONT
messaggio alla finestra per recuperare il tipo di carattere corrente.
CFont* GetFont() const;
Valore restituito
Puntatore a un CFont
oggetto associato al tipo di carattere corrente per la finestra.
Osservazioni:
Questo metodo non ha alcun effetto a meno che la finestra non elabori il WM_GETFONT
messaggio. Molte classi MFC che derivano dal CWnd
processo di questo messaggio perché sono associate a una classe finestra predefinita che include un gestore messaggi per il WM_GETFONT
messaggio. Per usare questo metodo, le classi derivate da CWnd
devono definire un gestore di metodi per il WM_GETFONT
messaggio.
CWnd::GetForegroundWindow
Restituisce un puntatore alla finestra in primo piano (la finestra con cui l'utente sta attualmente lavorando).
static CWnd* PASCAL GetForegroundWindow();
Valore restituito
Puntatore alla finestra in primo piano. Può trattarsi di un oggetto temporaneo CWnd
.
Osservazioni:
La finestra in primo piano si applica solo alle finestre di primo livello (finestre cornice o finestre di dialogo).
CWnd::GetIcon
Chiamare questa funzione membro per ottenere l'handle su un'icona grande (32x32) o su un'icona piccola (16x16), come indicato da bBigIcon
.
HICON GetIcon(BOOL bBigIcon) const;
Parametri
bBigIcon
Specifica un'icona da 32 pixel a 32 pixel se TRUE
; specifica un'icona da 16 pixel a 16 pixel se FALSE
.
Valore restituito
Handle di un'icona. Se ha esito negativo, restituisce NULL
.
CWnd::GetLastActivePopup
Determina la finestra popup di proprietà di CWnd
attiva più di recente.
CWnd* GetLastActivePopup() const;
Valore restituito
Identifica la finestra popup attiva più di recente. Il valore restituito sarà la finestra stessa se vengono soddisfatte le condizioni seguenti:
La finestra stessa è stata attiva più di recente.
La finestra non possiede finestre popup.
La finestra non è una finestra di primo livello o è di proprietà di un'altra finestra.
Il puntatore può essere temporaneo e non deve essere archiviato per un uso successivo.
Esempio
Vedere l'esempio per CWnd::FindWindow
.
CWnd::GetLayeredWindowAttributes
Recupera la chiave di colore per trasparenza e opacità di una finestra a livelli.
BOOL GetLayeredWindowAttributes(
COLORREF* pcrKey,
BYTE* pbAlpha,
DWORD* pdwFlags) const;
Parametri
pcrKey
Puntatore a un COLORREF
valore che riceve la chiave del colore di trasparenza da utilizzare durante la composizione della finestra a più livelli. Tutti i pixel dipinti dalla finestra in questo colore saranno trasparenti. Questo può essere NULL
se l'argomento non è necessario.
pbAlpha
Puntatore a un BYTE
oggetto che riceve il valore Alfa usato per descrivere l'opacità della finestra a più livelli. Quando la variabile a pbAlpha
cui fa riferimento è 0, la finestra è completamente trasparente. Quando la variabile a pbAlpha
cui fa riferimento è 255, la finestra è opaca. Questo può essere NULL
se l'argomento non è necessario.
pdwFlags
Puntatore a un oggetto DWORD
che riceve un flag di layering. Questo può essere NULL
se l'argomento non è necessario. Per un elenco completo dei valori possibili, vedere 'GetLayeredWindowAttributes.
Valore restituito
Viene restituito un valore diverso da zero se la funzione viene eseguita correttamente; in caso contrario viene restituito 0.
Osservazioni:
Questa funzione membro emula la funzionalità della funzione GetLayeredWindowAttributes
, come descritto in Windows SDK.
CWnd::GetMenu
Recupera un puntatore al menu per questa finestra.
CMenu* GetMenu() const;
Valore restituito
Identifica il menu. Il valore è NULL
se CWnd
non è presente alcun menu. Il valore restituito non è definito se CWnd
è una finestra figlio.
Il puntatore restituito può essere temporaneo e non deve essere archiviato per un uso successivo.
Osservazioni:
Questa funzione non deve essere usata per le finestre figlio perché non hanno un menu.
Esempio
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
Recupera informazioni sulla barra dei menu specificata.
BOOL GetMenuBarInfo(
LONG idObject,
LONG idItem,
PMENUBARINFO pmbi) const;
Parametri
idObject
Specifica l'oggetto menu. Per un elenco dei valori possibili, vedere GetMenuBarInfo
.
idItem
Specifica l'elemento per il quale recuperare le informazioni. Se questo parametro è zero, la funzione recupera informazioni sul menu stesso. Se questo parametro è 1, la funzione recupera informazioni sulla prima voce del menu e così via.
pmbi
Puntatore a una MENUBARINFO
struttura che riceve le informazioni.
Valore restituito
Viene restituito un valore diverso da zero se la funzione viene eseguita correttamente; in caso contrario viene restituito 0.
Osservazioni:
Questa funzione membro emula la funzionalità della funzione GetMenuBarInfo
, come descritto in Windows SDK.
CWnd::GetNextDlgGroupItem
Cerca il controllo precedente o successivo all'interno di un gruppo di controlli in una finestra di dialogo.
CWnd* GetNextDlgGroupItem(
CWnd* pWndCtl,
BOOL bPrevious = FALSE) const;
COleControlSiteOrWnd* GetNextDlgGroupItem(
COleControlSiteOrWnd* pCurSiteOrWnd = NULL) const;
Parametri
pWndCtl
Identifica il controllo da utilizzare come punto di partenza per la ricerca.
bPrevious
Specifica il modo in cui la funzione deve cercare il gruppo di controlli nella finestra di dialogo. Se TRUE
, la funzione cerca il controllo precedente nel gruppo; se FALSE
, cerca il controllo successivo nel gruppo.
pCurSiteOrWnd
Identifica il COleControlSiteOrWnd
controllo . Per altre informazioni su COleControlSiteOrWnd
, vedere Osservazioni.
Valore restituito
Puntatore al controllo precedente o successivo nel gruppo se la funzione membro ha esito positivo.
Il puntatore restituito può essere temporaneo e non deve essere archiviato per un uso successivo.
Osservazioni:
Un gruppo di controlli inizia con un controllo creato con lo WS_GROUP
stile e termina con l'ultimo controllo che non è stato creato con lo WS_GROUP
stile .
Per impostazione predefinita, la GetNextDlgGroupItem
funzione membro restituisce un puntatore al controllo successivo nel gruppo. Se pWndCtl
identifica il primo controllo nel gruppo e bPrevious
è TRUE
, GetNextDlgGroupItem
restituisce un puntatore all'ultimo controllo del gruppo.
Nota
Poiché MFC supporta controlli ActiveX senza finestra, controlli ActiveX standard e finestre, facendo riferimento a un controllo solo da un elemento HWND
non è più sufficiente. L'oggetto COleControlSiteOrWnd
include informazioni che identificano l'oggetto come controllo ActiveX finestrato, un controllo ActiveX senza finestra o una finestra, come indicato di seguito:
Tipo di controllo o finestra | Identificazione delle informazioni |
---|---|
Controllo ActiveX finestrato | Contiene un oggetto HWND e associa a esso un oggetto COleControlSite . Il m_hWnd membro di COleControlSiteOrWnd è impostato sull'oggetto HWND del controllo e il m_pSite membro punta al controllo .COleControlSite |
Controllo ActiveX senza finestra | Non contiene .HWND Il m_pSite membro di COleControlSiteOrWnd punta al controllo COleControlSite e il m_hWnd membro è NULL . |
Finestra standard | Contiene solo un oggetto HWND . Il m_hWnd membro di COleControlSiteOrWnd è impostato su HWND della finestra e il m_pSite membro è NULL . |
CWnd::GetNextDlgTabItem
Recupera un puntatore al primo controllo creato con lo WS_TABSTOP
stile e che precede o segue il controllo specificato.
CWnd* GetNextDlgTabItem(
CWnd* pWndCtl,
BOOL bPrevious = FALSE) const;
COleControlSiteOrWnd* GetNextDlgTabItem(
COleControlSiteOrWnd* pCurSiteOrWnd,
BOOL bPrevious) const;
Parametri
pWndCtl
Identifica il controllo da utilizzare come punto di partenza per la ricerca.
pCurSiteOrWnd
Identifica il COleControlSiteOrWnd
controllo . Per altre informazioni su COleControlSiteOrWnd
, vedere CWnd::GetNextDlgGroupItem
.
bPrevious
Specifica la modalità di ricerca della funzione nella finestra di dialogo. Se TRUE
, la funzione cerca il controllo precedente nella finestra di dialogo; se FALSE
, cerca il controllo successivo.
Valore restituito
Puntatore al controllo precedente o successivo con lo WS_TABSTOP
stile , se la funzione membro ha esito positivo.
Il puntatore restituito può essere temporaneo e non deve essere archiviato per un uso successivo.
Per altre informazioni su COleControlSiteOrWnd
, vedere CWnd::GetNextDlgGroupItem
.
CWnd::GetNextWindow
Cerca la finestra successiva (o precedente) nell'elenco del gestore finestre.
CWnd* GetNextWindow(UINT nFlag = GW_HWNDNEXT) const;
Parametri
nFlag
Specifica se la funzione restituisce un puntatore alla finestra successiva o alla finestra precedente. Può essere GW_HWNDNEXT
, che restituisce la finestra che segue l'oggetto CWnd
nell'elenco di Gestione finestre oppure GW_HWNDPREV
, che restituisce la finestra precedente nell'elenco di Gestione finestre.
Valore restituito
Identifica la finestra successiva (o precedente) nell'elenco del gestore finestre se la funzione membro ha esito positivo.
Il puntatore restituito può essere temporaneo e non deve essere archiviato per un uso successivo.
Osservazioni:
L'elenco di Gestione finestre contiene voci per tutte le finestre di primo livello, le finestre figlio associate e le finestre figlio di qualsiasi finestra figlio.
Se è una finestra di primo livello, la funzione cerca la finestra di primo livello successiva (o precedente). Se CWnd
CWnd
è una finestra figlio, la funzione cerca la finestra figlio successiva (o precedente).
CWnd::GetOleControlSite
Recupera il sito personalizzato per il controllo ActiveX specificato.
COleControlSite* GetOleControlSite(UINT idControl) const;
Parametri
idControl
ID del controllo ActiveX.
CWnd::GetOpenClipboardWindow
Recupera l'handle della finestra in cui sono attualmente aperti gli Appunti.
static CWnd* PASCAL GetOpenClipboardWindow();
Valore restituito
Handle della finestra che ha attualmente aperto gli Appunti se la funzione ha esito positivo; in caso contrario NULL
, .
CWnd::GetOwner
Recupera un puntatore al proprietario della finestra.
CWnd* GetOwner() const;
Valore restituito
Puntatore a un oggetto CWnd
.
Osservazioni:
Se la finestra non ha proprietario, per impostazione predefinita viene restituito un puntatore all'oggetto finestra padre. Si noti che la relazione tra il proprietario e la proprietà differisce dall'aspetto padre-figlio in diversi aspetti importanti. Ad esempio, una finestra con un elemento padre è limitata all'area client della finestra padre. Le finestre di proprietà possono essere disegnate in qualsiasi posizione sul desktop.
Il concetto di proprietà di questa funzione è diverso dal concetto di proprietà di GetWindow
.
CWnd::GetParent
Chiamare questa funzione per ottenere un puntatore alla finestra padre di una finestra figlio (se presente).
CWnd* GetParent() const;
Valore restituito
Vedere la sezione Valori restituiti in GetParent
Windows SDK.
Osservazioni:
La GetParent
funzione restituisce un puntatore all'elemento padre immediato (se esistente). Al contrario, la GetParentOwner
funzione restituisce un puntatore alla finestra padre o proprietario più immediata che non è una finestra figlio (non ha lo WS_CHILD
stile). Se si dispone di una finestra figlio all'interno di una finestra GetParent
figlio e GetParentOwner
si restituiscono risultati diversi.
CWnd::GetParentFrame
Chiamare questa funzione membro per recuperare la finestra cornice padre.
CFrameWnd* GetParentFrame() const;
Valore restituito
Puntatore a una finestra cornice in caso di esito positivo; in caso contrario NULL
, .
Osservazioni:
La funzione membro cerca nella catena padre fino a quando non viene trovato un CFrameWnd
oggetto (o una classe derivata).
CWnd::GetParentOwner
Chiamare questa funzione membro per ottenere un puntatore alla finestra padre o al proprietario di una finestra figlio della finestra.
CWnd* GetParentOwner() const;
Valore restituito
Puntatore a un oggetto CWnd
. Se un CWnd
oggetto non è collegato all'handle, viene creato e collegato un oggetto temporaneo CWnd
. Il puntatore può essere temporaneo e non deve essere archiviato per un uso successivo.
Osservazioni:
GetParentOwner
restituisce un puntatore alla finestra padre o proprietario più immediata che non è una finestra figlio (non ha lo WS_CHILD
stile). La finestra del proprietario corrente può essere impostata con SetOwner
. Per impostazione predefinita, l'elemento padre di una finestra è il proprietario.
Al contrario, la GetParent
funzione restituisce un puntatore all'elemento padre immediato, indipendentemente dal fatto che si tratti di una finestra figlio o meno. Se si dispone di una finestra figlio all'interno di una finestra GetParent
figlio e GetParentOwner
si restituiscono risultati diversi.
CWnd::GetProperty
Chiamare questa funzione membro per ottenere la proprietà del controllo ActiveX specificata da dwDispID
.
void GetProperty(
DISPID dwDispID,
VARTYPE vtProp,
void* pvProp)const;
Parametri
dwDispID
Identifica la proprietà da recuperare.
vtProp
Specifica il tipo della proprietà da recuperare. Per i valori possibili, vedere la sezione Osservazioni per COleDispatchDriver::InvokeHelper
.
pvProp
Indirizzo della variabile che riceverà il valore della proprietà. Deve corrispondere al tipo specificato da vtProp
.
Osservazioni:
GetProperty
restituisce il valore tramite pvProp
.
Nota
Questa funzione deve essere chiamata solo su un CWnd
oggetto che rappresenta un controllo ActiveX.
Per altre informazioni sull'uso di questa funzione membro con contenitori di controlli ActiveX, vedere l'articolo Contenitori di controlli ActiveX: Programmazione di controlli ActiveX in un contenitore di controlli ActiveX.
CWnd::GetRenderTarget
Ottiene una destinazione di rendering associata alla finestra.
CHwndRenderTarget* GetRenderTarget();
Valore restituito
Puntatore alla destinazione di rendering o NULL
.
CWnd::GetSafeHwnd
Restituisce m_hWnd
o NULL
se il this
puntatore è NULL
.
HWND GetSafeHwnd() const;
Valore restituito
Restituisce l'handle di finestra per una finestra. Restituisce NULL
se l'oggetto CWnd
non è collegato a una finestra o se viene utilizzato con un NULL
CWnd
puntatore.
Esempio
Vedere l'esempio per CWnd::SubclassWindow
.
CWnd::GetSafeOwner
Chiamare questa funzione membro per recuperare la finestra del proprietario che deve essere utilizzata per le finestre di dialogo o altre finestre modali.
static CWnd* GetSafeOwner(
CWnd* pParent = NULL,
HWND* pWndTop = NULL);
Parametri
pParent
Puntatore a una finestra padre CWnd
. Può essere NULL
.
pWndTop
Puntatore alla finestra attualmente in alto. Può essere NULL
.
Valore restituito
Puntatore al proprietario sicuro per la finestra specificata.
Osservazioni:
Il proprietario sicuro è la prima finestra padre non figlio di pParent
. Se pParent
è NULL
, la finestra principale del thread (recuperata tramite AfxGetMainWnd
) viene usata per trovare un proprietario.
Nota
Il framework stesso usa questa funzione per determinare la finestra di proprietario corretta per finestre di dialogo e finestre di proprietà in cui il proprietario non è specificato.
CWnd::GetScrollBarCtrl
Chiamare questa funzione membro per ottenere un puntatore alla barra di scorrimento o alla finestra di divisione di pari livello specificata.
virtual CScrollBar* GetScrollBarCtrl(int nBar) const;
Parametri
nBar
Specifica il tipo di barra di scorrimento. Il parametro può accettare uno dei valori seguenti:
SB_HORZ
Recupera la posizione della barra di scorrimento orizzontale.SB_VERT
Recupera la posizione della barra di scorrimento verticale.
Valore restituito
Controllo barra di scorrimento di pari livello o NULL
se nessuno.
Osservazioni:
Questa funzione membro non opera sulle barre di scorrimento create quando i WS_HSCROLL
bit o WS_VSCROLL
vengono impostati durante la creazione di una finestra. L'implementazione CWnd
di questa funzione restituisce NULL
semplicemente . Le classi derivate, ad esempio CView
, implementano la funzionalità descritta.
CWnd::GetScrollBarInfo
Recupera le informazioni sulla barra di scorrimento specificata.
BOOL GetScrollBarInfo(
LONG idObject,
PSCROLLBARINFO psbi) const;
Parametri
idObject
Specifica l'oggetto menu. Per un elenco dei valori possibili, vedere GetScrollBarInfo
.
psbi
Puntatore a una SCROLLBARINFO
struttura che riceve le informazioni.
Valore restituito
Viene restituito un valore diverso da zero se la funzione viene eseguita correttamente; in caso contrario viene restituito 0.
Osservazioni:
Questa funzione membro emula la funzionalità della funzione GetScrollBarInfo
, come descritto in Windows SDK.
CWnd::GetScrollInfo
Chiamare questa funzione membro per recuperare le informazioni che la SCROLLINFO
struttura gestisce su una barra di scorrimento.
BOOL GetScrollInfo(
int nBar,
LPSCROLLINFO lpScrollInfo,
UINT nMask = SIF_ALL);
Parametri
nBar
Specifica se la barra di scorrimento è un controllo o una parte dell'area non client di una finestra. Se fa parte dell'area non client, nBar
indica anche se la barra di scorrimento è posizionata orizzontalmente, verticalmente o entrambe. Deve essere uno dei seguenti:
SB_CTL
Recupera i parametri per un controllo barra di scorrimento. Ilm_hWnd
membro dati deve essere l'handle del controllo barra di scorrimento.SB_HORZ
Recupera i parametri per la barra di scorrimento orizzontale standard della finestra.SB_VERT
Recupera i parametri per la barra di scorrimento verticale standard della finestra.
lpScrollInfo
Puntatore a una SCROLLINFO
struttura. Per altre informazioni su questa struttura, vedere Windows SDK.
nMask
Specifica i parametri della barra di scorrimento da recuperare. Il valore predefinito specifica una combinazione di SIF_PAGE
, SIF_POS
, SIF_TRACKPOS
e SIF_RANGE
. Per altre informazioni sui nMask
valori, vedere SCROLLINFO
.
Valore restituito
Se il messaggio ha recuperato valori, il valore restituito è TRUE
. In caso contrario, è FALSE
.
Osservazioni:
GetScrollInfo
consente alle applicazioni di usare posizioni di scorrimento a 32 bit.
La SCROLLINFO
struttura contiene informazioni su una barra di scorrimento, incluse le posizioni di scorrimento minime e massime, le dimensioni della pagina e la posizione della casella di scorrimento (il pollice). Per altre informazioni sulla modifica delle impostazioni predefinite della struttura, vedere l'argomento SCROLLINFO
relativo alla struttura in Windows SDK.
I gestori di messaggi di Windows MFC che indicano la posizione della barra di scorrimento, CWnd::OnHScroll e CWnd::OnVScroll, forniscono solo 16 bit di dati di posizione. GetScrollInfo
e SetScrollInfo
forniscono 32 bit di dati di posizione barra di scorrimento. Pertanto, un'applicazione può chiamare GetScrollInfo
durante l'elaborazione CWnd::OnHScroll
o CWnd::OnVScroll
per ottenere dati sulla posizione della barra di scorrimento a 32 bit.
CWnd::GetScrollLimit
Chiamare questa funzione membro per recuperare la posizione di scorrimento massima della barra di scorrimento.
int GetScrollLimit(int nBar);
Parametri
nBar
Specifica il tipo di barra di scorrimento. Il parametro può accettare uno dei valori seguenti:
SB_HORZ
Recupera il limite di scorrimento della barra di scorrimento orizzontale.SB_VERT
Recupera il limite di scorrimento della barra di scorrimento verticale.
Valore restituito
Specifica la posizione massima di una barra di scorrimento se ha esito positivo; in caso contrario, 0.
CWnd::GetScrollPos
Recupera la posizione corrente della casella di scorrimento di una barra di scorrimento.
int GetScrollPos(int nBar) const;
Parametri
nBar
Specifica la barra di scorrimento da esaminare. Il parametro può accettare uno dei valori seguenti:
SB_HORZ
Recupera la posizione della barra di scorrimento orizzontale.SB_VERT
Recupera la posizione della barra di scorrimento verticale.
Valore restituito
Specifica la posizione corrente della casella di scorrimento nella barra di scorrimento se ha esito positivo; in caso contrario, 0.
Osservazioni:
La posizione corrente è un valore relativo che dipende dall'intervallo di scorrimento corrente. Ad esempio, se l'intervallo di scorrimento è compreso tra 50 e 100 e la casella di scorrimento si trova al centro della barra, la posizione corrente è 75.
CWnd::GetScrollRange
Copia le posizioni della barra di scorrimento minima e massima correnti per la barra di scorrimento specificata nelle posizioni specificate da lpMinPos
e lpMaxPos
.
void GetScrollRange(
int nBar,
LPINT lpMinPos,
LPINT lpMaxPos) const;
Parametri
nBar
Specifica la barra di scorrimento da esaminare. Il parametro può accettare uno dei valori seguenti:
SB_HORZ
Recupera la posizione della barra di scorrimento orizzontale.SB_VERT
Recupera la posizione della barra di scorrimento verticale.
lpMinPos
Punta alla variabile integer che deve ricevere la posizione minima.
lpMaxPos
Punta alla variabile integer che deve ricevere la posizione massima.
Osservazioni:
Se CWnd
non dispone di una barra di scorrimento, la GetScrollRange
funzione membro copia 0 in lpMinPos
e lpMaxPos
.
L'intervallo predefinito per una barra di scorrimento standard è compreso tra 0 e 100. L'intervallo predefinito per un controllo barra di scorrimento è vuoto (entrambi i valori sono 0).
CWnd::GetStyle
Restituisce lo stile della finestra corrente.
DWORD GetStyle() const;
Valore restituito
Stile della finestra. Per altre informazioni sugli stili di finestra usati in MFC, vedere Stili finestra.
CWnd::GetSystemMenu
Consente all'applicazione di accedere al menu di controllo per la copia e la modifica.
CMenu* GetSystemMenu(BOOL bRevert) const;
Parametri
bRevert
Specifica l'azione da eseguire. Se bRevert
è FALSE
, GetSystemMenu
restituisce un handle a una copia del menu Controllo attualmente in uso. Questa copia è inizialmente identica al menu Controllo, ma può essere modificata. Se bRevert
è TRUE
, GetSystemMenu
ripristina lo stato predefinito del menu Controllo. Il menu controllo precedente, eventualmente modificato, viene eliminato definitivamente. In questo caso, il valore restituito non è definito.
Valore restituito
Identifica una copia del menu Controllo se bRevert
è FALSE
. Se bRevert
è TRUE
, il valore restituito non è definito.
Il puntatore restituito può essere temporaneo e non deve essere archiviato per un uso successivo.
Osservazioni:
Qualsiasi finestra che non usa GetSystemMenu
per creare una propria copia del menu Controllo riceve il menu Controllo standard.
Il puntatore restituito dalla GetSystemMenu
funzione membro può essere usato con le CMenu::AppendMenu
funzioni , CMenu::InsertMenu
o CMenu::ModifyMenu
per modificare il menu Controllo.
Il menu Controllo contiene inizialmente elementi identificati con vari valori ID, ad SC_CLOSE
esempio , SC_MOVE
e SC_SIZE
. Gli elementi del menu Controllo generano WM_SYSCOMMAND
messaggi. Tutte le voci predefinite del menu Di controllo hanno numeri ID maggiori di 0xF000. Se un'applicazione aggiunge elementi al menu Controllo, deve usare numeri ID minori di F000.
Windows può rendere automaticamente gli elementi non disponibili nel menu Controllo standard. CWnd
può eseguire la propria selezione o indisponibilità rispondendo ai WM_INITMENU
messaggi, che vengono inviati prima che venga visualizzato qualsiasi menu.
Esempio
// 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
Recupera le informazioni sulla barra del titolo specificata.
BOOL GetTitleBarInfo(PTITLEBARINFO pti) const;
Parametri
pti
Puntatore a una TITLEBARINFO
struttura che riceve le informazioni.
Osservazioni:
Questa funzione membro emula la funzionalità della funzione GetTitleBarInfo
, come descritto in Windows SDK.
CWnd::GetTopLevelFrame
Chiamare questa funzione membro per recuperare la finestra cornice di primo livello della finestra, se presente.
CFrameWnd* GetTopLevelFrame() const;
Valore restituito
Identifica la finestra cornice di primo livello della finestra.
Il puntatore restituito può essere temporaneo e non deve essere archiviato per un uso successivo.
Osservazioni:
Se CWnd
non ha una finestra associata o il padre di primo livello non è un CFrameWnd
oggetto derivato da , questa funzione restituisce NULL
.
CWnd::GetTopLevelOwner
Chiamare questa funzione membro per recuperare la finestra di primo livello.
CWnd* GetTopLevelOwner() const;
Valore restituito
Identifica la finestra di primo livello. Il puntatore restituito può essere temporaneo e non deve essere archiviato per un uso successivo.
Osservazioni:
La finestra di primo livello è la finestra figlio del desktop. Se CWnd
non ha una finestra associata, questa funzione restituisce NULL
.
CWnd::GetTopLevelParent
Chiamare questa funzione membro per recuperare l'elemento padre di primo livello della finestra.
CWnd* GetTopLevelParent() const;
Valore restituito
Identifica la finestra padre di primo livello della finestra.
Il puntatore restituito può essere temporaneo e non deve essere archiviato per un uso successivo.
Osservazioni:
GetTopLevelParent
è simile a GetTopLevelFrame
e GetTopLevelOwner
, tuttavia ignora il valore impostato come finestra del proprietario corrente.
CWnd::GetTopWindow
Cerca la finestra figlio di primo livello che appartiene a CWnd
.
CWnd* GetTopWindow() const;
Valore restituito
Identifica la finestra figlio di primo livello in un CWnd
elenco collegato di finestre figlio. Se non esistono finestre figlio, il valore è NULL
.
Il puntatore restituito può essere temporaneo e non deve essere archiviato per un uso successivo.
Osservazioni:
Se CWnd
non ha elementi figlio, questa funzione restituisce NULL
.
CWnd::GetUpdateRect
Recupera le coordinate del rettangolo più piccolo che racchiude completamente l'area di aggiornamento di .
BOOL GetUpdateRect(
LPRECT lpRect,
BOOL bErase = FALSE);
Parametri
lpRect
Punta a un oggetto o RECT
a una CRect
struttura che deve ricevere le coordinate client dell'aggiornamento che racchiude l'area di aggiornamento.
Impostare questo parametro su NULL
per determinare se esiste un'area di aggiornamento all'interno di CWnd
. Se lpRect
è NULL
, la GetUpdateRect
funzione membro restituisce un valore diverso da zero se esiste un'area di aggiornamento e 0 in caso contrario. In questo modo è possibile determinare se un WM_PAINT
messaggio è stato generato da un'area non valida. Non impostare questo parametro su NULL
in Windows versione 3.0 e precedenti.
bErase
Specifica se lo sfondo nell'area di aggiornamento deve essere cancellato.
Valore restituito
Specifica lo stato dell'area di aggiornamento. Il valore è diverso da zero se l'area di aggiornamento non è vuota; in caso contrario, 0.
Se il lpRect
parametro è impostato su NULL
, il valore restituito è diverso da zero se esiste un'area di aggiornamento; in caso contrario, 0.
Osservazioni:
Se CWnd
è stato creato con lo CS_OWNDC
stile e la modalità di mapping non MM_TEXT
è , la GetUpdateRect
funzione membro fornisce il rettangolo nelle coordinate logiche. In caso contrario, GetUpdateRect
assegna il rettangolo nelle coordinate client. Se non è presente alcuna area di aggiornamento, GetUpdateRect
imposta il rettangolo su vuoto (imposta tutte le coordinate su 0).
Il bErase
parametro specifica se GetUpdateRect
cancellare lo sfondo dell'area di aggiornamento. Se bErase
è TRUE
e l'area di aggiornamento non è vuota, lo sfondo viene cancellato. Per cancellare lo sfondo, GetUpdateRect
invia il WM_ERASEBKGND
messaggio.
Il rettangolo di aggiornamento recuperato dalla BeginPaint
funzione membro è identico a quello recuperato dalla GetUpdateRect
funzione membro.
La BeginPaint
funzione membro convalida automaticamente l'area di aggiornamento, quindi qualsiasi chiamata a GetUpdateRect
effettuata immediatamente dopo una chiamata per BeginPaint
recuperare un'area di aggiornamento vuota.
CWnd::GetUpdateRgn
Recupera l'area di aggiornamento in un'area identificata da pRgn
.
int GetUpdateRgn(
CRgn* pRgn,
BOOL bErase = FALSE);
Parametri
pRgn
Identifica l'area di aggiornamento.
bErase
Specifica se lo sfondo verrà cancellato e le aree non client delle finestre figlio verranno disegnate. Se il valore è FALSE
, non viene eseguito alcun disegno.
Valore restituito
Specifica un flag short-integer che indica il tipo di area risultante. Il valore può accettare uno dei seguenti elementi:
SIMPLEREGION
L'area non ha bordi sovrapposti.COMPLEXREGION
L'area ha bordi sovrapposti.NULLREGION
L'area è vuota.ERROR
Nessuna area creata.
Osservazioni:
Le coordinate di questa area sono relative all'angolo superiore sinistro (coordinate client).
La BeginPaint
funzione membro convalida automaticamente l'area di aggiornamento, quindi qualsiasi chiamata a GetUpdateRgn
effettuata immediatamente dopo una chiamata per BeginPaint
recuperare un'area di aggiornamento vuota.
CWnd::GetWindow
Restituisce un puntatore alla finestra richiesta o NULL
se nessuno.
CWnd* GetWindow(UINT nCmd) const;
Parametri
*nCmd*
Specifica la relazione tra CWnd
e la finestra restituita. Può accettare uno dei valori seguenti:
GW_CHILD
Identifica laCWnd
prima finestra figlio.GW_HWNDFIRST
SeCWnd
è una finestra figlio, restituisce la prima finestra di pari livello. In caso contrario, restituisce la prima finestra di primo livello nell'elenco.GW_HWNDLAST
SeCWnd
è una finestra figlio, restituisce l'ultima finestra di pari livello. In caso contrario, restituisce l'ultima finestra di primo livello nell'elenco.GW_HWNDNEXT
Restituisce la finestra successiva dell'elenco di Gestione finestre.GW_HWNDPREV
Restituisce la finestra precedente nell'elenco di Gestione finestre.GW_OWNER
Identifica ilCWnd
proprietario.
Valore restituito
Il puntatore restituito può essere temporaneo e non deve essere archiviato per un uso successivo.
CWnd::GetWindowContextHelpId
Chiamare questa funzione membro per recuperare l'identificatore del contesto della Guida, se presente, associato alla finestra.
DWORD GetWindowContextHelpId() const;
Valore restituito
Identificatore del contesto della Guida. Restituisce 0 se la finestra non ha alcun valore.
CWnd::GetWindowedChildCount
Chiamare questa funzione membro per recuperare il numero di finestre figlio associate.
long GetWindowedChildCount();
Valore restituito
Numero di finestre figlio associate all'oggetto CWnd
.
CWnd::GetWindowDC
Recupera il contesto di visualizzazione per l'intera finestra, tra cui barra della didascalia, menu e barre di scorrimento.
CDC* GetWindowDC();
Valore restituito
Identifica il contesto di visualizzazione per la finestra specificata se la funzione ha esito positivo; in caso contrario NULL
, .
Il puntatore restituito può essere temporaneo e non deve essere archiviato per un uso successivo. ReleaseDC
deve essere chiamato una volta per ogni chiamata riuscita a GetWindowDC
.
Osservazioni:
Un contesto di visualizzazione della finestra consente di disegnare ovunque in CWnd
, poiché l'origine del contesto è l'angolo superiore sinistro di CWnd
anziché l'area client.
Gli attributi predefiniti vengono assegnati al contesto di visualizzazione ogni volta che recupera il contesto. Gli attributi precedenti vengono persi.
GetWindowDC
è progettato per essere utilizzato per effetti di pittura speciali all'interno dell'area CWnd
non client. La pittura in aree non client di qualsiasi finestra non è consigliata.
La GetSystemMetrics
funzione Windows può essere usata per recuperare le dimensioni di varie parti dell'area non client, ad esempio la barra della didascalia, il menu e le barre di scorrimento.
Al termine del disegno, è necessario chiamare la ReleaseDC
funzione membro per rilasciare il contesto di visualizzazione. Il mancato rilascio del contesto di visualizzazione influirà seriamente sul disegno richiesto dalle applicazioni a causa di limitazioni sul numero di contesti di dispositivo che possono essere aperti contemporaneamente.
CWnd::GetWindowInfo
Recupera informazioni sulla finestra.
BOOL GetWindowInfo(PWINDOWINFO pwi) const;
Parametri
pwi
Puntatore a una WINDOWINFO
struttura.
Osservazioni:
Questa funzione membro emula la funzionalità della funzione GetWindowInfo
, come descritto in Windows SDK.
CWnd::GetWindowlessChildCount
Recupera il numero di finestre figlio senza finestra associate.
long GetWindowlessChildCount();
Valore restituito
Numero di finestre figlio senza finestra associate all'oggetto CWnd
.
CWnd::GetWindowPlacement
Recupera lo stato di visualizzazione e le posizioni normale (ripristinata), ridotta a icona e ingrandita di una finestra.
BOOL GetWindowPlacement(WINDOWPLACEMENT* lpwndpl) const;
Parametri
lpwndpl
Punta alla WINDOWPLACEMENT
struttura che riceve le informazioni sullo stato di visualizzazione e sulla posizione.
Valore restituito
Diverso da zero se la funzione ha esito positivo; in caso contrario, 0.
Osservazioni:
Il flags
membro della WINDOWPLACEMENT
struttura recuperata da questa funzione è sempre 0. Se CWnd
è ingrandita, il showCmd
membro di WINDOWPLACEMENT
è SW_SHOWMAXIMIZED
. Se la finestra è ridotta a icona, è SW_SHOWMINIMIZED
. SW_SHOWNORMAL
In caso contrario,
CWnd::GetWindowRect
Copia le dimensioni del rettangolo di delimitazione dell'oggetto CWnd
nella struttura a lpRect
cui punta .
void GetWindowRect(LPRECT lpRect) const;
Parametri
lpRect
Punta a un CRect
oggetto o a una RECT
struttura che riceverà le coordinate dello schermo degli angoli superiore sinistro e inferiore destro.
Osservazioni:
Le dimensioni vengono specificate nelle coordinate dello schermo rispetto all'angolo superiore sinistro dello schermo. Le dimensioni della didascalia, del bordo e delle barre di scorrimento, se presenti, sono incluse.
CWnd::GetWindowRgn
Chiamare questa funzione membro per ottenere l'area della finestra di una finestra.
int GetWindowRgn(HRGN hRgn)const;
Parametri
hRgn
Handle in un'area della finestra.
Valore restituito
Il valore restituito specifica il tipo dell'area ottenuta dalla funzione. Può essere uno dei valori seguenti:
NULLREGION
L'area è vuota.SIMPLEREGION
L'area è un singolo rettangolo.COMPLEXREGION
L'area è più di un rettangolo.ERROR
Si è verificato un errore; l'area non è interessata.
Osservazioni:
L'area della finestra determina l'area all'interno della finestra in cui il sistema operativo consente il disegno. Il sistema operativo non visualizza alcuna parte di una finestra che si trova all'esterno dell'area della finestra.
Le coordinate dell'area della finestra di una finestra sono relative all'angolo superiore sinistro della finestra, non all'area client della finestra.
Per impostare l'area della finestra di una finestra, chiamare CWnd::SetWindowRgn
.
CWnd::GetWindowText
Copia il titolo della CWnd
didascalia (se presente) nel buffer a lpszStringBuf
cui punta o nella stringa rString
di destinazione .
int GetWindowText(
LPTSTR lpszStringBuf,
int nMaxCount) const;
void GetWindowText(
CString& rString) const;
Parametri
lpszStringBuf
Punta al buffer che deve ricevere la stringa copiata del titolo della finestra.
nMaxCount
Specifica il numero massimo di caratteri da copiare nel buffer, incluso il carattere Null di terminazione. Se la stringa è più lunga del numero di caratteri specificato in nMaxCount
, viene troncata.
rString
Oggetto CString
che deve ricevere la stringa copiata del titolo della finestra.
Valore restituito
Specifica la lunghezza, espressa in caratteri, della stringa copiata, senza includere il carattere Null di terminazione. È 0 se CWnd
non ha alcuna didascalia o se la didascalia è vuota.
Osservazioni:
Se l'oggetto CWnd
è un controllo, la GetWindowText
funzione membro copia il testo all'interno del controllo anziché copiare la didascalia.
Questa funzione membro fa sì che il WM_GETTEXT
messaggio venga inviato all'oggetto CWnd
.
Esempio
Vedere l'esempio per CWnd::SetWindowText
.
CWnd::GetWindowTextLength
Restituisce la lunghezza del titolo della didascalia dell'oggetto CWnd
.
int GetWindowTextLength() const;
Valore restituito
Specifica la lunghezza del testo in caratteri, senza includere alcun carattere di terminazione Null. Il valore è 0 se non esiste alcun testo di questo tipo.
Osservazioni:
Se CWnd
è un controllo, la GetWindowTextLength
funzione membro restituisce la lunghezza del testo all'interno del controllo anziché la didascalia.
Questa funzione membro fa sì che il WM_GETTEXTLENGTH
messaggio venga inviato all'oggetto CWnd
.
Esempio
Vedere l'esempio per CWnd::SetWindowText
.
CWnd::HideCaret
Nasconde il cursore rimuovendolo dallo schermo.
void HideCaret();
Osservazioni:
Anche se il cursore non è più visibile, può essere visualizzato di nuovo usando la ShowCaret
funzione membro. Nascondere il cursore non distrugge la forma corrente.
Nascondere è cumulativo. Se HideCaret
è stato chiamato cinque volte in una riga, la ShowCaret
funzione membro deve essere chiamata cinque volte prima che venga visualizzato il cursore.
CWnd::HiliteMenuItem
Evidenzia o rimuove l'evidenziazione da una voce di menu di primo livello (barra dei menu).
BOOL HiliteMenuItem(
CMenu* pMenu,
UINT nIDHiliteItem,
UINT nHilite);
Parametri
pMenu
Identifica il menu di primo livello che contiene l'elemento da evidenziare.
nIDHiliteItem
Specifica la voce di menu da evidenziare, a seconda del valore del nHilite
parametro .
nHilite
Specifica se la voce di menu è evidenziata o se l'evidenziazione viene rimossa. Può essere una combinazione di MF_HILITE
o MF_UNHILITE
con MF_BYCOMMAND
o MF_BYPOSITION
. I valori possono essere combinati usando l'operatore bit per OR
bit. I valori hanno il significato seguente:
MF_BYCOMMAND
nIDHiliteItem
Interpreta come ID voce di menu (interpretazione predefinita).MF_BYPOSITION
nIDHiliteItem
Interpreta come offset in base zero della voce di menu.MF_HILITE
Evidenzia l'elemento. Se questo valore non viene specificato, l'evidenziazione viene rimossa dall'elemento.MF_UNHILITE
Rimuove l'evidenziazione dall'elemento.
Valore restituito
Specifica se la voce di menu è stata evidenziata. Diverso da zero se l'elemento è stato evidenziato; in caso contrario, 0.
Osservazioni:
I MF_HILITE
flag e MF_UNHILITE
possono essere usati solo con questa funzione membro. Non possono essere usati con la CMenu::ModifyMenu
funzione membro.
CWnd::HtmlHelp
Chiamare questa funzione membro per richiamare l'applicazione HTMLHelp.
virtual void HtmlHelp(
DWORD_PTR dwData,
UINT nCmd = 0x000F);
Parametri
dwData
Specifica dati aggiuntivi. Il valore utilizzato dipende dal valore del nCmd
parametro .
nCmd
Specifica il tipo di Guida richiesto. Per un elenco dei valori possibili e del modo in cui influiscono sul dwData
parametro, vedere il uCommand
parametro descritto nella Guida di riferimento all'API HTML in Windows SDK.
Osservazioni:
Per altre informazioni, vedere CWinApp::HtmlHelp
.
CWnd::InitDynamicLayout
Chiamata eseguita dal framework per inizializzare il layout dinamico per una finestra.
void InitDynamicLayout();
Osservazioni:
Non chiamare questo metodo direttamente.
CWnd::Invalidate
Invalida l'intera area client di CWnd
.
void Invalidate(BOOL bErase = TRUE);
Parametri
bErase
Specifica se lo sfondo all'interno dell'area di aggiornamento deve essere cancellato.
Osservazioni:
L'area client è contrassegnata per la pittura quando si verifica il messaggio successivo WM_PAINT
. L'area può essere convalidata anche prima che si verifichi un WM_PAINT
messaggio dalla ValidateRect
funzione membro o ValidateRgn
.
Il bErase
parametro specifica se lo sfondo all'interno dell'area di aggiornamento deve essere cancellato quando viene elaborata l'area di aggiornamento. Se bErase
è TRUE
, lo sfondo viene cancellato quando viene chiamata la BeginPaint
funzione membro; se bErase
è FALSE
, lo sfondo rimane invariato. Se bErase
è TRUE
per qualsiasi parte dell'area di aggiornamento, lo sfondo nell'intera area, non solo nella parte specificata, viene cancellato.
Windows invia un WM_PAINT
messaggio ogni volta che l'area CWnd
di aggiornamento non è vuota e non sono presenti altri messaggi nella coda dell'applicazione per tale finestra.
Esempio
Vedere l'esempio per CWnd::UpdateWindow
.
CWnd::InvalidateRect
Invalida l'area client all'interno del rettangolo specificato aggiungendo tale rettangolo all'area CWnd
di aggiornamento.
void InvalidateRect(
LPCRECT lpRect,
BOOL bErase = TRUE);
Parametri
lpRect
Punta a un CRect
oggetto o a una RECT
struttura che contiene il rettangolo (nelle coordinate client) da aggiungere all'area di aggiornamento. Se lpRect
è NULL
, l'intera area client viene aggiunta all'area.
bErase
Specifica se lo sfondo all'interno dell'area di aggiornamento deve essere cancellato.
Osservazioni:
Il rettangolo invalidato, insieme a tutte le altre aree nell'area di aggiornamento, viene contrassegnato per disegnare quando viene inviato il messaggio successivo WM_PAINT
. Le aree invalidate si accumulano nell'area di aggiornamento fino a quando l'area non viene elaborata quando si verifica la chiamata successiva WM_PAINT
o fino a quando l'area non viene convalidata dalla ValidateRect
funzione membro o ValidateRgn
.
Il bErase
parametro specifica se lo sfondo all'interno dell'area di aggiornamento deve essere cancellato quando viene elaborata l'area di aggiornamento. Se bErase
è TRUE
, lo sfondo viene cancellato quando viene chiamata la BeginPaint
funzione membro; se bErase
è FALSE
, lo sfondo rimane invariato. Se bErase
è TRUE
per qualsiasi parte dell'area di aggiornamento, lo sfondo nell'intera area viene cancellato, non solo nella parte specificata.
Windows invia un WM_PAINT
messaggio ogni volta che l'area CWnd
di aggiornamento non è vuota e non sono presenti altri messaggi nella coda dell'applicazione per tale finestra.
CWnd::InvalidateRgn
Invalida l'area client all'interno dell'area specificata aggiungendola all'area di aggiornamento corrente di CWnd
.
void InvalidateRgn(
CRgn* pRgn,
BOOL bErase = TRUE);
Parametri
pRgn
Puntatore a un CRgn
oggetto che identifica l'area da aggiungere all'area di aggiornamento. Si presuppone che l'area disponga di coordinate client. Se questo parametro è NULL
, l'intera area client viene aggiunta all'area di aggiornamento.
bErase
Specifica se lo sfondo all'interno dell'area di aggiornamento deve essere cancellato.
Osservazioni:
L'area invalidata, insieme a tutte le altre aree nell'area di aggiornamento, viene contrassegnata per disegnare quando il WM_PAINT
messaggio viene inviato successivamente. Le aree invalidate si accumulano nell'area di aggiornamento fino a quando l'area non viene elaborata quando viene inviato un WM_PAINT
messaggio o fino a quando l'area non viene convalidata dalla ValidateRect
funzione membro o ValidateRgn
.
Il bErase
parametro specifica se lo sfondo all'interno dell'area di aggiornamento deve essere cancellato quando viene elaborata l'area di aggiornamento. Se bErase
è TRUE
, lo sfondo viene cancellato quando viene chiamata la BeginPaint
funzione membro; se bErase
è FALSE
, lo sfondo rimane invariato. Se bErase
è TRUE
per qualsiasi parte dell'area di aggiornamento, lo sfondo nell'intera area, non solo nella parte specificata, viene cancellato.
Windows invia un WM_PAINT
messaggio ogni volta che l'area CWnd
di aggiornamento non è vuota e non sono presenti altri messaggi nella coda dell'applicazione per tale finestra.
L'area specificata deve essere stata creata in precedenza da una delle funzioni dell'area.
CWnd::InvokeHelper
Chiamare questa funzione membro per richiamare il metodo o la proprietà ActiveX Control specificata da dwDispID
, nel contesto specificato da wFlags
.
void AFX_CDECL InvokeHelper(
DISPID dwDispID,
WORD wFlags,
VARTYPE vtRet,
void* pvRet,
const BYTE* pbParamInfo,
... );
Parametri
dwDispID
Identifica il metodo o la proprietà da richiamare.
wFlags
Flag che descrivono il contesto della chiamata a IDispatch::Invoke
.
vtRet
Specifica il tipo del valore restituito. Per i valori possibili, vedere la sezione Osservazioni per COleDispatchDriver::InvokeHelper
.
pvRet
Indirizzo della variabile che riceverà il valore della proprietà o il valore restituito. Deve corrispondere al tipo specificato da vtRet
.
pbParamInfo
Puntatore a una stringa di byte con terminazione Null che specifica i tipi dei parametri che seguono pbParamInfo
. Per i valori possibili, vedere la sezione Osservazioni per COleDispatchDriver::InvokeHelper
.
...
Elenco di parametri variabile, di tipi specificati in pbParamInfo
.
Osservazioni:
Il parametro pbParamInfo
specifica i tipi dei parametri passati al metodo o alla proprietà. L'elenco delle variabili degli argomenti è rappresentato dalla ...
dichiarazione di sintassi.
Questa funzione converte i parametri in VARIANTARG
valori, quindi richiama il IDispatch::Invoke
metodo nel controllo ActiveX. Se la chiamata a IDispatch::Invoke
ha esito negativo, questa funzione genera un'eccezione. Se il SCODE
(codice di stato) restituito da IDispatch::Invoke
è DISP_E_EXCEPTION
, questa funzione genera un COleException
oggetto , altrimenti genera un'eccezione COleDispatchException
.
Nota
Questa funzione deve essere chiamata solo su un CWnd
oggetto che rappresenta un controllo ActiveX.
Per altre informazioni sull'uso di questa funzione membro con contenitori di controlli ActiveX, vedere l'articolo Contenitori di controlli ActiveX: Programmazione di controlli ActiveX in un contenitore di controlli ActiveX.
CWnd::IsChild
Indica se la finestra specificata da pWnd
è una finestra figlio o un altro discendente diretto di CWnd
.
BOOL IsChild(const CWnd* pWnd) const;
Parametri
pWnd
Identifica la finestra da testare.
Valore restituito
Specifica il risultato della funzione. Il valore è diverso da zero se la finestra identificata da pWnd
è una finestra figlio di CWnd
; in caso contrario, 0.
Osservazioni:
Una finestra figlio è il discendente diretto di CWnd
se l'oggetto CWnd
si trova nella catena di finestre padre che conduce dalla finestra popup originale alla finestra figlio.
CWnd::IsD2DSupportEnabled
Determina se il supporto D2D è abilitato.
BOOL IsD2DSupportEnabled();
Valore restituito
TRUE
se la funzionalità è abilitata; in caso contrario FALSE
, .
CWnd::IsDialogMessage
Chiamare questa funzione membro per determinare se il messaggio specificato è destinato a una finestra di dialogo senza modalità; in caso affermativo, questa funzione elabora il messaggio.
BOOL IsDialogMessage(LPMSG lpMsg);
Parametri
lpMsg
Punta a una MSG
struttura che contiene il messaggio da controllare.
Valore restituito
Specifica se la funzione membro ha elaborato il messaggio specificato. È diverso da zero se il messaggio è stato elaborato; in caso contrario, 0. Se il valore restituito è 0, chiamare la CWnd::PreTranslateMessage
funzione membro della classe di base per elaborare il messaggio. In un override della CWnd::PreTranslateMessage
funzione membro il codice è simile al seguente:
BOOL CAboutDlg::PreTranslateMessage(MSG *pMsg)
{
if (IsDialogMessage(pMsg))
return TRUE;
else
return CDialog::PreTranslateMessage(pMsg);
}
Osservazioni:
Quando la IsDialogMessage
funzione elabora un messaggio, controlla la presenza di messaggi da tastiera e li converte in comandi di selezione per la finestra di dialogo corrispondente. Ad esempio, il tasto TAB seleziona il controllo o il gruppo di controlli successivo e il tasto FRECCIA GIÙ seleziona il controllo successivo in un gruppo.
Non è necessario passare un messaggio elaborato da IsDialogMessage
alle TranslateMessage
funzioni di o DispatchMessage
Windows, perché è già stato elaborato.
CWnd::IsDlgButtonChecked
Determina se accanto a un controllo pulsante è adiacente un segno di spunta.
UINT IsDlgButtonChecked(int nIDButton) const;
Parametri
nIDButton
Specifica l'identificatore intero del controllo pulsante.
Valore restituito
Diverso da zero se il controllo specificato viene controllato e 0 se non è selezionato. È possibile selezionare solo pulsanti di opzione e caselle di controllo. Per i pulsanti a tre stati, il valore restituito può essere 2 se il pulsante è indeterminato. Questa funzione membro restituisce 0 per un pulsante di scelta.
Osservazioni:
Se il pulsante è un controllo a tre stati, la funzione membro determina se è disattivata, selezionata o nessuna delle due.
CWnd::IsDynamicLayoutEnabled
Determina se il layout dinamico è abilitato in questa finestra. Se il layout dinamico è abilitato, la posizione e le dimensioni delle finestre figlio possono cambiare quando l'utente ridimensiona la finestra padre.
BOOL IsDynamicLayoutEnabled() const;
Valore restituito
TRUE
se il layout dinamico è abilitato; in caso contrario FALSE
, .
Osservazioni:
CWnd::IsIconic
Specifica se CWnd
è ridotta a icona.
BOOL IsIconic() const;
Valore restituito
Diverso da zero se CWnd
è ridotto a icona; in caso contrario, 0.
Esempio
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
Specifica se CWnd
include il supporto del tocco.
BOOL IsTouchWindow() const;
Valore restituito
TRUE
se CWnd
ha il supporto tocco; in caso contrario FALSE
, .
Osservazioni:
CWnd::IsWindowEnabled
Specifica se CWnd
è abilitato per l'input del mouse e della tastiera.
BOOL IsWindowEnabled() const;
Valore restituito
Diverso da zero se CWnd
è abilitato; in caso contrario, 0.
Esempio
//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
Determina lo stato di visibilità della finestra specificata.
BOOL IsWindowVisible() const;
Valore restituito
Diverso da zero se CWnd
è visibile (ha il WS_VISIBLE
bit di stile impostato e la finestra padre è visibile). Poiché il valore restituito riflette lo stato del bit di WS_VISIBLE
stile, il valore restituito può essere diverso da zero anche se CWnd
è completamente oscurato da altre finestre.
Osservazioni:
Una finestra possiede uno stato di visibilità indicato dal bit di WS_VISIBLE
stile. Quando questo bit di stile viene impostato con una chiamata alla ShowWindow
funzione membro, la finestra viene visualizzata e il disegno successivo alla finestra viene visualizzato fino a quando la finestra ha il bit di stile impostato.
Qualsiasi disegno di una finestra con lo WS_VISIBLE
stile non verrà visualizzato se la finestra è coperta da altre finestre o viene ritagliata dalla finestra padre.
Esempio
// 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
Determina se CWnd
è stato ingrandita.
BOOL IsZoomed() const;
Valore restituito
Diverso da zero se CWnd
è ingrandita; in caso contrario, 0.
CWnd::KillTimer
Termina l'evento timer identificato dalla nIDEvent
chiamata precedente a SetTimer
.
BOOL KillTimer(UINT_PTR nIDEvent);
Parametri
nIDEvent
Valore dell'evento timer passato a SetTimer
.
Valore restituito
Specifica il risultato della funzione. Il valore è diverso da zero se l'evento è stato ucciso. È 0 se la KillTimer
funzione membro non è riuscita a trovare l'evento timer specificato.
Osservazioni:
I messaggi in sospeso WM_TIMER
associati al timer non vengono rimossi dalla coda dei messaggi.
Esempio
Vedere l'esempio per CWnd::SetTimer
.
CWnd::LoadDynamicLayoutResource
Viene chiamato dal framework per caricare informazioni sul layout dinamico dal file di risorse.
BOOL LoadDynamicLayoutResource(LPCTSTR lpszResourceName);
Parametri
lpszResourceName
Nome della risorsa che contiene le informazioni del layout dinamico desiderato per questa finestra.
Valore restituito
Diverso da zero se la funzione ha esito positivo. È 0 se si verifica un errore.
Osservazioni:
Non chiamare questo metodo direttamente.
CWnd::LockWindowUpdate
Disabilita il disegno nella finestra specificata.
BOOL LockWindowUpdate();
Valore restituito
Diverso da zero se la funzione ha esito positivo. È 0 se si verifica un errore o se la LockWindowUpdate
funzione è stata usata per bloccare un'altra finestra.
Osservazioni:
Impossibile spostare una finestra bloccata. È possibile bloccare una sola finestra alla volta. Per sbloccare una finestra bloccata con LockWindowUpdate
, chiamare UnlockWindowUpdate
.
Se un'applicazione con una finestra bloccata (o qualsiasi finestra figlio bloccata) chiama la GetDC
funzione , GetDCEx
o BeginPaint
Windows, la funzione chiamata restituisce un contesto di dispositivo la cui area visibile è vuota. Ciò si verifica finché l'applicazione non sblocca la finestra chiamando la UnlockWindowUpdate
funzione membro.
Mentre gli aggiornamenti delle finestre sono bloccati, il sistema tiene traccia del rettangolo di delimitazione di qualsiasi operazione di disegno ai contesti di dispositivo associati a una finestra bloccata. Quando il disegno viene riattivato, questo rettangolo di delimitazione viene invalidato nella finestra bloccata e le finestre figlio per forzare un messaggio finale WM_PAINT
ad aggiornare lo schermo. Se non si è verificato alcun disegno mentre gli aggiornamenti della finestra sono stati bloccati, non viene invalidata alcuna area.
La LockWindowUpdate
funzione membro non rende invisibile la finestra specificata e non cancella il bit di WS_VISIBLE
stile.
CWnd::m_hWnd
Handle della finestra di Windows collegata a questo CWnd
oggetto .
HWND m_hWnd;
Osservazioni:
Il m_hWnd
membro dati è una variabile pubblica di tipo HWND
.
CWnd::MapWindowPoints
Converte (mappa) un set di punti dallo spazio delle coordinate di CWnd
nello spazio delle coordinate di un'altra finestra.
void MapWindowPoints(
CWnd* pwndTo,
LPRECT lpRect) const;
void MapWindowPoints(
CWnd* pwndTo,
LPPOINT lpPoint,
UINT nCount) const;
Parametri
pwndTo
Identifica la finestra in cui vengono convertiti i punti. Se questo parametro è NULL
, i punti vengono convertiti in coordinate dello schermo.
lpRect
Specifica il rettangolo i cui punti devono essere convertiti. La prima versione di questa funzione è disponibile solo per Windows 3.1 e versioni successive.
lpPoint
Puntatore a una matrice di POINT
struttura che contiene il set di punti da convertire.
nCount
Specifica il numero di POINT
strutture nella matrice a lpPoint
cui punta .
CWnd::MessageBox
Crea e visualizza una finestra contenente un messaggio e una didascalia forniti dall'applicazione, oltre a una combinazione delle icone predefinite e dei pulsanti di scelta rapida descritti nell'elenco Stili finestra di messaggio.
int MessageBox(
LPCTSTR lpszText,
LPCTSTR lpszCaption = NULL,
UINT nType = MB_OK);
Parametri
lpszText
Punta a un oggetto o a una CString
stringa con terminazione Null contenente il messaggio da visualizzare.
lpszCaption
Punta a un oggetto o a una CString
stringa con terminazione Null da utilizzare per la didascalia della finestra di messaggio. Se lpszCaption
è NULL
, viene usata la didascalia predefinita "Errore".
nType
Specifica il contenuto e il comportamento della finestra di messaggio.
Valore restituito
Questo metodo usa la MessageBox
funzione come definito in Windows SDK. Questo metodo restituisce il risultato della chiamata a questa funzione.
Osservazioni:
Usare la funzione AfxMessageBox
globale anziché questa funzione membro per implementare una finestra di messaggio nell'applicazione.
Di seguito sono illustrate le varie icone di sistema che possono essere usate in una finestra di messaggio:
Icon | Macro |
---|---|
MB_ICONHAND , MB_ICONSTOP e MB_ICONERROR |
|
MB_ICONQUESTION | |
MB_ICONEXCLAMATION e MB_ICONWARNING | |
MB_ICONASTERISK e MB_ICONINFORMATION |
Esempio
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
Chiamare questa funzione membro per modificare lo stile di una finestra.
BOOL ModifyStyle(
DWORD dwRemove,
DWORD dwAdd,
UINT nFlags = 0);
Parametri
dwRemove
Specifica gli stili di finestra da rimuovere durante la modifica dello stile.
dwAdd
Specifica gli stili di finestra da aggiungere durante la modifica dello stile.
nFlags
Flag da passare a SetWindowPos
o zero se SetWindowPos
non devono essere chiamati. Il valore predefinito è zero. Per un elenco di flag predefiniti, vedere la sezione Osservazioni.
Valore restituito
Diverso da zero se lo stile è stato modificato correttamente; in caso contrario, 0.
Osservazioni:
Gli stili da aggiungere o rimuovere possono essere combinati usando l'operatore OR bit per bit (|
). Per informazioni sugli stili delle finestre disponibili, vedere gli argomenti Stili di finestra e CreateWindow
In Windows SDK.
Se nFlags
è diverso da zero, ModifyStyle
chiama la funzione SetWindowPos
API di Windows e ridisegna la finestra combinando nFlags
con i quattro flag predefiniti seguenti:
SWP_NOSIZE
Mantiene le dimensioni correnti.SWP_NOMOVE
Mantiene la posizione corrente.SWP_NOZORDER
Mantiene l'ordine Z corrente.SWP_NOACTIVATE
Non attiva la finestra.
Per modificare gli stili estesi di una finestra, vedere ModifyStyleEx
.
Nota
Per alcuni stili in alcuni controlli ,ad esempio lo ES_READONLY
stile nel controllo di modifica, ModifyStyle
potrebbe non modificare correttamente lo stile perché il controllo potrebbe dover eseguire un'elaborazione interna speciale. In questi casi, sarà disponibile un messaggio corrispondente per modificare lo stile ( EM_SETREADONLY
nell'esempio indicato).
Esempio
// 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
Chiamare questa funzione membro per modificare lo stile esteso di una finestra.
BOOL ModifyStyleEx(
DWORD dwRemove,
DWORD dwAdd,
UINT nFlags = 0);
Parametri
dwRemove
Specifica gli stili estesi da rimuovere durante la modifica dello stile.
dwAdd
Specifica gli stili estesi da aggiungere durante la modifica dello stile.
nFlags
Flag da passare a SetWindowPos
o zero se SetWindowPos
non devono essere chiamati. Il valore predefinito è zero. Per un elenco di flag predefiniti, vedere la sezione Osservazioni.
Valore restituito
Diverso da zero se lo stile è stato modificato correttamente; in caso contrario, 0.
Osservazioni:
Gli stili da aggiungere o rimuovere possono essere combinati usando l'operatore OR bit per bit (|
). Per informazioni sugli stili estesi disponibili, vedere gli argomenti Degli stili delle finestre estese in questo libro e CreateWindowEx
in Windows SDK
Se nFlags
è diverso da zero, ModifyStyleEx
chiama la funzione SetWindowPos
API di Windows e ridisegna la finestra combinando nFlags
con i quattro flag predefiniti seguenti:
SWP_NOSIZE
Mantiene le dimensioni correnti.SWP_NOMOVE
Mantiene la posizione corrente.SWP_NOZORDER
Mantiene l'ordine Z corrente.SWP_NOACTIVATE
Non attiva la finestra.
Per modificare le finestre usando gli stili di finestra normali, vedere ModifyStyle
.
Esempio
// 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
Modifica la posizione e le dimensioni.
void MoveWindow(
int x,
int y,
int nWidth,
int nHeight,
BOOL bRepaint = TRUE);
void MoveWindow(
LPCRECT lpRect,
BOOL bRepaint = TRUE);
Parametri
x
Specifica la nuova posizione del lato sinistro dell'oggetto CWnd
.
y
Specifica la nuova posizione della parte superiore dell'oggetto CWnd
.
nWidth
Specifica la nuova larghezza di CWnd
.
nHeight
Specifica la nuova altezza di CWnd
.
bRepaint
Specifica se CWnd
deve essere ridisegnato. Se TRUE
, CWnd
riceve un WM_PAINT
messaggio nel OnPaint
gestore messaggi come di consueto. Se questo parametro è FALSE
, non viene eseguito alcun aggiornamento di alcun tipo. Questo vale per l'area client, per l'area non client (incluse le barre di scorrimento e il titolo) e per qualsiasi parte della finestra padre individuata in seguito CWnd
allo spostamento. Quando questo parametro è FALSE
, l'applicazione deve invalidare o ridisegnare in modo esplicito le parti della CWnd
finestra padre e che devono essere ridisegnate.
lpRect
Oggetto CRect
o RECT
struttura che specifica le nuove dimensioni e la nuova posizione.
Osservazioni:
Per un oggetto di primo livello CWnd
, i x
parametri e y
sono relativi all'angolo superiore sinistro dello schermo. Per un oggetto figlio CWnd
, sono relativi all'angolo superiore sinistro dell'area client della finestra padre.
La MoveWindow
funzione invia il WM_GETMINMAXINFO
messaggio. La gestione di questo messaggio offre CWnd
la possibilità di modificare i valori predefiniti per le finestre più grandi e piccole possibili. Se i parametri della MoveWindow
funzione membro superano questi valori, i valori possono essere sostituiti dai valori minimi o massimi nel WM_GETMINMAXINFO
gestore.
Esempio
Vedere l'esempio per CWnd::ClientToScreen
.
CWnd::NotifyWinEvent
Segnala al sistema che si è verificato un evento predefinito. Se le applicazioni client hanno registrato una funzione hook per l'evento, il sistema chiama la funzione hook del client.
void NotifyWinEvent(
DWORD event,
LONG idObjectType,
LONG idObject);
Parametri
event
Specifica l'evento che si è verificato. Questo valore deve essere una delle costanti dell'evento.
idObjectType
Identifica il tipo di oggetto che ha generato l'evento. Questo valore è uno degli identificatori di oggetto predefiniti o un valore DI ID oggetto personalizzato.
idObject
Identifica se l'evento è stato generato da un oggetto o da un elemento figlio dell'oggetto . Se questo valore è CHILDID_SELF
, l'evento è stato generato dall'oggetto stesso. In caso contrario, questo valore è l'ID figlio dell'elemento che ha generato l'evento.
Osservazioni:
Questa funzione membro emula la funzionalità della funzione NotifyWinEvent
, come descritto in Windows SDK.
CWnd::OnActivate
Il framework chiama questa funzione membro quando un CWnd
oggetto viene attivato o disattivato.
afx_msg void OnActivate(
UINT nState,
CWnd* pWndOther,
BOOL bMinimized);
Parametri
nState
Specifica se l'oggetto CWnd
viene attivato o disattivato. Può essere uno dei valori seguenti:
WA_INACTIVE
La finestra viene disattivata.WA_ACTIVE
La finestra viene attivata tramite un metodo diverso da un clic del mouse, ad esempio usando l'interfaccia della tastiera per selezionare la finestra.WA_CLICKACTIVE
La finestra viene attivata con un clic del mouse.
pWndOther
Puntatore all'oggetto CWnd
attivato o disattivato. Il puntatore può essere NULL
e può essere temporaneo.
bMinimized
Specifica lo stato ridotto al minimo dell'oggetto CWnd
attivato o disattivato. Un valore indica TRUE
che la finestra è ridotta a icona.
Se TRUE
, l'oggetto CWnd
viene attivato; in caso contrario, disattivato.
Osservazioni:
Se l'oggetto CWnd
viene attivato con un clic del mouse, riceverà anche una OnMouseActivate
chiamata di funzione membro.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnActivateApp
Il framework chiama questa funzione membro a tutte le finestre di primo livello dell'attività attivate e per tutte le finestre di primo livello dell'attività disattivate.
afx_msg void OnActivateApp(
BOOL bActive,
DWORD dwThreadID);
Parametri
bActive
Specifica se l'oggetto CWnd
viene attivato o disattivato. TRUE
indica che è in corso l'attivazione CWnd
. FALSE
indica che l'oggetto CWnd
viene disattivato.
dwThreadID
Specifica il valore dell'ID del thread. Se bActive
è TRUE
, dwThreadID
identifica il thread proprietario dell'oggetto CWnd
disattivato. Se bActive
è FALSE
, dwThreadID
identifica il thread proprietario dell'oggetto CWnd
attivato.
Osservazioni:
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnAmbientProperty
Il framework chiama questa funzione membro per ottenere i valori delle proprietà di ambiente da una finestra che contiene controlli OLE.
virtual BOOL OnAmbientProperty(
COleControlSite* pSite,
DISPID dispid,
VARIANT* pvar);
Parametri
pSite
Puntatore al sito del controllo che ha richiesto la proprietà di ambiente.
dispid
ID dispatch della proprietà di ambiente richiesta.
pvar
Puntatore a una struttura allocata VARIANT
dal chiamante, tramite cui verrà restituito il valore della proprietà di ambiente.
Valore restituito
TRUE
se la proprietà di ambiente è supportata; FALSE
se non.
Osservazioni:
Eseguire l'override di questa funzione per modificare i valori predefiniti delle proprietà di ambiente restituiti da un contenitore di controlli OLE ai relativi controlli. Tutte le richieste di proprietà di ambiente non gestite da una funzione di override devono essere inoltrate all'implementazione della classe di base.
CWnd::OnAppCommand
Il framework chiama questa funzione membro quando l'utente genera un evento di comando dell'applicazione. Questo evento si verifica quando l'utente fa clic su un pulsante di comando dell'applicazione o digita una chiave di comando dell'applicazione.
afx_msg void OnAppCommand(
CWnd* pWnd,
UINT nCmd,
UINT nDevice,
UINT nKey);
Parametri
pWnd
[in] Puntatore a un CWnd
oggetto che rappresenta la finestra in cui l'utente ha fatto clic sul pulsante di comando o ha premuto il tasto di comando. Questa finestra può essere una finestra figlio della finestra che riceve il messaggio.
nCmd
[in] Indica il comando dell'applicazione. Per un elenco dei valori possibili, vedere i comandi nella cmd
sezione del lParam
parametro di WM_APPCOMMAND
.
nDevice
[in] Dispositivo di input che ha generato l'evento di input. Per un elenco dei valori possibili, vedere i dispositivi nella uDevice
sezione del lParam
parametro di WM_APPCOMMAND
.
nKey
[in] Indica i tasti virtuali inattivi, ad esempio il tasto CTRL o il pulsante sinistro del mouse. Per un elenco dei valori possibili, vedere le chiavi nella dwKeys
sezione del lParam
parametro di WM_APPCOMMAND
. Per altre informazioni, vedere la sottotitolo "Parametri messaggio" in Informazioni sull'input del mouse.
Osservazioni:
Questo metodo riceve la WM_APPCOMMAND
notifica, descritta in Windows SDK.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnAskCbFormatName
Il framework chiama questa funzione membro quando gli Appunti contengono un handle di dati per il CF_OWNERDISPLAY
formato, ovvero quando il proprietario degli Appunti visualizzerà il contenuto degli Appunti.
afx_msg void OnAskCbFormatName(
UINT nMaxCount,
LPTSTR lpszString);
Parametri
nMaxCount
Specifica il numero massimo di byte da copiare.
lpszString
Punta al buffer in cui deve essere archiviata la copia del nome del formato.
Osservazioni:
Il proprietario degli Appunti deve specificare un nome per il relativo formato.
Eseguire l'override di questa funzione membro e copiare il nome del CF_OWNERDISPLAY
formato nel buffer specificato, senza superare il numero massimo di byte specificato.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnCancelMode
Il framework chiama questa funzione membro per informare CWnd
di annullare qualsiasi modalità interna.
afx_msg void OnCancelMode();
Osservazioni:
Se l'oggetto CWnd
ha lo stato attivo, la relativa OnCancelMode
funzione membro viene chiamata quando viene visualizzata una finestra di dialogo o una finestra di messaggio. In questo modo è CWnd
possibile annullare le modalità, ad esempio l'acquisizione del mouse.
L'implementazione predefinita risponde chiamando la ReleaseCapture
funzione Windows. Eseguire l'override di questa funzione membro nella classe derivata per gestire altre modalità.
CWnd::OnCaptureChanged
Il framework chiama questa funzione membro per notificare alla finestra che sta perdendo l'acquisizione del mouse.
afx_msg void OnCaptureChanged(CWnd* pWnd);
Parametri
pWnd
Puntatore alla finestra per ottenere l'acquisizione del mouse
Osservazioni:
Una finestra riceve questo messaggio anche se chiama ReleaseCapture
se stesso. Un'applicazione non deve tentare di impostare l'acquisizione del mouse in risposta a questo messaggio. Quando riceve questo messaggio, una finestra deve ridisegnarsi, se necessario, per riflettere il nuovo stato di acquisizione del mouse.
Per informazioni sulla ReleaseCapture
funzione Windows, vedere Windows SDK.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnChangeCbChain
Il framework chiama questa funzione membro per ogni finestra della catena del visualizzatore appunti per notificare che una finestra viene rimossa dalla catena.
afx_msg void OnChangeCbChain(
HWND hWndRemove,
HWND hWndAfter);
Parametri
hWndRemove
Specifica l'handle di finestra che viene rimosso dalla catena del visualizzatore appunti.
hWndAfter
Specifica l'handle di finestra che segue la finestra da rimuovere dalla catena del visualizzatore appunti.
Osservazioni:
Ogni CWnd
oggetto che riceve una OnChangeCbChain
chiamata deve usare la SendMessage
funzione Windows per inviare il WM_CHANGECBCHAIN
messaggio alla finestra successiva nella catena del visualizzatore Appunti (l'handle restituito da SetClipboardViewer
). Se hWndRemove
è la finestra successiva della catena, la finestra specificata da hWndAfter
diventa la finestra successiva e i messaggi degli Appunti vengono passati.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnChangeUIState
Chiamata eseguita quando lo stato dell'interfaccia utente deve essere modificato.
afx_msg void OnChangeUIState(
UINT nAction,
UINT nUIElement);
Parametri
nAction
Specifica l'azione da eseguire. I possibili valori sono i seguenti:
UIS_CLEAR
L'elemento dello stato dell'interfaccia utente (specificato danUIElement
) deve essere nascosto.UIS_INITIALIZE
L'elemento dello stato dell'interfaccia utente (specificato danUIElement
) deve essere modificato in base all'ultimo evento di input. Per altre informazioni, vedere la sezione Osservazioni diWM_CHANGEUISTATE
.UIS_SET
L'elemento dello stato dell'interfaccia utente (specificato danUIElement
) deve essere visibile.
nUIElement
Specifica gli elementi dello stato dell'interfaccia utente interessati o lo stile del controllo. I possibili valori sono i seguenti:
UISF_HIDEACCEL
Tasti di scelta rapida.UISF_HIDEFOCUS
Indicatori di stato attivo.UISF_ACTIVE
Windows XP: un controllo deve essere disegnato nello stile utilizzato per i controlli attivi.
Osservazioni:
Questa funzione membro emula la funzionalità del WM_CHANGEUISTATE
messaggio, come descritto in Windows SDK.
CWnd::OnChar
Il framework chiama questa funzione membro quando una sequenza di tasti viene convertita in un carattere non di sistema.
afx_msg void OnChar(
UINT nChar,
UINT nRepCnt,
UINT nFlags);
Parametri
nChar
Contiene il valore del codice carattere della chiave.
nRepCnt
Contiene il numero di ripetizioni, il numero di volte in cui la sequenza di tasti viene ripetuta quando l'utente tiene premuto il tasto.
nFlags
Contiene il codice di analisi, il codice di transizione della chiave, lo stato della chiave precedente e il codice di contesto, come illustrato nell'elenco seguente:
Valore | Significato |
---|---|
0-15 | Specifica il conteggio delle ripetizioni. Il valore è il numero di volte in cui la sequenza di tasti viene ripetuta in seguito all'utente che tiene premuto il tasto. |
16-23 | Specifica il codice di analisi. Il valore dipende dal produttore di apparecchiature originali (OEM) |
24 | Specifica se il tasto è un tasto esteso, ad esempio i tasti ALT e CTRL di destra visualizzati su una tastiera avanzata da 101 o 102 tasti. Il valore è 1 se è una chiave estesa; in caso contrario, è 0. |
25-28 | Utilizzato internamente da Windows. |
29 | Specifica il codice di contesto. Il valore è 1 se il tasto ALT viene premuto mentre viene premuto il tasto; in caso contrario, il valore è 0. |
30 | Specifica lo stato della chiave precedente. Il valore è 1 se la chiave è inattiva prima dell'invio del messaggio oppure è 0 se la chiave è inattiva. |
31 | Specifica lo stato di transizione. Il valore è 1 se il tasto viene rilasciato o è 0 se il tasto viene premuto. |
Osservazioni:
Questa funzione viene chiamata prima della OnKeyUp
funzione membro e dopo la chiamata della OnKeyDown
funzione membro. OnChar
contiene il valore del tasto da tastiera premuto o rilasciato.
Poiché non esiste necessariamente una corrispondenza uno-a-uno tra i tasti premuti e OnChar
le chiamate generate, le informazioni in nFlags
non sono in genere utili per le applicazioni. Le informazioni contenute in nFlags
si applicano solo alla chiamata più recente alla OnKeyUp
funzione membro o alla OnKeyDown
funzione membro che precede la chiamata a OnChar
.
Per le tastiere IBM Enhanced 101 e 102 tasti, i tasti avanzati sono i tasti ALT destro e i tasti CTRL destro nella sezione principale della tastiera; i tasti INS, DEL, HOME, END, PAGE UP, PAGE DOWN e freccia nei cluster a sinistra del tastierino numerico; e le barre (/) e i tasti INVIO nel tastierino numerico. Alcune altre tastiere possono supportare il bit del tasto esteso in nFlags
.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnCharToItem
Chiamato quando una casella di riepilogo con lo LBS_WANTKEYBOARDINPUT
stile invia al proprietario un WM_CHARTOITEM
messaggio in risposta a un WM_CHAR
messaggio.
afx_msg int OnCharToItem(
UINT nChar,
CListBox* pListBox,
UINT nIndex);
Parametri
nChar
Specifica il valore del tasto premuto dall'utente.
pListBox
Specifica un puntatore alla casella di riepilogo. Potrebbe essere temporaneo.
nIndex
Specifica la posizione corrente del cursore.
Valore restituito
Il framework chiama questa funzione membro per specificare l'azione eseguita dall'applicazione in risposta alla chiamata. Un valore restituito -2 indica che l'applicazione ha gestito tutti gli aspetti della selezione dell'elemento e non vuole eseguire altre azioni dalla casella di riepilogo. Il valore restituito -1 indica che la casella di riepilogo deve eseguire l'azione predefinita in risposta alla sequenza di tasti. Un valore restituito pari a 0 o superiore specifica l'indice in base zero di un elemento nella casella di riepilogo e indica che la casella di riepilogo deve eseguire l'azione predefinita per la sequenza di tasti sull'elemento specificato.
Osservazioni:
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnChildActivate
Se l'oggetto CWnd
è una finestra figlio MDI (Multiple Document Interface), OnChildActivate
viene chiamata dal framework quando l'utente fa clic sulla barra del titolo della finestra o quando la finestra viene attivata, spostata o ridimensionata.
afx_msg void OnChildActivate();
CWnd::OnChildNotify
Questa funzione membro viene chiamata dalla finestra padre di questa finestra quando riceve un messaggio di notifica applicabile a questa finestra.
virtual BOOL OnChildNotify(
UINT message,
WPARAM wParam,
LPARAM lParam,
LRESULT* pResult);
Parametri
message
Numero di messaggio di Windows inviato a una finestra padre.
wParam
Wparam associato al messaggio.
lParam
Lparam associato al messaggio.
pLResult
Puntatore a un valore da restituire dalla routine della finestra padre. Questo puntatore sarà NULL
se non è previsto alcun valore restituito.
Valore restituito
Diverso da zero se questa finestra è responsabile della gestione del messaggio inviato al relativo padre; in caso contrario, 0.
Osservazioni:
Non chiamare mai direttamente questa funzione membro.
L'implementazione predefinita di questa funzione membro restituisce 0, il che significa che l'elemento padre deve gestire il messaggio.
Eseguire l'override di questa funzione membro per estendere il modo in cui un controllo risponde ai messaggi di notifica.
CWnd::OnClipboardUpdate
Il framework chiama questa funzione membro quando il contenuto degli Appunti è stato modificato.
afx_msg void OnClipboardUpdate();
CWnd::OnClose
Il framework chiama questa funzione membro come segnale che o CWnd
un'applicazione deve terminare.
afx_msg void OnClose();
Osservazioni:
L'implementazione predefinita chiama DestroyWindow
.
CWnd::OnColorizationColorChanged
Il framework chiama questo membro quando i criteri di rendering per l'area non client sono stati modificati.
afx_msg void OnColorizationColorChanged(
DWORD dwColorizationColor,
BOOL bOpacity);
Parametri
dwColorizationColor
[in] Specifica il nuovo colore di colorazione. Il formato del colore è un numero esadecimale del formato 0xAARRGGBB, dove ognuno dei quattro componenti varia da 0x00 a 0xFF. Il componente AA è il valore alfa, RR è il colore rosso, GG è verde e BB è blu.
bOpacity
[in] TRUE
se il nuovo colore viene mescolato con opacità; FALSE
se non lo è.
Osservazioni:
Questo metodo riceve il WM_DWMNCRENDERINGCHANGED
messaggio di notifica, descritto in Windows SDK.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnCommand
Il framework chiama questa funzione membro quando l'utente seleziona una voce da un menu, quando un controllo figlio invia un messaggio di notifica o quando viene convertita una sequenza di tasti di scelta rapida.
virtual BOOL OnCommand(
WPARAM wParam,
LPARAM lParam);
Parametri
wParam
La parola in ordine basso di wParam
identifica l'ID comando della voce di menu, del controllo o dell'acceleratore. La parola di ordine elevato di specifica il messaggio di wParam
notifica se il messaggio proviene da un controllo . Se il messaggio proviene da un acceleratore, la parola di ordine elevato è 1. Se il messaggio proviene da un menu, la parola di ordine elevato è 0.
lParam
Identifica il controllo che invia il messaggio se il messaggio proviene da un controllo . In caso contrario, lParam
è 0.
Valore restituito
Un'applicazione restituisce un valore diverso da zero se elabora questo messaggio; in caso contrario, 0.
Osservazioni:
OnCommand
elabora la mappa dei messaggi per le notifiche di controllo e ON_COMMAND
le voci e chiama la funzione membro appropriata.
Eseguire l'override di questa funzione membro nella classe derivata per gestire il WM_COMMAND
messaggio. Un override non elabora la mappa messaggi a meno che non venga chiamata la classe OnCommand
di base.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnCompacting
Il framework chiama questa funzione membro per tutte le finestre di primo livello quando Windows rileva che più del 12,5% del tempo di sistema in un intervallo da 30 a 60 secondi viene impiegato per compattare la memoria.
afx_msg void OnCompacting(UINT nCpuTime);
Parametri
nCpuTime
Specifica il rapporto tra il tempo di CPU attualmente impiegato da Windows compattando la memoria al tempo di CPU impiegato per l'esecuzione di altre operazioni. Ad esempio, 8000h rappresenta il 50% del tempo di CPU impiegato per compattare la memoria.
Osservazioni:
Ciò indica che la memoria di sistema è insufficiente.
Quando un CWnd
oggetto riceve questa chiamata, deve liberare la maggior quantità di memoria possibile, tenendo conto del livello corrente di attività dell'applicazione e del numero totale di applicazioni in esecuzione in Windows. L'applicazione può chiamare la funzione Windows per determinare il numero di applicazioni in esecuzione.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnCompareItem
Il framework chiama questa funzione membro per specificare la posizione relativa di un nuovo elemento in una casella combinata o casella di riepilogo di disegno proprietario ordinata figlio.
afx_msg int OnCompareItem(
int nIDCtl,
LPCOMPAREITEMSTRUCT lpCompareItemStruct);
Parametri
nIDCtl
Identificatore del controllo che ha inviato il WM_COMPAREITEM
messaggio.
lpCompareItemStruct
Contiene un puntatore lungo a una COMPAREITEMSTRUCT
struttura di dati che contiene gli identificatori e i dati forniti dall'applicazione per due elementi nella casella combinata o nella casella di riepilogo.
Valore restituito
Indica la posizione relativa dei due elementi. Può trattarsi di uno dei valori seguenti:
Valore | Significato |
---|---|
-1 | L'elemento 1 ordina prima dell'elemento 2. |
0 | L'elemento 1 e l'elemento 2 ordinano lo stesso. |
1 | L'elemento 1 viene ordinato dopo l'elemento 2. |
Osservazioni:
Se viene creata una casella combinata o una casella di riepilogo con lo CBS_SORT
stile o LBS_SORT
, Windows invia al proprietario della casella combinata o della casella di riepilogo un WM_COMPAREITEM
messaggio ogni volta che l'applicazione aggiunge un nuovo elemento.
Due elementi nella casella combinata o di riepilogo vengono riformati in una COMPAREITEMSTRUCT
struttura a lpCompareItemStruct
cui punta . OnCompareItem
deve restituire un valore che indica quale degli elementi deve essere visualizzato prima dell'altro. In genere, Windows effettua questa chiamata più volte fino a quando non determina la posizione esatta per il nuovo elemento.
Se il hwndItem
membro della COMPAREITEMSTRUCT
struttura appartiene a un CListBox
oggetto o CComboBox
, viene chiamata la CompareItem
funzione virtuale della classe appropriata. Eseguire l'override CComboBox::CompareItem
o CListBox::CompareItem
nella classe derivata CListBox
o CComboBox
per eseguire il confronto degli elementi.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnCompositionChanged
Il framework chiama questa funzione membro per tutte le finestre di primo livello quando la composizione Desktop Window Manager (DWM) è abilitata o disabilitata.
afx_msg void OnCompositionChanged();
Osservazioni:
Questo metodo riceve la WM_DWMCOMPOSITIONCHANGED
notifica, descritta in Windows SDK.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnContextMenu
Chiamato dal framework quando l'utente ha fatto clic sul pulsante destro del mouse (fatto clic con il pulsante destro del mouse) nella finestra.
afx_msg void OnContextMenu(
CWnd* pWnd,
CPoint pos);
Parametri
pWnd
Handle per la finestra in cui l'utente ha fatto clic con il pulsante destro del mouse. Può trattarsi di una finestra figlio della finestra che riceve il messaggio. Per altre informazioni sull'elaborazione di questo messaggio, vedere la sezione Osservazioni.
pos
Posizione del cursore, nelle coordinate dello schermo, al momento del clic del mouse.
Osservazioni:
È possibile elaborare questo messaggio visualizzando un menu di scelta rapida usando .TrackPopupMenu
Se non viene visualizzato un menu di scelta rapida, è necessario passare questo messaggio alla DefWindowProc
funzione. Se la finestra è una finestra figlio, DefWindowProc
invia il messaggio all'elemento padre. In caso contrario, DefWindowProc
visualizza un menu di scelta rapida predefinito se la posizione specificata si trova nella didascalia della finestra.
CWnd::OnCopyData
Questa funzione membro viene chiamata dal framework per copiare i dati da un'applicazione a un'altra.
afx_msg BOOL OnCopyData(
CWnd* pWnd,
COPYDATASTRUCT* pCopyDataStruct);
Parametri
pWnd
Puntatore a un CWnd
oggetto che invia i dati.
pCopyDataStruct
Puntatore a una COPYDATASTRUCT
struttura che contiene i dati inviati.
Valore restituito
Restituisce se l'applicazione ricevente TRUE
accetta correttamente i dati. In caso contrario, restituisce FALSE
.
Osservazioni:
I dati passati non devono contenere puntatori o altri riferimenti a oggetti non accessibili all'applicazione che riceve i dati.
Mentre i dati sono in corso di copia, non devono essere modificati da un altro thread del processo di invio.
L'applicazione ricevente deve considerare i dati di sola lettura. La struttura a cui punta il parametro pCopyDataStruct
è valida solo durante il trasferimento dei dati. Tuttavia, l'applicazione ricevente non deve liberare la memoria associata alla struttura.
Se l'applicazione ricevente deve accedere ai dati dopo la restituzione di questa funzione, deve copiare i dati ricevuti in un buffer locale.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnCreate
Il framework chiama questa funzione membro quando un'applicazione richiede che la finestra di Windows venga creata chiamando la Create
funzione membro o CreateEx
.
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
Parametri
lpCreateStruct
Punta a una CREATESTRUCT
struttura che contiene informazioni sull'oggetto CWnd
creato.
Valore restituito
OnCreate
deve restituire 0 per continuare la creazione dell'oggetto CWnd
. Se l'applicazione restituisce -1, la finestra verrà eliminata definitivamente.
Osservazioni:
L'oggetto CWnd
riceve questa chiamata dopo la creazione della finestra, ma prima che diventi visibile. OnCreate
viene chiamato prima della restituzione della Create
funzione membro o CreateEx
.
Eseguire l'override di questa funzione membro per eseguire l'inizializzazione necessaria di una classe derivata.
La CREATESTRUCT
struttura contiene copie dei parametri utilizzati per creare la finestra.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnCtlColor
Il framework chiama questa funzione membro quando un controllo figlio sta per essere disegnato.
afx_msg HBRUSH OnCtlColor(
CDC* pDC,
CWnd* pWnd,
UINT nCtlColor);
Parametri
pDC
Contiene un puntatore al contesto di visualizzazione per la finestra figlio. Può essere temporaneo.
pWnd
Contiene un puntatore al controllo che richiede il colore. Può essere temporaneo.
nCtlColor
Contiene uno dei valori seguenti, specificando il tipo di controllo:
CTLCOLOR_BTN
Controllo PulsanteCTLCOLOR_DLG
Finestra di dialogoCTLCOLOR_EDIT
Modifica controlloCTLCOLOR_LISTBOX
Controllo Casella di riepilogoCTLCOLOR_MSGBOX
Finestra di messaggioCTLCOLOR_SCROLLBAR
Controllo barra di scorrimentoCTLCOLOR_STATIC
Controllo statico
Valore restituito
OnCtlColor
deve restituire un handle al pennello da utilizzare per disegnare lo sfondo del controllo.
Osservazioni:
La maggior parte dei controlli invia questo messaggio al relativo padre (in genere una finestra di dialogo) per preparare l'oggetto pDC
per disegnare il controllo utilizzando i colori corretti.
Per modificare il colore del testo, chiamare la SetTextColor
funzione membro con i valori rosso, verde e blu (RGB) desiderati.
Per modificare il colore di sfondo di un controllo di modifica a riga singola, impostare l'handle del pennello nei CTLCOLOR_EDIT
codici e CTLCOLOR_MSGBOX
e chiamare la CDC::SetBkColor
funzione in risposta al CTLCOLOR_EDIT
codice.
OnCtlColor
non verrà chiamato per la casella di riepilogo di una casella combinata a discesa perché la casella di riepilogo a discesa è effettivamente un elemento figlio della casella combinata e non un elemento figlio della finestra. Per modificare il colore della casella di riepilogo a discesa, creare un CComboBox
oggetto con un override di OnCtlColor
che controlla CTLCOLOR_LISTBOX
nel nCtlColor
parametro . In questo gestore, la SetBkColor
funzione membro deve essere usata per impostare il colore di sfondo per il testo.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione. Per aggiungere il metodo seguente alla classe di dialogo, usare il riquadro delle proprietà di Visual Studio per aggiungere un gestore messaggi per WM_CTLCOLOR
. In alternativa, è possibile aggiungere manualmente una ON_WM_CTLCOLOR()
voce alla mappa dei messaggi.
Esempio
// 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
Il framework chiama questa funzione membro quando vengono chiamate la OnKeyUp
funzione membro e le OnKeyDown
funzioni membro.
afx_msg void OnDeadChar(
UINT nChar,
UINT nRepCnt,
UINT nFlags);
Parametri
nChar
Specifica il valore del carattere non recapitabili.
nRepCnt
Specifica il conteggio delle ripetizioni.
nFlags
Specifica il codice di analisi, il codice di transizione della chiave, lo stato della chiave precedente e il codice di contesto, come illustrato nell'elenco seguente:
valore | Descrizione |
---|---|
0-7 | Codice di analisi (valore dipendente dall'OEM). Byte basso di parola di ordine elevato. |
8 | Tasto esteso, ad esempio un tasto funzione o un tasto sul tastierino numerico (1 se è un tasto esteso; in caso contrario, 0). |
9-10 | Non utilizzato. |
11-12 | Utilizzato internamente da Windows. |
13 | Codice di contesto (1 se il tasto ALT viene premuto mentre viene premuto il tasto; in caso contrario, 0). |
14 | Stato della chiave precedente (1 se la chiave è inattiva prima della chiamata, 0 se la chiave è inattiva). |
15 | Stato di transizione (1 se il tasto viene rilasciato, 0 se viene premuto il tasto). |
Osservazioni:
Questa funzione membro può essere utilizzata per specificare il valore del carattere di una chiave non usata. Una chiave morta è una chiave, ad esempio il carattere umlaut (doppio punto), combinato con altri caratteri per formare un carattere composito. Ad esempio, il carattere umlaut-O è costituito dalla chiave morta, dall'umlaut e dalla chiave O.
Un'applicazione usa OnDeadChar
in genere per fornire all'utente commenti e suggerimenti su ogni tasto premuto. Ad esempio, un'applicazione può visualizzare l'accento nella posizione del carattere corrente senza spostare il cursore.
Poiché non esiste necessariamente una corrispondenza uno-a-uno tra i tasti premuti e OnDeadChar
le chiamate, le informazioni in nFlags
non sono in genere utili per le applicazioni. Le informazioni contenute in nFlags
si applicano solo alla chiamata più recente alla OnKeyUp
funzione membro o alla OnKeyDown
funzione membro che precede la OnDeadChar
chiamata.
Per le tastiere IBM Enhanced 101 e 102 tasti, i tasti avanzati sono i tasti ALT destro e i tasti CTRL destro nella sezione principale della tastiera; i tasti INS, DEL, HOME, END, PAGE UP, PAGE DOWN e freccia nei cluster a sinistra del tastierino numerico; e le barre (/) e i tasti INVIO nel tastierino numerico. Alcune altre tastiere possono supportare il bit del tasto esteso in nFlags
.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnDeleteItem
Il framework chiama questa funzione membro per informare il proprietario di una casella di riepilogo o di una casella combinata di disegno proprietario che la casella di riepilogo o la casella combinata viene eliminata definitivamente o che gli elementi sono stati rimossi da CComboBox::DeleteString
, CListBox::DeleteString
CComboBox::ResetContent
, o CListBox::ResetContent
.
afx_msg void OnDeleteItem(
int nIDCtl,
LPDELETEITEMSTRUCT lpDeleteItemStruct);
Parametri
nIDCtl
Identificatore del controllo che ha inviato il WM_DELETEITEM
messaggio.
lpDeleteItemStruct
Specifica un puntatore lungo a una DELETEITEMSTRUCT
struttura di dati che contiene informazioni sull'elemento della casella di riepilogo eliminata.
Osservazioni:
Se il hwndItem
membro della DELETEITEMSTRUCT
struttura appartiene a una casella combinata o a una casella di riepilogo, viene chiamata la DeleteItem
funzione virtuale della classe appropriata. Eseguire l'override della DeleteItem
funzione membro della classe del controllo appropriato per eliminare dati specifici dell'elemento.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnDestroy
Il framework chiama questa funzione membro per informare l'oggetto CWnd
che viene eliminato definitivamente.
afx_msg void OnDestroy();
Osservazioni:
OnDestroy
viene chiamato dopo la rimozione dell'oggetto CWnd
dalla schermata.
OnDestroy
viene chiamato prima per l'essere CWnd
distrutti, poi per le finestre figlio di CWnd
come vengono distrutte. Si può presumere che tutte le finestre figlio esistano ancora durante OnDestroy
l'esecuzione.
Se l'oggetto CWnd
distrutto fa parte della catena del visualizzatore appunti (impostata chiamando la SetClipboardViewer
funzione membro), l'oggetto CWnd
deve rimuovere se stesso dalla catena del visualizzatore Appunti chiamando la ChangeClipboardChain
funzione membro prima di restituire dalla OnDestroy
funzione .
CWnd::OnDestroyClipboard
Il framework chiama questa funzione membro per il proprietario degli Appunti quando gli Appunti vengono svuotati tramite una chiamata alla EmptyClipboard
funzione Windows.
afx_msg void OnDestroyClipboard();
CWnd::OnDeviceChange
Il framework chiama questa funzione membro per notificare a un'applicazione o a un driver di dispositivo una modifica alla configurazione hardware di un dispositivo o del computer.
afx_msg BOOL OnDeviceChange(
UINT nEventType,
DWORD_PTR dwData);
Parametri
nEventType
Tipo di evento. Per una descrizione dei valori disponibili, vedere la sezione Osservazioni
dwData
Indirizzo di una struttura che contiene dati specifici dell'evento. Il suo significato dipende dall'evento specificato.
Osservazioni:
Per i dispositivi che offrono funzionalità controllabili dal software, ad esempio l'espulsione e il blocco, il sistema operativo in genere invia un DBT_DEVICEREMOVEPENDING
messaggio per consentire alle applicazioni e ai driver di dispositivo di terminare normalmente l'uso del dispositivo.
Se il sistema operativo rimuove forzatamente un dispositivo, potrebbe non inviare un DBT_DEVICEQUERYREMOVE
messaggio prima di farlo.
Il nEvent
parametro può essere uno dei valori seguenti:
DBT_DEVICEARRIVAL
Un dispositivo è stato inserito ed è ora disponibile.DBT_DEVICEQUERYREMOVE
È richiesta l'autorizzazione per rimuovere un dispositivo. Qualsiasi applicazione può negare questa richiesta e annullare la rimozione.DBT_DEVICEQUERYREMOVEFAILED
La richiesta di rimozione di un dispositivo è stata annullata.DBT_DEVICEREMOVEPENDING
Il dispositivo sta per essere rimosso. Non può essere negato.DBT_DEVICEREMOVECOMPLETE
Il dispositivo è stato rimosso.DBT_DEVICETYPESPECIFIC
Evento specifico del dispositivo.DBT_CONFIGCHANGED
La configurazione corrente è stata modificata.DBT_DEVNODES_CHANGED
Il nodo del dispositivo è stato modificato.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnDevModeChange
Il framework chiama questa funzione membro per tutti gli oggetti di primo livello CWnd
quando l'utente modifica le impostazioni della modalità dispositivo.
afx_msg void OnDevModeChange(LPTSTR lpDeviceName);
Parametri
lpDeviceName
Punta al nome del dispositivo specificato nel file di inizializzazione di Windows, WIN.INI
.
Osservazioni:
Le applicazioni che gestiscono il WM_DEVMODECHANGE
messaggio possono reinizializzare le impostazioni in modalità dispositivo. Le applicazioni che usano la funzione Windows ExtDeviceMode
per salvare e ripristinare le impostazioni del dispositivo in genere non elaborano questa funzione.
Questa funzione non viene chiamata quando l'utente modifica la stampante predefinita da Pannello di controllo. In questo caso, viene chiamata la OnWinIniChange
funzione .
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnDrawClipboard
Il framework chiama questa funzione membro per ogni finestra della catena del visualizzatore Appunti quando il contenuto degli Appunti cambia.
afx_msg void OnDrawClipboard();
Osservazioni:
Solo le applicazioni che hanno aggiunto la catena del visualizzatore appunti chiamando la SetClipboardViewer
funzione membro devono rispondere a questa chiamata.
Ogni finestra che riceve una OnDrawClipboard
chiamata deve chiamare la SendMessage
funzione di Windows per passare un WM_DRAWCLIPBOARD
messaggio alla finestra successiva nella catena del visualizzatore Appunti. L'handle della finestra successiva viene restituito dalla SetClipboardViewer
funzione membro; può essere modificato in risposta a una OnChangeCbChain
chiamata di funzione membro.
CWnd::OnDrawIconicThumbnailOrLivePreview
Chiamata eseguita dal framework quando è necessario ottenere una bitmap da visualizzare nell'anteprima della scheda di Windows 7 o nel client per l'anteprima dell'applicazione.
virtual void OnDrawIconicThumbnailOrLivePreview(
CDC& dc,
CRect rect,
CSize szRequiredThumbnailSize,
BOOL bIsThumbnail,
BOOL& bAlphaChannelSet);
Parametri
dc
Specifica il contesto del dispositivo.
rect
Specifica il rettangolo di delimitazione dell'area di cui eseguire il rendering.
szRequiredThumbnailSize
Specifica le dimensioni dell'anteprima di destinazione. Deve essere ignorato se bIsThumbnail
è FALSE
.
bIsThumbnail
Specifica se questo metodo viene chiamato per l'anteprima iconica o l'anteprima in tempo reale (anteprima).
bAlphaChannelSet
[out] Impostarlo su TRUE
se l'implementazione inizializza il canale alfa di una bitmap selezionata in dc
.
Osservazioni:
Eseguire l'override di questo metodo in una classe derivata e disegnare sul contesto di dispositivo specificato per personalizzare l'anteprima e la visualizzazione. Se bThumbnail
è TRUE
, szRequiredThumbnailSize
può essere ignorato. In questo caso, è necessario tenere presente che si disegna bitmap di dimensioni complete, ovvero una bitmap che copre l'intera area client. Il contesto di dispositivo (dc
) viene fornito con bitmap a 32 bit selezionata. L'implementazione predefinita invia WM_PRINT
a questa finestra con PRF_CLIENT
flag , PRF_CHILDREN
e PRF_NONCLIENT
.
CWnd::OnDrawItem
Il framework chiama questa funzione membro per il proprietario di un controllo pulsante di disegno proprietario, controllo casella combinata, controllo casella di riepilogo o menu quando un aspetto visivo del controllo o del menu è stato modificato.
afx_msg void OnDrawItem(
int nIDCtl,
LPDRAWITEMSTRUCT lpDrawItemStruct);
Parametri
nIDCtl
Contiene l'identificatore del controllo che ha inviato il WM_DRAWITEM
messaggio. Se un menu ha inviato il messaggio, nIDCtl
contiene 0.
lpDrawItemStruct
Specifica un puntatore lungo a una DRAWITEMSTRUCT
struttura di dati che contiene informazioni sull'elemento da disegnare e sul tipo di disegno necessario.
Osservazioni:
Il itemAction
membro della DRAWITEMSTRUCT
struttura definisce l'operazione di disegno da eseguire. I dati in questo membro consentono al proprietario del controllo di determinare quale azione di disegno è necessaria.
Prima di tornare dall'elaborazione di questo messaggio, un'applicazione deve assicurarsi che il hDC
contesto del dispositivo identificato dal membro della DRAWITEMSTRUCT
struttura venga ripristinato allo stato predefinito.
Se il hwndItem
membro appartiene a un CButton
oggetto , CMenu
, CListBox
o CComboBox , viene chiamata la DrawItem
funzione virtuale della classe appropriata. Eseguire l'override della DrawItem
funzione membro della classe del controllo appropriato per disegnare l'elemento.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnDropFiles
Il framework chiama questa funzione membro quando l'utente rilascia il pulsante sinistro del mouse su una finestra che si è registrata come destinatario di file eliminati.
afx_msg void OnDropFiles(HDROP hDropInfo);
Parametri
hDropInfo
Puntatore a una struttura di dati interna che descrive i file eliminati. Questo handle viene usato dalle DragFinish
funzioni , DragQueryFile
e DragQueryPoint
di Windows per recuperare informazioni sui file eliminati.
Osservazioni:
In genere, una classe derivata sarà progettata per supportare i file eliminati e si registrerà durante la costruzione della finestra.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnEnable
Il framework chiama questa funzione membro quando un'applicazione modifica lo stato abilitato dell'oggetto CWnd
.
afx_msg void OnEnable(BOOL bEnable);
Parametri
bEnable
Specifica se l'oggetto CWnd
è stato abilitato o disabilitato. Questo parametro è TRUE
se CWnd
è stato abilitato; è FALSE
se è CWnd
stato disabilitato.
Osservazioni:
OnEnable
viene chiamato prima della restituzione della EnableWindow
funzione membro, ma dopo la modifica dello stato abilitato della finestra (WS_DISABLED
bit di stile).
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnEndSession
Il framework chiama questa funzione membro dopo che l'oggetto CWnd
ha restituito un valore diverso da zero da una OnQueryEndSession
chiamata di funzione membro.
afx_msg void OnEndSession(BOOL bEnding);
Parametri
bEnding
Specifica se la sessione viene terminata o meno. È TRUE
se la sessione viene terminata; in caso contrario FALSE
, .
Osservazioni:
La OnEndSession
chiamata informa l'oggetto CWnd
se la sessione sta effettivamente terminando.
Se bEnding
è TRUE
, Windows può terminare in qualsiasi momento dopo che tutte le applicazioni sono state restituite dall'elaborazione di questa chiamata. Di conseguenza, un'applicazione esegue tutte le attività necessarie per la terminazione all'interno di OnEndSession
.
Non è necessario chiamare la funzione membro o PostQuitMessage
la DestroyWindow
funzione Windows al termine della sessione.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnEnterIdle
Il framework chiama questa funzione membro per informare la routine della finestra principale di un'applicazione che indica che una finestra di dialogo modale o un menu sta immettendo uno stato di inattività.
afx_msg void OnEnterIdle(
UINT nWhy,
CWnd* pWho);
Parametri
nWhy
Specifica se il messaggio è il risultato di una finestra di dialogo o di un menu visualizzato. Questo parametro può avere uno dei valori seguenti:
MSGF_DIALOGBOX
Il sistema è inattiva perché viene visualizzata una finestra di dialogo.MSGF_MENU
Il sistema è inattiva perché viene visualizzato un menu.
pWho
Specifica un puntatore alla finestra di dialogo (se nWhy
è MSGF_DIALOGBOX
) o alla finestra contenente il menu visualizzato (se nWhy
è MSGF_MENU
). Questo puntatore può essere temporaneo e non deve essere archiviato per un uso successivo.
Osservazioni:
Una finestra di dialogo modale o un menu entra in uno stato di inattività quando nessun messaggio è in attesa nella coda dopo l'elaborazione di uno o più messaggi precedenti.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnEnterMenuLoop
Il framework chiama questa funzione membro quando è stato immesso un ciclo modale di menu.
afx_msg void OnEnterMenuLoop(BOOL bIsTrackPopupMenu);
Parametri
bIsTrackPopupMenu
Specifica se il menu interessato è un menu popup. Ha un valore diverso da zero se la funzione ha esito positivo; in caso contrario, 0.
Osservazioni:
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnEnterSizeMove
Il framework chiama questa funzione membro una volta dopo che la finestra interessata entra in un ciclo modale in movimento o ridimensionamento.
afx_msg void OnEnterSizeMove();
Osservazioni:
Questo metodo riceve la WM_ENTERSIZEMOVE
notifica, descritta in Windows SDK.
Una finestra entra in un ciclo modale di spostamento o ridimensionamento quando l'utente fa clic sulla barra del titolo o sul bordo di ridimensionamento della finestra oppure quando la finestra passa il WM_SYSCOMMAND
messaggio alla CWnd::DefWindowProc
funzione e il parametro wParam di tale messaggio specifica SC_MOVE
o SC_SIZE
.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnEraseBkgnd
Il framework chiama questa funzione membro quando lo sfondo dell'oggetto CWnd
deve cancellare (ad esempio, quando viene ridimensionato).
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
Parametri
pDC
Specifica l'oggetto device-context.
Valore restituito
Diverso da zero se cancella lo sfondo; in caso contrario, 0.
Osservazioni:
Viene chiamato per preparare un'area invalidata per la pittura.
L'implementazione predefinita cancella lo sfondo usando il pennello di sfondo della classe finestra specificato dal hbrBackground
membro della struttura della classe finestra.
Se il hbrBackground
membro è NULL
, la versione sottoposta a override di deve cancellare il colore di OnEraseBkgnd
sfondo. La versione deve anche allineare l'origine del pennello desiderato con le CWnd
coordinate chiamando UnrealizeObject
prima per il pennello e quindi selezionando il pennello.
Un override OnEraseBkgnd
deve restituire un valore diverso da zero in risposta a WM_ERASEBKGND
se elabora il messaggio e cancella lo sfondo. Ciò indica che non è necessaria ulteriore cancellazione. Se restituisce 0, la finestra rimarrà contrassegnata come necessario per essere cancellata. In genere, ciò significa che il fErase
membro della PAINTSTRUCT
struttura sarà TRUE
.)
Windows presuppone che lo sfondo venga calcolato con la MM_TEXT
modalità di mapping. Se il contesto del dispositivo usa qualsiasi altra modalità di mapping, l'area cancellata potrebbe non trovarsi nella parte visibile dell'area client.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnExitMenuLoop
Il framework chiama questa funzione membro quando un ciclo modale del menu è stato chiuso.
afx_msg void OnExitMenuLoop(BOOL bIsTrackPopupMenu);
Parametri
bIsTrackPopupMenu
Specifica se il menu interessato è un menu a comparsa. Ha un valore diverso da zero se la funzione ha esito positivo; in caso contrario, 0.
Osservazioni:
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnExitSizeMove
Il framework chiama questa funzione membro una volta dopo che la finestra interessata esce da un ciclo modale di spostamento o ridimensionamento.
afx_msg void OnExitSizeMove();
Osservazioni:
Questo metodo riceve la WM_EXITSIZEMOVE
notifica, descritta in Windows SDK.
Una finestra entra in un ciclo modale di spostamento o ridimensionamento quando l'utente fa clic sulla barra del titolo o sul bordo di ridimensionamento della finestra oppure quando la finestra passa il WM_SYSCOMMAND
messaggio alla CWnd::DefWindowProc
funzione e il wParam
parametro di tale messaggio specifica SC_MOVE
o SC_SIZE
.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnFontChange
Tutte le finestre di primo livello del sistema ricevono una OnFontChange
chiamata dal framework dopo che l'applicazione modifica il pool di risorse del tipo di carattere.
afx_msg void OnFontChange();
Osservazioni:
Un'applicazione che aggiunge o rimuove i tipi di carattere dal sistema ,ad esempio tramite la AddFontResource
funzione o RemoveFontResource
Windows, deve inviare il WM_FONTCHANGE
messaggio a tutte le finestre di primo livello.
Per inviare questo messaggio, usare la SendMessage
funzione Windows con il hWnd
parametro impostato su HWND_BROADCAST
.
CWnd::OnGetDlgCode
Chiamata eseguita per un controllo in modo che il controllo possa elaborare esso stesso l'input con tasto di direzione e tasto TAB.
afx_msg UINT OnGetDlgCode();
Valore restituito
Uno o più dei valori seguenti, che indicano il tipo di input che l'applicazione elabora:
DLGC_BUTTON
Pulsante (generico).DLGC_DEFPUSHBUTTON
Pulsante di scelta predefinito.DLGC_HASSETSEL
EM_SETSEL
Messaggi.DLGC_UNDEFPUSHBUTTON
Nessuna elaborazione pushbutton predefinita. Un'applicazione può usare questo flag conDLGC_BUTTON
per indicare che elabora l'input del pulsante, ma si basa sul sistema per l'elaborazione del pulsante di scelta predefinita.DLGC_RADIOBUTTON
Pulsante di opzione.DLGC_STATIC
Controllo statico.DLGC_WANTALLKEYS
Tutti gli input da tastiera.DLGC_WANTARROWS
Tasti di direzione.DLGC_WANTCHARS
WM_CHAR
Messaggi.DLGC_WANTMESSAGE
Tutti gli input da tastiera. L'applicazione passa questo messaggio al controllo .DLGC_WANTTAB
TASTO TAB.
Osservazioni:
In genere, Windows gestisce tutti gli input di tasti freccia e tasto TAB a un CWnd
controllo. Eseguendo l'override di OnGetDlgCode
, un CWnd
controllo può scegliere un particolare tipo di input da elaborare.
Le funzioni predefinite OnGetDlgCode
per le classi di controllo predefinite restituiscono un codice appropriato per ogni classe.
CWnd::OnGetMinMaxInfo
Il framework chiama questa funzione membro ogni volta che Windows deve conoscere la posizione o le dimensioni ingrandita o le dimensioni minime o massime di rilevamento.
afx_msg void OnGetMinMaxInfo(MINMAXINFO* lpMMI);
Parametri
lpMMI
Punta a una MINMAXINFO
struttura che contiene informazioni sulle dimensioni e la posizione ingrandita di una finestra e la relativa dimensione minima e massima di rilevamento. Per altre informazioni su questa struttura, vedere la MINMAXINFO
struttura .
Osservazioni:
La dimensione ingrandita è la dimensione della finestra quando i bordi sono completamente estesi. La dimensione massima di rilevamento della finestra è la dimensione massima della finestra che può essere ottenuta utilizzando i bordi per ridimensionare la finestra. La dimensione minima di rilevamento della finestra è la dimensione della finestra più piccola che può essere ottenuta utilizzando i bordi per ridimensionare la finestra.
Windows riempie una matrice di punti specificando i valori predefiniti per le varie posizioni e dimensioni. L'applicazione può modificare questi valori in OnGetMinMaxInfo
.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnHelp
Gestisce F1 Guida all'interno dell'applicazione (usando il contesto corrente).
afx_msg void OnHelp();
Osservazioni:
Per altre informazioni, vedere CWinApp::OnHelp
.
CWnd::OnHelpFinder
Gestisce i ID_HELP_FINDER
comandi e ID_DEFAULT_HELP
.
afx_msg void OnHelpFinder();
Osservazioni:
Per altre informazioni, vedere CWinApp::OnHelpFinder
.
CWnd::OnHelpIndex
Gestisce il ID_HELP_INDEX
comando e fornisce un argomento della Guida predefinito.
afx_msg void OnHelpIndex();
Osservazioni:
Per altre informazioni, vedere CWinApp::OnHelpIndex
.
CWnd::OnHelpInfo
Chiamata eseguita dal framework quando l'utente preme F1.
afx_msg BOOL OnHelpInfo(HELPINFO* lpHelpInfo);
Parametri
lpHelpInfo
Puntatore a una HELPINFO
struttura che contiene informazioni sulla voce di menu, il controllo, la finestra di dialogo o la finestra per cui viene richiesta la Guida.
Valore restituito
Restituisce TRUE
se una finestra ha lo stato attivo della tastiera o se un menu è attivo all'interno di una finestra. Se nessuna finestra ha lo stato attivo della tastiera, restituisce FALSE
.
Osservazioni:
Se un menu è attivo quando si preme F1, WM_HELP
viene inviato alla finestra associata al menu; in caso contrario, WM_HELP
viene inviato alla finestra con lo stato attivo della tastiera. Se nessuna finestra ha lo stato attivo della tastiera, WM_HELP
viene inviata alla finestra attualmente attiva.
CWnd::OnHelpUsing
Gestisce il comando ID_HELP_USING
.
afx_msg void OnHelpUsing();
Osservazioni:
Per altre informazioni, vedere CWinApp::OnHelpUsing
.
CWnd::OnHotKey
Il framework chiama questa funzione membro quando l'utente preme un tasto di scelta rapida a livello di sistema.
afx_msg void OnHotKey(
UINT nHotKeyId,
UINT nKey1,
UINT nKey2);
Parametri
nHotKeyId
[in] Identificatore per la chiave di scelta rapida che ha generato il messaggio. Se il messaggio è stato generato da una chiave di scelta rapida definita dal sistema, questo parametro sarà uno dei valori seguenti:
IDHOT_SNAPDESKTOP
- È stato premuto il tasto di scelta rapida del desktop snap.IDHOT_SNAPWINDOW
- È stato premuto il tasto di scelta rapida della finestra di ancoraggio.
nKey1
[in] Combinazione bit per bit (OR) di flag che indicano i tasti premuti in combinazione con il tasto specificato dal nKey2
parametro . I valori possibili sono:
MOD_ALT
- Entrambi i tasti ALT sono stati mantenuti.MOD_CONTROL
- Il tasto CTRL è stato premuto.MOD_SHIFT
- Il tasto MAIUSC è stato premuto.MOD_WIN
- Entrambi i tasti WINDOWS sono stati mantenuti. Queste chiavi vengono etichettate con il logo di Microsoft Windows.
nKey2
[in] Codice della chiave virtuale del tasto di scelta rapida.
Osservazioni:
Questo metodo riceve la WM_HOTKEY
notifica, descritta in Windows SDK. Questo messaggio viene posizionato nella parte superiore della coda di messaggi associata al thread che ha registrato il tasto di scelta rapida. Usare la RegisterHotKey
funzione per registrare un tasto di scelta rapida a livello di sistema.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnHScroll
Il framework chiama questa funzione membro quando l'utente fa clic sulla barra di scorrimento orizzontale di una finestra.
afx_msg void OnHScroll(
UINT nSBCode,
UINT nPos,
CScrollBar* pScrollBar);
Parametri
nSBCode
Specifica un codice a barre di scorrimento che indica la richiesta di scorrimento dell'utente. Questo parametro può essere uno dei seguenti:
SB_LEFT
Scorrere fino a sinistra.SB_ENDSCROLL
Scorrere alla fine.SB_LINELEFT
Scorrere verso sinistra.SB_LINERIGHT
Scorrere verso destra.SB_PAGELEFT
Scorrere una pagina a sinistra.SB_PAGERIGHT
Scorrere una pagina a destra.SB_RIGHT
Scorrere fino a destra.SB_THUMBPOSITION
Scorrere fino alla posizione assoluta. La posizione corrente viene specificata dalnPos
parametro .SB_THUMBTRACK
Trascinare la casella di scorrimento nella posizione specificata. La posizione corrente viene specificata dalnPos
parametro .
nPos
Specifica la posizione della casella di scorrimento se il codice della barra di scorrimento è SB_THUMBPOSITION
o SB_THUMBTRACK
; in caso contrario, non utilizzato. A seconda dell'intervallo di scorrimento iniziale, nPos
può essere negativo e deve essere eseguito il cast a un oggetto int
, se necessario.
pScrollBar
Se il messaggio di scorrimento proviene da un controllo barra di scorrimento, contiene un puntatore al controllo . Se l'utente ha fatto clic sulla barra di scorrimento di una finestra, questo parametro è NULL
. Il puntatore può essere temporaneo e non deve essere archiviato per un uso successivo.
Osservazioni:
Il SB_THUMBTRACK
codice a barre di scorrimento viene in genere usato dalle applicazioni che forniscono un feedback mentre la casella di scorrimento viene trascinata.
Se un'applicazione scorre il contenuto controllato dalla barra di scorrimento, deve anche reimpostare la posizione della casella di scorrimento con la SetScrollPos
funzione membro.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
Esempio
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
La funzione membro del proprietario degli OnHScrollClipboard
Appunti viene chiamata dal visualizzatore Appunti quando i dati degli Appunti hanno il CF_OWNERDISPLAY
formato e si verifica un evento nella barra di scorrimento orizzontale del visualizzatore Appunti.
afx_msg void OnHScrollClipboard(
CWnd* pClipAppWnd,
UINT nSBCode,
UINT nPos);
Parametri
pClipAppWnd
Specifica un puntatore a una finestra del visualizzatore appunti. Il puntatore può essere temporaneo e non deve essere archiviato per un uso successivo.
nSBCode
Specifica uno dei codici a barre di scorrimento seguenti nella parola a basso ordine:
SB_BOTTOM
Scorrere verso il basso a destra.SB_ENDSCROLL
Scorrere alla fine.SB_LINEDOWN
Scorrere una riga verso il basso.SB_LINEUP
Scorrere una riga verso l'alto.SB_PAGEDOWN
Scorrere una pagina verso il basso.SB_PAGEUP
Scorrere verso l'alto una pagina verso l'alto.SB_THUMBPOSITION
Scorrere fino alla posizione assoluta. La posizione corrente viene specificata innPos
.SB_TOP
Scorrere verso l'alto a sinistra.
nPos
Contiene la posizione della casella di scorrimento se il codice della barra di scorrimento è SB_THUMBPOSITION
; in caso contrario, non viene utilizzato.
Osservazioni:
Il proprietario deve scorrere l'immagine degli Appunti, invalidare la sezione appropriata e aggiornare i valori della barra di scorrimento.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnIconEraseBkgnd
Il framework chiama questa funzione membro per un oggetto ridotto a icona quando CWnd
lo sfondo dell'icona deve essere riempito prima di disegnare l'icona.
afx_msg void OnIconEraseBkgnd(CDC* pDC);
Parametri
pDC
Specifica l'oggetto contesto dispositivo dell'icona. Può essere temporaneo e non deve essere archiviato per un uso successivo.
Osservazioni:
CWnd
riceve questa chiamata solo se è definita un'icona di classe per l'implementazione predefinita della finestra; in caso contrario OnEraseBkgnd
viene chiamato .
La DefWindowProc
funzione membro riempie lo sfondo dell'icona con il pennello di sfondo della finestra padre.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnInitMenu
Il framework chiama questa funzione membro quando un menu sta per diventare attivo.
afx_msg void OnInitMenu(CMenu* pMenu);
Parametri
pMenu
Specifica il menu da inizializzare. Può essere temporaneo e non deve essere archiviato per un uso successivo.
Osservazioni:
OnInitMenu
viene chiamato quando l'utente fa clic su una voce sulla barra dei menu o preme un tasto di menu. Eseguire l'override di questa funzione membro per modificare il menu prima che venga visualizzato.
OnInitMenu
viene chiamato una sola volta, quando si accede per la prima volta a un menu, ad esempio quando un utente fa clic su una voce sulla barra dei menu. Questo metodo non fornisce informazioni sulle voci di menu. Quando l'utente passa alle voci all'interno del menu (ad esempio, spostando il mouse tra diverse voci di menu) la funzione non viene chiamata di nuovo. Quando l'utente esce dal menu (ad esempio, facendo clic sull'area client dell'applicazione) e successivamente fa clic su una voce sulla barra dei menu, la funzione verrà chiamata di nuovo.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnInitMenuPopup
Il framework chiama questa funzione membro quando un menu a comparsa sta per diventare attivo.
afx_msg void OnInitMenuPopup(
CMenu* pPopupMenu,
UINT nIndex,
BOOL bSysMenu);
Parametri
pPopupMenu
Specifica l'oggetto menu del menu a comparsa. Può essere temporaneo e non deve essere archiviato per un uso successivo.
nIndex
Specifica l'indice del menu a comparsa nel menu principale.
bSysMenu
TRUE
se il menu a comparsa è il menu Controllo; in caso contrario FALSE
, .
Osservazioni:
In questo modo un'applicazione può modificare il menu a comparsa prima che venga visualizzato senza modificare l'intero menu.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnInputDeviceChange
Il framework chiama questa funzione membro quando un dispositivo di I/O viene aggiunto o rimosso dal sistema.
afx_msg void OnInputDeviceChange(unsigned short uFlag);
Parametri
uFlag
[in] Questo flag può contenere i valori seguenti:
GIDC_ARRIVAL
- È stato aggiunto un nuovo dispositivo al sistema.GIDC_REMOVAL
- Un dispositivo è stato rimosso dal sistema.
Osservazioni:
Questo metodo riceve la WM_INPUT_DEVICE_CHANGE
notifica, descritta in Windows SDK. è un messaggio generico del dispositivo di input.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnInputLangChange
Il framework chiama questo membro per la finestra più interessata dopo la modifica della lingua di input di un'applicazione.
afx_msg void OnInputLangChange(
UINT nCharSet,
UINT nLocaleId);
Parametri
nCharSet
[in] Set di caratteri delle nuove impostazioni locali. Per altre informazioni, vedere il lfCharSet
parametro della LOGFONT
struttura.
nLocaleId
[in] Identificatore delle impostazioni locali di input. Per altre informazioni, vedere Costanti e stringhe dell'identificatore di lingua.
Osservazioni:
Questo metodo riceve il WM_INPUTLANGCHANGE
messaggio di notifica, descritto in Windows SDK.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnInputLangChangeRequest
Il framework chiama questo membro per la finestra con lo stato attivo quando l'utente sceglie una nuova lingua di input.
afx_msg void OnInputLangChangeRequest(
UINT nFlags,
UINT nLocaleId);
Parametri
nFlags
[in] Combinazione or bit per bit di flag che indicano che le nuove impostazioni locali sono state selezionate dalle impostazioni locali precedenti o successive nell'elenco delle impostazioni locali installate oppure che il layout della tastiera delle nuove impostazioni locali di input può essere usato con il set di caratteri di sistema. I valori possibili sono INPUTLANGCHANGE_BACKWARD
, INPUTLANGCHANGE_FORWARD
e INPUTLANGCHANGE_SYSCHARSET
.
nLocaleId
[in] Identificatore delle impostazioni locali di input. Per altre informazioni, vedere Costanti e stringhe dell'identificatore di lingua.
Osservazioni:
Questo metodo riceve il WM_INPUTLANGCHANGEREQUEST
messaggio di notifica, descritto in Windows SDK. Questo messaggio viene inviato quando l'utente sceglie una nuova lingua di input con un tasto di scelta rapida specificato nell'applicazione del pannello di controllo della tastiera o dall'indicatore sulla barra delle applicazioni di sistema.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnKeyDown
Il framework chiama questa funzione membro quando viene premuto un tasto non di sistema.
afx_msg void OnKeyDown(
UINT nChar,
UINT nRepCnt,
UINT nFlags);
Parametri
nChar
Specifica il codice della chiave virtuale della chiave specificata. Per un elenco dei codici di chiave virtuale standard, vedere Winuser.h
nRepCnt
Numero di ripetizioni (il numero di volte in cui la sequenza di tasti viene ripetuta in seguito all'utente che tiene premuto il tasto).
nFlags
Specifica il codice di analisi, il codice di transizione della chiave, lo stato della chiave precedente e il codice di contesto, come illustrato nell'elenco seguente:
valore | Descrizione |
---|---|
0-7 | Codice di analisi (valore dipendente dall'OEM). |
8 | Tasto esteso, ad esempio un tasto funzione o un tasto sul tastierino numerico (1 se è un tasto esteso). |
9-10 | Non utilizzato. |
11-12 | Utilizzato internamente da Windows. |
13 | Codice di contesto (1 se il tasto ALT viene premuto mentre viene premuto il tasto; in caso contrario, 0). |
14 | Stato della chiave precedente (1 se la chiave è inattiva prima della chiamata, 0 se la chiave è inattiva). |
15 | Stato di transizione (1 se il tasto viene rilasciato, 0 se viene premuto il tasto). |
Per un WM_KEYDOWN
messaggio, il bit di transizione della chiave (bit 15) è 0 e il bit del codice di contesto (bit 13) è 0.
Osservazioni:
Un tasto non di sistema è un tasto da tastiera premuto quando il tasto ALT non viene premuto o un tasto da tastiera premuto quando CWnd
ha lo stato attivo per l'input.
A causa della ripetizione automatica, possono verificarsi più chiamate OnKeyDown
prima che venga effettuata una OnKeyUp
chiamata di funzione membro. Il bit che indica lo stato della chiave precedente può essere usato per determinare se la chiamata è la prima transizione verso il basso o una transizione ripetuta verso il OnKeyDown
basso.
Per le tastiere IBM Enhanced 101 e 102 tasti, i tasti avanzati sono i tasti ALT destro e i tasti CTRL destro nella sezione principale della tastiera; i tasti INS, DEL, HOME, END, PAGE UP, PAGE DOWN e freccia nei cluster a sinistra del tastierino numerico; e le barre (/) e i tasti INVIO nel tastierino numerico. Alcune altre tastiere possono supportare il bit del tasto esteso in nFlags
.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnKeyUp
Il framework chiama questa funzione membro quando viene rilasciata una chiave non di sistema.
afx_msg void OnKeyUp(
UINT nChar,
UINT nRepCnt,
UINT nFlags);
Parametri
nChar
Specifica il codice della chiave virtuale della chiave specificata. Per un elenco dei codici di chiave virtuale standard, vedere Winuser.h
nRepCnt
Numero di ripetizioni (il numero di volte in cui la sequenza di tasti viene ripetuta in seguito all'utente che tiene premuto il tasto).
nFlags
Specifica il codice di analisi, il codice di transizione della chiave, lo stato della chiave precedente e il codice di contesto, come illustrato nell'elenco seguente:
valore | Descrizione |
---|---|
0-7 | Codice di analisi (valore dipendente dall'OEM). Byte basso di parola di ordine elevato. |
8 | Tasto esteso, ad esempio un tasto funzione o un tasto sul tastierino numerico (1 se è un tasto esteso; in caso contrario, 0). |
9-10 | Non utilizzato. |
11-12 | Utilizzato internamente da Windows. |
13 | Codice di contesto (1 se il tasto ALT viene premuto mentre viene premuto il tasto; in caso contrario, 0). |
14 | Stato della chiave precedente (1 se la chiave è inattiva prima della chiamata, 0 se la chiave è inattiva). |
15 | Stato di transizione (1 se il tasto viene rilasciato, 0 se viene premuto il tasto). |
Per un WM_KEYUP
messaggio, il bit di transizione della chiave (bit 15) è 1 e il bit del codice di contesto (bit 13) è 0.
Osservazioni:
Un tasto non di sistema è un tasto da tastiera premuto quando il tasto ALT non viene premuto o un tasto da tastiera premuto quando l'oggetto ha lo stato attivo per l'input CWnd
.
Per le tastiere IBM Enhanced 101 e 102 tasti, i tasti avanzati sono i tasti ALT destro e i tasti CTRL destro nella sezione principale della tastiera; i tasti INS, DEL, HOME, END, PAGE UP, PAGE DOWN e freccia nei cluster a sinistra del tastierino numerico; e le barre (/) e i tasti INVIO nel tastierino numerico. Alcune altre tastiere possono supportare il bit di tasto esteso in nFlags.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnKillFocus
Il framework chiama questa funzione membro immediatamente prima di perdere lo stato attivo dell'input.
afx_msg void OnKillFocus(CWnd* pNewWnd);
Parametri
pNewWnd
Specifica un puntatore alla finestra che riceve lo stato attivo di input (può essere NULL
o può essere temporaneo).
Osservazioni:
Se l'oggetto CWnd
visualizza un cursore, il cursore deve essere eliminato definitivamente a questo punto.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnLButtonDblClk
Il framework chiama questa funzione membro quando l'utente fa doppio clic sul pulsante sinistro del mouse.
afx_msg void OnLButtonDblClk(
UINT nFlags,
CPoint point);
Parametri
nFlags
Indica se diverse chiavi virtuali sono inattivi. Questo parametro può essere qualsiasi combinazione dei valori seguenti:
MK_CONTROL
Impostare se il tasto CTRL è inattivo.MK_LBUTTON
Impostare se il pulsante sinistro del mouse è inattivo.MK_MBUTTON
Impostare se il pulsante centrale del mouse è inattivo.MK_RBUTTON
Impostare se il pulsante destro del mouse è inattivo.MK_SHIFT
Impostare se il tasto MAIUSC è inattivo.
point
Specifica la coordinata x e y del cursore. Queste coordinate sono sempre relative all'angolo superiore sinistro della finestra.
Osservazioni:
Solo le finestre con lo CS_DBLCLKS
WNDCLASS
stile riceveranno OnLButtonDblClk
chiamate. Si tratta dell'impostazione predefinita per le finestre di Microsoft Foundation Class. Windows chiama OnLButtonDblClk
quando l'utente preme, rilascia e quindi preme di nuovo il pulsante sinistro del mouse entro il limite di tempo di doppio clic del sistema. Facendo doppio clic sul pulsante sinistro del mouse vengono effettivamente generati quattro eventi: WM_LBUTTONDOWN
, messaggi, WM_LBUTTONDBLCLK
chiamata e un altro WM_LBUTTONUP
messaggio quando viene WM_LBUTTONUP
rilasciato il pulsante.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnLButtonDown
Il framework chiama questa funzione membro quando l'utente preme il pulsante sinistro del mouse.
afx_msg void OnLButtonDown(
UINT nFlags,
CPoint point);
Parametri
nFlags
Indica se diverse chiavi virtuali sono inattivi. Questo parametro può essere qualsiasi combinazione dei valori seguenti:
MK_CONTROL
Impostare se il tasto CTRL è inattivo.MK_LBUTTON
Impostare se il pulsante sinistro del mouse è inattivo.MK_MBUTTON
Impostare se il pulsante centrale del mouse è inattivo.MK_RBUTTON
Impostare se il pulsante destro del mouse è inattivo.MK_SHIFT
Impostare se il tasto MAIUSC è inattivo.
point
Specifica la coordinata x e y del cursore. Queste coordinate sono sempre relative all'angolo superiore sinistro della finestra.
Osservazioni:
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnLButtonUp
Il framework chiama questa funzione membro quando l'utente rilascia il pulsante sinistro del mouse.
afx_msg void OnLButtonUp(
UINT nFlags,
CPoint point);
Parametri
nFlags
Indica se diverse chiavi virtuali sono inattivi. Questo parametro può essere qualsiasi combinazione dei valori seguenti:
MK_CONTROL
Impostare se il tasto CTRL è inattivo.MK_MBUTTON
Impostare se il pulsante centrale del mouse è inattivo.MK_RBUTTON
Impostare se il pulsante destro del mouse è inattivo.MK_SHIFT
Impostare se il tasto MAIUSC è inattivo.
point
Specifica la coordinata x e y del cursore. Queste coordinate sono sempre relative all'angolo superiore sinistro della finestra.
Osservazioni:
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnMButtonDblClk
Il framework chiama questa funzione membro quando l'utente fa doppio clic sul pulsante centrale del mouse.
afx_msg void OnMButtonDblClk(
UINT nFlags,
CPoint point);
Parametri
nFlags
Indica se diverse chiavi virtuali sono inattivi. Questo parametro può essere qualsiasi combinazione dei valori seguenti:
MK_CONTROL
Impostare se il tasto CTRL è inattivo.MK_LBUTTON
Impostare se il pulsante sinistro del mouse è inattivo.MK_MBUTTON
Impostare se il pulsante centrale del mouse è inattivo.MK_RBUTTON
Impostare se il pulsante destro del mouse è inattivo.MK_SHIFT
Impostare se il tasto MAIUSC è inattivo.
point
Specifica la coordinata x e y del cursore. Queste coordinate sono sempre relative all'angolo superiore sinistro della finestra.
Osservazioni:
Solo le finestre con lo CS_DBLCLKS
WNDCLASS
stile riceveranno OnMButtonDblClk
chiamate. Si tratta dell'impostazione predefinita per tutte le finestre di Microsoft Foundation Class. Windows genera una OnMButtonDblClk
chiamata quando l'utente preme, rilascia e quindi preme di nuovo il pulsante centrale del mouse entro il limite di tempo di doppio clic del sistema. Facendo doppio clic sul pulsante centrale del mouse vengono effettivamente generati quattro eventi: WM_MBUTTONDOWN
e WM_MBUTTONUP
messaggi, la WM_MBUTTONDBLCLK
chiamata e un altro WM_MBUTTONUP
messaggio.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnMButtonDown
Il framework chiama questa funzione membro quando l'utente preme il pulsante centrale del mouse.
afx_msg void OnMButtonDown(
UINT nFlags,
CPoint point);
Parametri
nFlags
Indica se diverse chiavi virtuali sono inattivi. Questo parametro può essere qualsiasi combinazione dei valori seguenti:
MK_CONTROL
Impostare se il tasto CTRL è inattivo.MK_LBUTTON
Impostare se il pulsante sinistro del mouse è inattivo.MK_MBUTTON
Impostare se il pulsante centrale del mouse è inattivo.MK_RBUTTON
Impostare se il pulsante destro del mouse è inattivo.MK_SHIFT
Impostare se il tasto MAIUSC è inattivo.
point
Specifica la coordinata x e y del cursore. Queste coordinate sono sempre relative all'angolo superiore sinistro della finestra.
Osservazioni:
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnMButtonUp
Il framework chiama questa funzione membro quando l'utente rilascia il pulsante centrale del mouse.
afx_msg void OnMButtonUp(
UINT nFlags,
CPoint point);
Parametri
nFlags
Indica se diverse chiavi virtuali sono inattivi. Questo parametro può essere qualsiasi combinazione dei valori seguenti:
MK_CONTROL
Impostare se il tasto CTRL è inattivo.MK_LBUTTON
Impostare se il pulsante sinistro del mouse è inattivo.MK_RBUTTON
Impostare se il pulsante destro del mouse è inattivo.MK_SHIFT
Impostare se il tasto MAIUSC è inattivo.
point
Specifica la coordinata x e y del cursore. Queste coordinate sono sempre relative all'angolo superiore sinistro della finestra.
Osservazioni:
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnMDIActivate
Il framework chiama questa funzione membro per la finestra figlio disattivata e la finestra figlio attivata.
afx_msg void OnMDIActivate(
BOOL bActivate,
CWnd* pActivateWnd,
CWnd* pDeactivateWnd);
Parametri
bActivate
TRUE
se l'elemento figlio viene attivato e FALSE
se viene disattivato.
pActivateWnd
Contiene un puntatore alla finestra figlio MDI da attivare. Quando viene ricevuta da una finestra figlio MDI, pActivateWnd
contiene un puntatore alla finestra figlio attivata. Questo puntatore può essere temporaneo e non deve essere archiviato per un uso successivo.
pDeactivateWnd
Contiene un puntatore alla finestra figlio MDI disattivata. Questo puntatore può essere temporaneo e non deve essere archiviato per un uso successivo.
Osservazioni:
Una finestra figlio MDI viene attivata indipendentemente dalla finestra cornice MDI. Quando il frame diventa attivo, la finestra figlio che è stata attivata per l'ultima volta con una OnMDIActivate
chiamata riceve un WM_NCACTIVATE
messaggio per disegnare una cornice di finestra attiva e una barra della didascalia, ma non riceve un'altra OnMDIActivate
chiamata.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnMeasureItem
Il framework chiama questa funzione membro dal framework per il proprietario di un pulsante di disegno proprietario, di una casella combinata, di una casella di riepilogo o di una voce di menu al momento della creazione del controllo.
afx_msg void OnMeasureItem(
int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStruct);
Parametri
nIDCtl
ID del controllo.
lpMeasureItemStruct
Punta a una MEASUREITEMSTRUCT
struttura di dati che contiene le dimensioni del controllo di disegno proprietario.
Osservazioni:
Eseguire l'override di questa funzione membro e compilare la MEASUREITEMSTRUCT
struttura dei dati a lpMeasureItemStruct
cui punta e restituire. In questo modo Windows informa Windows delle dimensioni del controllo e consente a Windows di elaborare correttamente l'interazione dell'utente con il controllo.
Se viene creata una casella di riepilogo o una casella combinata con lo LBS_OWNERDRAWVARIABLE
stile o CBS_OWNERDRAWVARIABLE
, il framework chiama questa funzione per il proprietario di ogni elemento nel controllo; in caso contrario, questa funzione viene chiamata una sola volta.
Windows avvia la chiamata a OnMeasureItem
per il proprietario delle caselle combinate e delle caselle di riepilogo create con lo OWNERDRAWFIXED
stile prima di inviare il WM_INITDIALOG
messaggio. Di conseguenza, quando il proprietario riceve questa chiamata, Windows non ha ancora determinato l'altezza e la larghezza del tipo di carattere utilizzato nel controllo; le chiamate di funzione e i calcoli che richiedono questi valori devono essere eseguiti nella funzione principale dell'applicazione o della libreria.
Se l'elemento misurato è un CMenu
oggetto o CComboBox
CListBox
, viene chiamata la MeasureItem
funzione virtuale della classe appropriata. Eseguire l'override della MeasureItem
funzione membro della classe del controllo appropriato per calcolare e impostare le dimensioni di ogni elemento.
OnMeasureItem
verrà chiamato solo se la classe del controllo viene creata in fase di esecuzione o viene creata con lo LBS_OWNERDRAWVARIABLE
stile o CBS_OWNERDRAWVARIABLE
. Se il controllo viene creato dall'editor della finestra di dialogo, OnMeasureItem
non verrà chiamato. Ciò è dovuto al fatto che il WM_MEASUREITEM
messaggio viene inviato all'inizio del processo di creazione del controllo. Se si usa DDX_Control
, SubclassDlgItem
o SubclassWindow
, la sottoclasse si verifica in genere dopo il processo di creazione. Pertanto, non è possibile gestire il WM_MEASUREITEM
messaggio nella funzione del OnChildNotify
controllo, che è il meccanismo usato da MFC per implementare ON_WM_MEASUREITEM_REFLECT
.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnMenuChar
Il framework chiama questa funzione membro quando l'utente preme un carattere mnemonico del menu che non corrisponde ad alcuno dei mnemonic predefiniti nel menu corrente.
afx_msg LRESULT OnMenuChar(
UINT nChar,
UINT nFlags,
CMenu* pMenu);
Parametri
nChar
A seconda delle impostazioni di compilazione, specifica il carattere ANSI o Unicode premuto dall'utente.
nFlags
Contiene il MF_POPUP
flag se il menu è un menu a comparsa. Contiene il MF_SYSMENU
flag se il menu è un menu Controllo.
pMenu
Contiene un puntatore all'oggetto selezionato CMenu
. Il puntatore può essere temporaneo e non deve essere archiviato.
Valore restituito
La parola di ordine elevato del valore restituito deve contenere uno dei codici di comando seguenti:
valore | Descrizione |
---|---|
0 | Indica a Windows di rimuovere il carattere premuto dall'utente e di creare un segnale acustico breve sull'altoparlante di sistema. |
1 | Indica a Windows di chiudere il menu corrente. |
2 | Informa Windows che la parola con ordine basso del valore restituito contiene il numero di elemento per un elemento specifico. Questo elemento è selezionato da Windows. |
La parola di ordine basso viene ignorata se la parola dell'ordine elevato contiene 0 o 1. Le applicazioni devono elaborare questo messaggio quando vengono usati i tasti di scelta rapida (tasti di scelta rapida) per selezionare le bitmap inserite in un menu.
Osservazioni:
Viene inviato al CWnd
proprietario del menu. OnMenuChar
viene chiamato anche quando l'utente preme ALT e qualsiasi altro tasto, anche se il tasto non corrisponde a un carattere mnemonico. In questo caso, pMenu
punta al menu di proprietà di CWnd
e nFlags
è 0.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnMenuDrag
Il framework chiama questa funzione membro del menu di trascinamento della selezione corrente quando l'utente inizia a trascinare una voce di menu.
afx_msg UINT OnMenuDrag(
UINT nPos,
CMenu* pMenu);
Parametri
nPos
[in] Posizione di indice della voce di menu all'inizio dell'operazione di trascinamento.
pMenu
[in] Puntatore all'oggetto CMenu
che contiene la voce di menu.
Valore restituito
Valore restituito | Significato |
---|---|
MND_CONTINUE |
Il menu deve rimanere attivo. Se il mouse viene rilasciato, deve essere ignorato. |
MND_ENDMENU |
Il menu deve essere terminato. |
Osservazioni:
Questo metodo riceve la WM_MENUDRAG
notifica, descritta in Windows SDK.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnMenuGetObject
Il framework chiama questa funzione membro del menu di trascinamento della selezione corrente quando il cursore del mouse entra in una voce di menu o passa dal centro dell'elemento alla parte superiore o inferiore dell'elemento.
afx_msg UINT OnMenuGetObject(MENUGETOBJECTINFO* pMenuGetObjectInfo);
Parametri
pMenu
[in] Puntatore a una MENUGETOBJECTINFO
struttura che contiene informazioni sul menu di trascinamento della selezione su cui si trova il cursore del mouse.
Valore restituito
Valore restituito | Significato |
---|---|
MNGO_NOERROR |
Un puntatore di interfaccia che supporta le operazioni di trascinamento della selezione viene restituito nel pvObj membro della MENUGETOBJECTINFO struttura. Attualmente è supportata solo l'interfaccia IDropTarget . |
MNGO_NOINTERFACE |
Non è supportata alcuna interfaccia di trascinamento della selezione. |
Osservazioni:
Questo metodo riceve la WM_MENUGETOBJECT
notifica, descritta in Windows SDK.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnMenuRButtonUp
Il framework chiama questa funzione membro quando l'utente rilascia il pulsante destro del mouse mentre il cursore si trova su una voce di menu.
afx_msg void OnMenuRButtonUp(
UINT nPos,
CMenu* pMenu);
Parametri
nPos
[in] Posizione di indice della voce di menu quando è stato rilasciato il pulsante destro del mouse.
pMenu
[in] Puntatore all'oggetto CMenu
che contiene la voce di menu.
Osservazioni:
Questo metodo riceve la WM_MENURBUTTONUP
notifica, descritta in Windows SDK. Il WM_MENURBUTTONUP
messaggio consente a un'applicazione di fornire un menu sensibile al contesto per la voce di menu specificata nel messaggio.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnMenuSelect
Se l'oggetto CWnd
è associato a un menu, OnMenuSelect
viene chiamato dal framework quando l'utente seleziona una voce di menu.
afx_msg void OnMenuSelect(
UINT nItemID,
UINT nFlags,
HMENU hSysMenu);
Parametri
nItemID
Identifica l'elemento selezionato. Se la voce selezionata è una voce di menu, nItemID
contiene l'ID voce di menu. Se l'elemento selezionato contiene un menu a comparsa, nItemID
contiene l'indice del menu a comparsa e hSysMenu
contiene l'handle del menu principale (su cui si fa clic).
nFlags
Contiene una combinazione dei flag di menu seguenti:
MF_BITMAP
L'elemento è una bitmap.MF_CHECKED
L'elemento è selezionato.MF_DISABLED
L'elemento è disabilitato.MF_GRAYED
L'elemento è in grigio.MF_MOUSESELECT
L'elemento è stato selezionato con un mouse.MF_OWNERDRAW
L'elemento è un elemento di disegno proprietario.MF_POPUP
L'elemento contiene un menu a comparsa.MF_SEPARATOR
L'elemento è un separatore di voci di menu.MF_SYSMENU
L'elemento è contenuto nel menu Controllo.
hSysMenu
Se nFlags
contiene MF_SYSMENU
, identifica il menu associato al messaggio. Se nFlags
contiene MF_POPUP
, identifica l'handle del menu principale. Se nFlags
non contiene né MF_SYSMENU
MF_POPUP
né , non è usato.
Osservazioni:
Se nFlags
contiene 0xFFFF e hSysMenu
contiene 0, Windows ha chiuso il menu perché l'utente ha premuto il tasto ESC o ha fatto clic all'esterno del menu.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnMouseActivate
Il framework chiama questa funzione membro quando il cursore si trova in una finestra inattiva e l'utente preme un pulsante del mouse.
afx_msg int OnMouseActivate(
CWnd* pDesktopWnd,
UINT nHitTest,
UINT message);
Parametri
pDesktopWnd
Specifica un puntatore alla finestra padre principale della finestra da attivare. Il puntatore può essere temporaneo e non deve essere archiviato.
nHitTest
Specifica il codice dell'area hit test . Un hit test è un test che determina la posizione del cursore.
message
Specifica il numero del messaggio del mouse.
Valore restituito
Specifica se attivare CWnd
e se rimuovere l'evento del mouse. Deve essere uno dei valori seguenti:
MA_ACTIVATE
Attivare l'oggettoCWnd
.MA_NOACTIVATE
Non attivare l'oggettoCWnd
.MA_ACTIVATEANDEAT
AttivareCWnd
l'oggetto e rimuovere l'evento del mouse.MA_NOACTIVATEANDEAT
Non attivare l'oggettoCWnd
e rimuovere l'evento del mouse.
Osservazioni:
L'implementazione predefinita passa questo messaggio alla finestra padre prima che si verifichi un'elaborazione. Se la finestra padre restituisce TRUE, l'elaborazione viene interrotta.
Per una descrizione dei singoli codici di area hit test, vedere la OnNcHitTest
funzione membro
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
Esempio
// 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
Il framework chiama questa funzione membro quando il cursore passa il puntatore sull'area client della finestra per il periodo di tempo specificato in una chiamata precedente a TrackMouseEvent
.
afx_msg void OnMouseHover(
UINT nFlags,
CPoint point);
Parametri
nFlags
[in] Combinazione bit per bit (OR) di flag che indicano quali tasti di modifica vengono premuti. Ad esempio, il MK_CONTROL
flag indica che il tasto CTRL viene premuto.
point
[in] Oggetto CPoint
che specifica le x
coordinate e y
del cursore rispetto all'angolo superiore sinistro dell'area client.
Osservazioni:
Questo metodo riceve la WM_MOUSEHOVER
notifica, descritta in Windows SDK.
Il nFlags
parametro può essere una combinazione di tasti di modifica elencati nella tabella seguente. Per altre informazioni, vedere Informazioni sull'input del mouse.
Tasto modificatore | Descrizione |
---|---|
MK_CONTROL |
Il tasto CTRL viene premuto. |
MK_LBUTTON |
Viene premuto il pulsante sinistro del mouse. |
MK_MBUTTON |
Viene premuto il pulsante centrale del mouse. |
MK_RBUTTON |
Viene premuto il pulsante destro del mouse. |
MK_SHIFT |
Il tasto MAIUSC viene premuto. |
MK_XBUTTON1 |
Viene premuto il XBUTTON1 pulsante del mouse di Microsoft IntelliMouse. |
MK_XBUTTON2 |
Viene premuto il XBUTTON2 pulsante del mouse di Microsoft IntelliMouse. |
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnMouseHWheel
Il framework chiama questo membro quando la rotellina orizzontale del mouse è inclinata o ruotata.
afx_msg void OnMouseHWheel(
UINT nFlags,
short zDelta,
CPoint pt);
Parametri
nFlags
[in] Combinazione bit per bit (OR) di flag che indicano quali tasti di modifica vengono premuti. Ad esempio, il MK_CONTROL
flag indica che il tasto CTRL viene premuto. Per un elenco di flag, vedere la sottotitolo "Parametri messaggio" in Informazioni sull'input del mouse.
zDelta
[in] Indica la distanza di rotazione della ruota, espressa in multipli o divisioni di WHEEL_DELTA
, ovvero 120. Un valore positivo indica che la ruota è stata ruotata a destra; un valore negativo indica che la ruota è stata ruotata a sinistra.
pt
[in] Oggetto CPoint
che specifica le x
coordinate e y
del cursore rispetto all'angolo superiore sinistro dell'area client.
Osservazioni:
Questo metodo riceve il WM_MOUSEHWHEEL
messaggio di notifica, descritto in Windows SDK. Questo messaggio viene inviato alla finestra con lo stato attivo quando la rotellina orizzontale del mouse è inclinata o ruotata.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnMouseLeave
Il framework chiama questa funzione membro quando il cursore lascia l'area client della finestra specificata in una chiamata precedente a TrackMouseEvent
.
afx_msg void OnMouseLeave();
Osservazioni:
Questo metodo riceve la WM_MOUSELEAVE
notifica, descritta in Windows SDK.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnMouseMove
Il framework chiama questa funzione membro quando si sposta il cursore del mouse.
afx_msg void OnMouseMove(
UINT nFlags,
CPoint point);
Parametri
nFlags
Indica se diverse chiavi virtuali sono inattivi. Questo parametro può essere qualsiasi combinazione dei valori seguenti:
MK_CONTROL
Impostare se il tasto CTRL è inattivo.MK_LBUTTON
Impostare se il pulsante sinistro del mouse è inattivo.MK_MBUTTON
Impostare se il pulsante centrale del mouse è inattivo.MK_RBUTTON
Impostare se il pulsante destro del mouse è inattivo.MK_SHIFT
Impostare se il tasto MAIUSC è inattivo.
point
Specifica la coordinata x e y del cursore. Queste coordinate sono sempre relative all'angolo superiore sinistro della finestra.
Osservazioni:
Se il mouse non viene acquisito, il WM_MOUSEMOVE
messaggio viene ricevuto dall'oggetto CWnd
sotto il cursore del mouse; in caso contrario, il messaggio passa alla finestra che ha acquisito il mouse.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnMouseWheel
Il framework chiama questa funzione membro come utente ruota la rotellina del mouse e incontra la notch successiva della rotellina.
afx_msg BOOL OnMouseWheel(
UINT nFlags,
short zDelta,
CPoint pt);
Parametri
nFlags
Indica se diverse chiavi virtuali sono inattivi. Questo parametro può essere qualsiasi combinazione dei valori seguenti:
MK_CONTROL
Impostare se il tasto CTRL è inattivo.MK_LBUTTON
Impostare se il pulsante sinistro del mouse è inattivo.MK_MBUTTON
Impostare se il pulsante centrale del mouse è inattivo.MK_RBUTTON
Impostare se il pulsante destro del mouse è inattivo.MK_SHIFT
Impostare se il tasto MAIUSC è inattivo.
zDelta
Indica la distanza ruotata. Il zDelta
valore è espresso in più o divisioni di WHEEL_DELTA
, ovvero 120. Un valore minore di zero indica la rotazione indietro (verso l'utente) mentre un valore maggiore di zero indica la rotazione in avanti (lontano dall'utente). L'utente può invertire questa risposta modificando l'impostazione Wheel nel software del mouse. Per altre informazioni su questo parametro, vedere la sezione Osservazioni.
pt
Specifica la coordinata x e y del cursore. Queste coordinate sono sempre relative all'angolo superiore sinistro dello schermo.
Valore restituito
Diverso da zero se lo scorrimento della rotellina del mouse è abilitato; in caso contrario, 0.
Osservazioni:
A meno che non venga sottoposto a override, OnMouseWheel
chiama il valore predefinito di WM_MOUSEWHEEL
. Windows instrada automaticamente il messaggio al controllo o alla finestra figlio con lo stato attivo. La funzione DefWindowProc
Win32 propaga il messaggio fino alla catena padre alla finestra che lo elabora.
Il zDelta
parametro è un multiplo di WHEEL_DELTA
, impostato su 120. Questo valore è la soglia per l'esecuzione di un'azione e un'azione di questo tipo (ad esempio, lo scorrimento in avanti di una notch) deve verificarsi per ogni delta.
WHEEL_DELTA
è stato impostato su 120 per consentire ruote a risoluzione più fine, come una ruota liberamente ruotante senza tacche. Una rotellina di risoluzione più fine invia più messaggi per rotazione, ma ogni messaggio ha un valore delta più piccolo. Per usare tale rotellina, aggiungere i valori in ingresso zDelta
fino a WHEEL_DELTA
raggiungere (in modo da ottenere la stessa risposta per una determinata rotazione differenziale) o scorrere le righe parziali in risposta ai messaggi più frequenti. È anche possibile scegliere una granularità di scorrimento e accumulare delta fino a WHEEL_DELTA
raggiungere.
Eseguire l'override di questa funzione membro per fornire il proprio comportamento di scorrimento della rotellina del mouse.
Nota
OnMouseWheel
gestisce i messaggi per Windows NT 4.0 e versioni successive. Per la gestione dei messaggi di Windows 95/98 o Windows NT 3.51, usare OnRegisteredMouseWheel
.
CWnd::OnMove
Il framework chiama questa funzione membro dopo lo spostamento dell'oggetto CWnd
.
afx_msg void OnMove(
int x,
int y);
Parametri
x
Specifica la nuova posizione della coordinata x dell'angolo superiore sinistro dell'area client. Questa nuova posizione viene assegnata nelle coordinate dello schermo per le finestre sovrapposte e popup e le coordinate padre-client per le finestre figlio.
y
Specifica la nuova posizione della coordinata y dell'angolo superiore sinistro dell'area client. Questa nuova posizione viene assegnata nelle coordinate dello schermo per le finestre sovrapposte e popup e le coordinate padre-client per le finestre figlio.
Osservazioni:
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnMoving
Il framework chiama questa funzione membro mentre un utente sta spostando un CWnd
oggetto.
afx_msg void OnMoving(
UINT nSide,
LPRECT lpRect);
Parametri
nSide
Bordo della finestra da spostare.
lpRect
Indirizzo della CRect
struttura o RECT
che conterrà le coordinate dell'elemento.
Osservazioni:
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnNcActivate
Il framework chiama questa funzione membro quando l'area non client deve essere modificata per indicare uno stato attivo o inattivo.
afx_msg BOOL OnNcActivate(BOOL bActive);
Parametri
bActive
Specifica quando è necessario modificare una barra o un'icona della didascalia per indicare uno stato attivo o inattivo. Il bActive
parametro è TRUE
se deve essere disegnata una didascalia o un'icona attiva. Si tratta FALSE
di una didascalia o un'icona inattiva.
Valore restituito
Diverso da zero se Windows deve procedere con l'elaborazione predefinita; 0 per impedire la disattivazione della barra o dell'icona della didascalia.
Osservazioni:
L'implementazione predefinita disegna la barra del titolo e il testo della barra del titolo nei colori attivi se è e nei colori inattivi se bActive
bActive
è FALSE
.TRUE
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnNcCalcSize
Il framework chiama questa funzione membro quando è necessario calcolare le dimensioni e la posizione dell'area client.
afx_msg void OnNcCalcSize(
BOOL bCalcValidRects,
NCCALCSIZE_PARAMS* lpncsp);
Parametri
bCalcValidRects
Specifica se l'applicazione deve specificare quale parte dell'area client contiene informazioni valide. Windows copia le informazioni valide nell'area specificata all'interno della nuova area client. Se questo parametro è TRUE, l'applicazione deve specificare quale parte dell'area client è valida.
lpncsp
Punta a una NCCALCSIZE_PARAMS
struttura di dati che contiene informazioni che un'applicazione può usare per calcolare le nuove dimensioni e la posizione del CWnd
rettangolo (inclusi area client, bordi, didascalia, barre di scorrimento e così via).
Osservazioni:
Elaborando questo messaggio, un'applicazione può controllare il contenuto dell'area client della finestra quando cambiano le dimensioni o la posizione della finestra.
Indipendentemente dal valore di bCalcValidRects
, il primo rettangolo nella matrice specificata dal rgrc
membro della struttura della NCCALCSIZE_PARAMS
struttura contiene le coordinate della finestra. Per una finestra figlio, le coordinate sono relative all'area client della finestra padre. Per le finestre di primo livello, le coordinate sono coordinate dello schermo. Un'applicazione deve modificare il rgrc[0]
rettangolo in modo da riflettere le dimensioni e la posizione dell'area client.
I rgrc[1]
rettangoli e rgrc[2]
sono validi solo se bCalcValidRects
è TRUE
. In questo caso, il rgrc[1]
rettangolo contiene le coordinate della finestra prima che sia stata spostata o ridimensionata. Il rgrc[2]
rettangolo contiene le coordinate dell'area client della finestra prima dello spostamento della finestra. Tutte le coordinate sono relative alla finestra o allo schermo padre.
L'implementazione predefinita calcola le dimensioni dell'area client in base alle caratteristiche della finestra (presenza di barre di scorrimento, menu e così via) e inserisce il risultato in lpncsp
.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnNcCreate
Il framework chiama questa funzione membro prima del WM_CREATE
messaggio quando l'oggetto viene creato per la CWnd
prima volta.
afx_msg BOOL OnNcCreate(LPCREATESTRUCT lpCreateStruct);
Parametri
lpCreateStruct
Punta alla struttura dei CREATESTRUCT
dati per CWnd
.
Valore restituito
Diverso da zero se viene creata l'area non client. È 0 se si verifica un errore; la Create
funzione restituirà failure
in questo caso.
Osservazioni:
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnNcDestroy
Chiamato dal framework quando l'area non client viene eliminata definitivamente ed è l'ultima funzione membro chiamata quando la finestra di Windows viene eliminata definitivamente.
afx_msg void OnNcDestroy();
Osservazioni:
L'implementazione predefinita esegue alcune operazioni di pulizia, quindi chiama la funzione PostNcDestroy
membro virtuale .
Eseguire l'override PostNcDestroy
se si vuole eseguire una pulizia personalizzata, ad esempio un'operazione delete this
. Se si esegue l'override OnNcDestroy
di , è necessario chiamare OnNcDestroy
nella classe di base per assicurarsi che qualsiasi memoria allocata internamente per la finestra venga liberata.
CWnd::OnNcHitTest
Il framework chiama questa funzione membro per l'oggetto CWnd
che contiene il cursore (o l'oggetto CWnd
che ha utilizzato la SetCapture
funzione membro per acquisire l'input del mouse) ogni volta che il mouse viene spostato.
afx_msg LRESULT OnNcHitTest(CPoint point);
Parametri
point
Contiene le coordinate x e y del cursore. Queste coordinate sono sempre coordinate dello schermo.
Valore restituito
Uno dei valori enumerati di hit test del mouse. Vedere WM_NCHITTEST
per l'elenco dei valori.
Osservazioni:
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnNcLButtonDblClk
Il framework chiama questa funzione membro quando l'utente fa doppio clic sul pulsante sinistro del mouse mentre il cursore si trova all'interno di un'area non client di CWnd
.
afx_msg void OnNcLButtonDblClk(
UINT nHitTest,
CPoint point);
Parametri
nHitTest
Specifica il codice di hit test. Un hit test è un test che determina la posizione del cursore. Vedere WM_NCHITTEST
per l'elenco dei valori.
point
Specifica un CPoint
oggetto che contiene le coordinate dello schermo x e y della posizione del cursore. Queste coordinate sono sempre relative all'angolo superiore sinistro dello schermo.
Osservazioni:
Se appropriato, il WM_SYSCOMMAND
messaggio viene inviato.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnNcLButtonDown
Il framework chiama questa funzione membro quando l'utente preme il pulsante sinistro del mouse mentre il cursore si trova all'interno di un'area non client dell'oggetto CWnd
.
afx_msg void OnNcLButtonDown(
UINT nHitTest,
CPoint point);
Parametri
nHitTest
Specifica il codice di hit test. Un hit test è un test che determina la posizione del cursore. Vedere WM_NCHITTEST
per l'elenco dei valori.
point
Specifica un CPoint
oggetto che contiene le coordinate dello schermo x e y della posizione del cursore. Queste coordinate sono sempre relative all'angolo superiore sinistro dello schermo.
Osservazioni:
Se appropriato, viene WM_SYSCOMMAND
inviato .
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework al momento della ricezione del messaggio. Se si chiama l'implementazione della classe base di questa funzione, tale implementazione userà i parametri originariamente passati con il messaggio e non i parametri forniti alla funzione.
CWnd::OnNcLButtonUp
Il framework chiama questa funzione membro quando l'utente rilascia il pulsante sinistro del mouse mentre il cursore si trova all'interno di un'area non client.
afx_msg void OnNcLButtonUp(
UINT nHitTest,
CPoint point);
Parametri
nHitTest
Specifica il codice di hit test. Un hit test è un test che determina la posizione del cursore. Vedere WM_NCHITTEST
per l'elenco dei valori.
point
Specifica un CPoint
oggetto che contiene le coordinate dello schermo x e y della posizione del cursore. Queste coordinate sono sempre relative all'angolo superiore sinistro dello schermo.
Osservazioni:
Se appropriato, WM_SYSCOMMAND
viene inviato.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnNcMButtonDblClk
Il framework chiama questa funzione membro quando l'utente fa doppio clic sul pulsante centrale del mouse mentre il cursore si trova all'interno di un'area non client.
afx_msg void OnNcMButtonDblClk(
UINT nHitTest,
CPoint point);
Parametri
nHitTest
Specifica il codice di hit test. Un hit test è un test che determina la posizione del cursore.
point
Specifica un CPoint
oggetto che contiene le coordinate dello schermo x e y della posizione del cursore. Queste coordinate sono sempre relative all'angolo superiore sinistro dello schermo.
Osservazioni:
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnNcMButtonDown
Il framework chiama questa funzione membro quando l'utente preme il pulsante centrale del mouse mentre il cursore si trova all'interno di un'area non client.
afx_msg void OnNcMButtonDown(
UINT nHitTest,
CPoint point);
Parametri
nHitTest
Specifica il codice di hit test. Un hit test è un test che determina la posizione del cursore.
point
Specifica un CPoint
oggetto che contiene le coordinate dello schermo x e y della posizione del cursore. Queste coordinate sono sempre relative all'angolo superiore sinistro dello schermo.
Osservazioni:
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnNcMButtonUp
Il framework chiama questa funzione membro quando l'utente rilascia il pulsante centrale del mouse mentre il cursore si trova all'interno di un'area non client.
afx_msg void OnNcMButtonUp(
UINT nHitTest,
CPoint point);
Parametri
nHitTest
Specifica il codice di hit test. Un hit test è un test che determina la posizione del cursore.
point
Specifica un CPoint
oggetto che contiene le coordinate dello schermo x e y della posizione del cursore. Queste coordinate sono sempre relative all'angolo superiore sinistro dello schermo.
Osservazioni:
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnNcMouseHover
Il framework chiama questa funzione membro quando il cursore passa il puntatore sull'area non client della finestra per il periodo di tempo specificato in una chiamata precedente a TrackMouseEvent
.
afx_msg void OnNcMouseHover(
UINT nHitTest,
CPoint point);
Parametri
nHitTest
[in] Valore di hit test restituito dalla CWnd::DefWindowProc
funzione come risultato dell'elaborazione del WM_NCHITTEST
messaggio.
point
[in] Oggetto CPoint
che specifica le coordinate x e y del cursore rispetto all'angolo superiore sinistro dello schermo.
Osservazioni:
Questo metodo riceve la WM_NCMOUSEHOVER
notifica, descritta in Windows SDK.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnNcMouseLeave
Il framework chiama questa funzione membro quando il cursore lascia l'area non client della finestra specificata in una chiamata precedente a TrackMouseEvent
.
afx_msg void OnNcMouseLeave();
Osservazioni:
Questo metodo riceve la WM_NCMOUSELEAVE
notifica, descritta in Windows SDK.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnNcMouseMove
Il framework chiama questa funzione membro quando il cursore viene spostato all'interno di un'area non client.
afx_msg void OnNcMouseMove(
UINT nHitTest,
CPoint point);
Parametri
nHitTest
Specifica il codice di hit test. Un hit test è un test che determina la posizione del cursore.
point
Specifica un CPoint
oggetto che contiene le coordinate dello schermo x e y della posizione del cursore. Queste coordinate sono sempre relative all'angolo superiore sinistro dello schermo.
Osservazioni:
Se appropriato, il WM_SYSCOMMAND
messaggio viene inviato.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnNcPaint
Il framework chiama questa funzione membro quando è necessario disegnare l'area non client.
afx_msg void OnNcPaint();
Osservazioni:
L'implementazione predefinita disegna la cornice della finestra.
Un'applicazione può eseguire l'override di questa chiamata e disegnare il proprio frame di finestra personalizzato. L'area di ritaglio è sempre rettangolare, anche se la forma del fotogramma viene modificata.
CWnd::OnNcRButtonDblClk
Il framework chiama questa funzione membro quando l'utente fa doppio clic sul pulsante destro del mouse mentre il cursore si trova all'interno di un'area non client di CWnd
.
afx_msg void OnNcRButtonDblClk(
UINT nHitTest,
CPoint point);
Parametri
nHitTest
Specifica il codice di hit test. Un hit test è un test che determina la posizione del cursore.
point
Specifica un CPoint
oggetto che contiene le coordinate dello schermo x e y della posizione del cursore. Queste coordinate sono sempre relative all'angolo superiore sinistro dello schermo.
Osservazioni:
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnNcRButtonDown
Il framework chiama questa funzione membro quando l'utente preme il pulsante destro del mouse mentre il cursore si trova all'interno di un'area non client.
afx_msg void OnNcRButtonDown(
UINT nHitTest,
CPoint point);
Parametri
nHitTest
Specifica il codice di hit test. Un hit test è un test che determina la posizione del cursore.
point
Specifica un CPoint
oggetto che contiene le coordinate dello schermo x e y della posizione del cursore. Queste coordinate sono sempre relative all'angolo superiore sinistro dello schermo.
Osservazioni:
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnNcRButtonUp
Il framework chiama questa funzione membro quando l'utente rilascia il pulsante destro del mouse mentre il cursore si trova all'interno di un'area non client.
afx_msg void OnNcRButtonUp(
UINT nHitTest,
CPoint point);
Parametri
nHitTest
Specifica il codice di hit test. Un hit test è un test che determina la posizione del cursore.
point
Specifica un CPoint
oggetto che contiene le coordinate dello schermo x e y della posizione del cursore. Queste coordinate sono sempre relative all'angolo superiore sinistro dello schermo.
Osservazioni:
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnNcRenderingChanged
Il framework chiama questo membro quando i criteri di rendering per l'area non client sono stati modificati.
afx_msg void OnNcRenderingChanged(BOOL bIsRendering);
Parametri
bIsRendering
[in] TRUE
se il rendering di Desktop Window Manager (DWM) è abilitato per l'area non client della finestra; FALSE
se il rendering è disabilitato.
Osservazioni:
Questo metodo riceve la WM_DWMNCRENDERINGCHANGED
notifica, descritta in Windows SDK.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnNcXButtonDblClk
Il framework chiama questa funzione membro quando l'utente fa doppio clic XBUTTON1
o XBUTTON2
mentre il cursore si trova nell'area non client di una finestra.
void OnNcXButtonDblClk(
short nHitTest,
UINT nButton,
CPoint point);
Parametri
nHitTest
[in] Valore di hit test restituito dalla CWnd::DefWindowProc
funzione come risultato dell'elaborazione del WM_NCHITTEST
messaggio.
nButton
[in] Valore se XBUTTON1
si fa doppio clic sul pulsante X di Microsoft Intellimouse o XBUTTON2
se si fa doppio clic sul pulsante X.
point
[in] Oggetto CPoint
che specifica le x
coordinate e y
del cursore rispetto all'angolo superiore sinistro dell'area client.
Osservazioni:
Questo metodo riceve la WM_XBUTTONDBLCLK
notifica, descritta in Windows SDK. Questo messaggio viene inviato alla finestra contenente il cursore. Se una finestra ha acquisito il mouse, questo messaggio non viene pubblicato.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnNcXButtonDown
Il framework chiama questa funzione membro quando l'utente preme XBUTTON1
o XBUTTON2
del mouse mentre il cursore si trova nell'area non client di una finestra.
afx_msg void OnNcXButtonDown(
short nHitTest,
UINT nButton,
CPoint point);
Parametri
nHitTest
[in] Valore di hit test restituito dalla CWnd::DefWindowProc
funzione come risultato dell'elaborazione del WM_NCHITTEST
messaggio.
nButton
[in] Valore se XBUTTON1
viene premuto il primo pulsante X del mouse o XBUTTON2
se viene premuto il secondo pulsante X.
point
[in] Oggetto CPoint
che specifica le x
coordinate e y
del cursore rispetto all'angolo superiore sinistro dello schermo.
Osservazioni:
Questo metodo riceve la WM_NCXBUTTONDOWN
notifica, descritta in Windows SDK. Questo messaggio viene inviato alla finestra contenente il cursore. Se una finestra ha acquisito il mouse, questo messaggio non viene pubblicato.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnNcXButtonUp
Il framework chiama questa funzione membro quando l'utente rilascia XBUTTON1
o XBUTTON2
del mouse mentre il cursore si trova nell'area non client di una finestra.
afx_msg void OnNcXButtonUp(
short nHitTest,
UINT nButton,
CPoint point);
Parametri
nHitTest
[in] Valore di hit test restituito dalla CWnd::DefWindowProc
funzione come risultato dell'elaborazione del WM_NCHITTEST
messaggio.
nButton
[in] Valore se XBUTTON1
viene rilasciato il primo pulsante X del mouse o XBUTTON2
se viene rilasciato il secondo pulsante X.
point
[in] Oggetto CPoint
che specifica le coordinate x e y del cursore rispetto all'angolo superiore sinistro dello schermo.
Osservazioni:
Questo metodo riceve la WM_NCXBUTTONUP
notifica, descritta in Windows SDK. Questo messaggio viene inviato alla finestra contenente il cursore. Se una finestra ha acquisito il mouse, questo messaggio non viene pubblicato.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnNextMenu
Il framework chiama questa funzione membro quando viene usato il tasto freccia destra o sinistra per passare dalla barra dei menu al menu di sistema.
afx_msg void OnNextMenu(
UINT nKey,
LPMDINEXTMENU lpMdiNextMenu);
Parametri
nKey
[in] Combinazione bit per bit (OR
) di flag che indicano quali tasti di modifica vengono premuti. Ad esempio, il MK_CONTROL
flag indica che il tasto CTRL viene premuto. Per un elenco di flag, vedere la sottotitolo "Parametri messaggio" in Informazioni sull'input del mouse.
lpMdiNextMenu
[in] Puntatore a una MDINEXTMENU
struttura che contiene informazioni sul menu da attivare.
Osservazioni:
Questo metodo riceve la WM_UNINITMENUPOPUP
notifica, descritta in Windows SDK. In risposta a questo messaggio, l'applicazione può impostare il hmenuNext
membro della MDINEXTMENU
struttura per specificare il menu su cui passare e il hwndNext
membro a cui specificare la finestra per ricevere messaggi di notifica del menu.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnNotify
Il framework chiama questa funzione membro per informare la finestra padre di un controllo che si è verificato un evento nel controllo o che il controllo richiede un certo tipo di informazioni.
virtual BOOL OnNotify(
WPARAM wParam,
LPARAM lParam,
LRESULT* pResult);
Parametri
wParam
Identifica il controllo che invia il messaggio se il messaggio proviene da un controllo . In caso contrario, wParam
è 0.
lParam
Puntatore a una struttura di messaggio di notifica (NMHDR
) che contiene il codice di notifica e informazioni aggiuntive. Per alcuni messaggi di notifica, questo parametro punta a una struttura più grande con la NMHDR
struttura come primo membro.
pResult
Puntatore a una LRESULT
variabile in cui archiviare il codice del risultato se il messaggio viene gestito.
Valore restituito
Un'applicazione restituisce un valore diverso da zero se elabora questo messaggio; in caso contrario, 0.
Osservazioni:
OnNotify
elabora la mappa dei messaggi per la notifica del controllo.
Eseguire l'override di questa funzione membro nella classe derivata per gestire il WM_NOTIFY
messaggio. Un override non elabora la mappa messaggi a meno che non venga chiamata la classe OnNotify
di base.
Per altre informazioni sul WM_NOTIFY
messaggio, vedere La nota tecnica 61 (TN061) ON_NOTIFY
e WM_NOTIFY
i messaggi. Potresti anche essere interessato agli argomenti correlati descritti in Argomenti di controllo e TN062, Reflection dei messaggi per i controlli Windows.
CWnd::OnNotifyFormat
Il framework chiama questa funzione membro per determinare se la finestra corrente accetta strutture ANSI o Unicode nel messaggio di WM_NOTIFY
notifica.
afx_msg UINT OnNotifyFormat(
CWnd* pWnd,
UINT nCommand);
Parametri
pWnd
[in] Puntatore a un CWnd
oggetto che rappresenta la finestra che invia il WM_NOTIFY
messaggio. Questo parametro è il puntatore a un controllo se il nCommand
parametro è NF_QUERY
o il puntatore alla finestra padre di un controllo se nCommand
è NF_REQUERY
.
nCommand
[in] Valore del comando specializzato nel WM_NOTIFY
messaggio. I valori possibili sono:
NF_QUERY
- Il messaggio è una query per determinare se le strutture ANSI o Unicode devono essere usate neiWM_NOTIFY
messaggi. Questo messaggio viene inviato da un controllo alla relativa finestra padre durante la creazione di un controllo e in risposta allaNF_REQUERY
forma di questo messaggio.NF_REQUERY
- Il messaggio è una richiesta di un controllo per inviare ilNF_QUERY
modulo di questo messaggio alla finestra padre. Questa richiesta viene inviata dalla finestra padre e chiede al controllo di rieseguire una query sull'elemento padre sul tipo di struttura da utilizzare neiWM_NOTIFY
messaggi. Se ilnCommand
parametro èNF_REQUERY
, il valore restituito è il risultato dell'operazione di ripetizione della query.
Valore restituito
Valore restituito | Significato |
---|---|
NFR_ANSI |
Le strutture ANSI devono essere usate nei WM_NOTIFY messaggi inviati dal controllo . |
NFR_UNICODE |
Le strutture Unicode devono essere usate nei WM_NOTIFY messaggi inviati dal controllo . |
0 | Si è verificato un errore. |
Osservazioni:
Questo metodo riceve la WM_NOTIFYFORMAT
notifica, descritta in Windows SDK. WM_NOTIFY
i messaggi vengono inviati da un controllo comune alla finestra padre e dalla finestra padre al controllo comune.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnPaint
Il framework chiama questa funzione membro quando Windows o un'applicazione effettua una richiesta di ridipingere una parte della finestra di un'applicazione.
afx_msg void OnPaint();
Osservazioni:
Il WM_PAINT
messaggio viene inviato quando viene chiamata la UpdateWindow
funzione membro o RedrawWindow
.
Una finestra può ricevere messaggi di disegno interni in seguito alla chiamata della RedrawWindow
funzione membro con il RDW_INTERNALPAINT
flag impostato. In questo caso, la finestra potrebbe non avere un'area di aggiornamento. Un'applicazione deve chiamare la GetUpdateRect
funzione membro per determinare se la finestra ha un'area di aggiornamento. Se GetUpdateRect
restituisce 0, l'applicazione non deve chiamare le BeginPaint
funzioni membro e EndPaint
.
È responsabilità di un'applicazione verificare la presenza di un aggiornamento interno o di un aggiornamento necessario esaminando le relative strutture di dati interne per ogni WM_PAINT
messaggio perché un WM_PAINT
messaggio potrebbe essere stato causato da un'area non valida e da una chiamata alla RedrawWindow
funzione membro con il RDW_INTERNALPAINT
flag impostato.
Un messaggio interno WM_PAINT
viene inviato una sola volta da Windows. Dopo che un messaggio interno WM_PAINT
viene inviato a una finestra dalla UpdateWindow
funzione membro, non verranno inviati o pubblicati altri WM_PAINT
messaggi fino a quando la finestra non viene invalidata o finché la RedrawWindow
funzione membro non viene chiamata nuovamente con il RDW_INTERNALPAINT
flag impostato.
Per informazioni sul rendering di un'immagine nelle applicazioni document/view, vedere CView::OnDraw
.
Per altre informazioni sull'uso WM_Paint
di , vedere gli argomenti seguenti in Windows SDK:
CWnd::OnPaintClipboard
La funzione membro OnPaintClipboard
di un proprietario degli Appunti viene chiamata da un visualizzatore appunti se il proprietario degli Appunti ha inserito dati negli Appunti nel formato CF_OWNERDISPLAY
e l'area client del visualizzatore Appunti deve essere ridisegnata.
afx_msg void OnPaintClipboard(
CWnd* pClipAppWnd,
HGLOBAL hPaintStruct);
Parametri
pClipAppWnd
Specifica un puntatore alla finestra dell'applicazione Appunti. Il puntatore può essere temporaneo e non deve essere archiviato per un uso successivo.
hPaintStruct
Identifica una PAINTSTRUCT
struttura di dati che definisce la parte dell'area client da disegnare.
Osservazioni:
Per determinare se l'intera area client o solo una parte di essa richiede l'aggiornamento, il proprietario degli Appunti deve confrontare le dimensioni dell'area di disegno specificata nel rcpaint
membro della PAINTSTRUCT
struttura con le dimensioni specificate nella chiamata di funzione membro più recente OnSizeClipboard
.
OnPaintClipboard
deve usare la GlobalLock
funzione Windows per bloccare la memoria che contiene la struttura dei PAINTSTRUCT
dati e sbloccare la memoria con la GlobalUnlock
funzione Windows prima di uscire.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnPaletteChanged
Il framework chiama questa funzione membro per tutte le finestre di primo livello dopo che la finestra con stato attivo input ha realizzato la tavolozza logica, modificando così la tavolozza del sistema.
afx_msg void OnPaletteChanged(CWnd* pFocusWnd);
Parametri
pFocusWnd
Specifica un puntatore alla finestra che ha causato la modifica della tavolozza del sistema. Il puntatore può essere temporaneo e non deve essere archiviato.
Osservazioni:
Questa chiamata consente a una finestra senza lo stato attivo di input che usa una tavolozza dei colori per realizzare le tavolozze logiche e aggiornare l'area client.
La OnPaletteChanged
funzione membro viene chiamata per tutte le finestre di primo livello e sovrapposte, inclusa quella che ha modificato la tavolozza del sistema e ha causato l'invio del WM_PALETTECHANGED
messaggio. Se una finestra figlio usa una tavolozza dei colori, questo messaggio deve essere passato a esso.
Per evitare un ciclo infinito, la finestra non deve rendersi conto della tavolozza, a meno che non determini che pFocusWnd
non contenga un puntatore a se stesso.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnPaletteIsChanging
Il framework chiama questa funzione membro per informare le applicazioni che un'applicazione si rende conto della tavolozza logica.
afx_msg void OnPaletteIsChanging(CWnd* pRealizeWnd);
Parametri
pRealizeWnd
Specifica la finestra che sta per realizzare la tavolozza logica.
Osservazioni:
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnParentNotify
La funzione membro di OnParentNotify
un padre viene chiamata dal framework quando la finestra figlio viene creata o eliminata definitivamente o quando l'utente fa clic su un pulsante del mouse mentre il cursore si trova sulla finestra figlio.
afx_msg void OnParentNotify(
UINT message,
LPARAM lParam);
Parametri
message
Specifica l'evento per il quale l'elemento padre riceve una notifica e l'identificatore della finestra figlio. L'evento è la parola in ordine basso di message
. Se l'evento è WM_CREATE
o WM_DESTROY
, la parola di ordine elevato di message
è l'identificatore della finestra figlio; in caso contrario, la parola di ordine elevato non è definita. L'evento (parola con ordine basso di message
) può essere uno dei valori seguenti:
WM_CREATE
Viene creata la finestra figlio.WM_DESTROY
La finestra figlio viene distrutta.WM_LBUTTONDOWN
L'utente ha posizionato il cursore del mouse sulla finestra figlio e ha fatto clic sul pulsante sinistro del mouse.WM_MBUTTONDOWN
L'utente ha posizionato il cursore del mouse sulla finestra figlio e ha fatto clic sul pulsante centrale del mouse.WM_RBUTTONDOWN
L'utente ha posizionato il cursore del mouse sulla finestra figlio e ha fatto clic sul pulsante destro del mouse.
lParam
Se l'evento (parola in ordine basso) di message
è WM_CREATE
o WM_DESTROY
, lParam
specifica l'handle di finestra della finestra figlio; in caso contrario lParam
, contiene le coordinate x e y del cursore. La coordinata x si trova nella parola in ordine basso e la coordinata y si trova nella parola in ordine elevato.
Osservazioni:
Quando viene creata la finestra figlio, il sistema chiama OnParentNotify
poco prima che venga restituita la Create
funzione membro che crea la finestra. Quando la finestra figlio viene eliminata definitivamente, il sistema chiama OnParentNotify
prima che venga eseguita un'elaborazione per eliminare definitivamente la finestra.
OnParentNotify
viene chiamato per tutte le finestre predecessore della finestra figlio, inclusa la finestra di primo livello.
Tutte le finestre figlio tranne quelle con lo stile inviano questo WS_EX_NOPARENTNOTIFY
messaggio alle finestre padre. Per impostazione predefinita, le finestre figlio in una finestra di dialogo hanno lo WS_EX_NOPARENTNOTIFY
stile a meno che la finestra figlio non sia stata creata senza questo stile chiamando la CreateEx
funzione membro.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnPowerBroadcast
Il framework chiama questa funzione membro quando si verifica un evento di risparmio energia.
afx_msg UINT OnPowerBroadcast(
UINT nPowerEvent,
UINT nEventData);
Parametri
nPowerEvent
[in] Evento di risparmio energia.
nEventData
[in] Dati specifici dell'evento.
Valore restituito
Se l'evento è una richiesta, tornare TRUE
a concedere la richiesta o BROADCAST_QUERY_DENY
negare la richiesta.
Osservazioni:
Questo metodo riceve il WM_POWERBROADCAST
messaggio, descritto in Windows SDK.
Il nPowerEvent
parametro specifica eventi come l'alimentazione della batteria è insufficiente, lo stato di alimentazione è stato modificato, l'autorizzazione per sospendere l'operazione viene richiesta o negata, un'operazione viene ripresa automaticamente dopo un evento, il sistema sta sospendendo l'operazione o un'operazione riprende dopo la sospensione. Il nEventData
parametro in genere non viene usato. Per altre informazioni, vedere i wParam
parametri e lParam
del WM_POWERBROADCAST
messaggio.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnQueryDragIcon
Il framework chiama questa funzione membro da una finestra ridotta a icona (iconica) che non ha un'icona definita per la relativa classe.
afx_msg HCURSOR OnQueryDragIcon();
Valore restituito
Valore doubleword che contiene un punto di manipolazione cursore o icona nella parola con ordine basso. Il cursore o l'icona devono essere compatibili con la risoluzione del driver di visualizzazione. Se l'applicazione restituisce NULL
, il sistema visualizza il cursore predefinito. Il valore restituito predefinito è NULL
.
Osservazioni:
Il sistema effettua questa chiamata per ottenere il cursore da visualizzare mentre l'utente trascina la finestra ridotta a icona. Se un'applicazione restituisce l'handle di un'icona o di un cursore, il sistema lo converte in bianco e nero. Se un'applicazione restituisce un handle, l'handle deve identificare un cursore monocromatico o un'icona compatibile con la risoluzione del driver di visualizzazione. L'applicazione può chiamare le CWinApp::LoadCursor
funzioni membro o CWinApp::LoadIcon
per caricare un cursore o un'icona dalle risorse nel file eseguibile e ottenere questo handle.
CWnd::OnQueryEndSession
Il framework chiama questa funzione membro quando l'utente sceglie di terminare la sessione di Windows o quando un'applicazione chiama la ExitWindows
funzione Di Windows.
afx_msg BOOL OnQueryEndSession();
Valore restituito
Diverso da zero se un'applicazione può essere arrestata in modo pratico; in caso contrario, 0.
Osservazioni:
Se un'applicazione restituisce 0, la sessione di Windows non viene terminata. Windows smette di chiamare OnQueryEndSession
non appena un'applicazione restituisce 0 e invia il WM_ENDSESSION
messaggio con un valore di parametro per FALSE
qualsiasi applicazione che ha già restituito un valore diverso da zero.
CWnd::OnQueryNewPalette
Il framework chiama questa funzione membro quando l'oggetto CWnd
sta per ricevere lo stato attivo dell'input, dando la possibilità di realizzare la CWnd
tavolozza logica quando riceve lo stato attivo.
afx_msg BOOL OnQueryNewPalette();
Valore restituito
Diverso da zero se l'oggetto CWnd
realizza la tavolozza logica; in caso contrario, 0.
CWnd::OnQueryOpen
Il framework chiama questa funzione membro quando l'oggetto CWnd
viene ridotto a icona e l'utente richiede che l'oggetto CWnd
venga ripristinato alle dimensioni e alla posizione preminimizzate.
afx_msg BOOL OnQueryOpen();
Valore restituito
Diverso da zero se l'icona può essere aperta o 0 per impedire l'apertura dell'icona.
Osservazioni:
Anche se in OnQueryOpen
CWnd
non deve eseguire alcuna azione che provocherebbe un'attivazione o una modifica dello stato attivo (ad esempio, la creazione di una finestra di dialogo).
CWnd::OnQueryUIState
Chiamata eseguita per recuperare lo stato dell'interfaccia utente per una finestra.
afx_msg UINT OnQueryUIState();
Valore restituito
Il valore restituito è NULL
se gli indicatori di stato attivo e gli acceleratori di tastiera sono visibili. In caso contrario, il valore restituito può essere uno o più dei valori seguenti:
UISF_HIDEFOCUS
Gli indicatori di stato attivo sono nascosti.UISF_HIDEACCEL
I tasti di scelta rapida sono nascosti.UISF_ACTIVE
Windows XP: un controllo deve essere disegnato nello stile utilizzato per i controlli attivi.
Osservazioni:
Questa funzione membro emula la funzionalità del WM_QUERYUISTATE
messaggio, come descritto in Windows SDK.
CWnd::OnRawInput
Il framework chiama questa funzione membro quando la finestra corrente ottiene l'input non elaborato.
afx_msg void OnRawInput(
UINT nInputCode,
HRAWINPUT hRawInput);
Parametri
nInputCode
[in] Codice di input che indica se l'input si è verificato mentre l'applicazione era in primo piano o meno. In entrambi i casi, l'applicazione deve chiamare CWnd::DefWindowProc
in modo che il sistema possa eseguire la pulizia. Questo parametro può avere uno dei valori seguenti:
RIM_INPUT
- L'input si è verificato mentre l'applicazione era in primo piano.RIM_INPUTSINK
- L'input si è verificato mentre l'applicazione non era in primo piano.
hRawInput
[in] Handle in una RAWINPUT
struttura che contiene l'input non elaborato dal dispositivo.
Osservazioni:
Questo metodo riceve la WM_INPUT
notifica, descritta in Windows SDK.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnRButtonDblClk
Il framework chiama questa funzione membro quando l'utente fa doppio clic sul pulsante destro del mouse.
afx_msg void OnRButtonDblClk(
UINT nFlags,
CPoint point);
Parametri
nFlags
Indica se diverse chiavi virtuali sono inattivi. Questo parametro può essere qualsiasi combinazione dei valori seguenti:
MK_CONTROL
Impostare se il tasto CTRL è inattivo.MK_LBUTTON
Impostare se il pulsante sinistro del mouse è inattivo.MK_MBUTTON
Impostare se il pulsante centrale del mouse è inattivo.MK_RBUTTON
Impostare se il pulsante destro del mouse è inattivo.MK_SHIFT
Impostare se MAIUSC è inattivo.
point
Specifica le coordinate x e y del cursore. Queste coordinate sono sempre relative all'angolo superiore sinistro della finestra.
Osservazioni:
Solo le finestre con lo stile CS_DBLCLKS WNDCLASS
possono ricevere OnRButtonDblClk
chiamate. Questa è l'impostazione predefinita per le finestre all'interno della libreria di classi Microsoft Foundation. Windows chiama OnRButtonDblClk
quando l'utente preme, rilascia e quindi preme di nuovo il pulsante destro del mouse entro il limite di tempo di doppio clic del sistema. Facendo doppio clic sul pulsante destro del mouse vengono effettivamente generati quattro eventi: WM_RBUTTONDOWN
e WM_RBUTTONUP
messaggi, la OnRButtonDblClk
chiamata e un altro messaggio WM_RBUTTONUP quando viene rilasciato il pulsante.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnRButtonDown
Il framework chiama questa funzione membro quando l'utente preme il pulsante destro del mouse.
afx_msg void OnRButtonDown(
UINT nFlags,
CPoint point);
Parametri
nFlags
Indica se diverse chiavi virtuali sono inattivi. Questo parametro può essere qualsiasi combinazione dei valori seguenti:
MK_CONTROL
Impostare se il tasto CTRL è inattivo.MK_LBUTTON
Impostare se il pulsante sinistro del mouse è inattivo.MK_MBUTTON
Impostare se il pulsante centrale del mouse è inattivo.MK_RBUTTON
Impostare se il pulsante destro del mouse è inattivo.MK_SHIFT
Impostare se MAIUSC è inattivo.
point
Specifica le coordinate x e y del cursore. Queste coordinate sono sempre relative all'angolo superiore sinistro della finestra.
Osservazioni:
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnRButtonUp
Il framework chiama questa funzione membro quando l'utente rilascia il pulsante destro del mouse.
afx_msg void OnRButtonUp(
UINT nFlags,
CPoint point);
Parametri
nFlags
Indica se diverse chiavi virtuali sono inattivi. Questo parametro può essere qualsiasi combinazione dei valori seguenti:
MK_CONTROL
Impostare se il tasto CTRL è inattivo.MK_LBUTTON
Impostare se il pulsante sinistro del mouse è inattivo.MK_MBUTTON
Impostare se il pulsante centrale del mouse è inattivo.MK_SHIFT
Impostare se MAIUSC è inattivo.
point
Specifica le coordinate x e y del cursore. Queste coordinate sono sempre relative all'angolo superiore sinistro della finestra.
Osservazioni:
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnRegisteredMouseWheel
Il framework chiama questa funzione membro come utente ruota la rotellina del mouse e incontra la notch successiva della rotellina.
afx_msg LRESULT OnRegisteredMouseWheel(
WPARAM wParam,
LPARAM lParam);
Parametri
wParam
Posizione orizzontale del puntatore.
lParam
Posizione verticale del puntatore.
Valore restituito
Insignificante in questo momento. Sempre zero.
Osservazioni:
A meno che non venga sottoposto a override, OnRegisteredMouseWheel
instrada il messaggio alla finestra appropriata (la finestra padre con stato attivo) e chiama il WM_MOUSEWHEEL
gestore per tale finestra.
Eseguire l'override di questa funzione membro per fornire il routing dei messaggi o per modificare il comportamento di scorrimento della rotellina del mouse.
Nota
OnRegisteredMouseWheel
gestisce i messaggi per Windows 95/98 e Windows NT 3.51. Per la gestione dei messaggi di Windows NT 4.0, usare OnMouseWheel
.
CWnd::OnRenderAllFormats
La funzione membro del proprietario degli OnRenderAllFormats
Appunti viene chiamata dal framework quando l'applicazione proprietario viene eliminata definitivamente.
afx_msg void OnRenderAllFormats();
Osservazioni:
Il proprietario degli Appunti deve eseguire il rendering dei dati in tutti i formati che è in grado di generare e passare un handle di dati per ogni formato negli Appunti chiamando la SetClipboardData
funzione Windows. Ciò garantisce che gli Appunti contengano dati validi anche se l'applicazione che ha eseguito il rendering dei dati viene eliminata definitivamente. L'applicazione deve chiamare la OpenClipboard
funzione membro prima di chiamare la SetClipboardData
funzione Windows e chiamare successivamente la CloseClipboard
funzione Windows.
CWnd::OnRenderFormat
La funzione membro del proprietario degli OnRenderFormat
Appunti viene chiamata dal framework quando è necessario eseguire il rendering di un particolare formato con rendering ritardato.
afx_msg void OnRenderFormat(UINT nFormat);
Parametri
nFormat
Specifica il formato degli Appunti.
Osservazioni:
Il ricevitore deve eseguire il rendering dei dati in tale formato e passarli agli Appunti chiamando la SetClipboardData
funzione Windows.
Non chiamare la OpenClipboard
funzione membro o la CloseClipboard
funzione Windows dall'interno OnRenderFormat
di .
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnSessionChange
Il framework chiama questa funzione membro per notificare a un'applicazione una modifica nello stato della sessione.
afx_msg void OnSessionChange(
UINT nSessionState,
UINT nId);
Parametri
nSessionState
[in] Un codice di stato descrive la modifica dello stato della sessione.
nId
[in] Identificatore di sessione.
Osservazioni:
Questo metodo riceve la WM_WTSSESSION_CHANGE
notifica, descritta in Windows SDK.
Il nSessionState
parametro specifica che una sessione è connessa o disconnessa dalla console o da un terminale remoto, un utente connesso o disattivato, una sessione è bloccata o sbloccata oppure una sessione è stata modificata in stato controllato da remoto. Per altre informazioni, vedere il wParam
parametro del WM_WTSSESSION_CHANGE
messaggio.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnSetCursor
Il framework chiama questa funzione membro se l'input del mouse non viene acquisito e il mouse causa lo spostamento del cursore all'interno dell'oggetto CWnd
.
afx_msg BOOL OnSetCursor(
CWnd* pWnd,
UINT nHitTest,
UINT message);
Parametri
pWnd
Specifica un puntatore alla finestra che contiene il cursore. Il puntatore può essere temporaneo e non deve essere archiviato per un uso successivo.
nHitTest
Specifica il codice dell'area hit test . L'hit test determina la posizione del cursore.
message
Specifica il numero del messaggio del mouse.
Valore restituito
Diverso da zero per interrompere un'ulteriore elaborazione o 0 per continuare.
Osservazioni:
L'implementazione predefinita chiama la finestra padre prima dell'elaborazione OnSetCursor
. Se la finestra padre restituisce TRUE
, viene interrotta un'ulteriore elaborazione. La chiamata alla finestra padre fornisce al controllo della finestra padre l'impostazione del cursore in una finestra figlio.
L'implementazione predefinita imposta il cursore su una freccia se non si trova nell'area client o sul cursore della classe registrata, se è.
Se nHitTest
è HTERROR
e message
è un messaggio di pulsante verso il basso del mouse, viene chiamata la MessageBeep
funzione membro.
Il parametro message è 0 quando CWnd
entra in modalità menu.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnSetFocus
Il framework chiama questa funzione membro dopo aver ottenuto lo stato attivo per l'input.
afx_msg void OnSetFocus(CWnd* pOldWnd);
Parametri
pOldWnd
Contiene l'oggetto CWnd
che perde lo stato attivo dell'input (può essere NULL
). Il puntatore può essere temporaneo e non deve essere archiviato per un uso successivo.
Osservazioni:
Per visualizzare un cursore, CWnd
è necessario chiamare le funzioni di cursore appropriate a questo punto.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnSettingChange
Il framework chiama OnSettingChange
tutte le finestre di primo livello quando la funzione SystemParametersInfo Win32 modifica un'impostazione a livello di sistema.
afx_msg void OnSettingChange(
UINT uFlags,
LPCTSTR lpszSection);
Parametri
uFlags
Quando il sistema invia il messaggio in seguito a una SystemParametersInfo
chiamata, questo parametro è un flag che indica il parametro di sistema modificato. Per un elenco di valori, vedere SystemParametersInfo
in Windows SDK. Quando un'applicazione invia il messaggio, questo parametro deve essere 0.
lpszSection
Punta a una stringa che specifica il nome della sezione modificata. La stringa non include le parentesi quadre che racchiudono il nome della sezione.
Osservazioni:
Un'applicazione deve inviare il messaggio a tutte le finestre di primo livello quando apporta modifiche ai parametri di sistema e Windows invierà il messaggio se l'utente modifica le impostazioni tramite il Pannello di controllo.
Il ON_WM_SETTINGCHANGE
messaggio è simile al ON_WM_WININICHANGE
messaggio, con la differenza seguente:
Usare
ON_WM_SETTINGCHANGE
quando si esegue Windows NT 4.0 o versione successiva o in Windows 95/98.Usare
ON_WININICHANGE
quando si esegue Windows NT 3.51 o versione precedente. Questo messaggio è ora obsoleto.
Nella mappa dei messaggi dovrebbe essere presente una sola di queste macro. Per scrivere un programma che funziona sia per Windows 95/98 che per Windows NT 4.0, scrivere un gestore per ON_WM_SETTINGCHANGE
. In Windows NT 3.51 il gestore verrà chiamato da OnSettingChange
e uFlags
e sarà sempre zero.
CWnd::OnShowWindow
Il framework chiama questa funzione membro quando l'oggetto CWnd
sta per essere nascosto o visualizzato.
afx_msg void OnShowWindow(
BOOL bShow,
UINT nStatus);
Parametri
bShow
Specifica se viene visualizzata una finestra. È TRUE
se viene visualizzata la finestra; è FALSE
se la finestra è nascosta.
nStatus
Specifica lo stato della finestra visualizzata. È 0 se il messaggio viene inviato a causa di una ShowWindow
chiamata di funzione membro; in caso contrario nStatus
, è uno dei seguenti:
SW_PARENTCLOSING
La finestra padre sta chiudendo (resa iconica) o viene nascosta una finestra popup.SW_PARENTOPENING
La finestra padre viene aperta (visualizzata) o viene visualizzata una finestra popup.
Osservazioni:
Una finestra viene nascosta o visualizzata quando viene chiamata la ShowWindow
funzione membro, quando una finestra sovrapposta viene ingrandita o ripristinata oppure quando una finestra sovrapposta o popup viene chiusa (resa iconica) o aperta (visualizzata sullo schermo). Quando una finestra sovrapposta viene chiusa, tutte le finestre popup associate a tale finestra sono nascoste.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnSize
Il framework chiama questa funzione membro dopo la modifica delle dimensioni della finestra.
afx_msg void OnSize(
UINT nType,
int cx,
int cy);
Parametri
nType
Specifica il tipo di ridimensionamento richiesto. Questo parametro può avere uno dei valori seguenti:
SIZE_MAXIMIZED
Finestra ingrandita.SIZE_MINIMIZED
La finestra è stata ridotta a icona.SIZE_RESTORED
La finestra è stata ridimensionata, ma nonSIZE_MINIMIZED
è néSIZE_MAXIMIZED
applicabile.SIZE_MAXHIDE
Il messaggio viene inviato a tutte le finestre popup quando un'altra finestra è ingrandita.SIZE_MAXSHOW
Il messaggio viene inviato a tutte le finestre popup quando alcune altre finestre sono state ripristinate alle dimensioni precedenti.
cx
Specifica la nuova larghezza dell'area client.
cy
Specifica la nuova altezza dell'area client.
Osservazioni:
Se la SetScrollPos
funzione membro o MoveWindow
viene chiamata per una finestra figlio da OnSize
, il bRedraw
parametro di SetScrollPos
o MoveWindow
deve essere diverso da zero per fare in modo che l'oggetto CWnd
venga ridipingeto.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
Esempio
// 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
La funzione membro del proprietario degli OnSizeClipboard
Appunti viene chiamata dal visualizzatore Appunti quando gli Appunti contengono dati con l'attributo CF_OWNERDISPLAY
e le dimensioni dell'area client della finestra del visualizzatore appunti sono cambiate.
afx_msg void OnSizeClipboard(
CWnd* pClipAppWnd,
HGLOBAL hRect);
Parametri
pClipAppWnd
Identifica la finestra dell'applicazione Appunti. Il puntatore può essere temporaneo e non deve essere archiviato.
hRect
Identifica un oggetto memoria globale. L'oggetto memory contiene una RECT
struttura di dati che specifica l'area da disegnare per il proprietario degli Appunti.
Osservazioni:
La OnSizeClipboard
funzione membro viene chiamata con un rettangolo Null (0,0,0,0) come nuova dimensione quando l'applicazione Appunti sta per essere distrutta o ridotta a icona. In questo modo il proprietario degli Appunti può liberare le risorse di visualizzazione.
All'interno OnSizeClipboard
di , un'applicazione deve usare la GlobalLock
funzione Windows per bloccare la memoria che contiene la struttura dei RECT
dati. Chiedere all'applicazione di sbloccare la memoria con la GlobalUnlock
funzione Windows prima che restituisca o restituisca il controllo.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnSizing
Il framework chiama questa funzione membro per indicare che l'utente sta ridimensionando il rettangolo.
afx_msg void OnSizing(
UINT nSide,
LPRECT lpRect);
Parametri
nSide
Bordo della finestra da spostare.
lpRect
Indirizzo della CRect
struttura o RECT
che conterrà le coordinate dell'elemento.
Osservazioni:
Elaborando questo messaggio, un'applicazione può monitorare le dimensioni e la posizione del rettangolo di trascinamento e, se necessario, modificarne le dimensioni o la posizione.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
Esempio
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
Il framework chiama questa funzione membro da Print Manager ogni volta che un processo viene aggiunto o rimosso dalla coda di Gestione stampa.
afx_msg void OnSpoolerStatus(
UINT nStatus,
UINT nJobs);
Parametri
nStatus
Specifica il SP_JOBSTATUS
flag .
nJobs
Specifica il numero di processi rimanenti nella coda di Gestione stampa.
Osservazioni:
Questa chiamata è solo a scopo informativo.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnStyleChanged
Il framework chiama questa funzione membro dopo che la SetWindowLong
funzione ha modificato uno o più stili della finestra.
afx_msg void OnStyleChanged(
int nStyleType,
LPSTYLESTRUCT lpStyleStruct);
Parametri
nStyleType
Specifica se gli stili estesi o non estesi della finestra sono stati modificati. Questo parametro può essere una combinazione dei valori seguenti:
GWL_EXSTYLE
Gli stili estesi della finestra sono stati modificati.GWL_STYLE
Gli stili non automatici della finestra sono stati modificati.
lpStyleStruct
Punta a una STYLESTRUCT
struttura che contiene i nuovi stili per la finestra. Un'applicazione può esaminare gli stili, ma non può modificarli.
Osservazioni:
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnStyleChanging
Il framework chiama questa funzione membro quando la SetWindowLong
funzione sta per modificare uno o più stili della finestra.
afx_msg void OnStyleChanging(
int nStyleType,
LPSTYLESTRUCT lpStyleStruct);
Parametri
nStyleType
Specifica se gli stili estesi o non estesi della finestra sono stati modificati. Questo parametro può essere una combinazione dei valori seguenti:
GWL_EXSTYLE
Gli stili estesi della finestra sono stati modificati.GWL_STYLE
Gli stili non automatici della finestra sono stati modificati.
lpStyleStruct
Punta a una STYLESTRUCT
struttura che contiene i nuovi stili per la finestra. Un'applicazione può esaminare gli stili e modificarli.
Osservazioni:
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnSysChar
Il framework chiama questa funzione membro se CWnd
ha lo stato attivo per l'input e i WM_SYSKEYUP
messaggi e WM_SYSKEYDOWN
vengono convertiti.
afx_msg void OnSysChar(
UINT nChar,
UINT nRepCnt,
UINT nFlags);
Parametri
nChar
Specifica il codice della chiave dei caratteri ASCII di un tasto Control-menu.
nRepCnt
Specifica il numero di ripetizioni, ovvero il numero di volte in cui la sequenza di tasti viene ripetuta in seguito all'utente che tiene premuto il tasto.
nFlags
Il nFlags
parametro può avere questi valori:
Valore | Significato |
---|---|
0-15 | Specifica il conteggio delle ripetizioni. Il valore è il numero di volte in cui la sequenza di tasti viene ripetuta in seguito all'utente che tiene premuto il tasto. |
16-23 | Specifica il codice di analisi. Il valore dipende dal produttore di apparecchiature originali (OEM) |
24 | Specifica se il tasto è un tasto esteso, ad esempio i tasti ALT e CTRL di destra visualizzati su una tastiera avanzata da 101 o 102 tasti. Il valore è 1 se è una chiave estesa; in caso contrario, è 0. |
25-28 | Utilizzato internamente da Windows. |
29 | Specifica il codice di contesto. Il valore è 1 se il tasto ALT viene premuto mentre viene premuto il tasto; in caso contrario, il valore è 0. |
30 | Specifica lo stato della chiave precedente. Il valore è 1 se la chiave è inattiva prima dell'invio del messaggio oppure è 0 se la chiave è inattiva. |
31 | Specifica lo stato di transizione. Il valore è 1 se il tasto viene rilasciato o è 0 se il tasto viene premuto. |
Osservazioni:
Specifica il codice della chiave virtuale del tasto Control-menu. (Per un elenco dei codici di chiave virtuale standard, vedere Winuser.h)
Quando il codice di contesto è 0, WM_SYSCHAR
può passare il WM_SYSCHAR
messaggio alla TranslateAccelerator
funzione Windows, che lo gestirà come se fosse un normale messaggio di chiave anziché una chiave di sistema. In questo modo è possibile usare i tasti di scelta rapida con la finestra attiva anche se la finestra attiva non ha lo stato attivo.
Per le tastiere IBM Enhanced 101 e 102 tasti, i tasti avanzati sono i tasti ALT destro e i tasti CTRL destro nella sezione principale della tastiera; i tasti INS, DEL, HOME, END, PAGE UP, PAGE DOWN e freccia nei cluster a sinistra del tastierino numerico; e le barre (/) e i tasti INVIO nel tastierino numerico. Alcune altre tastiere possono supportare il bit del tasto esteso in nFlags
.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnSysColorChange
Il framework chiama questa funzione membro per tutte le finestre di primo livello quando viene apportata una modifica nell'impostazione del colore di sistema.
afx_msg void OnSysColorChange();
Osservazioni:
Windows chiama OnSysColorChange
qualsiasi finestra interessata da una modifica del colore del sistema.
Le applicazioni con pennelli che usano i colori di sistema esistenti devono eliminare tali pennelli e ricrearli con i nuovi colori di sistema.
CWnd::OnSysCommand
Il framework chiama questa funzione membro quando l'utente seleziona un comando dal menu Controllo o quando l'utente seleziona il pulsante Ingrandisci o Riduci a icona.
afx_msg void OnSysCommand(
UINT nID,
LPARAM lParam);
Parametri
nID
Specifica il tipo di comando di sistema richiesto. Questo parametro può essere uno dei valori seguenti:
SC_CLOSE
Chiudere l'oggettoCWnd
.SC_HOTKEY
Attivare l'oggettoCWnd
associato al tasto di scelta rapida specificato dall'applicazione. La parola di ordine basso dilParam
identifica l'oggettoHWND
della finestra da attivare.SC_HSCROLL
Scorrere orizzontalmente.SC_KEYMENU
Recuperare un menu tramite una sequenza di tasti.SC_MAXIMIZE
(oSC_ZOOM
) Ingrandire l'oggettoCWnd
.SC_MINIMIZE
(oSC_ICON
) Ridurre al minimo l'oggettoCWnd
.SC_MOUSEMENU
Recuperare un menu tramite un clic del mouse.SC_MOVE
Spostare l'oggettoCWnd
.SC_NEXTWINDOW
Passare alla finestra successiva.SC_PREVWINDOW
Passare alla finestra precedente.SC_RESTORE
Ripristinare la posizione e le dimensioni normali della finestra.SC_SCREENSAVE
Esegue l'applicazione screen saver specificata nella sezione [boot] delSYSTEM.INI
file.SC_SIZE
Ridimensionare l'oggettoCWnd
.SC_TASKLIST
Eseguire o attivare l'applicazione Gestione attività di Windows.SC_VSCROLL
Scorrere verticalmente.
lParam
Se si seleziona un comando Control-menu con il mouse, lParam
contiene le coordinate del cursore. La parola di ordine basso contiene la coordinata x e la parola dell'ordine elevato contiene la coordinata y. In caso contrario, questo parametro non viene usato.
SC_HOTKEY
Attivare la finestra associata al tasto di scelta rapida specificato dall'applicazione. La parola in ordine basso dilParam
identifica la finestra da attivare.SC_SCREENSAVE
Eseguire l'applicazione di salvataggio dello schermo specificata nella sezione Desktop di Pannello di controllo.
Osservazioni:
Per impostazione predefinita, OnSysCommand
esegue la richiesta di menu Di controllo per le azioni predefinite specificate nella tabella precedente.
Nei WM_SYSCOMMAND
messaggi, i quattro bit di ordine basso del nID
parametro vengono usati internamente da Windows. Quando un'applicazione verifica il valore di nID
, deve combinare il valore 0xFFF0 con il nID
valore usando l'operatore AND bit per bit per ottenere il risultato corretto.
Le voci di menu in un menu Controllo possono essere modificate con le GetSystemMenu
funzioni membro , AppendMenu
InsertMenu
, e ModifyMenu
. Le applicazioni che modificano il menu Controllo devono elaborare WM_SYSCOMMAND
i messaggi e tutti i WM_SYSCOMMAND
messaggi non gestiti dall'applicazione devono essere passati a OnSysCommand
. I valori dei comandi aggiunti da un'applicazione devono essere elaborati dall'applicazione e non possono essere passati a OnSysCommand
.
Un'applicazione può eseguire qualsiasi comando di sistema in qualsiasi momento passando un WM_SYSCOMMAND
messaggio a OnSysCommand
.
Le sequenze di tasti di scelta rapida (tasti di scelta rapida) definite per selezionare gli elementi dal menu Di controllo vengono convertite in OnSysCommand
chiamate; tutte le altre sequenze di tasti di scelta rapida vengono convertite in WM_COMMAND
messaggi.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnSysDeadChar
Il framework chiama questa funzione membro se l'oggetto ha lo stato attivo per l'input CWnd
quando viene chiamata la OnSysKeyUp
funzione membro o OnSysKeyDown
.
afx_msg void OnSysDeadChar(
UINT nChar,
UINT nRepCnt,
UINT nFlags);
Parametri
nChar
Specifica il valore del carattere non recapitabili.
nRepCnt
Specifica il conteggio delle ripetizioni.
nFlags
Specifica il codice di analisi, il codice di transizione della chiave, lo stato della chiave precedente e il codice di contesto, come illustrato nell'elenco seguente:
Valore | Significato |
---|---|
0-7 | Codice di analisi (valore dipendente dall'OEM). Byte basso di parola di ordine elevato. |
8 | Tasto esteso, ad esempio un tasto funzione o un tasto sul tastierino numerico (1 se è un tasto esteso; in caso contrario, 0). |
9-10 | Non utilizzato. |
11-12 | Utilizzato internamente da Windows. |
13 | Codice di contesto (1 se il tasto ALT viene premuto mentre viene premuto il tasto; in caso contrario, 0). |
14 | Stato della chiave precedente (1 se la chiave è inattiva prima della chiamata, 0 se la chiave è inattiva). |
15 | Stato di transizione (1 se il tasto viene rilasciato, 0 se viene premuto il tasto). |
Osservazioni:
Specifica il valore di carattere di una chiave non recapitata.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnSysKeyDown
Se l'oggetto CWnd
ha lo stato attivo per l'input, la OnSysKeyDown
funzione membro viene chiamata dal framework quando l'utente tiene premuto il tasto ALT e quindi preme un altro tasto.
afx_msg void OnSysKeyDown(
UINT nChar,
UINT nRepCnt,
UINT nFlags);
Parametri
nChar
Specifica il codice del tasto virtuale premuto. Per un elenco dei codici di chiave virtuale standard, vedere Winuser.h
nRepCnt
Specifica il conteggio delle ripetizioni.
nFlags
Specifica il codice di analisi, il codice di transizione della chiave, lo stato della chiave precedente e il codice di contesto, come illustrato nell'elenco seguente:
Valore | Significato |
---|---|
0-7 | Codice di analisi (valore dipendente dall'OEM). Byte basso di parola di ordine elevato. |
8 | Tasto esteso, ad esempio un tasto funzione o un tasto sul tastierino numerico (1 se è un tasto esteso; in caso contrario, 0). |
9-10 | Non utilizzato. |
11-12 | Utilizzato internamente da Windows. |
13 | Codice di contesto (1 se il tasto ALT viene premuto mentre il tasto viene premuto, 0 in caso contrario). |
14 | Stato della chiave precedente (1 se la chiave è inattiva prima dell'invio del messaggio, 0 se la chiave è inattiva). |
15 | Stato di transizione (1 se il tasto viene rilasciato, 0 se viene premuto il tasto). |
Per OnSysKeyDown
le chiamate, il bit di transizione della chiave (bit 15) è 0. Il bit del codice di contesto (bit 13) è 1 se il tasto ALT è inattivo mentre viene premuto il tasto; è 0 se il messaggio viene inviato alla finestra attiva perché nessuna finestra ha lo stato attivo per l'input.
Osservazioni:
Se nessuna finestra ha attualmente lo stato attivo per l'input, viene chiamata la funzione membro della OnSysKeyDown
finestra attiva. L'oggetto CWnd
che riceve il messaggio può distinguere tra questi due contesti controllando il codice di contesto in nFlags
.
Quando il codice di contesto è 0, il WM_SYSKEYDOWN
messaggio ricevuto da OnSysKeyDown
può essere passato alla TranslateAccelerator
funzione Windows, che lo gestirà come se fosse un normale messaggio di chiave anziché un messaggio di chiave di sistema. In questo modo è possibile usare i tasti di scelta rapida con la finestra attiva anche se la finestra attiva non ha lo stato attivo.
A causa della ripetizione automatica, possono verificarsi più chiamate OnSysKeyDown
prima della ricezione del WM_SYSKEYUP
messaggio. Lo stato della chiave precedente (bit 14) può essere usato per determinare se la chiamata indica la prima transizione inattiva o una transizione ripetuta verso il OnSysKeyDown
basso.
Per le tastiere IBM Enhanced 101 e 102 tasti, i tasti avanzati sono i tasti ALT destro e i tasti CTRL destro nella sezione principale della tastiera; INS, DEL, HOME, END, PAGE UP, PAGE DOWN e tasti di direzione nei cluster a sinistra del tastierino numerico, e la barra (/) e i tasti INVIO nel tastierino numerico. Alcune altre tastiere possono supportare il bit del tasto esteso in nFlags
.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnSysKeyUp
Se l'oggetto CWnd
ha lo stato attivo, la OnSysKeyUp
funzione membro viene chiamata dal framework quando l'utente rilascia un tasto premuto mentre il tasto ALT è stato premuto.
afx_msg void OnSysKeyUp(
UINT nChar,
UINT nRepCnt,
UINT nFlags);
Parametri
nChar
Specifica il codice del tasto virtuale premuto. Per un elenco dei codici di chiave virtuale standard, vedere Winuser.h
nRepCnt
Specifica il conteggio delle ripetizioni.
nFlags
Specifica il codice di analisi, il codice di transizione della chiave, lo stato della chiave precedente e il codice di contesto, come illustrato nell'elenco seguente:
Valore | Significato |
---|---|
0-7 | Codice di analisi (valore dipendente dall'OEM). Byte basso di parola di ordine elevato. |
8 | Tasto esteso, ad esempio un tasto funzione o un tasto sul tastierino numerico (1 se è un tasto esteso; in caso contrario, 0). |
9-10 | Non utilizzato. |
11-12 | Utilizzato internamente da Windows. |
13 | Codice di contesto (1 se il tasto ALT viene premuto mentre il tasto viene premuto, 0 in caso contrario). |
14 | Stato della chiave precedente (1 se la chiave è inattiva prima dell'invio del messaggio, 0 se la chiave è inattiva). |
15 | Stato di transizione (1 se il tasto viene rilasciato, 0 se viene premuto il tasto). |
Per OnSysKeyUp
le chiamate, il bit di transizione della chiave (bit 15) è 1. Il bit del codice di contesto (bit 13) è 1 se il tasto ALT è inattivo mentre viene premuto il tasto; è 0 se il messaggio viene inviato alla finestra attiva perché nessuna finestra ha lo stato attivo per l'input.
Osservazioni:
Se nessuna finestra ha attualmente lo stato attivo per l'input, viene chiamata la funzione membro della OnSysKeyUp
finestra attiva. L'oggetto CWnd
che riceve la chiamata può distinguere tra questi due contesti controllando il codice di contesto in nFlags
.
Quando il codice di contesto è 0, il WM_SYSKEYUP
messaggio ricevuto da OnSysKeyUp
può essere passato alla TranslateAccelerator
funzione Windows, che lo gestirà come se fosse un normale messaggio di chiave anziché un messaggio di chiave di sistema. In questo modo è possibile usare i tasti di scelta rapida (tasti di scelta rapida) con la finestra attiva anche se la finestra attiva non ha lo stato attivo.
Per le tastiere IBM Enhanced 101 e 102 tasti, i tasti avanzati sono i tasti ALT destro e i tasti CTRL destro nella sezione principale della tastiera; i tasti INS, DEL, HOME, END, PAGE UP, PAGE DOWN e freccia nei cluster a sinistra del tastierino numerico; e le barre (/) e i tasti INVIO nel tastierino numerico. Alcune altre tastiere possono supportare il bit di tasto esteso in nFlags.
Per gli Stati Uniti Tastiere avanzate con 102 tasti, il tasto ALT destro viene gestito come combinazione di tasti CTRL+ALT. Di seguito viene illustrata la sequenza di messaggi e le chiamate che risultano quando l'utente preme e rilascia questo tasto:
Sequenza | Accesso alla funzione | Messaggio passato |
---|---|---|
1. | WM_KEYDOWN |
VK_CONTROL |
2. | WM_KEYDOWN |
VK_MENU |
3. | WM_KEYUP |
VK_CONTROL |
4. | WM_SYSKEYUP |
VK_MENU |
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnTCard
Il framework chiama questa funzione membro quando l'utente fa clic su un pulsante modificabile.
afx_msg void OnTCard(
UINT idAction,
DWORD dwActionData);
Parametri
idAction
Indica l'azione eseguita dall'utente. Questo parametro può essere uno dei valori seguenti:
IDABORT
L'utente ha fatto clic su un pulsante di interruzione modificabile.IDCANCEL
L'utente ha fatto clic su un pulsante Annulla modificabile.IDCLOSE
L'utente ha chiuso la scheda di training.IDHELP
L'utente ha fatto clic su un pulsante della Guida di Windows modificabile.IDIGNORE
L'utente ha fatto clic su un pulsante Ignora modificabile.IDOK
L'utente ha fatto clic su un pulsante OK modificabile.IDNO
L'utente ha fatto clic su un pulsante No modificabile.IDRETRY
L'utente ha fatto clic su un pulsante Riprova modificabile.HELP_TCARD_DATA
L'utente ha fatto clic su un pulsante modificabile. IldwActionData
parametro contiene un numero intero lungo specificato dall'autore della Guida.HELP_TCARD_NEXT
L'utente ha fatto clic su un pulsante Avanti modificabile.HELP_TCARD_OTHER_CALLER
Un'altra applicazione ha richiesto schede di training.IDYES
L'utente ha fatto clic su un pulsante Sì modificabile.
dwActionData
Se idAction
specifica HELP_TCARD_DATA
, questo parametro è un numero intero lungo specificato dall'autore della Guida. In caso contrario, questo parametro è zero.
Osservazioni:
Questa funzione viene chiamata solo quando un'applicazione ha avviato una scheda di training con la Guida di Windows. Un'applicazione avvia una scheda di training specificando il HELP_TCARD
comando in una chiamata alla WinHelp
funzione.
CWnd::OnTimeChange
Il framework chiama questa funzione membro dopo la modifica dell'ora di sistema.
afx_msg void OnTimeChange();
Osservazioni:
Chiedere a qualsiasi applicazione che cambia l'ora di sistema di inviare questo messaggio a tutte le finestre di primo livello. Per inviare il WM_TIMECHANGE
messaggio a tutte le finestre di primo livello, un'applicazione può usare la SendMessage
funzione Windows con il relativo hwnd
parametro impostato su HWND_BROADCAST
.
CWnd::OnTimer
Il framework chiama questa funzione membro dopo ogni intervallo specificato nella SetTimer
funzione membro usata per installare un timer.
afx_msg void OnTimer(UINT_PTR nIDEvent);
Parametri
nIDEvent
Specifica l'identificatore del timer.
Osservazioni:
La DispatchMessage
funzione Windows invia un WM_TIMER
messaggio quando non si trovano altri messaggi nella coda dei messaggi dell'applicazione.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
Esempio
Vedere l'esempio in CWnd::SetTimer
.
CWnd::OnToolHitTest
Il framework chiama questa funzione membro per determinare se un punto si trova nel rettangolo di delimitazione dello strumento specificato.
virtual INT_PTR OnToolHitTest(
CPoint point,
TOOLINFO* pTI) const;
Parametri
point
Specifica la coordinata x e y del cursore. Queste coordinate sono sempre relative all'angolo superiore sinistro della finestra
pTI
Puntatore a una TOOLINFO
struttura. I valori di struttura seguenti sono impostati per impostazione predefinita:
hwnd
=m_hWnd
Handle in una finestrauId
=(UINT)hWndChild
Handle in una finestra figliouFlags
|=TTF_IDISHWND
Handle dello strumentolpszText
=LPSTR_TEXTCALLBACK
Puntatore alla stringa da visualizzare nella finestra specificata
Valore restituito
Se il controllo descrizione comando è stato trovato, l'ID del controllo finestra. Se il controllo descrizione comando non è stato trovato, -1.
Osservazioni:
Se il punto si trova nel rettangolo, recupera informazioni sullo strumento.
Se l'area a cui è associata la descrizione comando non è un pulsante, OnToolHitTest
imposta i flag della struttura su TTF_NOTBUTTON
e TTF_CENTERTIP
.
Eseguire l'override per fornire informazioni diverse rispetto alle impostazioni predefinite OnToolHitTest
.
Per altre informazioni sulla struttura, vedere TOOLINFO
, in Windows SDK.
CWnd::OnTouchInput
Consente di elaborare singoli input tramite tocco di Windows.
virtual BOOL OnTouchInput(
CPoint pt,
int nInputNumber,
int nInputsCount,
PTOUCHINPUT pInput);
Parametri
pt
Punto in cui è stato toccato lo schermo (nelle coordinate del client).
nInputNumber
Numero di input tocco.
nInputsCount
Numero totale di input tocco.
pInput
Puntatore alla struttura TOUCHINPUT
.
Valore restituito
TRUE
se l'applicazione elabora l'input tocco di Windows; in caso contrario FALSE
, .
Osservazioni:
CWnd::OnTouchInputs
Elabora gli input dal tocco di Windows.
virtual BOOL OnTouchInputs(
UINT nInputsCount,
PTOUCHINPUT pInputs);
Parametri
nInputsCount
Numero totale di input tocco di Windows.
pInputs
Matrice di TOUCHINPUT
.
Valore restituito
TRUE
se l'applicazione elabora gli input tocco di Windows; in caso contrario FALSE
, .
Osservazioni:
CWnd::OnUniChar
Il framework chiama questa funzione membro quando viene premuto un tasto. Ovvero, la finestra corrente ha lo stato attivo della tastiera e un WM_KEYDOWN
messaggio viene convertito dalla TranslateMessage
funzione.
afx_msg void OnUniChar(
UINT nChar,
UINT nRepCnt,
UINT nFlags);
Parametri
nChar
[in] Specifica il codice carattere del tasto premuto.
nRepCnt
[in] Specifica il numero di ripetizioni per il messaggio corrente. Il valore è il numero di volte in cui la sequenza di tasti viene eseguita automaticamente in seguito all'utente che tiene premuto il tasto. Se la sequenza di tasti è sufficientemente lunga, vengono inviati più messaggi. Tuttavia, il conteggio delle ripetizioni non è cumulativo.
nFlags
[in] Flag che specificano il codice di analisi, la chiave estesa, il codice di contesto, lo stato della chiave precedente e lo stato di transizione, come illustrato nella tabella seguente:
Bit di flag | Descrizione |
---|---|
0-7 | Specifica il codice di analisi. Il valore dipende dal produttore di apparecchiature originali (OEM). |
8 | Specifica un tasto esteso, ad esempio i tasti ALT e CTRL di destra visualizzati su una tastiera avanzata da 101 o 102 tasti. Il flag è 1 se la chiave è una chiave estesa; in caso contrario, è 0. |
9-12 | Utilizzato internamente da Windows. |
13 | Specifica il codice di contesto. Il flag è 1 se il tasto ALT viene premuto mentre il tasto viene premuto; in caso contrario, il valore è 0. |
14 Specifica lo stato della chiave precedente. Il flag è 1 se la chiave è inattiva prima dell'invio del messaggio oppure 0 se la chiave è inattiva. | |
15 | Specifica lo stato di transizione. Il flag è 1 se il tasto viene rilasciato o 0 se viene premuto il tasto. |
Osservazioni:
Questo metodo riceve la WM_UNICHAR
notifica, descritta in Windows SDK. Il WM_UNICHAR
messaggio è progettato per inviare o pubblicare caratteri Unicode alle finestre ANSI. Equivale al WM_CHAR
messaggio, ma usa la codifica Unicode Transformation Format-32 (UTF-32), mentre il WM_CHAR
messaggio usa UTF-16.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnUnInitMenuPopup
Il framework chiama questa funzione membro quando un menu a discesa o un sottomenu è stato eliminato definitivamente.
afx_msg void OnUnInitMenuPopup(
CMenu* pPopupMenu,
UINT nFlags);
Parametri
pMenu
[in] Puntatore all'oggetto CMenu
che rappresenta il menu o il sottomenu.
nFlags
[in] Il menu che è stato distrutto. Attualmente, può essere solo il menu della finestra, MF_SYSMENU
.
Osservazioni:
Questo metodo riceve la WM_UNINITMENUPOPUP
notifica, descritta in Windows SDK.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnUpdateUIState
Chiamata eseguita per cambiare lo stato dell'interfaccia utente per la finestra specificata e tutte le finestre figlio.
afx_msg void OnUpdateUIState(
UINT nAction,
UINT nUIElement);
Parametri
nAction
Specifica l'azione da eseguire. I possibili valori sono i seguenti:
UIS_CLEAR
L'elemento dello stato dell'interfaccia utente (specificato danUIElement
) deve essere nascosto.UIS_INITIALIZE
L'elemento dello stato dell'interfaccia utente (specificato danUIElement
) deve essere modificato in base all'ultimo evento di input. Per altre informazioni, vedere la sezione Osservazioni diWM_UPDATEISTATE
.UIS_SET
L'elemento dello stato dell'interfaccia utente (specificato danUIElement
) deve essere visibile.
nUIElement
Specifica gli elementi dello stato dell'interfaccia utente interessati o lo stile del controllo. I possibili valori sono i seguenti:
UISF_HIDEACCEL
Tasti di scelta rapida.UISF_HIDEFOCUS
Indicatori di stato attivo.UISF_ACTIVE
Windows XP: un controllo deve essere disegnato nello stile utilizzato per i controlli attivi.
Osservazioni:
Questa funzione membro emula la funzionalità del WM_UPDATEUISTATE
messaggio, come descritto in Windows SDK.
CWnd::OnUserChanged
Il framework chiama questo membro per tutte le finestre dopo l'accesso o la disattivazione dell'utente.
afx_msg void OnUserChanged();
Osservazioni:
Questo metodo riceve il WM_USERCHANGED
messaggio di notifica, descritto in Windows SDK. Quando l'utente accede o disattiva, il sistema operativo aggiorna le impostazioni specifiche dell'utente. Il sistema invia questo messaggio immediatamente dopo l'aggiornamento delle impostazioni.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnVKeyToItem
Se l'oggetto CWnd
è proprietario di una casella di riepilogo con lo LBS_WANTKEYBOARDINPUT
stile, la casella di riepilogo invierà il WM_VKEYTOITEM
messaggio in risposta a un WM_KEYDOWN
messaggio.
afx_msg int OnVKeyToItem(
UINT nKey,
CListBox* pListBox,
UINT nIndex);
Parametri
nKey
Specifica il codice della chiave virtuale del tasto premuto dall'utente. Per un elenco dei codici di chiave virtuale standard, vedere Winuser.h
pListBox
Specifica un puntatore alla casella di riepilogo. Il puntatore può essere temporaneo e non deve essere archiviato per un uso successivo.
nIndex
Specifica la posizione corrente del cursore.
Valore restituito
Specifica l'azione eseguita dall'applicazione in risposta al messaggio. Un valore restituito -2 indica che l'applicazione ha gestito tutti gli aspetti della selezione dell'elemento e non richiede ulteriori azioni dalla casella di riepilogo. Il valore restituito -1 indica che la casella di riepilogo deve eseguire l'azione predefinita in risposta alla sequenza di tasti. Un valore restituito pari a 0 o superiore specifica l'indice in base zero di un elemento nella casella di riepilogo e indica che la casella di riepilogo deve eseguire l'azione predefinita per la sequenza di tasti sull'elemento specificato.
Osservazioni:
Questa funzione membro viene chiamata dal framework solo per le caselle di riepilogo con lo LBS_HASSTRINGS
stile .
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnVScroll
Il framework chiama questa funzione membro quando l'utente fa clic sulla barra di scorrimento verticale della finestra.
afx_msg void OnVScroll(
UINT nSBCode,
UINT nPos,
CScrollBar* pScrollBar);
Parametri
nSBCode
Specifica un codice a barre di scorrimento che indica la richiesta di scorrimento dell'utente. Questo parametro può essere uno dei seguenti:
SB_BOTTOM
Scorrere verso il basso.SB_ENDSCROLL
Scorrere alla fine.SB_LINEDOWN
Scorrere una riga verso il basso.SB_LINEUP
Scorrere una riga verso l'alto.SB_PAGEDOWN
Scorrere una pagina verso il basso.SB_PAGEUP
Scorrere verso l'alto una pagina verso l'alto.SB_THUMBPOSITION
Scorrere fino alla posizione assoluta. La posizione corrente viene specificata innPos
.SB_THUMBTRACK
Trascinare la casella di scorrimento nella posizione specificata. La posizione corrente viene specificata innPos
.SB_TOP
Scorrere verso l'alto.
nPos
Contiene la posizione corrente della casella di scorrimento se il codice della barra di scorrimento è SB_THUMBPOSITION
o ; SB_THUMBTRACK
in caso contrario, non viene utilizzato. A seconda dell'intervallo di scorrimento iniziale, nPos
può essere negativo e deve essere eseguito il cast a un oggetto int
, se necessario.
pScrollBar
Se il messaggio di scorrimento proviene da un controllo barra di scorrimento, contiene un puntatore al controllo . Se l'utente ha fatto clic sulla barra di scorrimento di una finestra, questo parametro è NULL
. Il puntatore può essere temporaneo e non deve essere archiviato per un uso successivo.
Osservazioni:
OnVScroll
in genere viene usato dalle applicazioni che forniscono un feedback mentre la casella di scorrimento viene trascinata.
Se OnVScroll
scorre il contenuto dell'oggetto CWnd
, deve anche reimpostare la posizione della casella di scorrimento con la SetScrollPos
funzione membro.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnVScrollClipboard
La funzione membro del proprietario degli OnVScrollClipboard
Appunti viene chiamata dal visualizzatore Appunti quando i dati degli Appunti hanno il CF_OWNERDISPLAY
formato e si verifica un evento nella barra di scorrimento verticale del visualizzatore Appunti.
afx_msg void OnVScrollClipboard(
CWnd* pClipAppWnd,
UINT nSBCode,
UINT nPos);
Parametri
pClipAppWnd
Specifica un puntatore a una finestra del visualizzatore appunti. Il puntatore può essere temporaneo e non deve essere archiviato per un uso successivo.
nSBCode
Specifica uno dei valori seguenti della barra di scorrimento:
SB_BOTTOM
Scorrere verso il basso.SB_ENDSCROLL
Scorrere alla fine.SB_LINEDOWN
Scorrere una riga verso il basso.SB_LINEUP
Scorrere una riga verso l'alto.SB_PAGEDOWN
Scorrere una pagina verso il basso.SB_PAGEUP
Scorrere verso l'alto una pagina verso l'alto.SB_THUMBPOSITION
Scorrere fino alla posizione assoluta. La posizione corrente viene specificata innPos
.SB_TOP
Scorrere verso l'alto.
nPos
Contiene la posizione della casella di scorrimento se il codice della barra di scorrimento è SB_THUMBPOSITION
; in caso contrario nPos
, non viene usato.
Osservazioni:
Il proprietario deve scorrere l'immagine degli Appunti, invalidare la sezione appropriata e aggiornare i valori della barra di scorrimento.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnWindowMaximizedChanged
Il framework chiama questo membro quando la finestra corrente è ingrandita e la finestra è composta da Desktop Window Manager (DWM).
afx_msg void OnWindowMaximizedChanged(BOOL bIsMaximized);
Parametri
bIsMaximized
[in] TRUE
se la finestra corrente è ingrandita e FALSE
in caso contrario.
Osservazioni:
Questo metodo riceve il WM_DWMWINDOWMAXIMIZEDCHANGE
messaggio di notifica, descritto in Windows SDK.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnWindowPosChanged
Il framework chiama questa funzione membro quando le dimensioni, la posizione o l'ordine Z sono state modificate in seguito a una chiamata alla funzione membro o a SetWindowPos
un'altra funzione di gestione delle finestre.
afx_msg void OnWindowPosChanged(WINDOWPOS* lpwndpos);
Parametri
lpwndpos
Punta a una WINDOWPOS
struttura di dati che contiene informazioni sulle nuove dimensioni e sulla posizione della finestra.
Osservazioni:
L'implementazione predefinita invia i WM_SIZE
messaggi e WM_MOVE
alla finestra. Questi messaggi non vengono inviati se un'applicazione gestisce la chiamata senza chiamare la OnWindowPosChanged
relativa classe di base. È più efficiente eseguire qualsiasi elaborazione delle modifiche di spostamento o dimensione durante la chiamata a OnWindowPosChanged
senza chiamare la relativa classe di base.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnWindowPosChanging
Il framework chiama questa funzione membro quando la dimensione, la posizione o l'ordine Z sta per cambiare in seguito a una chiamata alla SetWindowPos
funzione membro o a un'altra funzione di gestione delle finestre.
afx_msg void OnWindowPosChanging(WINDOWPOS* lpwndpos);
Parametri
lpwndpos
Punta a una WINDOWPOS
struttura di dati che contiene informazioni sulle nuove dimensioni e sulla posizione della finestra.
Osservazioni:
Un'applicazione può impedire modifiche alla finestra impostando o cancellando i bit appropriati nel flags
membro della WINDOWPOS
struttura.
Per una finestra con lo WS_OVERLAPPED
stile o WS_THICKFRAME
, l'implementazione predefinita invia un WM_GETMINMAXINFO
messaggio alla finestra. Questa operazione viene eseguita per convalidare le nuove dimensioni e la posizione della finestra e per applicare gli CS_BYTEALIGNCLIENT
stili client e CS_BYTEALIGN
. Un'applicazione può eseguire l'override di questa funzionalità non chiamando la relativa classe di base.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnWinIniChange
Il framework chiama questa funzione membro dopo che è stata apportata una modifica al file di inizializzazione di Windows, WIN.INI
.
afx_msg void OnWinIniChange(LPCTSTR lpszSection);
Parametri
lpszSection
Punta a una stringa che specifica il nome della sezione modificata. La stringa non include le parentesi quadre che racchiudono il nome della sezione.
Osservazioni:
La SystemParametersInfo
funzione di Windows chiama OnWinIniChange
dopo che un'applicazione usa la funzione per modificare un'impostazione nel WIN.INI
file.
Per inviare il WM_WININICHANGE
messaggio a tutte le finestre di primo livello, un'applicazione può usare la SendMessage
funzione Windows con il relativo hwnd
parametro impostato su HWND_BROADCAST
.
Se un'applicazione modifica molte sezioni diverse nello WIN.INI
stesso momento, l'applicazione deve inviare un WM_WININICHANGE
messaggio con lpszSection
impostato su NULL
. In caso contrario, un'applicazione deve inviare WM_WININICHANGE
ogni volta che apporta una modifica a WIN.INI
.
Se un'applicazione riceve una OnWinIniChange
chiamata con lpszSection
impostato su NULL
, l'applicazione deve controllare tutte le sezioni in WIN. INI che influiscono sull'applicazione.
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnWndMsg
Questa funzione membro viene chiamata da WindowProc
o viene chiamata durante la reflection del messaggio.
virtual BOOL OnWndMsg(
UINT message,
WPARAM wParam,
LPARAM lParam,
LRESULT* pResult);
Parametri
message
Specifica il messaggio da inviare.
wParam
Specifica informazioni aggiuntive dipendenti dai messaggi.
lParam
Specifica informazioni aggiuntive dipendenti dai messaggi.
pResult
Valore restituito di WindowProc
. Dipende dal messaggio; può essere NULL
.
Valore restituito
TRUE se il messaggio è stato gestito; in caso contrario FALSE.
Osservazioni:
OnWndMsg
determina il tipo di messaggio e chiama la funzione framework appropriata (ad esempio, OnCommand
per WM_COMMAND
) o trova il messaggio appropriato nella mappa dei messaggi.
Per altre informazioni sulla reflection dei messaggi, vedere Gestione dei messaggi riflessi.
CWnd::OnXButtonDblClk
Il framework chiama questa funzione membro quando l'utente fa doppio clic XBUTTON1
o XBUTTON2
mentre il cursore si trova nell'area client di una finestra.
afx_msg void OnXButtonDblClk(
UINT nFlags,
UINT nButton,
CPoint point);
Parametri
nFlags
[in] Combinazione bit per bit (OR) di flag che indicano quali tasti di modifica vengono premuti. Ad esempio, il MK_CONTROL
flag indica che il tasto CTRL viene premuto.
nButton
[in] Valore se XBUTTON1
si fa doppio clic sul pulsante X di Microsoft Intellimouse o XBUTTON2 se si fa doppio clic sul secondo pulsante X.
point
[in] Oggetto CPoint
che specifica le x
coordinate e y
del cursore rispetto all'angolo superiore sinistro dell'area client.
Osservazioni:
Questo metodo riceve la WM_XBUTTONDBLCLK
notifica, descritta in Windows SDK. Se il mouse non viene acquisito, il messaggio viene inviato alla finestra sotto il cursore. In caso contrario, il messaggio viene inviato alla finestra che ha acquisito il mouse.
Il nFlags
parametro può essere una combinazione di tasti di modifica elencati nella tabella seguente. Per altre informazioni, vedere Informazioni sull'input del mouse.
Tasto modificatore | Descrizione |
---|---|
MK_CONTROL |
Il tasto CTRL viene premuto. |
MK_LBUTTON |
Viene premuto il pulsante sinistro del mouse. |
MK_MBUTTON |
Viene premuto il pulsante centrale del mouse. |
MK_RBUTTON |
Viene premuto il pulsante destro del mouse. |
MK_SHIFT |
Il tasto MAIUSC viene premuto. |
MK_XBUTTON1 |
Viene premuto il XBUTTON1 pulsante del mouse di Microsoft IntelliMouse. |
MK_XBUTTON2 |
Viene premuto il XBUTTON2 pulsante del mouse di Microsoft IntelliMouse. |
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnXButtonDown
Il framework chiama questa funzione membro quando l'utente preme XBUTTON1
o XBUTTON2
mentre il cursore si trova nell'area client di una finestra.
afx_msg void OnXButtonDown(
UINT nFlags,
UINT nButton,
CPoint point);
Parametri
nFlags
[in] Combinazione bit per bit (OR) di flag che indicano quali tasti di modifica vengono premuti. Ad esempio, il MK_CONTROL
flag indica che il tasto CTRL viene premuto.
nButton
[in] Valore se XBUTTON1
è stato fatto clic sul primo pulsante Microsoft Intellimouse X o XBUTTON2
se è stato fatto clic sul secondo pulsante X.
point
[in] Oggetto CPoint
che specifica le x
coordinate e y
del cursore rispetto all'angolo superiore sinistro dell'area client.
Osservazioni:
Questo metodo riceve la WM_XBUTTONDOWN
notifica, descritta in Windows SDK. Se il mouse non viene acquisito, il messaggio viene inviato alla finestra sotto il cursore. In caso contrario, il messaggio viene inviato alla finestra che ha acquisito il mouse.
Il nFlags
parametro può essere una combinazione di tasti di modifica elencati nella tabella seguente. Per altre informazioni, vedere Informazioni sull'input del mouse.
Tasto modificatore | Descrizione |
---|---|
MK_CONTROL |
Il tasto CTRL viene premuto. |
MK_LBUTTON |
Viene premuto il pulsante sinistro del mouse. |
MK_MBUTTON |
Viene premuto il pulsante centrale del mouse. |
MK_RBUTTON |
Viene premuto il pulsante destro del mouse. |
MK_SHIFT |
Il tasto MAIUSC viene premuto. |
MK_XBUTTON1 |
Viene premuto il XBUTTON1 pulsante del mouse di Microsoft IntelliMouse. |
MK_XBUTTON2 |
Viene premuto il XBUTTON2 pulsante del mouse di Microsoft IntelliMouse. |
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OnXButtonUp
Il framework chiama questa funzione membro quando l'utente rilascia XBUTTON1
o XBUTTON2
mentre il cursore si trova nell'area client di una finestra.
afx_msg void OnXButtonUp(
UINT nFlags,
UINT nButton,
CPoint point);
Parametri
nFlags
[in] Combinazione bit per bit (OR) di flag che indicano quali tasti di modifica vengono premuti. Ad esempio, il MK_CONTROL
flag indica che il tasto CTRL viene premuto.
nButton
[in] Valore se XBUTTON1
è stato fatto doppio clic sul pulsante X di Microsoft Intellimouse o XBUTTON2
se è stato fatto doppio clic sul secondo pulsante X.
point
[in] Oggetto CPoint
che specifica le x
coordinate e y
del cursore rispetto all'angolo superiore sinistro dell'area client.
Osservazioni:
Questo metodo riceve la WM_XBUTTONUP
notifica, descritta in Windows SDK. Se il mouse non viene acquisito, il messaggio viene inviato alla finestra sotto il cursore. In caso contrario, il messaggio viene inviato alla finestra che ha acquisito il mouse.
Il nFlags
parametro può essere una combinazione di tasti di modifica elencati nella tabella seguente. Per altre informazioni, vedere Informazioni sull'input del mouse.
Tasto modificatore | Descrizione |
---|---|
MK_CONTROL |
Il tasto CTRL viene premuto. |
MK_LBUTTON |
Viene premuto il pulsante sinistro del mouse. |
MK_MBUTTON |
Viene premuto il pulsante centrale del mouse. |
MK_RBUTTON |
Viene premuto il pulsante destro del mouse. |
MK_SHIFT |
Il tasto MAIUSC viene premuto. |
MK_XBUTTON1 |
Viene premuto il XBUTTON1 pulsante del mouse di Microsoft IntelliMouse. |
MK_XBUTTON2 |
Viene premuto il XBUTTON2 pulsante del mouse di Microsoft IntelliMouse. |
Nota
Questa funzione membro viene chiamata dal framework per consentire all'applicazione di gestire un messaggio di Windows. I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando è stato ricevuto il messaggio. Se si chiama l'implementazione della classe di base di questa funzione, questa userà i parametri passati in origine con il messaggio e non i parametri che si forniscono alla funzione.
CWnd::OpenClipboard
Apre gli Appunti.
BOOL OpenClipboard();
Valore restituito
Diverso da zero se gli Appunti vengono aperti tramite CWnd
o 0 se un'altra applicazione o finestra ha aperto gli Appunti.
Osservazioni:
Altre applicazioni non saranno in grado di modificare gli Appunti finché non viene chiamata la CloseClipboard
funzione Windows.
L'oggetto corrente CWnd
non diventerà il proprietario degli Appunti fino a quando non viene chiamata la EmptyClipboard
funzione Windows.
Esempio
//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
Utilizzare questo operatore per ottenere l'handle per l'oggetto CWnd
.
operator HWND() const;
CWnd::operator !=
Confronta due CWnd
oggetti per determinare se non hanno lo stesso m_hWnd
oggetto .
BOOL operator!=(const CWnd& wnd) const;
Parametri
wnd
Riferimento a un oggetto CWnd
.
Valore restituito
Diverso da zero se uguale; in caso contrario, 0.
CWnd::operator ==
Confronta due CWnd
oggetti per determinare se hanno lo stesso m_hWnd
oggetto .
BOOL operator==(const CWnd& wnd) const;
Parametri
wnd
Riferimento a un oggetto CWnd
.
Valore restituito
Diverso da zero se uguale; in caso contrario, 0.
CWnd::PaintWindowlessControls
Disegna controlli senza finestra nel contenitore del controllo.
BOOL PaintWindowlessControls(CDC* pDC);
Parametri
pDC
Contesto del dispositivo in cui disegnare i controlli senza finestra.
Valore restituito
Restituisce TRUE
se è presente un contenitore di controlli e i controlli senza finestra vengono disegnati correttamente; in caso contrario FALSE
, .
CWnd::PostMessage
Inserisce un messaggio nella coda dei messaggi della finestra e quindi restituisce senza attendere che la finestra corrispondente elabori il messaggio.
BOOL PostMessage(
UINT message,
WPARAM wParam = 0,
LPARAM lParam = 0);
Parametri
message
Specifica il messaggio da pubblicare.
wParam
Specifica informazioni aggiuntive sul messaggio. Il contenuto di questo parametro dipende dal messaggio inviato.
lParam
Specifica informazioni aggiuntive sul messaggio. Il contenuto di questo parametro dipende dal messaggio inviato.
Valore restituito
Diverso da zero se il messaggio viene pubblicato; in caso contrario, 0.
Osservazioni:
I messaggi in una coda di messaggi vengono recuperati dalle chiamate alla GetMessage
funzione o PeekMessage
Windows.
La funzione Windows PostMessage
può essere usata per accedere a un'altra applicazione.
Esempio
Vedere l'esempio per AfxGetMainWnd
.
CWnd::PostNcDestroy
Chiamato dalla funzione membro predefinita OnNcDestroy
dopo che la finestra è stata eliminata definitivamente.
virtual void PostNcDestroy();
Osservazioni:
Le classi derivate possono usare questa funzione per la pulizia personalizzata, ad esempio l'eliminazione del this
puntatore.
CWnd::PreCreateWindow
Chiamato dal framework prima della creazione della finestra di Windows collegata a questo CWnd
oggetto.
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
Parametri
cs
Struttura CREATESTRUCT
.
Valore restituito
Diverso da zero se la creazione della finestra deve continuare; 0 per indicare un errore di creazione.
Osservazioni:
Avviso
CWnd::PreCreateWindow
assegna ora il membro hMenu di cs
al this
puntatore se il menu è NULL
e lo stile contiene WS_CHILD
. Per una funzionalità appropriata, assicurarsi che il controllo della finestra di dialogo abbia un ID che non NULL
è .
Questa modifica corregge un arresto anomalo in scenari di interoperabilità gestiti/nativi. Un'istruzione TRACE
in CWnd::Create
avvisa lo sviluppatore del problema.
Non chiamare mai direttamente questa funzione.
L'implementazione predefinita di questa funzione verifica la presenza di un NULL
nome di classe finestra e sostituisce un valore predefinito appropriato. Eseguire l'override di questa funzione membro per modificare la struttura prima della CREATESTRUCT
creazione della finestra.
Ogni classe derivata da CWnd
aggiunge la propria funzionalità all'override di PreCreateWindow
. Per impostazione predefinita, queste derivazioni di PreCreateWindow
non sono documentate. Per determinare gli stili appropriati per ogni classe e le interdipendenze tra gli stili, è possibile esaminare il codice sorgente MFC per la classe di base dell'applicazione. Se si sceglie di eseguire l'override PreCreateWindow,
, è possibile determinare se gli stili usati nella classe di base dell'applicazione forniscono le funzionalità necessarie usando le informazioni raccolte dal codice sorgente MFC.
Per altre informazioni sulla modifica degli stili delle finestre, vedere Modifica degli stili di una finestra creata da MFC.
Esempio
// 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
Questa funzione membro viene chiamata dal framework per consentire l'esecuzione di altre sottoclassi necessarie prima che la finestra venga sottoclassata.
virtual void PreSubclassWindow();
Osservazioni:
L'override di questa funzione membro consente la sottoclasse dinamica dei controlli. Si tratta di un override avanzato.
CWnd::PreTranslateMessage
Usato dalla classe CWinApp
per convertire i messaggi della TranslateMessage
finestra prima che vengano inviati alle funzioni di e DispatchMessage
Windows.
virtual BOOL PreTranslateMessage(MSG* pMsg);
Parametri
pMsg
Punta a una MSG
struttura che contiene il messaggio da elaborare.
Valore restituito
Diverso da zero se il messaggio è stato tradotto e non deve essere inviato; 0 se il messaggio non è stato tradotto e deve essere inviato.
CWnd::Print
Chiamare questa funzione membro per disegnare la finestra corrente nel contesto di dispositivo specificato, che è più comunemente in un contesto di dispositivo della stampante.
void Print(
CDC* pDC,
DWORD dwFlags) const;
Parametri
pDC
Puntatore a un contesto di dispositivo.
dwFlags
Specifica le opzioni di disegno. Questo parametro può essere uno o più di questi flag:
PRF_CHECKVISIBLE
Disegnare la finestra solo se è visibile.PRF_CHILDREN
Disegnare tutte le finestre figlio visibili.PRF_CLIENT
Disegnare l'area client della finestra.PRF_ERASEBKGND
Cancellare lo sfondo prima di disegnare la finestra.PRF_NONCLIENT
Disegnare l'area non client della finestra.PRF_OWNED
Disegnare tutte le finestre di proprietà.
Osservazioni:
CWnd::DefWindowProc
funzione elabora questo messaggio in base all'opzione di disegno specificata:
Se
PRF_CHECKVISIBLE
viene specificato e la finestra non è visibile, non eseguire alcuna operazione.Se
PRF_NONCLIENT
viene specificato, disegnare l'area non client nel contesto di dispositivo specificato.Se
PRF_ERASEBKGND
viene specificato, inviare alla finestra unWM_ERASEBKGND
messaggio.Se
PRF_CLIENT
viene specificato, inviare alla finestra unWM_PRINTCLIENT
messaggio.Se
PRF_CHILDREN
è impostato, inviare a ogni finestra figlio visibile unWM_PRINT
messaggio.Se
PRF_OWNED
è impostato, inviare a ogni finestra di proprietà visibile unWM_PRINT
messaggio.
CWnd::PrintClient
Chiamare questa funzione membro per disegnare qualsiasi finestra nel contesto di dispositivo specificato (in genere un contesto di dispositivo della stampante).
void PrintClient(
CDC* pDC,
DWORD dwFlags) const;
Parametri
pDC
Puntatore a un contesto di dispositivo.
dwFlags
Specifica le opzioni di disegno. Questo parametro può essere uno o più di questi flag:
PRF_CHECKVISIBLE
Disegnare la finestra solo se è visibile.PRF_CHILDREN
Disegnare tutte le finestre figlio visibili.PRF_CLIENT
Disegnare l'area client della finestra.PRF_ERASEBKGND
Cancellare lo sfondo prima di disegnare la finestra.PRF_NONCLIENT
Disegnare l'area non client della finestra.PRF_OWNED
Disegnare tutte le finestre di proprietà.
CWnd::PrintWindow
Copia una finestra visiva nel contesto di dispositivo specificato, in genere un contesto di dispositivo stampante.
BOOL PrintWindow(
CDC* pDC,
UINT nFlags) const;
Parametri
pDC
Puntatore al contesto di dispositivo in cui stampare.
nFlags
Specifica le opzioni di disegno. Per un elenco dei valori possibili, vedere PrintWindow
.
Valore restituito
Viene restituito un valore diverso da zero se la funzione viene eseguita correttamente; in caso contrario viene restituito 0.
Osservazioni:
Questa funzione membro emula la funzionalità della funzione PrintWindow
, come descritto in Windows SDK.
CWnd::RedrawWindow
Aggiorna il rettangolo o l'area specificata nell'area client della finestra specificata.
BOOL RedrawWindow(
LPCRECT lpRectUpdate = NULL,
CRgn* prgnUpdate = NULL,
UINT flags = RDW_INVALIDATE | RDW_UPDATENOW | RDW_ERASE);
Parametri
lpRectUpdate
Punta a una RECT
struttura contenente le coordinate del rettangolo di aggiornamento. Questo parametro viene ignorato se prgnUpdate
contiene un handle di area valido.
prgnUpdate
Identifica l'area di aggiornamento. Se e prgnUpdate
lpRectUpdate
sono NULL
, l'intera area client viene aggiunta all'area di aggiornamento.
flags
Per invalidare la finestra vengono usati i flag seguenti:
RDW_ERASE
Fa in modo che la finestra riceva unWM_ERASEBKGND
messaggio quando la finestra viene aggiornata. È inoltre necessario specificare il flag. InRDW_INVALIDATE
caso contrario, RDW_ERASE non ha alcun effetto.RDW_FRAME
Determina la ricezione di unWM_NCPAINT
messaggio da parte dell'area non client della finestra che interseca l'area di aggiornamento. È inoltre necessario specificare il flag. InRDW_INVALIDATE
caso contrarioRDW_FRAME
, non ha alcun effetto.RDW_INTERNALPAINT
Determina la pubblicazione di unWM_PAINT
messaggio nella finestra indipendentemente dal fatto che la finestra contenga un'area non valida.RDW_INVALIDATE
InvalidarelpRectUpdate
oprgnUpdate
(solo uno potrebbe nonNULL
essere ). Se entrambi sonoNULL
, l'intera finestra viene invalidata.
Per convalidare la finestra vengono usati i flag seguenti:
RDW_NOERASE
Elimina tutti i messaggi in sospesoWM_ERASEBKGND
.RDW_NOFRAME
Elimina tutti i messaggi in sospesoWM_NCPAINT
. Questo flag deve essere usato conRDW_VALIDATE
e viene in genere usato conRDW_NOCHILDREN
. Questa opzione deve essere usata con attenzione, in quanto potrebbe impedire che parti di una finestra dipingano correttamente.RDW_NOINTERNALPAINT
Elimina eventuali messaggi interni inWM_PAINT
sospeso. Questo flag non influisce suiWM_PAINT
messaggi risultanti da aree non valide.RDW_VALIDATE
lpRectUpdate
Convalida oprgnUpdate
(solo uno potrebbe nonNULL
essere ). Se entrambi sonoNULL
, l'intera finestra viene convalidata. Questo flag non influisce sui messaggi interniWM_PAINT
.
I flag seguenti controllano quando si verifica l'aggiornamento. Il disegno non viene eseguito dalla RedrawWindow
funzione a meno che non venga specificato uno di questi bit.
RDW_ERASENOW
Fa sì che le finestre interessate (come specificato daiRDW_ALLCHILDREN
flag eRDW_NOCHILDREN
) ricevanoWM_NCPAINT
eWM_ERASEBKGND
, se necessario, prima che la funzione restituisca.WM_PAINT
i messaggi vengono posticipati.RDW_UPDATENOW
Fa sì che le finestre interessate (come specificato daiRDW_ALLCHILDREN
flag eRDW_NOCHILDREN
) ricevanoWM_NCPAINT
, se necessario, i messaggi ,WM_ERASEBKGND
eWM_PAINT
prima che la funzione restituisca.
Per impostazione predefinita, le finestre interessate dalla RedrawWindow
funzione dipendono dal fatto che la finestra specificata abbia lo WS_CLIPCHILDREN
stile. Le finestre figlio delle WS_CLIPCHILDREN
finestre non sono interessate. Tuttavia, le finestre che non WS_CLIPCHILDREN
sono finestre vengono convalidate in modo ricorsivo o invalidato fino a quando non viene rilevata una WS_CLIPCHILDREN
finestra. I flag seguenti controllano quali finestre sono interessate dalla RedrawWindow
funzione :
RDW_ALLCHILDREN
Include le finestre figlio, se presenti, nell'operazione di riproduzione.RDW_NOCHILDREN
Esclude le finestre figlio, se presenti, dall'operazione di aggiornamento.
Valore restituito
Diverso da zero se la finestra è stata ridisegnata correttamente; in caso contrario, 0.
Osservazioni:
Quando la RedrawWindow
funzione membro viene usata per invalidare parte della finestra desktop, tale finestra non riceve un WM_PAINT
messaggio. Per aggiornare il desktop, un'applicazione deve usare CWnd::ValidateRgn
, CWnd::InvalidateRgn
, CWnd::UpdateWindow
o RedrawWindow
CWnd::ReflectChildNotify
Questa funzione di messaggio viene chiamata dal framework da OnChildNotify
.
BOOL ReflectChildNotify(
UINT message,
WPARAM wParam,
LPARAM lParam,
LRESULT* pResult);
Parametri
message
Specifica il messaggio da riflettere.
wParam
Specifica informazioni aggiuntive dipendenti dai messaggi.
lParam
Specifica informazioni aggiuntive dipendenti dai messaggi.
pResult
Risultato generato dalla finestra figlio da restituire dalla finestra padre. Può essere NULL
.
Valore restituito
TRUE
se il messaggio è stato riflessa; in caso contrario FALSE
, .
Osservazioni:
Si tratta di una funzione helper che riflette message
l'origine.
I messaggi riflessi vengono inviati direttamente a CWnd::OnWndMsg
o CCmdTarget::OnCmdMsg
.
Per altre informazioni sulla reflection dei messaggi, vedere Gestione dei messaggi riflessi.
CWnd::ReflectLastMsg
Questa funzione membro viene chiamata dal framework per riflettere l'ultimo messaggio alla finestra figlio.
static BOOL PASCAL ReflectLastMsg(
HWND hWndChild,
LRESULT* pResult = NULL);
Parametri
hWndChild
Handle di una finestra figlio.
pResult
Risultato generato dalla finestra figlio da restituire dalla finestra padre. Può essere NULL
.
Valore restituito
Diverso da zero se il messaggio è stato gestito; in caso contrario, 0.
Osservazioni:
Questa funzione membro chiama SendChildNotifyLastMsg
se la finestra identificata da hWndChild
è un controllo OLE o una finestra nella mappa permanente.
Per altre informazioni sulla reflection dei messaggi, vedere Gestione dei messaggi riflessi.
CWnd::ReleaseDC
Rilascia un contesto di dispositivo, liberandolo per l'uso da parte di altre applicazioni.
int ReleaseDC(CDC* pDC);
Parametri
pDC
Identifica il contesto del dispositivo da rilasciare.
Valore restituito
Diverso da zero se ha esito positivo; in caso contrario 0.
Osservazioni:
L'effetto della ReleaseDC
funzione membro dipende dal tipo di contesto del dispositivo.
L'applicazione deve chiamare la ReleaseDC
funzione membro per ogni chiamata alla GetWindowDC
funzione membro e per ogni chiamata alla GetDC
funzione membro.
CWnd::RepositionBars
Chiamato per riposizionare e ridimensionare le barre di controllo nell'area client di una finestra.
void RepositionBars(UINT nIDFirst,
UINT nIDLast,
UINT nIDLeftOver,
UINT nFlag = reposDefault,
LPRECT lpRectParam = NULL,
LPCRECT lpRectClient = NULL,
BOOL bStretch = TRUE) ;
Parametri
nIDFirst
ID del primo in un intervallo di barre di controllo da riposizionare e ridimensionare.
nIDLast
ID dell'ultimo oggetto in un intervallo di barre di controllo da riposizionare e ridimensionare.
nIDLeftOver
Specifica l'ID del riquadro che riempie il resto dell'area client.
nFlag
I valori consentiti sono i seguenti:
CWnd::reposDefault
Esegue il layout delle barre di controllo.lpRectParam
non viene usato e può essereNULL
.CWnd::reposQuery
Il layout delle barre di controllo non viene eseguito; viene invecelpRectParam
inizializzato con le dimensioni dell'area client, come se il layout fosse stato effettivamente eseguito.CWnd::reposExtra
Aggiunge i valori dilpRectParam
all'area client dinIDLast
ed esegue anche il layout.
lpRectParam
Punta a una RECT
struttura. L'utilizzo di dipende dal valore di nFlag
.
lpRectClient
Punta a una RECT
struttura contenente l'area client disponibile. Se NULL
, verrà usata l'area client della finestra.
bStretch
Indica se la barra deve essere estesa alle dimensioni del frame.
Osservazioni:
I nIDFirst
parametri e nIDLast
definiscono un intervallo di ID barra di controllo da riposizionare nell'area client. Il nIDLeftOver
parametro specifica l'ID della finestra figlio (in genere la visualizzazione) che viene riposizionata e ridimensionata per riempire il resto dell'area client non riempita dalle barre di controllo.
CWnd::RunModalLoop
Chiamare questa funzione membro per recuperare, tradurre o inviare messaggi fino a ContinueModal
quando non restituisce FALSE
.
int RunModalLoop(DWORD dwFlags = 0);
Parametri
dwFlags
Specifica il messaggio di Windows da inviare. I possibili valori sono i seguenti:
MLF_NOIDLEMSG
Non inviareWM_ENTERIDLE
messaggi all'elemento padre.MLF_NOKICKIDLE
Non inviareWM_KICKIDLE
messaggi alla finestra.MLF_SHOWONIDLE
Mostra la finestra quando la coda dei messaggi diventa inattiva.
Valore restituito
Specifica il valore del nResult
parametro passato alla EndModalLoop
funzione membro, che viene quindi utilizzato per terminare il ciclo modale.
Osservazioni:
Per impostazione predefinita, restituisce ContinueModal
FALSE
dopo EndModalLoop
la chiamata. Restituisce il valore fornito come nResult
.EndModalLoop
CWnd::ScreenToClient
Converte le coordinate dello schermo di un determinato punto o rettangolo sullo schermo in coordinate client.
void ScreenToClient(LPPOINT lpPoint) const; void ScreenToClient(LPRECT lpRect) const;
Parametri
lpPoint
Punta a un oggetto o POINT
a una CPoint
struttura che contiene le coordinate dello schermo da convertire.
lpRect
Punta a un oggetto o RECT
a una CRect
struttura che contiene le coordinate dello schermo da convertire.
Osservazioni:
La ScreenToClient
funzione membro sostituisce le coordinate dello schermo indicate in lpPoint
o lpRect
con coordinate client. Le nuove coordinate sono relative all'angolo superiore sinistro dell'area CWnd
client.
Esempio
Vedere l'esempio per CListCtrl::GetItemRect
.
CWnd::ScrollWindow
Scorre il contenuto dell'area client dell'oggetto corrente CWnd
.
void ScrollWindow(
int xAmount,
int yAmount,
LPCRECT lpRect = NULL,
LPCRECT lpClipRect = NULL);
Parametri
xAmount
Specifica la quantità, in unità di dispositivo, dello scorrimento orizzontale. Questo parametro deve essere un valore negativo per scorrere verso sinistra.
yAmount
Specifica la quantità, in unità dispositivo, dello scorrimento verticale. Questo parametro deve essere un valore negativo per scorrere verso l'alto.
lpRect
Punta a un oggetto o RECT
a una CRect
struttura che specifica la parte dell'area client da scorrere. Se lpRect
è NULL
, viene eseguito lo scorrimento dell'intera area client. Il cursore viene riposizionato se il rettangolo del cursore interseca il rettangolo di scorrimento.
lpClipRect
Punta a un oggetto o RECT
a una CRect
struttura che specifica il rettangolo di ritaglio da scorrere. Vengono scorrere solo i bit all'interno di questo rettangolo. I bit esterni a questo rettangolo non sono interessati anche se si trovano nel lpRect
rettangolo. Se lpClipRect
è NULL
, non viene eseguito alcun ritaglio sul rettangolo di scorrimento.
Osservazioni:
Se il cursore si trova nell'oggetto CWnd
di scorrimento, ScrollWindow
nasconde automaticamente il cursore per evitare che venga cancellato e quindi ripristina il cursore al termine dello scorrimento. La posizione del cursore viene adattata di conseguenza.
L'area individuata dalla ScrollWindow
funzione membro non viene aggiornata ma viene combinata nell'area di aggiornamento dell'oggetto corrente CWnd
. L'applicazione riceverà infine un WM_PAINT
messaggio che informa che l'area deve essere aggiornata. Per ripristinare l'area individuata contemporaneamente allo scorrimento, chiamare la UpdateWindow
funzione membro immediatamente dopo la chiamata ScrollWindow
a .
Se lpRect
è NULL
, anche le posizioni di qualsiasi finestra figlio nella finestra vengono sfalsate dalla quantità specificata da xAmount
e yAmount
e le eventuali aree non valide (non affiancate) in CWnd
sono offset. ScrollWindow
è più veloce quando lpRect
è NULL
.
Se lpRect
non NULL
è , le posizioni delle finestre figlio non vengono modificate e le aree non valide in CWnd
non sono offset. Per evitare problemi di aggiornamento quando lpRect
non NULL
è , chiamare la UpdateWindow
funzione membro per aggiornare CWnd
prima di chiamare ScrollWindow
.
CWnd::ScrollWindowEx
Scorre il contenuto dell'area client di una finestra.
int ScrollWindowEx(
int dx,
int dy,
LPCRECT lpRectScroll,
LPCRECT lpRectClip,
CRgn* prgnUpdate,
LPRECT lpRectUpdate,
UINT flags);
Parametri
dx
Specifica la quantità, in unità di dispositivo, dello scorrimento orizzontale. Questo parametro deve avere un valore negativo per scorrere verso sinistra.
dy
Specifica la quantità, in unità dispositivo, dello scorrimento verticale. Questo parametro deve avere un valore negativo per scorrere verso l'alto.
lpRectScroll
Punta a una RECT
struttura che specifica la parte dell'area client da scorrere. Se questo parametro è NULL
, viene eseguito lo scorrimento dell'intera area client.
lpRectClip
Punta a una RECT
struttura che specifica il rettangolo di ritaglio da scorrere. Questa struttura ha la precedenza sul rettangolo a lpRectScroll
cui punta . Vengono scorrere solo i bit all'interno di questo rettangolo. I bit esterni a questo rettangolo non sono interessati anche se si trovano nel lpRectScroll
rettangolo. Se questo parametro è NULL
, non viene eseguito alcun ritaglio sul rettangolo di scorrimento.
prgnUpdate
Identifica l'area modificata per contenere l'area invalidata dallo scorrimento. Questo parametro può essere NULL
.
lpRectUpdate
Punta a una RECT
struttura che riceverà i limiti del rettangolo invalidato dallo scorrimento. Questo parametro può essere NULL
.
flags
I valori consentiti sono i seguenti:
SW_ERASE
Se specificato conSW_INVALIDATE
, cancella l'area appena invalidata inviando unWM_ERASEBKGND
messaggio alla finestra.SW_INVALIDATE
Invalida l'area identificata daprgnUpdate
dopo lo scorrimento.SW_SCROLLCHILDREN
Scorre tutte le finestre figlio che intersecano il rettangolo alpRectScroll
cui punta il numero di pixel specificato indx
edy
. Windows invia unWM_MOVE
messaggio a tutte le finestre figlio che intersecanolpRectScroll
, anche se non vengono spostate. Il cursore viene riposizionato quando si scorre una finestra figlio e il rettangolo di cursore interseca il rettangolo di scorrimento.
Valore restituito
Il valore restituito è SIMPLEREGION
(area rettangolare invalidata), COMPLEXREGION
(area non invalidata non rettangolare; rettangoli sovrapposti) o NULLREGION
(nessuna area invalidata), se la funzione ha esito positivo; in caso contrario, il valore restituito è ERROR
.
Osservazioni:
Questa funzione è simile alla ScrollWindow
funzione, con alcune funzionalità aggiuntive.
Se SW_INVALIDATE
e SW_ERASE
non vengono specificati, la ScrollWindowEx
funzione membro non invalida l'area da cui viene eseguito lo scorrimento. Se uno di questi flag è impostato, ScrollWindowEx
invalida questa area. L'area non viene aggiornata finché l'applicazione chiama la UpdateWindow
funzione membro, chiama la RedrawWindow
funzione membro (specificando RDW_UPDATENOW
o RDW_ERASENOW
) o recupera il WM_PAINT
messaggio dalla coda dell'applicazione.
Se la finestra ha lo WS_CLIPCHILDREN
stile , le aree restituite specificate da prgnUpdate
e lpRectUpdate
rappresentano l'area totale della finestra scorrevole che deve essere aggiornata, incluse le aree nelle finestre figlio che richiedono l'aggiornamento.
Se il SW_SCROLLCHILDREN
flag è specificato, Windows non aggiornerà correttamente la schermata se una parte di una finestra figlio viene scorrere. La parte della finestra figlio scorrevole che si trova all'esterno del rettangolo di origine non verrà cancellata e non verrà ridisegnata correttamente nella nuova destinazione. Utilizzare la DeferWindowPos
funzione Windows per spostare le finestre figlio che non si trovano completamente all'interno del lpRectScroll
rettangolo. Il cursore viene riposizionato se il SW_SCROLLCHILDREN
flag è impostato e il rettangolo del cursore interseca il rettangolo di scorrimento.
Tutte le coordinate di input e output (per lpRectScroll
, lpRectUpdate
lpRectClip
, e prgnUpdate
) vengono considerate nelle coordinate client, indipendentemente dal fatto che la finestra abbia lo stile della CS_OWNDC
classe o CS_CLASSDC
. Usare le funzioni e DPtoLP
Windows per eseguire la LPtoDP
conversione da e verso coordinate logiche, se necessario.
CWnd::SendChildNotifyLastMsg
Questa funzione membro viene chiamata dal framework per fornire un messaggio di notifica a una finestra figlio, dalla finestra padre, in modo che la finestra figlio possa gestire un'attività.
BOOL SendChildNotifyLastMsg(LRESULT* pResult = NULL);
Parametri
pResult
Risultato generato dalla finestra figlio da restituire dalla finestra padre.
Valore restituito
Diverso da zero se la finestra figlio ha gestito il messaggio inviato al padre; in caso contrario, 0.
Osservazioni:
SendChildNotifyLastMsg
inviare il messaggio corrente all'origine se si tratta di un messaggio che si riflette.
Per altre informazioni sulla reflection dei messaggi, vedere Gestione dei messaggi riflessi.
CWnd::SendDlgItemMessage
Invia un messaggio a un controllo .
LRESULT SendDlgItemMessage(
int nID,
UINT message,
WPARAM wParam = 0,
LPARAM lParam = 0);
Parametri
nID
Specifica l'identificatore del controllo finestra di dialogo che riceverà il messaggio.
message
Specifica il messaggio da inviare.
wParam
Specifica informazioni aggiuntive dipendenti dai messaggi.
lParam
Specifica informazioni aggiuntive dipendenti dai messaggi.
Valore restituito
Specifica il valore restituito dalla routine della finestra del controllo oppure 0 se il controllo non è stato trovato.
Osservazioni:
La SendDlgItemMessage
funzione membro non restituisce finché il messaggio non viene elaborato.
L'uso SendDlgItemMessage
è identico a ottenere un CWnd
oggetto * al controllo specificato e a chiamare la SendMessage
funzione membro.
Esempio
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
Invia il messaggio specificato a questa finestra.
LRESULT SendMessage(
UINT message,
WPARAM wParam = 0,
LPARAM lParam = 0);
Parametri
message
Specifica il messaggio da inviare.
wParam
Specifica informazioni aggiuntive dipendenti dai messaggi.
lParam
Specifica informazioni aggiuntive dipendenti dai messaggi.
Valore restituito
Risultato dell'elaborazione del messaggio; il relativo valore dipende dal messaggio inviato.
Osservazioni:
La SendMessage
funzione membro chiama direttamente la routine window e non restituisce fino a quando tale routine della finestra non ha elaborato il messaggio. Ciò è in contrasto con la PostMessage
funzione membro, che inserisce il messaggio nella coda dei messaggi della finestra e restituisce immediatamente.
Esempio
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
Chiamare questa funzione membro per inviare il messaggio di Windows specificato a tutte le finestre discendenti.
void SendMessageToDescendants(
UINT message,
WPARAM wParam = 0,
LPARAM lParam = 0,
BOOL bDeep = TRUE,
BOOL bOnlyPerm = FALSE);
Parametri
message
Specifica il messaggio da inviare.
wParam
Specifica informazioni aggiuntive dipendenti dai messaggi.
lParam
Specifica informazioni aggiuntive dipendenti dai messaggi.
bDeep
Specifica il livello in cui eseguire la ricerca. Se TRUE
, cercare in modo ricorsivo tutti gli elementi figlio; se FALSE
, cercare solo elementi figlio immediati.
bOnlyPerm
Specifica se il messaggio verrà ricevuto da finestre temporanee. Se TRUE
, le finestre temporanee possono ricevere il messaggio; se FALSE
, solo le finestre permanenti ricevono il messaggio. Per altre informazioni sulle finestre temporanee, vedere La nota tecnica 3.
Osservazioni:
Se bDeep
è FALSE
, il messaggio viene inviato solo agli elementi figlio immediati della finestra; in caso contrario, il messaggio viene inviato a tutte le finestre discendenti.
Se bDeep
e bOnlyPerm
sono TRUE
, la ricerca continua sotto le finestre temporanee. In questo caso, solo le finestre permanenti rilevate durante la ricerca ricevono il messaggio. Se bDeep
è FALSE
, il messaggio viene inviato solo agli elementi figlio immediati della finestra.
Esempio
// 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
Invia il messaggio specificato alla finestra.
BOOL SendNotifyMessage(
UINT message,
WPARAM wParam,
LPARAM lParam);
Parametri
message
Specifica il messaggio da inviare.
wParam
Specifica informazioni aggiuntive dipendenti dai messaggi.
lParam
Specifica informazioni aggiuntive dipendenti dai messaggi.
Valore restituito
Diverso da zero se la funzione ha esito positivo; in caso contrario, 0.
Osservazioni:
Se la finestra è stata creata dal thread chiamante, SendNotifyMessage
chiama la routine della finestra per la finestra e non restituisce finché la routine della finestra non ha elaborato il messaggio. Se la finestra è stata creata da un thread diverso, SendNotifyMessage
passa il messaggio alla routine della finestra e restituisce immediatamente. Non attende che la routine della finestra finisca l'elaborazione del messaggio.
CWnd::SetActiveWindow
Rende CWnd
attiva la finestra.
CWnd* SetActiveWindow();
Valore restituito
Finestra precedentemente attiva.
Il puntatore restituito può essere temporaneo e non deve essere archiviato per un uso successivo.
Osservazioni:
La SetActiveWindow
funzione membro deve essere usata con attenzione perché consente a un'applicazione di assumere arbitrariamente la finestra attiva e lo stato attivo dell'input. In genere, Windows si occupa di tutte le attivazioni.
CWnd::SetCapture
Determina l'invio di tutti gli input del mouse successivi all'oggetto corrente CWnd
indipendentemente dalla posizione del cursore.
CWnd* SetCapture();
Valore restituito
Puntatore all'oggetto finestra che in precedenza ha ricevuto tutti gli input del mouse. È NULL
se non c'è una finestra di questo tipo. Il puntatore restituito può essere temporaneo e non deve essere archiviato per un uso successivo.
Osservazioni:
Quando CWnd
non richiede più tutti gli input del mouse, l'applicazione deve chiamare la ReleaseCapture
funzione in modo che altre finestre possano ricevere l'input del mouse.
Durante l'acquisizione dell'input del mouse, nessun WM_NCHITTEST
messaggio o WM_SETCURSOR
viene inviato alla finestra attiva.
CWnd::SetCaretPos
Imposta la posizione del cursore.
static void PASCAL SetCaretPos(POINT point);
Parametri
point
Specifica le nuove coordinate x e y (nelle coordinate client) del cursore.
Osservazioni:
La SetCaretPos
funzione membro sposta il cursore solo se è di proprietà di una finestra nell'attività corrente. SetCaretPos
sposta il cursore indipendentemente dal fatto che il cursore sia nascosto.
Il cursore è una risorsa condivisa. Una finestra non deve spostare il cursore se non è proprietario del cursore.
Esempio
// 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
Aggiunge questa finestra alla catena di finestre notificate (tramite il WM_DRAWCLIPBOARD
messaggio) ogni volta che viene modificato il contenuto degli Appunti.
HWND SetClipboardViewer();
Valore restituito
Handle alla finestra successiva della catena del visualizzatore Appunti, se ha esito positivo. Le applicazioni devono salvare questo handle (può essere archiviato come variabile membro) e usarlo quando risponde ai messaggi della catena del visualizzatore appunti.
Osservazioni:
Una finestra che fa parte della catena del visualizzatore appunti deve rispondere ai WM_DRAWCLIPBOARD
messaggi , WM_CHANGECBCHAIN
e e WM_DESTROY
passare il messaggio alla finestra successiva della catena.
Questa funzione membro invia un WM_DRAWCLIPBOARD
messaggio alla finestra. Poiché l'handle alla finestra successiva nella catena del visualizzatore appunti non è ancora stato restituito, l'applicazione non deve passare il WM_DRAWCLIPBOARD
messaggio ricevuto durante la chiamata a SetClipboardViewer
.
Per rimuovere se stesso dalla catena del visualizzatore Appunti, un'applicazione deve chiamare la ChangeClipboardChain
funzione membro.
CWnd::SetDlgCtrlID
Imposta l'ID finestra o l'ID di controllo per la finestra su un nuovo valore.
int SetDlgCtrlID(int nID);
Parametri
nID
Nuovo valore da impostare per l'identificatore del controllo.
Valore restituito
Identificatore precedente della finestra, se riuscito; in caso contrario, 0.
Osservazioni:
La finestra può essere qualsiasi finestra figlio, non solo un controllo in una finestra di dialogo. La finestra non può essere una finestra di primo livello.
CWnd::SetDlgItemInt
Imposta il testo di un determinato controllo in una finestra di dialogo sulla rappresentazione di stringa di un valore intero specificato.
void SetDlgItemInt(
int nID,
UINT nValue,
BOOL bSigned = TRUE);
Parametri
nID
Specifica l'ID intero del controllo da modificare.
nValue
Specifica il valore intero utilizzato per generare il testo dell'elemento.
bSigned
Specifica se il valore intero è con segno o senza segno. Se questo parametro è TRUE
, nValue
è firmato. Se questo parametro è TRUE
e nValue
è minore di 0, viene inserito un segno meno prima della prima cifra nella stringa. Se questo parametro è FALSE
, nValue
non è firmato.
Osservazioni:
SetDlgItemInt
invia un WM_SETTEXT
messaggio al controllo specificato.
Esempio
Vedere l'esempio per CWnd::SetDlgItemText
.
CWnd::SetDlgItemText
Imposta la didascalia o il testo di un controllo di proprietà di una finestra o di una finestra di dialogo.
void SetDlgItemText(
int nID,
LPCTSTR lpszString);
Parametri
nID
Identifica il controllo il cui testo deve essere impostato.
lpszString
Punta a un oggetto o a una CString
stringa con terminazione Null che contiene il testo da copiare nel controllo.
Osservazioni:
SetDlgItemText
invia un WM_SETTEXT
messaggio al controllo specificato.
Esempio
// 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
Posiziona il thread che ha creato la finestra in primo piano e attiva la finestra.
BOOL SetForegroundWindow();
Valore restituito
Diverso da zero se la funzione ha esito positivo; in caso contrario, 0.
Osservazioni:
L'input della tastiera viene indirizzato alla finestra e vari segnali visivi vengono modificati per l'utente. La finestra in primo piano è la finestra con cui l'utente sta attualmente lavorando. La finestra in primo piano si applica solo alle finestre di primo livello (finestre cornice o finestre di dialogo).
Esempio
Vedere l'esempio per CWnd::FindWindow
.
CWnd::SetFocus
Richiede lo stato attivo per l'input.
CWnd* SetFocus();
Valore restituito
Puntatore all'oggetto finestra che in precedenza aveva lo stato attivo per l'input. È NULL
se non c'è una finestra di questo tipo. Il puntatore restituito può essere temporaneo e non deve essere archiviato.
Osservazioni:
Lo stato attivo di input indirizza tutti gli input della tastiera successivi a questa finestra. Qualsiasi finestra che in precedenza aveva lo stato attivo per l'input lo perde.
La SetFocus
funzione membro invia un WM_KILLFOCUS
messaggio alla finestra che perde lo stato attivo dell'input e un WM_SETFOCUS
messaggio alla finestra che riceve lo stato attivo di input. Attiva anche la finestra o il relativo elemento padre.
Se la finestra corrente è attiva ma non ha lo stato attivo (ovvero nessuna finestra ha lo stato attivo), qualsiasi tasto premuto produrrà i messaggi WM_SYSCHAR
, WM_SYSKEYDOWN
o WM_SYSKEYUP
.
CWnd::SetFont
Invia il WM_SETFONT
messaggio alla finestra per utilizzare il tipo di carattere specificato.
void SetFont(
CFont* pFont,
BOOL bRedraw = TRUE);
Parametri
pFont
Puntatore a un oggetto CFont
.
bRedraw
TRUE
affinché la finestra venga ridisegnato immediatamente dopo l'elaborazione del WM_SETFONT
messaggio; in caso contrario FALSE
, .
Osservazioni:
Questo metodo non ha alcun effetto a meno che la finestra non elabori il WM_SETFONT
messaggio. Molte classi MFC che derivano dal CWnd
processo di questo messaggio perché sono associate a una classe finestra predefinita che include un gestore messaggi per il WM_SETFONT
messaggio. Per usare questo metodo, le classi derivate da CWnd
devono definire un gestore di metodi per il WM_SETFONT
messaggio.
CWnd::SetIcon
Chiamare questa funzione membro per impostare l'handle su un'icona specifica, come identificato da hIcon
.
HICON SetIcon(
HICON hIcon,
BOOL bBigIcon);
Parametri
hIcon
Handle di un'icona precedente.
bBigIcon
Specifica un'icona da 32 pixel a 32 pixel se TRUE
; specifica un'icona da 16 pixel a 16 pixel se FALSE
.
Valore restituito
Handle di un'icona.
Osservazioni:
Quando la classe della finestra viene registrata, seleziona un'icona.
Esempio
Vedere l'esempio per CWnd::GetSystemMenu
.
CWnd::SetLayeredWindowAttributes
Imposta la chiave di colore per trasparenza e opacità di una finestra a livelli.
BOOL SetLayeredWindowAttributes(
COLORREF crKey,
BYTE bAlpha,
DWORD dwFlags);
Parametri
crKey
Puntatore a un COLORREF
valore che specifica la chiave del colore di trasparenza da utilizzare durante la composizione della finestra a più livelli. Tutti i pixel dipinti dalla finestra in questo colore saranno trasparenti. Per generare un COLORREF
oggetto , utilizzare la RGB
macro .
bAlpha
Valore alfa usato per descrivere l'opacità della finestra a più livelli. Per altre informazioni, vedere il SourceConstantAlpha
membro della BLENDFUNCTION
struttura. Quando bAlpha
è 0, la finestra è completamente trasparente. Quando bAlpha
è 255, la finestra è opaca.
dwFlags
Specifica un'azione da eseguire. Questo parametro può essere uno o più dei valori seguenti. Per un elenco dei valori possibili, vedere SetLayeredWindowAttributes
.
Valore restituito
Viene restituito un valore diverso da zero se la funzione viene eseguita correttamente; in caso contrario viene restituito 0.
Osservazioni:
Questa funzione membro emula la funzionalità della funzione SetLayeredWindowAttributes
, come descritto in Windows SDK.
CWnd::SetMenu
Imposta il menu corrente sul menu specificato.
BOOL SetMenu(CMenu* pMenu);
Parametri
pMenu
Identifica il nuovo menu. Se questo parametro è NULL
, il menu corrente viene rimosso.
Valore restituito
Diverso da zero se il menu viene modificato; in caso contrario, 0.
Osservazioni:
Fa sì che la finestra venga ridisegnata in modo da riflettere la modifica del menu.
SetMenu
non distruggerà un menu precedente. Un'applicazione deve chiamare la CMenu::DestroyMenu
funzione membro per eseguire questa attività.
Esempio
Vedere l'esempio per CMenu::LoadMenu
.
CWnd::SetOwner
Imposta il proprietario della finestra corrente sull'oggetto finestra specificato.
void SetOwner(CWnd* pOwnerWnd);
Parametri
pOwnerWnd
Identifica il nuovo proprietario dell'oggetto finestra. Se questo parametro è NULL
, l'oggetto finestra non ha proprietario.
Osservazioni:
Questo proprietario può quindi ricevere messaggi di comando dall'oggetto finestra corrente. Per impostazione predefinita, l'elemento padre della finestra corrente è il proprietario.
Spesso è utile stabilire connessioni tra oggetti finestra non correlati alla gerarchia delle finestre. Ad esempio, CToolBar
invia notifiche al proprietario anziché al relativo padre. Ciò consente alla barra degli strumenti di diventare figlio di una finestra ,ad esempio una finestra dell'applicazione contenitore OLE, durante l'invio di notifiche a un'altra finestra, ad esempio la finestra cornice sul posto. Inoltre, quando una finestra del server viene disattivata o attivata durante la modifica sul posto, qualsiasi finestra di proprietà della finestra cornice è nascosta o visualizzata. Questa proprietà viene impostata in modo esplicito con una chiamata a SetOwner
.
Il concetto di proprietà di questa funzione è diverso dal concetto di proprietà di GetWindow
.
CWnd::SetParent
Modifica la finestra padre di una finestra figlio.
CWnd* SetParent(CWnd* pWndNewParent);
Parametri
pWndNewParent
Identifica la nuova finestra padre.
Valore restituito
Puntatore all'oggetto finestra padre precedente in caso di esito positivo. Il puntatore restituito può essere temporaneo e non deve essere archiviato per un uso successivo.
Osservazioni:
Se la finestra figlio è visibile, Windows esegue il ridisegno e l'aggiornamento appropriati.
CWnd::SetProperty
Chiamare questa funzione membro per impostare la proprietà del controllo OLE specificata da dwDispID
.
void AFX_CDECL SetProperty(
DISPID dwDispID,
VARTYPE vtProp, ...);
Parametri
dwDispID
Identifica la proprietà da impostare.
vtProp
Specifica il tipo della proprietà da impostare. Per i valori possibili, vedere la sezione Osservazioni per COleDispatchDriver::InvokeHelper
.
...
Un singolo parametro del tipo specificato da vtProp
.
Osservazioni:
Nota
Questa funzione deve essere chiamata solo su un CWnd
oggetto che rappresenta un controllo OLE.
Per altre informazioni sull'uso di questa funzione membro con contenitori di controlli OLE, vedere l'articolo Contenitori di controlli ActiveX: Programmazione di controlli ActiveX in un contenitore di controlli ActiveX.
CWnd::SetRedraw
Un'applicazione chiama SetRedraw
per consentire il ridisegno delle modifiche o per impedire il ridisegno delle modifiche.
void SetRedraw(BOOL bRedraw = TRUE);
Parametri
bRedraw
Specifica lo stato del flag di ridisegno. Se questo parametro è TRUE
, viene impostato il flag di ridisegno; se FALSE
, il flag viene cancellato.
Osservazioni:
Questa funzione membro imposta o cancella il flag ridisegnato. Mentre il flag di ridisegno viene cancellato, il contenuto non verrà aggiornato dopo ogni modifica e non verrà ridisegnato fino a quando non viene impostato il flag di ridisegno. Ad esempio, un'applicazione che deve aggiungere più elementi a una casella di riepilogo può cancellare il flag di ridisegno, aggiungere gli elementi e quindi impostare il flag di ridisegno. Infine, l'applicazione può chiamare la Invalidate
funzione membro o InvalidateRect
per fare in modo che la casella di riepilogo venga aggiornata.
Esempio
// 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
Chiamare questa funzione membro per impostare le informazioni che la SCROLLINFO
struttura gestisce su una barra di scorrimento.
BOOL SetScrollInfo(
int nBar,
LPSCROLLINFO lpScrollInfo,
BOOL bRedraw = TRUE);
Parametri
nBar
Specifica se la barra di scorrimento è un controllo o una parte dell'area non client di una finestra. Se fa parte dell'area non client, nBar indica anche se la barra di scorrimento è posizionata orizzontalmente, verticalmente o entrambe. Deve essere uno dei seguenti:
SB_CTL
Contiene i parametri per un controllo barra di scorrimento. Ilm_hWnd
membro dati deve essere l'handle del controllo barra di scorrimento.SB_HORZ
Specifica che la finestra è una barra di scorrimento orizzontale.SB_VERT
Specifica che la finestra è una barra di scorrimento verticale.
lpScrollInfo
Puntatore a una SCROLLINFO
struttura. Per altre informazioni su questa struttura, vedere Windows SDK.
bRedraw
Specifica se la barra di scorrimento deve essere ridisegnata per riflettere la nuova posizione. Se bRedraw
è TRUE
, la barra di scorrimento viene ridisegnata. Se è FALSE
, non viene ridisegnato. La barra di scorrimento viene ridisegnata per impostazione predefinita.
Valore restituito
In caso di esito positivo, il valore restituito è TRUE
. In caso contrario, è FALSE
.
Osservazioni:
La SCROLLINFO
struttura contiene informazioni su una barra di scorrimento, incluse le posizioni di scorrimento minime e massime, le dimensioni della pagina e la posizione della casella di scorrimento (il pollice). Per altre informazioni sulla modifica delle impostazioni predefinite della struttura, vedere l'argomento SCROLLINFO
relativo alla struttura in Windows SDK.
I gestori di messaggi windows MFC che indicano la posizione CWnd::OnHScroll
della barra di scorrimento e CWnd::OnVScroll
, forniscono solo 16 bit di dati di posizione. GetScrollInfo
e SetScrollInfo
forniscono 32 bit di dati di posizione barra di scorrimento. Pertanto, un'applicazione può chiamare GetScrollInfo
durante l'elaborazione CWnd::OnHScroll
o CWnd::OnVScroll
per ottenere dati sulla posizione della barra di scorrimento a 32 bit.
Nota
CWnd::GetScrollInfo
consente alle applicazioni di usare le posizioni della barra di scorrimento a 32 bit.
CWnd::SetScrollPos
Imposta la posizione corrente di una casella di scorrimento e, se richiesto, ridisegna la barra di scorrimento in modo da riflettere la nuova posizione della casella di scorrimento.
int SetScrollPos(
int nBar,
int nPos,
BOOL bRedraw = TRUE);
Parametri
nBar
Specifica la barra di scorrimento da impostare. Questo parametro può essere uno dei seguenti:
SB_HORZ
Imposta la posizione della casella di scorrimento nella barra di scorrimento orizzontale della finestra.SB_VERT
Imposta la posizione della casella di scorrimento nella barra di scorrimento verticale della finestra.
nPos
Specifica la nuova posizione della casella di scorrimento. Deve trovarsi all'interno dell'intervallo di scorrimento.
bRedraw
Specifica se la barra di scorrimento deve essere ridisegnata per riflettere la nuova posizione della casella di scorrimento. Se questo parametro è TRUE
, la barra di scorrimento viene aggiornata; se FALSE
, la barra di scorrimento non viene aggiornata.
Valore restituito
Posizione precedente della casella di scorrimento.
Osservazioni:
L'impostazione su bRedraw
FALSE
è utile ogni volta che la barra di scorrimento verrà ridisegnata da una chiamata successiva a un'altra funzione.
CWnd::SetScrollRange
Imposta i valori di posizione minima e massima correnti per la barra di scorrimento specificata.
void SetScrollRange(
int nBar,
int nMinPos,
int nMaxPos,
BOOL bRedraw = TRUE);
Parametri
nBar
Specifica la barra di scorrimento da impostare. Questo parametro può essere uno dei valori seguenti:
SB_HORZ
Imposta l'intervallo della barra di scorrimento orizzontale della finestra.SB_VERT
Imposta l'intervallo della barra di scorrimento verticale della finestra.
nMinPos
Specifica la posizione di scorrimento minima.
nMaxPos
Specifica la posizione di scorrimento massima.
bRedraw
Specifica se la barra di scorrimento deve essere ridisegnata per riflettere la modifica. Se bRedraw
è TRUE
, la barra di scorrimento viene ridisegnata; se FALSE
, la barra di scorrimento non viene ridisegnata.
Osservazioni:
Può essere usato anche per nascondere o mostrare barre di scorrimento standard.
Un'applicazione non deve chiamare questa funzione per nascondere una barra di scorrimento durante l'elaborazione di un messaggio di notifica della barra di scorrimento.
Se la chiamata a SetScrollRange
segue immediatamente una chiamata alla SetScrollPos
funzione membro, il bRedraw
parametro nella SetScrollPos
funzione membro deve essere 0 per impedire che la barra di scorrimento venga disegnata due volte.
L'intervallo predefinito per una barra di scorrimento standard è compreso tra 0 e 100. L'intervallo predefinito per un controllo barra di scorrimento è vuoto (i nMinPos
valori e nMaxPos
sono 0). La differenza tra i valori specificati da nMinPos
e nMaxPos
non deve essere maggiore di INT_MAX
.
CWnd::SetTimer
Installa un timer di sistema.
UINT_PTR SetTimer(
UINT_PTR nIDEvent,
UINT nElapse,
void (CALLBACK* lpfnTimer)(HWND,
UINT,
UINT_PTR,
DWORD));
Parametri
nIDEvent
Specifica un identificatore timer diverso da zero. Se l'identificatore del timer è univoco, lo stesso valore viene restituito da SetTimer
. In caso contrario, SetTimer
determina un nuovo valore univoco e lo restituisce. Per un timer di finestra (con una NULL
funzione di callback), il valore deve essere univoco solo per altri timer di Windows associati alla finestra corrente. Per un timer di callback, il valore deve essere univoco per tutti i timer in tutti i processi. Pertanto, quando si crea un timer di callback, è più probabile che il valore restituito sia diverso dal valore specificato.
nElapse
Specifica il valore di timeout, o intervallo, in millisecondi.
lpfnTimer
Specifica l'indirizzo della funzione di callback fornita dall'applicazione TimerProc
che elabora i WM_TIMER
messaggi. Se questo parametro è NULL
, i WM_TIMER
messaggi vengono inseriti nella coda di messaggi dell'applicazione e gestiti dall'oggetto CWnd
.
Valore restituito
Identificatore timer del nuovo timer se la funzione ha esito positivo. Questo valore può essere o meno uguale al valore passato tramite il nIDEvent
parametro . Un'applicazione deve sempre passare il valore restituito alla KillTimer
funzione membro per terminare il timer. Diverso da zero se ha esito positivo; in caso contrario, 0.
Osservazioni:
Viene specificato un valore di intervallo e ogni volta che viene trascorso l'intervallo, il sistema invia un WM_TIMER
messaggio alla coda di messaggi di installazione dell'applicazione di installazione o passa il messaggio a una funzione di callback definita dall'applicazione TimerProc
.
La lpfnTimer
funzione di callback non deve essere denominata TimerProc
, ma deve essere dichiarata come statica e definita come segue.
void CALLBACK TimerProc(
HWND hWnd, // handle of CWnd that called SetTimer
UINT nMsg, // WM_TIMER
UINT_PTR nIDEvent, // timer identification
DWORD dwTime // system time);
Esempio
Questo esempio usa CWnd::SetTimer
, CWnd::OnTimer
e CWnd::KillTimer
per gestire i WM_TIMER
messaggi. Il primo timer è configurato per inviare un WM_TIMER
messaggio alla finestra cornice principale ogni 2 secondi in OnStartTimer
. Il OnTimer
gestore eventi gestisce i WM_TIMER
messaggi per la finestra cornice principale. Questo metodo fa sì che l'altoparlante del PC vengaepto ogni 2 secondi. Il secondo timer invia un messaggio alla funzione di callback ogni 3,75 secondi. OnStopTimer
arresterà entrambi i timer chiamando CWnd::KillTimer
per ogni ID timer.
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
Chiamare questa funzione membro per associare un identificatore di contesto della Guida alla finestra specificata.
BOOL SetWindowContextHelpId(DWORD dwContextHelpId);
Parametri
dwContextHelpId
Identificatore del contesto della Guida.
Valore restituito
Diverso da zero se la funzione ha esito positivo; in caso contrario, 0.
Osservazioni:
Se una finestra figlio non dispone di un identificatore di contesto della Guida, eredita l'identificatore della finestra padre. Analogamente, se una finestra di proprietà non dispone di un identificatore di contesto della Guida, eredita l'identificatore della finestra del proprietario. Questa ereditarietà degli identificatori di contesto della Guida consente a un'applicazione di impostare un solo identificatore per una finestra di dialogo e tutti i relativi controlli.
Esempio
// 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
Imposta lo stato di visualizzazione e le posizioni normale (ripristinata), ridotta a icona e ingrandita per una finestra.
BOOL SetWindowPlacement(const WINDOWPLACEMENT* lpwndpl);
Parametri
lpwndpl
Punta a una WINDOWPLACEMENT
struttura che specifica il nuovo stato di visualizzazione e le posizioni.
Valore restituito
Diverso da zero se la funzione ha esito positivo; in caso contrario, 0.
CWnd::SetWindowPos
Modifica le dimensioni, la posizione e l'ordine Z delle finestre figlio, popup e di primo livello.
BOOL SetWindowPos(
const CWnd* pWndInsertAfter,
int x,
int y,
int cx,
int cy,
UINT nFlags);
Parametri
pWndInsertAfter
Identifica l'oggetto CWnd
che precederà (maggiore di) questo CWnd
oggetto nell'ordine Z. Questo parametro può essere un puntatore a un puntatore a o CWnd
a uno dei valori seguenti:
wndBottom
Posiziona la finestra nella parte inferiore dell'ordine Z. Se si trattaCWnd
di una finestra in alto, la finestra perde lo stato più alto; il sistema posiziona la finestra nella parte inferiore di tutte le altre finestre.wndTop
Posiziona la finestra nella parte superiore dell'ordine Z.wndTopMost
Posiziona la finestra sopra tutte le finestre non più in alto. La finestra mantiene la posizione superiore anche quando viene disattivata.wndNoTopMost
Riposiziona la finestra nella parte superiore di tutte le finestre non superiori, ovvero dietro tutte le finestre più in alto. Questo flag non ha alcun effetto se la finestra è già una finestra non superiore.
Per le regole su come usare questo parametro, vedere la sezione "Osservazioni" di questo argomento.
x
Specifica la nuova posizione del lato sinistro della finestra.
y
Specifica la nuova posizione della parte superiore della finestra.
cx
Specifica la nuova larghezza della finestra.
cy
Specifica la nuova altezza della finestra.
nFlags
Specifica le opzioni di ridimensionamento e posizionamento. Questo parametro può essere una combinazione dei flag seguenti:
SWP_DRAWFRAME
Disegna una cornice (definita al momento della creazione della finestra) intorno alla finestra.SWP_FRAMECHANGED
Invia unWM_NCCALCSIZE
messaggio alla finestra, anche se le dimensioni della finestra non vengono modificate. Se questo flag non viene specificato,WM_NCCALCSIZE
viene inviato solo quando vengono modificate le dimensioni della finestra.SWP_HIDEWINDOW
Nasconde la finestra.SWP_NOACTIVATE
Non attiva la finestra. Se questo flag non è impostato, la finestra viene attivata e spostata nella parte superiore del gruppo più in alto o non superiore (a seconda dell'impostazione delpWndInsertAfter
parametro).SWP_NOCOPYBITS
Rimuove l'intero contenuto dell'area client. Se questo flag non viene specificato, il contenuto valido dell'area client viene salvato e copiato nuovamente nell'area client dopo che la finestra viene ridimensionata o riposizionata.SWP_NOMOVE
Mantiene la posizione corrente (ignora ix
parametri ey
).SWP_NOOWNERZORDER
Non modifica la posizione della finestra del proprietario nell'ordine Z.SWP_NOREDRAW
Non ridisegna le modifiche. Se questo flag è impostato, non viene eseguito alcun tipo di aggiornamento. Questo vale per l'area client, l'area non client (incluse le barre di scorrimento e il titolo) e qualsiasi parte della finestra padre rilevata in seguito alla finestra spostata. Quando questo flag è impostato, l'applicazione deve invalidare o ridisegnare in modo esplicito tutte le parti della finestra e della finestra padre che devono essere ridisegnate.SWP_NOREPOSITION
è uguale aSWP_NOOWNERZORDER
.SWP_NOSENDCHANGING
Impedisce alla finestra di ricevere ilWM_WINDOWPOSCHANGING
messaggio.SWP_NOSIZE
Mantiene le dimensioni correnti (ignora icx
parametri ecy
).SWP_NOZORDER
Mantiene l'ordinamento corrente (ignorapWndInsertAfter
).SWP_SHOWWINDOW
Visualizza la finestra.
Valore restituito
Diverso da zero se la funzione ha esito positivo; in caso contrario, 0.
Osservazioni:
Le finestre vengono ordinate sullo schermo in base al loro ordine Z; la finestra nella parte superiore dell'ordine Z viene visualizzata sopra tutte le altre finestre nell'ordine.
Tutte le coordinate per le finestre figlio sono coordinate client (rispetto all'angolo superiore sinistro dell'area client della finestra padre).
Una finestra può essere spostata all'inizio dell'ordine Z impostando il pWndInsertAfter
parametro su &wndTopMost
e assicurando che il SWP_NOZORDER
flag non sia impostato o impostando l'ordine Z di una finestra in modo che si trova sopra qualsiasi finestra superiore esistente. Quando una finestra non superiore viene resa in primo piano, anche le finestre di proprietà vengono rese più in alto. I proprietari non vengono modificati.
Una finestra superiore non è più all'inizio se viene riposizionata nella parte inferiore (&wndBottom
) dell'ordine Z o dopo qualsiasi finestra non superiore. Quando una finestra superiore viene resa non in primo piano, tutti i suoi proprietari e le sue finestre di proprietà sono anche fatte finestre non in primo piano.
Se né SWP_NOACTIVATE
né SWP_NOZORDER
viene specificato ,ovvero quando l'applicazione richiede che una finestra venga attivata e inserita contemporaneamente nell'ordine Z specificato, il valore specificato in pWndInsertAfter
viene usato solo nelle circostanze seguenti:
Né
&wndTopMost
né è&wndNoTopMost
specificato nelpWndInsertAfter
parametro .Questa finestra non è la finestra attiva.
Un'applicazione non può attivare una finestra inattiva senza portarla anche all'inizio dell'ordine Z. Le applicazioni possono modificare l'ordine Z di una finestra attivata senza restrizioni.
Una finestra non superiore può essere proprietaria di una finestra superiore, ma non viceversa. Qualsiasi finestra (ad esempio, una finestra di dialogo) di proprietà di una finestra superiore viene creata una finestra superiore per garantire che tutte le finestre di proprietà rimangano al di sopra del proprietario.
Con Windows 3.1 e versioni successive, le finestre possono essere spostate all'inizio dell'ordine Z e bloccate in tale posizione impostando i relativi WS_EX_TOPMOST
stili. Tale finestra in alto mantiene la sua posizione più alta anche quando disattivata. Ad esempio, selezionando il comando WinHelp Always On In alto la finestra della Guida rimane visibile quando si torna all'applicazione.
Per creare una finestra in alto, chiamare SetWindowPos
con il pWndInsertAfter
parametro uguale a &wndTopMost
o impostare lo WS_EX_TOPMOST
stile quando si crea la finestra.
Se l'ordine Z contiene finestre con lo WS_EX_TOPMOST
stile, una finestra spostata con il &wndTopMost
valore viene posizionata nella parte superiore di tutte le finestre non superiori, ma sotto qualsiasi finestra superiore. Quando un'applicazione attiva una finestra inattiva senza bit WS_EX_TOPMOST
, la finestra viene spostata sopra tutte le finestre non più in alto, ma sotto le finestre più in alto.
Se SetWindowPos
viene chiamato quando il pWndInsertAfter
parametro è &wndBottom
e CWnd
è una finestra in alto, la finestra perde lo stato superiore (WS_EX_TOPMOST
è deselezionata) e il sistema posiziona la finestra nella parte inferiore dell'ordine Z.
Esempio
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
Chiamare questa funzione membro per impostare l'area di una finestra.
int SetWindowRgn(
HRGN hRgn,
BOOL bRedraw);
Parametri
hRgn
Handle di un'area.
bRedraw
Se TRUE
, il sistema operativo ridisegna la finestra dopo l'impostazione dell'area; in caso contrario, non lo fa. In genere, impostare su bRedraw
TRUE
se la finestra è visibile. Se impostato su TRUE
, il sistema invia i WM_WINDOWPOSCHANGING
messaggi e WM_WINDOWPOSCHANGED
alla finestra.
Valore restituito
Se la funzione ha esito positivo, il valore restituito è diverso da zero. Se la funzione ha esito negativo, il valore restituito è zero.
Osservazioni:
Le coordinate dell'area della finestra di una finestra sono relative all'angolo superiore sinistro della finestra, non all'area client della finestra.
Dopo una chiamata riuscita a SetWindowRgn
, il sistema operativo è proprietario dell'area specificata dall'handle hRgn
dell'area . Il sistema operativo non esegue una copia dell'area, quindi non effettuare ulteriori chiamate di funzione con questo handle di area e non chiudere questo handle di area.
CWnd::SetWindowText
Imposta il titolo della finestra sul testo specificato.
void SetWindowText(LPCTSTR lpszString);
Parametri
lpszString
Punta a un oggetto o a una CString
stringa con terminazione Null da utilizzare come nuovo titolo o testo del controllo.
Osservazioni:
Se la finestra è un controllo, viene impostato il testo all'interno del controllo .
Questa funzione determina l'invio di un WM_SETTEXT
messaggio a questa finestra.
Esempio
// 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
Mostra il cursore sullo schermo nella posizione corrente del cursore.
void ShowCaret();
Osservazioni:
Dopo la visualizzazione, il cursore inizia a lampeggiare automaticamente.
La ShowCaret
funzione membro mostra il cursore solo se ha una forma corrente e non è stata nascosta due o più volte consecutivamente. Se il cursore non è di proprietà di questa finestra, il cursore non viene visualizzato.
Nascondere il cursore è cumulativo. Se la HideCaret
funzione membro è stata chiamata cinque volte consecutivamente, ShowCaret
deve essere chiamata cinque volte per visualizzare il cursore.
Il cursore è una risorsa condivisa. La finestra dovrebbe mostrare il cursore solo quando ha lo stato attivo o è attivo.
Esempio
Vedere l'esempio per CWnd::CreateCaret
.
CWnd::ShowOwnedPopups
Visualizza o nasconde tutte le finestre popup di proprietà di questa finestra.
void ShowOwnedPopups(BOOL bShow = TRUE);
Parametri
bShow
Specifica se le finestre popup devono essere visualizzate o nascoste. Se questo parametro è TRUE
, vengono visualizzate tutte le finestre popup nascoste. Se questo parametro è FALSE
, tutte le finestre popup visibili sono nascoste.
Esempio
Vedere l'esempio per CWnd::SetWindowPos
.
CWnd::ShowScrollBar
Visualizza o nasconde una barra di scorrimento.
void ShowScrollBar(
UINT nBar,
BOOL bShow = TRUE);
Parametri
nBar
Specifica se la barra di scorrimento è un controllo o una parte dell'area non client di una finestra. Se fa parte dell'area non client, nBar
indica anche se la barra di scorrimento è posizionata orizzontalmente, verticalmente o entrambe. Deve essere uno dei seguenti:
SB_BOTH
Specifica le barre di scorrimento orizzontali e verticali della finestra.SB_HORZ
Specifica che la finestra è una barra di scorrimento orizzontale.SB_VERT
Specifica che la finestra è una barra di scorrimento verticale.
bShow
Specifica se Windows visualizza o nasconde la barra di scorrimento. Se questo parametro è TRUE
, viene visualizzata la barra di scorrimento; in caso contrario, la barra di scorrimento è nascosta.
Osservazioni:
Un'applicazione non deve chiamare ShowScrollBar
per nascondere una barra di scorrimento durante l'elaborazione di un messaggio di notifica della barra di scorrimento.
CWnd::ShowWindow
Imposta lo stato di visibilità della finestra.
BOOL ShowWindow(int nCmdShow);
Parametri
nCmdShow
Specifica la modalità di visualizzazione dell'oggetto CWnd
. Deve essere uno dei valori seguenti:
SW_HIDE
Nasconde questa finestra e passa l'attivazione a un'altra finestra.SW_MINIMIZE
Riduce a icona la finestra e attiva la finestra di primo livello nell'elenco del sistema.SW_RESTORE
Attiva e visualizza la finestra. Se la finestra è ridotta a icona o ingrandita, Windows lo ripristina alla dimensione e alla posizione originali.SW_SHOW
Attiva la finestra e la visualizza nella dimensione e nella posizione correnti.SW_SHOWMAXIMIZED
Attiva la finestra e la visualizza come finestra ingrandita.SW_SHOWMINIMIZED
Attiva la finestra e la visualizza come icona.SW_SHOWMINNOACTIVE
Visualizza la finestra come icona. La finestra attualmente attiva rimane attiva.SW_SHOWNA
Visualizza la finestra nello stato corrente. La finestra attualmente attiva rimane attiva.SW_SHOWNOACTIVATE
Visualizza la finestra nella dimensione e nella posizione più recenti. La finestra attualmente attiva rimane attiva.SW_SHOWNORMAL
Attiva e visualizza la finestra. Se la finestra è ridotta a icona o ingrandita, Windows lo ripristina alla dimensione e alla posizione originali.
Valore restituito
Diverso da zero se la finestra era visibile in precedenza; 0 se l'oggetto CWnd
era nascosto in precedenza.
Osservazioni:
ShowWindow
deve essere chiamato una sola volta per ogni applicazione per la finestra principale con CWinApp::m_nCmdShow
. Le chiamate successive a ShowWindow
devono usare uno dei valori elencati in precedenza anziché quello specificato da CWinApp::m_nCmdShow
.
Esempio
Vedere l'esempio per CWnd::CalcWindowRect
.
CWnd::SubclassDlgItem
Chiamare questa funzione membro per "sottoclasse dinamicamente" un controllo creato da un modello di finestra di dialogo e associarlo a questo CWnd
oggetto.
BOOL SubclassDlgItem(
UINT nID,
CWnd* pParent);
Parametri
nID
ID del controllo.
pParent
Elemento padre del controllo (in genere una finestra di dialogo).
Valore restituito
Diverso da zero se la funzione ha esito positivo; in caso contrario, 0.
Osservazioni:
Quando un controllo viene sottoclassato in modo dinamico, i messaggi di Windows instradano attraverso la CWnd
mappa dei messaggi e chiamano prima i gestori di messaggi nella CWnd
classe della classe . I messaggi passati alla classe base verranno passati al gestore di messaggi predefinito nel controllo .
Questa funzione membro collega il controllo Windows a un CWnd
oggetto e sostituisce le funzioni e AfxWndProc
del WndProc
controllo. La funzione archivia il vecchio WndProc
nella posizione restituita dalla GetSuperWndProcAddr
funzione membro.
Esempio
// 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
Chiamare questa funzione membro per "sottoclasse dinamicamente" una finestra e collegarla a questo CWnd
oggetto.
BOOL SubclassWindow(HWND hWnd);
Parametri
hWnd
Handle per la finestra.
Valore restituito
Diverso da zero se la funzione ha esito positivo; in caso contrario, 0.
Osservazioni:
Quando una finestra viene sottoclassata in modo dinamico, i messaggi di Windows instradano attraverso la CWnd
mappa dei messaggi e chiamano prima i gestori di messaggi nella CWnd
classe della classe . I messaggi passati alla classe base verranno passati al gestore di messaggi predefinito nella finestra.
Questa funzione membro collega il controllo Windows a un CWnd
oggetto e sostituisce le funzioni e AfxWndProc
della WndProc
finestra. La funzione archivia un puntatore al precedente WndProc
nell'oggetto CWnd
.
Nota
La finestra non deve essere già collegata a un oggetto MFC quando viene chiamata questa funzione.
Esempio
// 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
Chiamare questa funzione membro per sbloccare una finestra bloccata con CWnd::LockWindowUpdate
.
void UnlockWindowUpdate();
Osservazioni:
È possibile bloccare una sola finestra alla volta usando LockWindowUpdate
. Per altre informazioni sul blocco delle finestre, vedere CWnd::LockWindowUpdate
o la funzione LockWindowUpdate
Win32.
CWnd::UnsubclassWindow
Chiamare questa funzione membro per ripristinare WndProc
il valore originale e scollegare la finestra identificata da HWND dall'oggetto CWnd
.
HWND UnsubclassWindow();
Valore restituito
Handle per la finestra non sottoclassata.
Esempio
Vedere l'esempio per CWnd::SubclassWindow
.
CWnd::UpdateData
Chiamare questa funzione membro per inizializzare i dati in una finestra di dialogo o per recuperare e convalidare i dati della finestra di dialogo.
BOOL UpdateData(BOOL bSaveAndValidate = TRUE);
Parametri
bSaveAndValidate
Flag che indica se la finestra di dialogo viene inizializzata (FALSE
) o i dati vengono recuperati (TRUE
).
Valore restituito
Diverso da zero se l'operazione ha esito positivo; in caso contrario, 0. Se bSaveAndValidate
è TRUE
, un valore restituito diverso da zero indica che i dati vengono convalidati correttamente.
Osservazioni:
Il framework chiama UpdateData
automaticamente con bSaveAndValidate
impostato su FALSE
quando viene creata una finestra di dialogo modale nell'implementazione predefinita di CDialog::OnInitDialog
. La chiamata viene eseguita prima che la finestra di dialogo sia visibile. L'implementazione predefinita di CDialog::OnOK
chiama questa funzione membro con bSaveAndValidate
impostato su TRUE
per recuperare i dati e, in caso di esito positivo, chiuderà la finestra di dialogo. Se si fa clic sul pulsante Annulla nella finestra di dialogo, la finestra di dialogo viene chiusa senza recuperare i dati.
CWnd::UpdateDialogControls
Chiamare questa funzione membro per aggiornare lo stato dei pulsanti della finestra di dialogo e di altri controlli in una finestra di dialogo o in una finestra che usa il ON_UPDATE_COMMAND_UI
meccanismo di callback.
void UpdateDialogControls(
CCmdTarget* pTarget,
BOOL bDisableIfNoHndler);
Parametri
pTarget
Punta alla finestra cornice principale dell'applicazione e viene usata per il routing dei messaggi di aggiornamento.
bDisableIfNoHndler
Flag che indica se un controllo senza gestore di aggiornamento deve essere visualizzato automaticamente come disabilitato.
Osservazioni:
Se un controllo figlio non dispone di un gestore e bDisableIfNoHndler
è TRUE
, il controllo figlio verrà disabilitato.
Il framework chiama questa funzione membro per i controlli nelle barre delle finestre di dialogo o nelle barre degli strumenti come parte dell'elaborazione inattiva dell'applicazione.
CWnd::UpdateLayeredWindow
Aggiorna posizione, dimensioni, forma, contenuto e traslucidità di una finestra a livelli.
BOOL UpdateLayeredWindow(
CDC* pDCDst,
POINT* pptDst,
SIZE* psize,
CDC* pDCSrc,
POINT* pptSrc,
COLORREF crKey,
BLENDFUNCTION* pblend,
DWORD dwFlags);
Parametri
pDCDst
Puntatore a un contesto di dispositivo per lo schermo. Viene usato per la corrispondenza dei colori della tavolozza quando il contenuto della finestra viene aggiornato. Se pDCDst
è NULL
, verrà usata la tavolozza predefinita.
Se pDCSrc
è NULL
, pDCDst
deve essere NULL
.
pptDst
Puntatore a una POINT
struttura che specifica la nuova posizione dello schermo della finestra a più livelli. Se la posizione corrente non cambia, pptDst
può essere NULL
.
psize
Puntatore a una SIZE
struttura che specifica le nuove dimensioni della finestra a più livelli. Se le dimensioni della finestra non cambiano, psize
può essere NULL
.
Se pDCSrc
è NULL
, psize
deve essere NULL
.
pDCSrc
Puntatore a un controller di dominio per la superficie che definisce la finestra a più livelli. Se la forma e il contesto visivo della finestra non vengono modificati, pDCSrc
può essere NULL
.
pptSrc
Puntatore a una POINT
struttura che specifica la posizione del livello nel contesto del dispositivo.
Se pDCSrc
è NULL
, pptSrc
deve essere NULL
.
crKey
Puntatore a un COLORREF
valore che specifica la chiave del colore di trasparenza da utilizzare durante la composizione della finestra a più livelli. Tutti i pixel dipinti dalla finestra in questo colore saranno trasparenti. Per generare un COLORREF
oggetto , utilizzare la macro RGB.
pblend
Puntatore a una BLENDFUNCTION
struttura che specifica il valore di trasparenza da utilizzare durante la composizione della finestra a più livelli.
dwFlags
Specifica un'azione da eseguire. Questo parametro può essere uno o più dei valori seguenti. Per un elenco dei valori possibili, vedere UpdateLayeredWindow
.
Valore restituito
Viene restituito un valore diverso da zero se la funzione viene eseguita correttamente; in caso contrario viene restituito 0.
Osservazioni:
Questa funzione membro emula la funzionalità della funzione UpdateLayeredWindow
, come descritto in Windows SDK.
CWnd::UpdateWindow
Aggiorna l'area client inviando un WM_PAINT
messaggio se l'area di aggiornamento non è vuota.
void UpdateWindow();
Osservazioni:
La UpdateWindow
funzione membro invia direttamente un WM_PAINT
messaggio ignorando la coda dell'applicazione. Se l'area di aggiornamento è vuota, WM_PAINT
non viene inviata.
Esempio
// 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
Convalida l'area client all'interno del rettangolo specificato rimuovendo il rettangolo dall'area di aggiornamento della finestra.
void ValidateRect(LPCRECT lpRect);
Parametri
lpRect
Punta a un oggetto o RECT
a una CRect
struttura che contiene le coordinate client del rettangolo da rimuovere dall'area di aggiornamento. Se lpRect
è NULL
, l'intera finestra viene convalidata.
Osservazioni:
La BeginPaint
funzione membro convalida automaticamente l'intera area client. Non è necessario chiamare né la ValidateRect
ValidateRgn
funzione membro né se una parte dell'area di aggiornamento deve essere convalidata prima WM_PAINT
della successiva generazione.
Windows continua a generare WM_PAINT
messaggi fino a quando non viene convalidata l'area di aggiornamento corrente.
CWnd::ValidateRgn
Convalida l'area client all'interno dell'area specificata rimuovendo l'area dall'area di aggiornamento corrente della finestra.
void ValidateRgn(CRgn* pRgn);
Parametri
pRgn
Puntatore a un CRgn
oggetto che identifica un'area che definisce l'area da rimuovere dall'area di aggiornamento. Se questo parametro è NULL
, l'intera area client viene rimossa.
Osservazioni:
L'area specificata deve essere stata creata in precedenza da una funzione di area. Si presuppone che le coordinate dell'area siano coordinate client.
La BeginPaint
funzione membro convalida automaticamente l'intera area client. Non è necessario chiamare né la ValidateRect
ValidateRgn
funzione membro né se una parte dell'area di aggiornamento deve essere convalidata prima che venga generato il messaggio successivo WM_PAINT
.
CWnd::WindowFromPoint
Recupera la finestra contenente il punto specificato; point
deve specificare le coordinate dello schermo di un punto sullo schermo.
static CWnd* PASCAL WindowFromPoint(POINT point);
Parametri
point
Specifica un oggetto o POINT
una CPoint
struttura di dati che definisce il punto da controllare.
Valore restituito
Puntatore all'oggetto finestra in cui si trova il punto. È NULL
se non esiste alcuna finestra nel punto specificato. Il puntatore restituito può essere temporaneo e non deve essere archiviato per un uso successivo.
Osservazioni:
WindowFromPoint
non recupera una finestra nascosta o disabilitata, anche se il punto si trova all'interno della finestra. Un'applicazione deve usare la ChildWindowFromPoint
funzione membro per una ricerca nonstrittiva.
CWnd::WindowProc
Fornisce una routine di Windows (WindowProc
) per un CWnd
oggetto .
virtual LRESULT WindowProc(
UINT message,
WPARAM wParam,
LPARAM lParam);
Parametri
message
Specifica il messaggio di Windows da elaborare.
wParam
Fornisce informazioni aggiuntive utilizzate per l'elaborazione del messaggio. Il valore del parametro dipende dal messaggio.
lParam
Fornisce informazioni aggiuntive utilizzate per l'elaborazione del messaggio. Il valore del parametro dipende dal messaggio.
Valore restituito
Il valore restituito dipende dal messaggio.
Osservazioni:
Invia messaggi tramite la mappa dei messaggi della finestra.
CWnd::WinHelp
Chiamata eseguita per avviare l'applicazione WinHelp.
virtual void WinHelp(
DWORD_PTR dwData,
UINT nCmd = HELP_CONTEXT);
Parametri
dwData
Specifica dati aggiuntivi. Il valore utilizzato dipende dal valore del nCmd
parametro .
nCmd
Specifica il tipo di Guida richiesto. Per un elenco dei valori possibili e del modo in cui influiscono sul dwData
parametro, vedere la WinHelp
funzione di Windows in Windows SDK.
Osservazioni:
Per altre informazioni, vedere CWinApp::WinHelp
.
CWnd::RegisterTouchWindow
Registra o annulla la registrazione del supporto tocco di Windows.
BOOL RegisterTouchWindow(
BOOL bRegister = TRUE,
ULONG ulFlags = 0);
Parametri
bRegister
TRUE
indica registrare il supporto tocco di Windows; FALSE
altrimenti.
ulFlags
Set di flag di bit che specificano modifiche facoltative. Questo campo può contenere 0 o uno dei valori seguenti: TWF_FINETOUCH
, TWF_WANTPALM
.
Valore restituito
TRUE
se l'esito è positivo; in caso contrario, FALSE
.
Osservazioni:
CWnd::ResizeDynamicLayout
Chiamata eseguita dal framework quando le dimensioni della finestra cambiano per adattare il layout delle finestre figlio, se il layout dinamico è abilitato per la finestra.
virtual void ResizeDynamicLayout();
Osservazioni:
Vedi anche
CCmdTarget
Classe
Grafico della gerarchia
CFrameWnd
Classe
CView
Classe