Clase CWnd

Proporciona la funcionalidad básica de todas las clases de ventana en la biblioteca MFC (Microsoft Foundation Class).

Sintaxis

class CWnd : public CCmdTarget

Miembros

Constructores públicos

Nombre Descripción
CWnd::CWnd Construye un objeto CWnd.

Métodos públicos

Nombre Descripción
CWnd::accDoDefaultAction El marco llama a este método para realizar la acción predeterminada del objeto.
CWnd::accHitTest El marco llama a este método para recuperar el elemento u objeto secundario situado en un punto dado de la pantalla.
CWnd::accLocation El marco llama a este método para recuperar la ubicación actual del objeto especificado en la pantalla.
CWnd::accNavigate El marco llama a este método para ir a otro elemento de la interfaz de usuario dentro de un contenedor y, si es posible, recuperar el objeto.
CWnd::accSelect El marco llama a este método para modificar la selección o desplazar el foco de teclado del objeto especificado.
CWnd::AnimateWindow Anima el objeto de ventana asociado.
CWnd::ArrangeIconicWindows Organiza todas las ventanas secundarias (iconos) minimizadas.
CWnd::Attach Asocia un identificador de Windows a un objeto CWnd.
CWnd::BeginModalState Llame a esta función miembro para convertir una ventana marco en modal.
CWnd::BeginPaint Prepara CWnd para pintar.
CWnd::BindDefaultProperty Enlaza la propiedad enlazada simple predeterminada del objeto que llama, tal y como se indica en la biblioteca de tipos, a un cursor asociado con un control de origen de datos.
CWnd::BindProperty Enlaza una propiedad enlazada del cursor en un control enlazado a datos a un control de origen de datos, y registra dicha relación con el administrador de enlaces de MFC.
CWnd::BringWindowToTop Lleva CWnd al principio de una pila de ventanas superpuestas.
CWnd::CalcWindowRect Se llama para calcular el rectángulo de la ventana a partir del rectángulo de cliente.
CWnd::CancelToolTips Deshabilita el control de información sobre herramientas.
CWnd::CenterWindow Centra una ventana con respecto a su elemento primario.
CWnd::ChangeClipboardChain Quita CWnd de la cadena de visores del Portapapeles.
CWnd::CheckDlgButton Pone o quita una marca de verificación al lado de un control de botón.
CWnd::CheckRadioButton Selecciona el botón de radio especificado y quita la marca de verificación de los demás botones de radio en el grupo de botones especificado.
CWnd::ChildWindowFromPoint Determina cuál de las ventanas secundarias (si las hay) contiene el punto especificado.
CWnd::ClientToScreen Convierte a las coordenadas de cliente de un punto o rectángulo determinado en pantalla en las coordenadas de pantalla.
CWnd::CloseWindow Minimiza la ventana.
CWnd::ContinueModal Continúa el estado modal de una ventana.
CWnd::Create Crea e inicializa la ventana secundaria asociada con el objeto CWnd.
CWnd::CreateAccessibleProxy Crea a un proxy de Active Accessibility para el objeto especificado.
CWnd::CreateCaret Crea una nueva forma para el símbolo de inserción y se hace con la propiedad de ese símbolo de inserción.
CWnd::CreateControl Crea un control ActiveX que se va a representar en un programa MFC con un objeto CWnd.
CWnd::CreateEx Crea una ventana de Windows superpuesta, emergente o secundaria y la asocia con un objeto CWnd.
CWnd::CreateGrayCaret Crea un bloque de color gris para el símbolo de inserción y se hace con la propiedad de ese símbolo de inserción.
CWnd::CreateSolidCaret Crea un bloque sólido para el símbolo de inserción y se hace con la propiedad de ese símbolo de inserción.
CWnd::DeleteTempMap Clase llamada automáticamente por el controlador de tiempo de inactividad CWinApp que elimina los objetos CWnd temporales creados por FromHandle.
CWnd::DestroyWindow Destruye la ventana de Windows asociada.
CWnd::Detach Desasocia un identificador de Windows de un objeto CWnd y devuelve el identificador.
CWnd::DlgDirList Rellena un cuadro de lista con una lista de archivos o directorios.
CWnd::DlgDirListComboBox Rellena el cuadro de lista de un cuadro combinado con una lista de archivos o directorios.
CWnd::DlgDirSelect Recupera la selección actual de un cuadro de lista.
CWnd::DlgDirSelectComboBox Recupera la selección actual del cuadro de lista de un cuadro combinado.
CWnd::DragAcceptFiles Indica que la ventana aceptará archivos arrastrados.
CWnd::DragDetect Captura el mouse y realiza un seguimiento de su movimiento hasta que el usuario suelta el botón primario, presiona la tecla ESC o mueve el mouse fuera del rectángulo de arrastre alrededor del punto especificado.
CWnd::DrawAnimatedRects Dibuja un rectángulo de trama de alambres y lo anima para señalar un icono abierto o una ventana minimizada o maximizada.
CWnd::DrawCaption Dibuja una leyenda.
CWnd::DrawMenuBar Vuelve a dibujar la barra de menús.
CWnd::EnableActiveAccessibility Habilita las funciones de Active Accessibility definidas por el usuario.
CWnd::EnableDynamicLayout Permite que la posición y el tamaño de las ventanas secundarias se ajusten dinámicamente cuando el usuario cambie el tamaño de la ventana.
CWnd::EnableD2DSupport Habilita o deshabilita la compatibilidad de D2D de ventana. Llame a este método antes de que se inicialice la ventana principal.
CWnd::EnableScrollBar Habilita o deshabilita una o ambas flechas de una barra de desplazamiento.
CWnd::EnableScrollBarCtrl Habilita o deshabilita un control de barra de desplazamiento del mismo nivel.
CWnd::EnableToolTips Habilita el control de información sobre herramientas.
CWnd::EnableTrackingToolTips Habilita el control de información sobre herramientas en el modo de seguimiento.
CWnd::EnableWindow Habilita o deshabilita la entrada de mouse y de teclado.
CWnd::EndModalLoop Finaliza el estado modal de una ventana.
CWnd::EndModalState Llame a esta función miembro para cambiar una ventana marco de modal a no modal.
CWnd::EndPaint Marca el final de la pintura.
CWnd::ExecuteDlgInit Inicia un recurso de cuadro de diálogo.
CWnd::FilterToolTipMessage Recupera el título o el texto asociado a un control en un cuadro de diálogo.
CWnd::FindWindow Devuelve el identificador de la ventana, que se reconoce por su nombre de ventana y su clase de ventana.
CWnd::FindWindowEx Devuelve el identificador de la ventana, que se reconoce por su nombre de ventana y su clase de ventana.
CWnd::FlashWindow Hace que la ventana parpadee una vez.
CWnd::FlashWindowEx Hace que la ventana parpadee con una funcionalidad adicional.
CWnd::FromHandle Devuelve un puntero a un objeto CWnd cuando se especifica un identificador a una ventana. Si un objeto CWnd no está asociado al identificador, se creará y asociará un objeto CWnd temporal.
CWnd::FromHandlePermanent Devuelve un puntero a un objeto CWnd cuando se especifica un identificador a una ventana.
CWnd::get_accChild El marco llama a este método para recuperar la dirección de una interfaz IDispatch del elemento secundario especificado.
CWnd::get_accChildCount El marco llama a este método para recuperar el número de elementos secundarios que pertenecen a este objeto.
CWnd::get_accDefaultAction El marco llama a este método para recuperar una cadena que describe la acción predeterminada del objeto.
CWnd::get_accDescription El marco llama a este método para recuperar una cadena que describe la apariencia visual del objeto especificado.
CWnd::get_accFocus El marco llama a este método para recuperar el objeto que tiene el foco de teclado.
CWnd::get_accHelp El marco llama a este método para recuperar la cadena de propiedad Help de un objeto.
CWnd::get_accHelpTopic El marco llama a este método para recuperar la ruta de acceso completa del archivo WinHelp asociado al objeto especificado y el identificador del tema correspondiente dentro de ese archivo.
CWnd::get_accKeyboardShortcut El marco llama a este método para recuperar la tecla de método abreviado o la tecla de acceso del objeto especificado.
CWnd::get_accName El marco llama a este método para recuperar el nombre del objeto especificado.
CWnd::get_accParent El marco llama a este método para recuperar la interfaz IDispatch del elemento principal del objeto.
CWnd::get_accRole El marco llama a este método para recuperar información que describe el rol del objeto especificado.
CWnd::get_accSelection El marco llama a este método para recuperar el elemento secundario seleccionado de este objeto.
CWnd::get_accState El marco llama a este método para recuperar el estado actual del objeto especificado.
CWnd::get_accValue El marco llama a este método para recuperar el valor del objeto especificado.
CWnd::GetActiveWindow Recupera la ventana activa.
CWnd::GetAncestor Recupera el objeto de ventana antecesor de la ventana especificada.
CWnd::GetCapture Recupera el objeto CWnd que tiene la captura del mouse.
CWnd::GetCaretPos Recupera las coordenadas de cliente de la posición actual del cursor de inserción.
CWnd::GetCheckedRadioButton Devuelve el identificador del botón de radio actualmente activado en un grupo de botones.
CWnd::GetClientRect Obtiene las dimensiones del área cliente CWnd.
CWnd::GetClipboardOwner Recupera un puntero al propietario actual del Portapapeles.
CWnd::GetClipboardViewer Recupera un puntero a la primera ventana de la cadena de visores del Portapapeles.
CWnd::GetControlUnknown Recupera un puntero a un control ActiveX desconocido.
CWnd::GetDC Recupera un contexto de presentación del área cliente.
CWnd::GetDCEx Recupera un contexto de presentación del área cliente y permite recortar mientras se dibuja.
CWnd::GetDCRenderTarget Recupera el destino de representación (DC) del contexto de dispositivo de la ventana CWnd.
CWnd::GetDescendantWindow Encuentra todas las ventanas descendientes y devuelve aquella con el identificador especificado.
CWnd::GetDesktopWindow Recupera la ventana de escritorio de Windows.
CWnd::GetDlgCtrlID Si el objeto CWnd es una ventana secundaria, la llamada a esta función devuelve su valor de identificador correspondiente.
CWnd::GetDlgItem Recupera el control con el identificador especificado del cuadro de diálogo especificado.
CWnd::GetDlgItemInt Convierte el texto de un control en el cuadro de diálogo determinado en un valor entero.
CWnd::GetDlgItemText Recupera la leyenda o el texto asociado a un control.
CWnd::GetDSCCursor Recupera un puntero al cursor subyacente que se define mediante las propiedades DataSource, UserName, Password y SQL de un control de origen de datos.
CWnd::GetDynamicLayout Recupera un puntero al objeto del administrador de diseño dinámico.
CWnd::GetExStyle Devuelve el estilo extendido de ventana.
CWnd::GetFocus Recupera el objeto CWnd que tiene el foco de entrada actualmente.
CWnd::GetFont Recupera la fuente actual.
CWnd::GetForegroundWindow Devuelve un puntero a la ventana de primer plano (la ventana de nivel superior con la que el usuario está trabajando actualmente).
CWnd::GetIcon Recupera el identificador de un icono.
CWnd::GetLastActivePopup Determina cuál fue la ventana emergente propiedad de CWnd activa más recientemente.
CWnd::GetLayeredWindowAttributes Recupera la clave de color de transparencia y opacidad de una ventana superpuesta.
CWnd::GetMenu Recupera un puntero al menú especificado.
CWnd::GetNextDlgGroupItem Busca el control siguiente (o anterior) dentro de un grupo de controles.
CWnd::GetNextDlgTabItem Recupera el primer control con el estilo WS_TABSTOP que sigue (o precede) al control especificado.
CWnd::GetNextWindow Devuelve la ventana siguiente (o anterior) en la lista del Administrador de ventanas.
CWnd::GetOleControlSite Recupera el sitio personalizado del control ActiveX especificado.
CWnd::GetOpenClipboardWindow Recupera un puntero a la ventana que tiene actualmente el Portapapeles abierto.
CWnd::GetOwner Recupera un puntero al propietario de un objeto CWnd.
CWnd::GetParent Recupera la ventana primaria de CWnd (si existe).
CWnd::GetParentFrame Recupera la ventana marco primaria del objeto CWnd.
CWnd::GetParentOwner Devuelve un puntero a la ventana primaria de una ventana secundaria.
CWnd::GetProperty Recupera una propiedad de control ActiveX.
CWnd::GetRenderTarget Obtiene un destino de presentación asociado a esta ventana.
CWnd::GetSafeHwnd Devuelve m_hWnd, o NULL si el puntero de this es NULL.
CWnd::GetSafeOwner Recupera el propietario seguro de la ventana especificada.
CWnd::GetScrollBarCtrl Devuelve un control de barra de desplazamiento del mismo nivel.
CWnd::GetScrollBarInfo Recupera información sobre la barra de desplazamiento especificada.
CWnd::GetScrollInfo Recupera la información que la estructura SCROLLINFO mantiene sobre una barra de desplazamiento.
CWnd::GetScrollLimit Recupera el límite de la barra de desplazamiento.
CWnd::GetScrollPos Recupera la posición actual de un cuadro de desplazamiento.
CWnd::GetScrollRange Copia las posiciones mínima y máxima actuales de la barra de desplazamiento especificada.
CWnd::GetStyle Devuelve el estilo de ventana actual.
CWnd::GetSystemMenu Permite a la aplicación tener acceso al menú de sistema para hacer copias y modificaciones.
CWnd::GetTitleBarInfo Recupera información sobre la barra de título especificada.
CWnd::GetTopLevelFrame Recupera la ventana marco de nivel superior de la ventana.
CWnd::GetTopLevelOwner Recupera la ventana de nivel superior.
CWnd::GetTopLevelParent Recupera el elemento principal de nivel superior de la ventana.
CWnd::GetTopWindow Devuelve la primera ventana secundaria que pertenece al objeto CWnd.
CWnd::GetUpdateRect Recupera las coordenadas del rectángulo más pequeño que contiene toda la región de actualización de CWnd.
CWnd::GetUpdateRgn Recupera la región de actualización de CWnd.
CWnd::GetWindow Devuelve la ventana con la relación especificada con esta ventana.
CWnd::GetWindowContextHelpId Recupera el identificador de contexto de Ayuda.
CWnd::GetWindowDC Recupera el contexto de presentación de toda la ventana, como la barra de título, los menús y las barras de desplazamiento.
CWnd::GetWindowedChildCount Devuelve al número de ventanas secundarias asociadas.
CWnd::GetWindowInfo Devuelve información sobre la ventana.
CWnd::GetWindowlessChildCount Devuelve el número de ventanas secundarias asociadas sin ventanas.
CWnd::GetWindowPlacement Recupera el estado de visualización y las posiciones normal (restaurada), minimizada y maximizada de una ventana.
CWnd::GetWindowRect Obtiene las coordenadas de pantalla de CWnd.
CWnd::GetWindowRgn Recupera una copia de la región de ventana de una ventana.
CWnd::GetWindowText Devuelve el título de texto o de leyenda de la ventana (si lo hay).
CWnd::GetWindowTextLength Devuelve la longitud del título de texto o de leyenda de la ventana.
CWnd::HideCaret Quita el cursor de inserción de la presentación en pantalla para ocultarlo.
CWnd::HiliteMenuItem Resalta un elemento de menú de nivel superior (barra de menús) o quita el resaltado de este.
CWnd::HtmlHelp Se llama para iniciar la aplicación HTMLHelp.
CWnd::Invalidate Invalida toda el área cliente.
CWnd::InvalidateRect Invalida el área cliente dentro del rectángulo especificado agregando dicho rectángulo a la región de actualización actual.
CWnd::InvalidateRgn Invalida el área cliente dentro de la región especificada agregando dicha región a la región de actualización actual.
CWnd::InvokeHelper Invoca un método o una propiedad de control ActiveX.
CWnd::IsChild Indica si CWnd es una ventana secundaria u otro descendiente directo de la ventana especificada.
CWnd::IsD2DSupportEnabled Determina si la compatibilidad con D2D está habilitada.
CWnd::IsDialogMessage Determina si el mensaje en cuestión está pensado para el cuadro de diálogo no modal y, si es así, lo procesa.
CWnd::IsDlgButtonChecked Determina si un control de botón está seleccionado.
CWnd::IsDynamicLayoutEnabled Determina si el diseño dinámico está habilitado en esta ventana. Si el diseño dinámico está habilitado, la posición y el tamaño de las ventanas secundarias pueden cambiar cuando el usuario cambie el tamaño de la ventana primaria.
CWnd::IsIconic Determina si CWnd está minimizado (icono).
CWnd::IsTouchWindow Especifica si CWnd es compatible con la entrada táctil.
CWnd::IsWindowEnabled Determina si la ventana está habilitada para la entrada de mouse y de teclado.
CWnd::IsWindowVisible Determina si la ventana está visible.
CWnd::IsZoomed Determina si CWnd está maximizado.
CWnd::KillTimer Elimina un cronómetro del sistema.
CWnd::LockWindowUpdate No permite o vuelve a permitir que se dibuje en la ventana especificada.
CWnd::MapWindowPoints Convierte (asigna) un conjunto de puntos del espacio de coordenadas de CWnd al espacio de coordenadas de otra ventana.
CWnd::MessageBox Crea y muestra una ventana que contiene un mensaje y una leyenda proporcionados por la aplicación.
CWnd::ModifyStyle Modifica el estilo de ventana actual.
CWnd::ModifyStyleEx Modifica el estilo extendido de ventana.
CWnd::MoveWindow Cambia la posición y las dimensiones de CWnd.
CWnd::NotifyWinEvent Indica al sistema que se ha producido un evento predefinido.
CWnd::OnAmbientProperty Implemente valores de propiedad ambiente.
CWnd::OnDrawIconicThumbnailOrLivePreview El marco llama a este método cuando necesita obtener un mapa de bits para mostrarlo en la miniatura de pestañas de Windows 7 o en el cliente para ojear la aplicación.
CWnd::OnHelp Controla la Ayuda de F1 de la aplicación (usando el contexto actual).
CWnd::OnHelpFinder Controla los comandos ID_HELP_FINDER y ID_DEFAULT_HELP.
CWnd::OnHelpIndex Controla el comando ID_HELP_INDEX y proporciona un tema de Ayuda predeterminado.
CWnd::OnHelpUsing Controla el comando ID_HELP_USING.
CWnd::OnToolHitTest Determina si un punto está en el rectángulo delimitador de la herramienta especificada y recupera información sobre dicha herramienta.
CWnd::OpenClipboard Abre el Portapapeles. Otras aplicaciones no podrán modificar el Portapapeles hasta que se llame a la función CloseClipboard de Windows.
CWnd::PaintWindowlessControls Dibuja controles sin ventanas en el contenedor del control.
CWnd::PostMessage Pone un mensaje en la cola de la aplicación y vuelve sin esperar a que la ventana procese el mensaje.
CWnd::PreCreateWindow Se llama antes de crear la ventana de Windows asociada a este objeto CWnd.
CWnd::PreSubclassWindow Permite que ocurran otras asignaciones como subclase necesarias antes de llamar a SubclassWindow.
CWnd::PreTranslateMessage Utilizado por CWinApp para filtrar los mensajes de ventana antes de enviarlos a las funciones de Windows TranslateMessage y DispatchMessage.
CWnd::Print Dibuja la ventana actual en el contexto de dispositivo especificado.
CWnd::PrintClient Dibuja cualquier ventana en el contexto de dispositivo especificado (normalmente, un contexto de dispositivo de impresora).
CWnd::PrintWindow Copia una ventana visual en el contexto de dispositivo especificado (normalmente, un DC de impresora).
CWnd::RedrawWindow Actualiza el rectángulo o la región especificados en el área cliente.
CWnd::RegisterTouchWindow Registre la compatibilidad con entrada táctil de Windows de la ventana o anule ese registro.
CWnd::ReleaseDC Libera los contextos de dispositivo de cliente y de ventana, de forma que están disponibles para que los usen otras aplicaciones.
CWnd::RepositionBars Vuelve a colocar las barras de control en el área cliente.
CWnd::RunModalLoop Recupera, convierte o envía mensajes relativos a una ventana que está en estado modal.
CWnd::ScreenToClient Convierte las coordenadas de pantalla de un punto o rectángulo determinado en pantalla en las coordenadas de pantalla.
CWnd::ScrollWindow Desplaza el contenido del área cliente.
CWnd::ScrollWindowEx Desplaza el contenido del área cliente. Similar a ScrollWindow, con más características.
CWnd::SendChildNotifyLastMsg Proporciona un mensaje de notificación a una ventana secundaria, desde la ventana primaria, de forma que la ventana secundaria pueda controlar una tarea.
CWnd::SendDlgItemMessage Envía un mensaje al control especificado.
CWnd::SendMessage Envía un mensaje al objeto CWnd y no vuelve hasta que el mensaje se ha procesado.
CWnd::SendMessageToDescendants Envía un mensaje a todas las ventanas descendientes de la ventana.
CWnd::SendNotifyMessage Envía el mensaje especificado a la ventana y vuelve tan pronto como sea posible, dependiendo de si el subproceso de llamada creó la ventana.
CWnd::SetActiveWindow Activa la ventana.
CWnd::SetCapture Hace que todas las entradas de mouse siguientes se envíen a CWnd.
CWnd::SetCaretPos Mueve el cursor de inserción a la posición especificada.
CWnd::SetClipboardViewer Agrega CWnd a la cadena de ventanas a las que se notifica cada vez que el contenido del Portapapeles cambia.
CWnd::SetDlgCtrlID Establece el identificador de ventana o de control de la ventana (que puede ser cualquier ventana secundaria, no solo un control en un cuadro de diálogo).
CWnd::SetDlgItemInt Establece el texto de un control en la cadena que representa un valor entero.
CWnd::SetDlgItemText Establece la leyenda o el texto de un control en el cuadro de diálogo especificado.
CWnd::SetFocus Reclama el foco de entrada.
CWnd::SetFont Establece la fuente actual.
CWnd::SetForegroundWindow Pone en primer plano el subproceso que creó la ventana y activa la ventana.
CWnd::SetIcon Establece el identificador en un icono específico.
CWnd::SetLayeredWindowAttributes Establece la clave de color de transparencia y opacidad de una ventana superpuesta.
CWnd::SetMenu Establece el menú en el menú especificado.
CWnd::SetOwner Cambia el propietario de un objeto CWnd.
CWnd::SetParent Cambia la ventana primaria.
CWnd::SetProperty Establece una propiedad de control ActiveX.
CWnd::SetRedraw Permite o impide volver a dibujar los cambios en CWnd.
CWnd::SetScrollInfo Establece la información acerca de la barra de desplazamiento.
CWnd::SetScrollPos Establece la posición actual de un cuadro de desplazamiento y, si se especifica, vuelve a dibujar la barra de desplazamiento para reflejar la nueva posición.
CWnd::SetScrollRange Establece los valores de posición mínimo y máximo de la barra de desplazamiento especificada.
CWnd::SetTimer Instala un cronómetro del sistema que envía un mensaje WM_TIMER al activarse.
CWnd::SetWindowContextHelpId Establece el identificador de contexto de Ayuda.
CWnd::SetWindowPlacement Establece el estado de visualización y las posiciones normal (restaurada), minimizada y maximizada de una ventana.
CWnd::SetWindowPos Cambia el tamaño, la posición y el orden de las ventanas secundarias, emergentes y de nivel superior.
CWnd::SetWindowRgn Establece la región de una ventana.
CWnd::SetWindowText Establece el título de texto o de leyenda de la ventana (si lo hay) en el texto especificado.
CWnd::ShowCaret Muestra el cursor de intersección en pantalla en la posición del cursor de intersección. Ya en pantalla, el cursor de intersección comienza a parpadear automáticamente.
CWnd::ShowOwnedPopups Muestra u oculta todas las ventanas emergentes propiedad de la ventana.
CWnd::ShowScrollBar Muestra u oculta una barra de desplazamiento.
CWnd::ShowWindow Muestra u oculta la ventana.
CWnd::SubclassDlgItem Asocia un control de Windows a un objeto CWnd y le hace enrutar mensajes a través del mapa de mensajes de CWnd.
CWnd::SubclassWindow Asocia una ventana a un objeto CWnd y le hace enrutar mensajes a través del mapa de mensajes de CWnd.
CWnd::UnlockWindowUpdate Desbloquea una ventana que se bloqueó con CWnd::LockWindowUpdate.
CWnd::UnsubclassWindow Desasocia una ventana de un objeto CWnd.
CWnd::UpdateData Inicializa o recupera datos de un cuadro de diálogo.
CWnd::UpdateDialogControls Llame a este método para actualizar el estado de los botones del cuadro de diálogo y de otros controles.
CWnd::UpdateLayeredWindow Actualiza la posición, el tamaño, la forma, el contenido y la transparencia de una ventana superpuesta.
CWnd::UpdateWindow Actualiza el área de cliente.
CWnd::ValidateRect Valida el área cliente dentro del rectángulo especificado quitando dicho rectángulo de la región de actualización actual.
CWnd::ValidateRgn Valida el área cliente dentro de la región especificada quitando dicha región de la región de actualización actual.
CWnd::WindowFromPoint Identifica la ventana que contiene el punto especificado.
CWnd::WinHelp Se llama para iniciar la aplicación WinHelp.

Métodos protegidos

Nombre Descripción
CWnd::Default Llama al procedimiento de ventana predeterminado, que proporciona el procesamiento predeterminado de los mensajes de ventana que una aplicación no procesa.
CWnd::DefWindowProc Llama al procedimiento de ventana predeterminado, que proporciona el procesamiento predeterminado de los mensajes de ventana que una aplicación no procesa.
CWnd::DoDataExchange Sirve para intercambiar y validar datos de cuadros de diálogo. Es llamado por el método UpdateData.
CWnd::GetCurrentMessage Devuelve un puntero al mensaje que esta ventana está procesando actualmente. Solo es necesario llamarlo cuando se está en una función miembro de controlador de mensajes MessageOn.
CWnd::InitDynamicLayout El marco llama a este método para inicializar el diseño dinámico de una ventana.
CWnd::LoadDynamicLayoutResource Carga información de diseño dinámico desde el archivo de recursos.
CWnd::OnActivate Se llama cuando CWnd se está activando o desactivando.
CWnd::OnActivateApp Se llama cuando la aplicación está a punto de activarse o desactivarse.
CWnd::OnAppCommand Se llama cuando el usuario genera un evento de comando de la aplicación.
CWnd::OnAskCbFormatName Una aplicación de visor del Portapapeles llama a este método cuando un propietario del Portapapeles va a mostrar el contenido del Portapapeles.
CWnd::OnCancelMode Se llama para permitir que CWnd cancele cualquier modo interno, como la captura del mouse.
CWnd::OnCaptureChanged Envía un mensaje a la ventana que está perdiendo la captura del mouse.
CWnd::OnChangeCbChain Notifica una ventana especificada se está quitando de la cadena.
CWnd::OnChangeUIState Se llama cuando es necesario cambiar el estado de la interfaz de usuario.
CWnd::OnChar Se llama cuando una pulsación de tecla se convierte en un carácter que no es del sistema.
CWnd::OnCharToItem Lo llama un cuadro de lista secundario con el estilo LBS_WANTKEYBOARDINPUT como respuesta a un mensaje WM_CHAR.
CWnd::OnChildActivate Se llama en relación con ventanas secundarias de interfaz múltiples documentos (MDI) cada vez que el tamaño o la posición de CWnd cambia o CWnd se activa.
CWnd::OnChildNotify Una ventana primaria llama a este método para que un control notificado tenga la oportunidad de responder a la notificación de control.
CWnd::OnClipboardUpdate Se llama cuando el contenido del Portapapeles cambia.
CWnd::OnClose Se llama como una señal de que CWnd debe cerrarse.
CWnd::OnColorizationColorChanged Se llama cuando cambia la directiva de representación en el área no cliente.
CWnd::OnCommand Se llama cuando el usuario selecciona un comando.
CWnd::OnCompacting Se llama cuando Windows detecta que la memoria del sistema es baja.
CWnd::OnCompareItem Se llama para averiguar la posición relativa de un nuevo elemento en un cuadro de lista o un cuadro combinado secundario ordenado dibujado por el propietario.
CWnd::OnCompositionChanged Se llama en relación con todas las ventanas de nivel superior cuando se habilita o deshabilita la composición del Administrador de ventanas de escritorio (DWM).
CWnd::OnContextMenu Se llama cuando el usuario hace clic con el botón secundario del mouse en la ventana.
CWnd::OnCopyData Copia datos de una aplicación a otra.
CWnd::OnCreate Se llama como parte de la creación de una ventana.
CWnd::OnCtlColor Se llama si CWnd es el elemento primario de un control cuando el control se va a dibujar.
CWnd::OnDeadChar Se llama cuando una pulsación de tecla se convierte en un carácter inactivo que no es de sistema (por ejemplo, caracteres acentuados).
CWnd::OnDeleteItem Se llama cuando se destruye un cuadro de lista o un cuadro combinado secundario dibujado por el propietario, o cuando se quitan elementos del control.
CWnd::OnDestroy Se llama cuando CWnd se está destruyendo.
CWnd::OnDestroyClipboard Se llama cuando el Portapapeles se vacía al llamar a la función EmptyClipboard de Windows.
CWnd::OnDeviceChange Notifica a un controlador de dispositivo o aplicación de un cambio en la configuración de hardware de un dispositivo o del equipo.
CWnd::OnDevModeChange Se llama en relación con todas las ventanas de nivel superior cuando el usuario cambia la configuración de modo de dispositivo.
CWnd::OnDrawClipboard Se llama cuando el contenido del Portapapeles cambia.
CWnd::OnDrawItem Se llama cuando es necesario dibujar un aspecto visual de un control de botón, un control de cuadro combinado, un control de cuadro de lista o un menú secundario dibujado por el propietario.
CWnd::OnDropFiles Se llama cuando el usuario suelta el botón primario del mouse en una ventana que se ha registrado como destinataria de los archivos colocados.
CWnd::OnEnable Se llama cuando CWnd se habilita o deshabilita.
CWnd::OnEndSession Se llama cuando una sesión finaliza.
CWnd::OnEnterIdle Se llama para informar al procedimiento de ventana principal de una aplicación de que un menú o un cuadro de diálogo modal está entrando en estado inactivo.
CWnd::OnEnterMenuLoop Se llama cuando se ha entrado en un bucle modal de menú.
CWnd::OnEnterSizeMove Se llama después de que la ventana afectada entre en un bucle modal de movimiento o de tamaño.
CWnd::OnEraseBkgnd Se llama cuando es necesario borrar el fondo de la ventana.
CWnd::OnExitMenuLoop Se llama cuando se ha salido de un bucle modal de menú.
CWnd::OnExitSizeMove Se llama después de que la ventana afectada salga de un bucle modal de movimiento o de tamaño.
CWnd::OnFontChange Se llama cuando el grupo de recursos de fuente cambia.
CWnd::OnGetDlgCode Se llama en relación con un control para que el control pueda procesar por sí mismo las entradas de tecla de dirección y de tecla TAB.
CWnd::OnGetMinMaxInfo Se llama siempre que Windows necesita conocer la posición o dimensiones maximizadas, o bien el tamaño de seguimiento mínimo o máximo.
CWnd::OnHelpInfo El marco llama a este método cuando el usuario presiona la tecla F1.
CWnd::OnHotKey Se llama cuando el usuario presiona una tecla de acceso rápido de todo el sistema.
CWnd::OnHScroll Se llama cuando el usuario hace clic en la barra de desplazamiento horizontal de CWnd.
CWnd::OnHScrollClipboard Se llama cuando un propietario de Portapapeles tiene que desplazarse por la imagen del Portapapeles, invalidar la sección correspondiente y actualizar los valores de la barra de desplazamiento.
CWnd::OnIconEraseBkgnd Se llama cuando CWnd está minimizado (icono) y el fondo del icono se tiene que rellenar antes de pintar el icono.
CWnd::OnInitMenu Se llama cuando un menú está a punto de activarse.
CWnd::OnInitMenuPopup Se llama cuando un menú emergente está a punto de activarse.
CWnd::OnInputDeviceChange Se llama cuando un dispositivo de E/S se agrega al sistema o se quita de él.
CWnd::OnInputLangChange Se llama después de que el idioma de entrada de una aplicación cambie.
CWnd::OnInputLangChangeRequest Se llama cuando el usuario elige un nuevo idioma de entrada.
CWnd::OnKeyDown Se llama cuando se presiona una tecla que no es del sistema.
CWnd::OnKeyUp Se llama cuando se suelta una tecla que no es del sistema.
CWnd::OnKillFocus Se llama inmediatamente antes de que CWnd pierda el foco de entrada.
CWnd::OnLButtonDblClk Se llama cuando el usuario hace doble clic con el botón primario del mouse.
CWnd::OnLButtonDown Se llama cuando el usuario presiona el botón primario del mouse.
CWnd::OnLButtonUp Se llama cuando el usuario suelta el botón primario del mouse.
CWnd::OnMButtonDblClk Se llama cuando el usuario hace doble clic con el botón central del mouse.
CWnd::OnMButtonDown Se llama cuando el usuario presiona el botón central del mouse.
CWnd::OnMButtonUp Se llama cuando el usuario suelta el botón central del mouse.
CWnd::OnMDIActivate Se llama lugar cuando una ventana secundaria MDI se activa o desactiva.
CWnd::OnMeasureItem Se llama en relación con un cuadro combinado, un cuadro de lista o un elemento de menú secundario dibujado por el propietario cuando el control se crea. CWnd informa a Windows de las dimensiones del control.
CWnd::OnMenuChar Se llama cuando el usuario presiona un carácter de acceso de menú que no coincide con ninguna de las teclas de acceso predefinidas en el menú actual.
CWnd::OnMenuDrag Se llama cuando el usuario empieza a arrastrar un elemento de menú.
CWnd::OnMenuGetObject Se llama cuando el cursor del mouse entra en un elemento de menú o se mueve desde el centro del elemento hasta el principio o el final del elemento.
CWnd::OnMenuRButtonUp Se llama cuando el usuario suelta el botón secundario del mouse mientras el cursor se encuentra en un elemento de menú.
CWnd::OnMenuSelect Se llama cuando el usuario selecciona un elemento de menú.
CWnd::OnMouseActivate Se llama cuando el cursor está en una ventana inactiva y el usuario presiona un botón del mouse.
CWnd::OnMouseHover Se llama cuando el cursor se sitúa sobre el área cliente de la ventana durante el período de tiempo especificado en una llamada anterior a TrackMouseEvent.
CWnd::OnMouseHWheel Se llama cuando la rueda de desplazamiento horizontal del mouse está inclinada o girada.
CWnd::OnMouseLeave Se llama cuando el cursor abandona el área cliente de la ventana especificada en una llamada anterior a TrackMouseEvent.
CWnd::OnMouseMove Se llama cuando el cursor del mouse se mueve.
CWnd::OnMouseWheel Se llama cuando un usuario gira la rueda del mouse. Usa el control de mensajes de Windows NT 4.0.
CWnd::OnMove Se llama después de que la posición del objeto CWnd haya cambiado.
CWnd::OnMoving Indica que un usuario está moviendo un objeto CWnd.
CWnd::OnNcActivate Se llama cuando es necesario cambiar el área no cliente para indicar un estado activo o inactivo.
CWnd::OnNcCalcSize Se llama cuando hay que calcular el tamaño y la posición del área cliente.
CWnd::OnNcCreate Se llama antes de OnCreate cuando se está creando el área no cliente.
CWnd::OnNcDestroy Se llama cuando el área no cliente se está destruyendo.
CWnd::OnNcHitTest Windows llama a este método cada vez que el mouse se mueve si CWnd contiene el cursor o ha capturado la entrada del mouse con SetCapture.
CWnd::OnNcLButtonDblClk Se llama cuando el usuario hace doble clic en el botón primario del mouse mientras el cursor se encuentra dentro de un área no cliente de CWnd.
CWnd::OnNcLButtonDown Se llama cuando el usuario presiona el botón primario del mouse mientras el cursor se encuentra dentro de un área no cliente de CWnd.
CWnd::OnNcLButtonUp Se llama cuando el usuario suelta el botón primario del mouse mientras el cursor se encuentra dentro de un área no cliente de CWnd.
CWnd::OnNcMButtonDblClk Se llama cuando el usuario hace doble clic en el botón central del mouse mientras el cursor se encuentra dentro de un área no cliente de CWnd.
CWnd::OnNcMButtonDown Se llama cuando el usuario presiona el botón central del mouse mientras el cursor se encuentra dentro de un área no cliente de CWnd.
CWnd::OnNcMButtonUp Se llama cuando el usuario suelta el botón central del mouse mientras el cursor se encuentra dentro de un área no cliente de CWnd.
CWnd::OnNcMouseHover Se llama cuando el cursor se sitúa sobre el área no cliente de la ventana durante el período de tiempo especificado en una llamada anterior a TrackMouseEvent.
CWnd::OnNcMouseLeave El marco llama a esta función miembro cuando el cursor abandona el área no cliente de la ventana especificada en una llamada anterior a TrackMouseEvent.
CWnd::OnNcMouseMove Se llama cuando el cursor se mueve dentro de un área no cliente de CWnd.
CWnd::OnNcPaint Se llama cuando es necesario pintar el área no cliente.
CWnd::OnNcRButtonDblClk Se llama cuando el usuario hace doble clic en el botón secundario del mouse mientras el cursor se encuentra dentro de un área no cliente de CWnd.
CWnd::OnNcRButtonDown Se llama cuando el usuario presiona el botón secundario del mouse mientras el cursor se encuentra dentro de un área no cliente de CWnd.
CWnd::OnNcRButtonUp Se llama cuando el usuario suelta el botón secundario del mouse mientras el cursor se encuentra dentro de un área no cliente de CWnd.
CWnd::OnNcRenderingChanged Se llama cuando cambia la directiva de representación en el área no cliente.
CWnd::OnNcXButtonDblClk Se llama cuando el usuario hace doble clic en XBUTTON1 o XBUTTON2 mientras el cursor se encuentra en el área no cliente de una ventana.
CWnd::OnNcXButtonDown Se llama cuando el usuario presiona XBUTTON1 o XBUTTON2 del mouse mientras el cursor se encuentra en el área no cliente de una ventana.
CWnd::OnNcXButtonUp Se llama cuando el usuario suelta XBUTTON1 o XBUTTON2 del mouse mientras el cursor se encuentra en el área no cliente de una ventana.
CWnd::OnNextMenu Se llama cuando la tecla de dirección derecha o izquierda se usa para cambiar de la barra de menús al menú del sistema.
CWnd::OnNotify El marco llama a este método para informar a una ventana primaria de que se ha producido un evento en uno de sus controles o de que el control necesita información.
CWnd::OnNotifyFormat Se llama para averiguar si la ventana actual acepta estructuras ANSI o Unicode en el mensaje de notificación WM_NOTIFY.
CWnd::OnPaint Se llama para volver a dibujar una parte de la ventana.
CWnd::OnPaintClipboard Se llama cuando es necesario volver a pintar el área cliente del visor del Portapapeles.
CWnd::OnPaletteChanged Se llama para permitir que las ventanas que usan una paleta de colores realicen sus paletas lógicas y actualicen sus áreas cliente.
CWnd::OnPaletteIsChanging Informa a otras aplicaciones cuando una aplicación va a realizar su paleta lógica.
CWnd::OnParentNotify Se llama cuando se crea o se destruye una ventana secundaria, o cuando el usuario hace clic en un botón del mouse mientras el cursor está sobre la ventana secundaria.
CWnd::OnPowerBroadcast Se llama cuando se ocurre un evento de administración de energía.
CWnd::OnQueryDragIcon Se llama cuando un objeto CWnd minimizado (icono) está a punto de ser arrastrado por el usuario.
CWnd::OnQueryEndSession Se llama cuando el usuario decide finalizar la sesión de Windows.
CWnd::OnQueryNewPalette Informa a CWnd de que está a punto de recibir el foco de entrada.
CWnd::OnQueryOpen Se llama cuando el objeto CWnd es un icono y el usuario solicita que se abra.
CWnd::OnQueryUIState Se llama para recuperar el estado de la interfaz de usuario de una ventana.
CWnd::OnRawInput Se llama cuando la ventana actual obtiene una entrada sin procesar.
CWnd::OnRButtonDblClk Se llama cuando el usuario hace doble clic con el botón secundario del mouse.
CWnd::OnRButtonDown Se llama cuando el usuario presiona el botón secundario del mouse.
CWnd::OnRButtonUp Se llama cuando el usuario suelta el botón secundario del mouse.
CWnd::OnRenderAllFormats Se llama cuando la aplicación del propietario se está destruyendo y necesita representar todos los formatos.
CWnd::OnRenderFormat Se llama en relación con el propietario del Portapapeles cuando es necesario representar un formato determinado con representación aplazada.
CWnd::OnSessionChange Se llama para notificar a una aplicación de un cambio de estado de sesión.
CWnd::OnSetCursor Se llama si no se captura la entrada de mouse y el mouse provoca un movimiento de cursor dentro de una ventana.
CWnd::OnSetFocus Se llama después de que CWnd reciba el foco de entrada.
CWnd::OnSettingChange Se llama cuando la función SystemParametersInfo de Win32 cambia una configuración de todo el sistema.
CWnd::OnShowWindow Se llama cuando CWnd se oculta o se muestra.
CWnd::OnSize Se llama después de que el tamaño de CWnd haya cambiado.
CWnd::OnSizeClipboard Se llama cuando ha cambiado el tamaño del área cliente de la ventana del visor del Portapapeles.
CWnd::OnSizing Indica que el usuario está cambiando el tamaño del rectángulo.
CWnd::OnSpoolerStatus Se llama desde el Administrador de impresión cada vez que un trabajo se agrega a la cola del Administrador de impresión o se quita de ella.
CWnd::OnStyleChanged Indica que la función de Windows SetWindowLong ha cambiado uno o varios estilos de ventana.
CWnd::OnStyleChanging Indica que la función de Windows SetWindowLongva a cambiar uno o varios estilos de ventana.
CWnd::OnSysChar Se llama cuando una pulsación de tecla se convierte en un carácter de sistema.
CWnd::OnSysColorChange Se llama en relación con todas las ventanas de nivel superior cuando se realiza un cambio en la configuración de color del sistema.
CWnd::OnSysCommand Se llama cuando el usuario selecciona un comando en el menú de sistema, o cuando el usuario selecciona el botón para maximizar o minimizar.
CWnd::OnSysDeadChar Se llama cuando una pulsación de tecla se convierte en un carácter inactivo de sistema (por ejemplo, caracteres acentuados).
CWnd::OnSysKeyDown Se llama cuando el usuario mantiene presionada la tecla ALT y, luego, presiona otra tecla.
CWnd::OnSysKeyUp Se llama cuando el usuario suelta una tecla que se presionó mientras se presionaba la tecla ALT.
CWnd::OnTCard Se llama cuando el usuario hace clic en un botón que se puede modificar.
CWnd::OnTimeChange Se llama en relación con todas las ventanas de nivel superior después de cambiar la hora de sistema.
CWnd::OnTimer Se llama después de cada intervalo especificado en SetTimer.
CWnd::OnTouchInput Procese una única entrada de tecnología táctil de Windows.
CWnd::OnTouchInputs Procese entradas de tecnología táctil de Windows.
CWnd::OnUniChar Se llama cuando se presiona una tecla. Es decir, la ventana actual tiene el foco del teclado y la función TranslateMessage traduce un mensaje WM_KEYDOWN.
CWnd::OnUnInitMenuPopup Se llama cuando se destruye un menú desplegable o submenú.
CWnd::OnUpdateUIState Se llama para cambiar el estado de la interfaz de usuario de la ventana especificada y de todas sus ventanas secundarias.
CWnd::OnUserChanged Se llama cuando el usuario inicia o cierra sesión.
CWnd::OnVKeyToItem Un cuadro de lista propiedad de CWnd llama a esta función en respuesta a un mensaje WM_KEYDOWN.
CWnd::OnVScroll Se llama cuando el usuario hace clic en la barra de desplazamiento vertical de la ventana.
CWnd::OnVScrollClipboard Se llama cuando el propietario tiene que desplazarse por la imagen del Portapapeles, invalidar la sección correspondiente y actualizar los valores de la barra de desplazamiento.
CWnd::OnWindowPosChanged Se llama cuando el tamaño, la posición o el orden Z ha cambiado como resultado de una llamada a SetWindowPos o a otra función de administración de ventanas.
CWnd::OnWindowPosChanging Se llama cuando el tamaño, la posición o el orden Z va a cambiar como resultado de una llamada a SetWindowPos o a otra función de administración de ventanas.
CWnd::OnWinIniChange Se llama en relación con todas las ventanas de nivel superior después de que cambie el archivo de inicialización de Windows, WIN.INI.
CWnd::OnWndMsg Indica si se ha controlado un mensaje de ventana.
CWnd::OnXButtonDblClk Se llama cuando el usuario hace doble clic en XBUTTON1 o XBUTTON2 mientras el cursor se encuentra en el área cliente de una ventana.
CWnd::OnXButtonDown Se llama cuando el usuario presiona XBUTTON1 o XBUTTON2 mientras el cursor se encuentra en el área cliente de una ventana.
CWnd::OnXButtonUp Se llama cuando el usuario suelta XBUTTON1 o XBUTTON2 mientras el cursor se encuentra en el área cliente de una ventana.
CWnd::PostNcDestroy La función predeterminada OnNcDestroy llama a esta función virtual después de que se haya destruido la ventana.
CWnd::ReflectChildNotify Función del asistente que refleja un mensaje a su origen.
CWnd::ReflectLastMsg Refleja el último mensaje a la ventana secundaria.
CWnd::ResizeDynamicLayout El marco llama a este método cuando el tamaño de la ventana cambia para ajustar el diseño de las ventanas secundarias, si el diseño dinámico está habilitado en esa ventana.
CWnd::WindowProc Proporciona un procedimiento de ventana para un objeto CWnd. El valor predeterminado envía mensajes a través del mapa de mensajes.

Operadores públicos

Nombre Descripción
CWnd::operator HWND Llame para obtener un identificador de una ventana.
CWnd::operator != Determina si una ventana no es la misma que la ventana cuyo identificador es m_hWnd.
CWnd::operator == Determina si una ventana es la misma que la ventana cuyo identificador es m_hWnd.

Miembros de datos públicos

Nombre Descripción
CWnd::m_hWnd Indica el HWND asociado a este CWnd.

Comentarios

Un objeto CWnd es distinto de una ventana de Windows, pero los dos están estrechamente vinculados. El constructor y destructor CWnd crea o destruye un objeto CWnd. La ventana de Windows, por su parte, es una estructura de datos interna de Windows que se crea con una función miembro Create y se destruye con el destructor virtual CWnd. La función DestroyWindow destruye la ventana de Windows sin destruir el objeto.

La clase CWnd y el mecanismo de mapa de mensajes ocultan la función WndProc. Los mensajes de notificación de Windows entrantes se enrutan automáticamente mediante el mapa de mensajes a las funciones miembro de OnMessageCWnd correspondientes. Las funciones miembro OnMessage se invalidan para controlar un mensaje particular de un miembro en sus clases derivadas.

Con la clase CWnd también se puede crear una ventana secundaria de Windows para la aplicación. Derive una clase de CWnd y, luego, agregue variables miembro a esa clase derivada para almacenar datos específicos de la aplicación. Implemente funciones miembro de controlador de mensajes y un mapa de mensajes en la clase derivada para especificar qué ocurre cuando los mensajes se dirigen a la ventana.

Una ventana secundaria se crea en dos pasos. En primer lugar, llame al constructor CWnd para construir el objeto CWnd y, después, llame a la función miembro Create para crear la ventana secundaria y asóciela al objeto CWnd.

Cuando el usuario finalice la ventana secundaria, destruya el objeto CWnd o llame a la función miembro DestroyWindow para quitar la ventana y destruir sus estructuras de datos.

Dentro de la biblioteca MFC (Microsoft Foundation Class), se derivan más clases de CWnd para proporcionar tipos de ventana específicos. Muchas de estas clases, incluidas CFrameWnd, CMDIFrameWnd, CMDIChildWnd, CView y CDialog, están diseñadas para su posterior derivación. Las clases de control derivadas de CWnd, como CButton, se pueden usar directamente o bien emplearse para la posterior derivación de clases.

Para obtener más información sobre cómo usar CWnd, consulte Frame Windows y Objetos de ventana.

Jerarquía de herencia

CObject

CCmdTarget

CWnd

Requisitos

Encabezado: afxwin.h

CWnd::accDoDefaultAction

El marco llama a este método para realizar la acción predeterminada del objeto.

virtual HRESULT accDoDefaultAction(VARIANT varChild);

Parámetros

varChild
Especifica si la acción predeterminada que se va a invocar es la del objeto o de uno de los elementos secundarios del objeto. Este parámetro puede ser CHILDID_SELF (para realizar la acción predeterminada del objeto) o un Id. secundario (para realizar la acción predeterminada de uno de los elementos secundarios del objeto).

Valor devuelto

Devuelve S_OK si se ejecuta correctamente, y un código de error COM en caso de error. Consulte Valores devueltos en IAccessible::accDoDefaultAction de Windows SDK.

Comentarios

Esta función forma parte de la compatibilidad con Active Accessibility de MFC.

Invalide esta función en la clase derivada de CWnd para realizar la acción predeterminada del objeto. Para obtener más información, consulte IAccessible::accDoDefaultAction de Windows SDK.

CWnd::accHitTest

El marco llama a este método para recuperar el elemento u objeto secundario situado en un punto dado de la pantalla.

virtual HRESULT accHitTest(
    long xLeft,
    long yTop,
    VARIANT* pvarChild);

Parámetros

xLeft
La coordenada X del punto en el que se va a comprobar (en unidades de pantalla).

yTop
La coordenada Y del punto en el que se va a comprobar (en unidades de pantalla).

pvarChild
Recibe información que identifica el objeto en el punto especificado por xLeft y yTop. Consulte pvarID en IAccessible::accHitTest de Windows SDK.

Valor devuelto

Devuelve S_OK si se ejecuta correctamente, y un código de error COM en caso de error. Consulte Valores devueltos en IAccessible::accHitTest de Windows SDK.

Comentarios

Esta función forma parte de la compatibilidad con Active Accessibility de MFC.

Invalide esta función en la clase derivada de CWnd si tiene elementos de interfaz de usuario no en ventana (distintos de los controles ActiveX sin ventana, que controla MFC).

Para más información, consulte IAccessible::accHitTest en Windows SDK.

CWnd::accLocation

El marco llama a este método para recuperar la ubicación actual del objeto especificado en la pantalla.

virtual HRESULT accLocation(
    long* pxLeft,
    long* pyTop,
    long* pcxWidth,
    long* pcyHeight,
    VARIANT varChild);

Parámetros

pxLeft
Recibe la coordenada x de la esquina superior izquierda del objeto (en unidades de pantalla).

pyTop
Recibe la coordenada y de la esquina superior izquierda del objeto (en unidades de pantalla).

pcxWidth
Recibe el ancho del objeto (en unidades de pantalla).

pcyHeight
Recibe el alto del objeto (en unidades de pantalla).

varChild
Especifica si la ubicación que se debe recuperar es la del objeto o de uno de los elementos secundarios del objeto. Este parámetro puede ser CHILDID_SELF (para obtener información sobre el objeto) o un Id. secundario (para obtener información sobre el elemento secundario del objeto).

Valor devuelto

Devuelve S_OK si se ejecuta correctamente, y un código de error COM en caso de error. Consulte Valores devueltos en IAccessible::accLocation de Windows SDK.

Comentarios

Invalide esta función en la clase derivada de CWnd si tiene elementos de interfaz de usuario no en ventana (distintos de los controles ActiveX sin ventana, que controla MFC).

Para más información, consulte IAccessible::accLocation en Windows SDK.

CWnd::accNavigate

El marco llama a este método para ir a otro elemento de la interfaz de usuario dentro de un contenedor y, si es posible, recuperar el objeto.

virtual HRESULT accNavigate(
    long navDir,
    VARIANT varStart,
    VARIANT* pvarEndUpAt);

Parámetros

navDir
Especifica la dirección para navegar. Consulte navDir en IAccessible::accNavigate de Windows SDK.

varStart
Especifica el objeto inicial. Consulte varStart en IAccessible::accNavigate de Windows SDK.

pvarEndUpAt
Recibe información sobre el objeto de interfaz de usuario de destino. Consulte pvarEnd en IAccessible::accNavigate de Windows SDK.

Valor devuelto

Devuelve S_OK si se ejecuta correctamente, y un código de error COM en caso de error. Consulte Valores devueltos en IAccessible::accNavigate de Windows SDK.

Comentarios

Esta función forma parte de la compatibilidad con Active Accessibility de MFC.

Invalide esta función en la clase derivada de CWnd si tiene elementos de interfaz de usuario no en ventana (distintos de los controles ActiveX sin ventana, que controla MFC).

Para más información, consulte IAccessible::accNavigate en Windows SDK.

CWnd::accSelect

El marco llama a este método para modificar la selección o desplazar el foco de teclado del objeto especificado.

virtual HRESULT accSelect(
    long flagsSelect,
    VARIANT varChild);

Parámetros

flagsSelect
Especifica cómo cambiar la selección o el foco actuales. Consulte flagsSelect en IAccessible::accSelect de Windows SDK.

varChild
Especifica el objeto que se va a seleccionar. Este parámetro puede ser CHILDID_SELF (para seleccionar el objeto), o bien, un Id. secundario (para seleccionar uno de los objetos secundarios del objeto).

Valor devuelto

Devuelve S_OK si se ejecuta correctamente, y un código de error COM en caso de error. Consulte Valores devueltos en IAccessible::accSelect de Windows SDK.

Comentarios

Esta función forma parte de la compatibilidad con Active Accessibility de MFC.

Invalide esta función en la clase derivada de CWnd si tiene elementos de interfaz de usuario no en ventana (distintos de los controles ActiveX sin ventana, que controla MFC).

Para más información, consulte IAccessible::accSelect en Windows SDK.

CWnd::AnimateWindow

Genera efectos especiales al mostrar u ocultar ventanas.

BOOL AnimateWindow(
    DWORD dwTime,
    DWORD dwFlags);

Parámetros

dwTime
Especifica cuánto tiempo se tarda en reproducir la animación, en milisegundos. Normalmente, una animación tarda 200 milisegundos en reproducirse.

dwFlags
Especifica el tipo de animación. Para obtener una lista completa de valores posibles, consulte AnimateWindow.

Valor devuelto

Es distinto de cero si la función se realiza correctamente; de lo contrario, 0.

Comentarios

Esta función miembro emula la funcionalidad de la función AnimateWindow, tal y como se describe en Windows SDK.

CWnd::ArrangeIconicWindows

Organiza todas las ventanas secundarias (iconos) minimizadas.

UINT ArrangeIconicWindows();

Valor devuelto

El alto de una fila de iconos si la función se ejecuta correctamente; de lo contrario, 0.

Comentarios

Esta función miembro también organiza iconos en la ventana de escritorio, que cubre toda la pantalla. La función miembro GetDesktopWindow recupera un puntero al objeto de ventana de escritorio.

Para organizar ventanas secundarias MDI de icono en una ventana de cliente MDI, llame a CMDIFrameWnd::MDIIconArrange.

Ejemplo

// 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

Asocia una ventana de Windows a un objeto CWnd.

BOOL Attach(HWND hWndNew);

Parámetros

hWndNew
Especifica un identificador para una ventana de Windows.

Valor devuelto

Si es correcta, su valor es distinto de cero. En caso contrario, es cero.

Ejemplo

En este ejemplo se muestra cómo usar Attach y Detach para asignar a la ventana de cliente 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

Llame a esta función miembro para convertir una ventana marco en modal.

virtual void BeginModalState();

CWnd::BeginPaint

Prepara CWnd para pintar y rellena una estructura de datos PAINTSTRUCT con información sobre la pintura.

CDC* BeginPaint(LPPAINTSTRUCT lpPaint);

Parámetros

lpPaint
Apunta a la estructura PAINTSTRUCT que va a recibir información de pintura.

Valor devuelto

Identifica el contexto del dispositivo para CWnd. El puntero puede ser temporal y no debe almacenarse más allá del ámbito de EndPaint.

Comentarios

La estructura de pintura contiene una estructura de datos RECT con el rectángulo lo más pequeño posible que encierre completamente la región de actualización y una marca que especifica si se ha borrado el fondo.

La región de actualización se establece mediante las funciones miembro Invalidate, InvalidateRect o InvalidateRgn, así como por el sistema después de desplazarse por el área cliente, ajustar su tamaño o mover, crear o realizar cualquier otra operación que afecte al área cliente. Si la región de actualización está marcada para borrarla, BeginPaint envía un mensaje WM_ONERASEBKGND.

No llame a la función miembro BeginPaint excepto en respuesta a un mensaje WM_PAINT. Cada llamada a la función miembro BeginPaint debe tener una llamada coincidente a la función miembro EndPaint. Si el cursor de inserción está en el área que se va a pintar, la función miembro BeginPaint oculta automáticamente el cursor de inserción para evitar que se borre.

Ejemplo

// 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

Enlaza la propiedad enlazada simple predeterminada del objeto que realiza la llamada (por ejemplo, un control de edición), como se marca en la biblioteca de tipos, al cursor subyacente definido por las propiedades DataSource, UserName, Password y SQL del control de origen de datos.

void BindDefaultProperty(
    DISPID dwDispID,
    VARTYPE vtProp,
    LPCTSTR szFieldName,
    CWnd* pDSCWnd);

Parámetros

dwDispID
Especifica el DISPID de una propiedad en un control enlazado a datos que se va a enlazar a un control de origen de datos.

vtProp
Especifica el tipo de la propiedad que se va a enlazar. Por ejemplo, VT_BSTR, VT_VARIANT, etc.

szFieldName
Especifica el nombre de la columna, en el cursor proporcionado por el control de origen de datos, al que se enlazará la propiedad.

pDSCWnd
Apunta a la ventana que hospeda el control de origen de datos al que se enlazará la propiedad. Llame a GetDlgItem con el Id. de recurso de la ventana host del DCS para recuperar este puntero.

Comentarios

El objeto CWnd en el que se llama a esta función debe ser un control enlazado a datos.

Ejemplo

BindDefaultProperty puede usarse en el contexto siguiente:

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

Enlaza una propiedad enlazada del cursor en un control enlazado a datos (como un control de cuadrícula) a un control de origen de datos, y registra dicha relación con el administrador de enlaces de MFC.

void BindProperty(
    DISPID dwDispId,
    CWnd* pWndDSC);

Parámetros

dwDispId
Especifica el DISPID de una propiedad en un control enlazado a datos que se va a enlazar a un control de origen de datos.

pWndDSC
Apunta a la ventana que hospeda el control de origen de datos al que se enlazará la propiedad. Llame a GetDlgItem con el Id. de recurso de la ventana host del DCS para recuperar este puntero.

Comentarios

El objeto CWnd en el que se llama a esta función debe ser un control enlazado a datos.

Ejemplo

BindProperty puede usarse en el contexto siguiente:

BOOL CMyDlg::OnInitDialog()
{
   CWnd *pDSC = GetDlgItem(IDC_DATASOURCE);
   CWnd *pMyBound = GetDlgItem(IDC_MYBOUNDCTRL2);
   pMyBound->BindProperty(0x1, pDSC);
   return TRUE;
}

CWnd::BringWindowToTop

Lleva CWnd al principio de una pila de ventanas superpuestas.

void BringWindowToTop();

Comentarios

Además, BringWindowToTop activa las ventanas emergentes, de nivel superior y secundarias MDI. La función miembro BringWindowToTop se debe usar para mostrar cualquier ventana que esté oculta total o parcialmente por alguna ventana superpuesta.

Esta función simplemente llama a la función BringWindowToTop de Win32. Llame a la función SetWindowPos para cambiar la posición de una ventana en el orden Z. La función BringWindowToTop no cambia el estilo de ventana para convertirla en una ventana de nivel superior. Para obtener más información, consulte ¿Cuál es la diferencia entre HWND_TOP y HWND_TOPMOST

Ejemplo

// 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

Calcula el rectángulo de ventana que puede contener el rectángulo de cliente especificado.

virtual void CalcWindowRect(
    LPRECT lpClientRect,
    UINT nAdjustType = adjustBorder);

Parámetros

lpClientRect
[entrada, salida] Un puntero a una estructura de rectángulo. En entrada, esta estructura contiene el rectángulo de cliente. Una vez finalizado el método, esta estructura contiene el rectángulo de ventana que puede contener el rectángulo de cliente especificado.

nAdjustType
[entrada] Use CWnd::adjustBorder para calcular las coordenadas de ventana sin el estilo WS_EX_CLIENTEDGE; de lo contrario, use CWnd::adjustOutside.

Comentarios

El tamaño del rectángulo de ventana calculado no incluye espacio para una barra de menús.

Para conocer más restricciones de uso, consulte AdjustWindowRectEx.

Ejemplo

// 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

Llame a esta función miembro para quitar una sugerencia de herramientas de la pantalla si actualmente se muestra una sugerencia de herramientas.

static void PASCAL CancelToolTips(BOOL bKeys = FALSE);

Parámetros

bKeys
TRUE para cancelar las sugerencias de herramientas cuando se presiona una tecla y establece el texto de la barra de estado en el valor predeterminado; de lo contrario, FALSE.

Comentarios

Nota:

El uso de esta función miembro no tiene ningún efecto en las sugerencias de herramientas administradas por el código. Solo afecta al control de información sobre herramientas administrado por CWnd::EnableToolTips.

Ejemplo

// 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 ventana con respecto a su elemento primario.

void CenterWindow(CWnd* pAlternateOwner = NULL);

Parámetros

pAlternateOwner
Un puntero a una ventana alternativa relativa en la que se centrará (aparte de la ventana primaria).

Comentarios

Normalmente se llama desde CDialog::OnInitDialog para centrar los cuadros de diálogo en relación con la ventana principal de la aplicación. De forma predeterminada, las ventanas secundarias de la función se centran en relación con sus ventanas primarias, y las ventanas emergentes se centran en relación con su propietario. Si la ventana emergente no es propiedad de ningún otro elemento, se centra en relación con la pantalla. Para centrar una ventana relativa a una ventana específica que no sea el propietario u el objeto primario, el parámetro pAlternateOwner se puede establecer en una ventana válida. Para forzar el centrado en relación con la pantalla, pase el valor devuelto por CWnd::GetDesktopWindow como pAlternateOwner.

Ejemplo

BOOL CAboutDlg::OnInitDialog()
{
   CDialog::OnInitDialog();

   CenterWindow();

   return TRUE;
}

CWnd::ChangeClipboardChain

Quita CWnd de la cadena de visores del Portapapeles y convierte la ventana especificada por hWndNext en el descendiente del antecesor CWnd de la cadena.

BOOL ChangeClipboardChain(HWND hWndNext);

Parámetros

hWndNext
Identifica la ventana después de CWnd en la cadena de visores del Portapapeles.

Valor devuelto

Si es correcta, su valor es distinto de cero. En caso contrario, es cero.

CWnd::CheckDlgButton

Selecciona (coloca una marca de verificación junto a) o borra (quita una marca de verificación de) un botón, o cambia el estado de un botón de tres estados.

void CheckDlgButton(
    int nIDButton,
    UINT nCheck);

Parámetros

nIDButton
Especifica el botón que se va a modificar.

nCheck
Especifica la acción que se va a realizar. Si nCheck no es cero, la función miembro CheckDlgButton coloca una marca de verificación junto al botón; si es 0, se quita la marca de verificación. En el caso de los botones de tres estados, si nCheck es 2, el estado del botón es indeterminado.

Comentarios

La función CheckDlgButton envía un mensaje BM_SETCHECK al botón especificado.

Ejemplo

// 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

Selecciona (agrega una marca de verificación a) un determinado botón de radio en un grupo y borra (quita una marca de verificación de) todos los demás botones de radio del grupo.

void CheckRadioButton(
    int nIDFirstButton,
    int nIDLastButton,
    int nIDCheckButton);

Parámetros

nIDFirstButton
Especifica el identificador entero del primer botón de radio del grupo.

nIDLastButton
Especifica el identificador entero del último botón de radio del grupo.

nIDCheckButton
Especifica el identificador entero del botón de radio que se va a comprobar.

Comentarios

La función CheckRadioButton envía un mensaje BM_SETCHECK al botón especificado.

Ejemplo

// Of the 4 radio buttons, selects radio button 3.
void CMyDlg::OnMarkRadio()
{
   CheckRadioButton(IDC_RADIO1, IDC_RADIO4, IDC_RADIO3);
}

CWnd::ChildWindowFromPoint

Determina cuál de las ventanas secundarias que pertenecen a CWnd contiene el punto especificado (si es que alguna lo contiene).

CWnd* ChildWindowFromPoint(POINT point) const;

CWnd* ChildWindowFromPoint(
    POINT point,
    UINT nFlags) const;

Parámetros

point
Especifica las coordenadas de cliente del punto que se va a probar.

nflags
Especifica qué ventanas secundarias se omitirán. Este parámetro puede ser una combinación de los siguientes valores:

Valor Significado
CWP_ALL No omitir ninguna ventana secundaria
CWP_SKIPINVISIBLE Omitir las ventanas secundarias invisibles
CWP_SKIPDISABLED Omitir las ventanas secundarias deshabilitadas
CWP_SKIPTRANSPARENT Omitir las ventanas secundarias transparentes

Valor devuelto

Identifica la ventana secundaria que contiene el punto. Es NULL si el punto dado se encuentra fuera del área cliente. Si el punto está dentro del área cliente, pero no está incluido en ninguna ventana secundaria, se devuelve CWnd.

Esta función miembro devolverá una ventana secundaria oculta o deshabilitada que contiene el punto especificado.

Más de una ventana puede contener el punto dado. Sin embargo, esta función solo devuelve el CWnd* de la primera ventana encontrada que contiene el punto.

El CWnd* que se devuelve puede ser temporal y no debe almacenarse para su uso posterior.

Ejemplo

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

Convierte a las coordenadas de cliente de un punto o rectángulo determinado en pantalla en las coordenadas de pantalla.

void ClientToScreen(LPPOINT lpPoint) const;  void ClientToScreen(LPRECT lpRect) const;

Parámetros

lpPoint
Apunta a una estructura POINT u objeto CPoint que contiene las coordenadas de cliente que se van a convertir.

lpRect
Apunta a una estructura RECT u objeto CRect que contiene las coordenadas de cliente que se van a convertir.

Comentarios

La función miembro ClientToScreen usa las coordenadas de cliente en la estructura POINT o RECT el objeto CPoint o CRect al que apunta lpPoint o lpRect para calcular nuevas coordenadas de pantalla; a continuación, reemplaza las coordenadas de la estructura por las nuevas coordenadas. Las nuevas coordenadas de pantalla son relativas a la esquina superior izquierda de la pantalla del sistema.

La función miembro ClientToScreen supone que el punto o rectángulo especificados está en coordenadas de cliente.

Ejemplo

// 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

Minimiza la ventana.

void CloseWindow();

Comentarios

Esta función miembro emula la funcionalidad de la función CloseWindow, tal y como se describe en Windows SDK.

CWnd::ContinueModal

Para determinar cuándo debe salir el estado modal, RunModalLoop llama a esta función miembro.

virtual BOOL ContinueModal();

Valor devuelto

Distinto de cero si se va a continuar el bucle modal; 0 cuando se llama a EndModalLoop.

Comentarios

De forma predeterminada, devuelve un valor distinto de cero hasta que se llama a EndModalLoop.

CWnd::Create

Crea la ventana secundaria especificada y la asocia al objeto CWnd.

virtual BOOL Create(
    LPCTSTR lpszClassName,
    LPCTSTR lpszWindowName,
    DWORD dwStyle,
    Const RECT& rect,
    CWnd* pParentWnd,
    UINT nID,
    CCreateContext* pContext = NULL);

Parámetros

lpszClassName
[entrada] Un puntero a una cadena terminada en NULL que contiene el nombre de una clase de ventana del sistema registrada, o el nombre de una clase de ventana del sistema predefinida.

lpszWindowName
[entrada] Un puntero a una cadena terminada en NULL que contiene el nombre para mostrar de la ventana; de lo contrario, NULL si no hay nombre para mostrar de la ventana.

dwStyle
[entrada] Combinación bit a bit (OR) de estilos de ventana. La opción WS_POPUP no es un estilo válido.

rect
[entrada] Tamaño y ubicación de la ventana en relación con la esquina superior izquierda de la ventana primaria.

pParentWnd
[entrada] Un puntero a la ventana primaria.

nID
[entrada] El Id. de la ventana.

pContext
[entrada] Un puntero a una estructura CCreateContext que se usa para personalizar la arquitectura de vista de documentos para la aplicación.

Valor devuelto

si el método es correcto; TRUE, en caso contrario, FALSE.

Comentarios

Advertencia

CWnd::PreCreateWindow ahora asigna el miembro hMenu de su parámetro CREATESTRUCT al puntero this si el menú es NULL y el estilo contiene WS_CHILD. Para obtener una funcionalidad adecuada, asegúrese de que el control de diálogo tiene un Id. que no sea NULL.

Este cambio corrige un bloqueo en escenarios de interoperabilidad administrados o nativos. Una instrucción TRACE en alertas CWnd::Create al desarrollador del problema.

Use la función AfxRegisterWndClass para registrar clases de ventana. Las clases de ventana definidas por el usuario están disponibles en el módulo donde están registradas.

Se llama al método CWnd::OnCreate antes de que el método Create devuelva un valor, y antes de que la ventana se haga visible.

Ejemplo

// 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 a un proxy de Active Accessibility para el objeto especificado.

virtual HRESULT CreateAccessibleProxy(
    WPARAM wParam,
    LPARAM lParam,
    LRESULT* pResult);

Parámetros

wParam
Identifica el objeto al que tiene acceso el proxy de Active Accessibility. Puede ser uno de los siguientes valores

Valor Significado
OBJID_CLIENT Hace referencia al área cliente de la ventana.

lParam
Proporciona información adicional dependiente del mensaje.

pResult
Puntero a un LRESULT que almacena el código de resultado.

Comentarios

Crea a un proxy de Active Accessibility para el objeto especificado.

CWnd::CreateCaret

Crea una nueva forma para el símbolo de inserción y se hace con la propiedad del cursor de inserción.

void CreateCaret(CBitmap* pBitmap);

Parámetros

pBitmap
Identifica el mapa de bits que define la forma del cursor de inserción.

Comentarios

El mapa de bits debe haber sido creado previamente por la función miembro CBitmap::CreateBitmap, la función de Windows CreateDIBitmap o la función miembro CBitmap::LoadBitmap.

CreateCaret destruye automáticamente la forma del cursor de inserción anterior, si existiera, independientemente de la ventana que posee el símbolo de inserción. Una vez creado, inicialmente, el cursor de inserción está oculto. Para mostrar el cursor de inserción, se debe llamar a la función miembro ShowCaret.

El símbolo de inserción del sistema es un recurso compartido. CWnd debe crear un cursor de inserción solo cuando tenga el foco de entrada o esté activo. Debe destruir el cursor de inserción antes de perder el foco de entrada o volverse inactivo.

Ejemplo

// 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

Use esta función miembro para crear un control ActiveX que se representará en el programa MFC mediante un objeto CWnd.

BOOL CreateControl(
    LPCTSTR pszClass,
    LPCTSTR pszWindowName,
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID,
    CFile* pPersist = NULL,
    BOOL bStorage = FALSE,
    BSTR bstrLicKey = NULL);

BOOL CreateControl(
    REFCLSID clsid,
    LPCTSTR pszWindowName,
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID,
    CFile* pPersist = NULL,
    BOOL bStorage = FALSE,
    BSTR bstrLicKey = NULL);

BOOL CreateControl(
    REFCLSID clsid,
    LPCTSTR pszWindowName,
    DWORD dwStyle,
    const POINT* ppt,
    const SIZE* psize,
    CWnd* pParentWnd,
    UINT nID,
    CFile* pPersist = NULL,
    BOOL bStorage = FALSE,
    BSTR bstrLicKey = NULL);

Parámetros

pszClass
Esta cadena puede contener el «nombre abreviado» de OLE (ProgID) para la clase. Por ejemplo, "CIRC3.Circ3Ctrl.1". El nombre debe coincidir con el nombre registrado por el control. Como alternativa, la cadena puede contener la forma de cadena de un CLSID, dentro de llaves. Por ejemplo, "{9DBAFCCF-592F-101B-85CE-00608CEC297B}". En cualquier caso, CreateControl convierte la cadena en el Id. de clase correspondiente.

pszWindowName
Un puntero al texto que se mostrará en el control. Establece el valor de la propiedad Subtítulo o Texto del control (si existiera). Si NULL, la propiedad Título o Texto del control no cambia.

dwStyle
Estilos de ventanas. Los estilos disponibles aparecen en Comentarios.

rect
Especifica el tamaño y la posición del control. Puede ser un objeto CRect o una estructura RECT.

ppt
Apunta a una estructura POINT u objeto CPoint que contiene la esquina superior izquierda del control.

pSize
Apunta a una estructura SIZE u objeto CSize que contiene el tamaño del control

*pParentWnd*
Especifica la ventana primaria del control. Este valor no debe ser NULL.

nID
Especifica el id. del control.

pPersist
Un puntero a un CFile que contiene el estado persistente del control. El valor predeterminado es NULL, lo que indica que el control se inicializa por sí solo sin restaurar su estado desde ningún almacenamiento persistente. Si no es NULL, debe ser un puntero a un objeto derivado de CFile que contiene los datos persistentes del control en forma de una secuencia o un almacenamiento. Estos datos pueden haberse guardado en una activación anterior del cliente. El CFile puede contener otros datos, pero debe tener su puntero de lectura y escritura establecido en el primer byte de datos persistentes en el momento de la llamada a CreateControl.

bStorage
Indica si los datos de pPersist deben interpretarse como datos IStorage o IStream. Si los datos de pPersist son un almacenamiento, bStorage debe ser TRUE. Si los datos de pPersist es una secuencia, bStorage debe ser FALSE. El valor predeterminado es FALSE.

bstrLicKey
Datos de clave de licencia opcionales. Estos datos solo son necesarios para crear controles que requieran una clave de licencia en tiempo de ejecución. Si el control admite licencias, debe proporcionar una clave de licencia para que la creación del control se realice correctamente. El valor predeterminado es NULL.

clsid
El Id. de clase único del control.

Valor devuelto

Si es correcta, su valor es distinto de cero. En caso contrario, es cero.

Comentarios

CreateControles un análogo directo de la función CWnd::Create, que crea la ventana para un CWnd. CreateControl crea un control ActiveX en lugar de una ventana normal.

Solo se admite un subconjunto de las marcas dwStyle de Windows para CreateControl:

  • WS_VISIBLE Crea una ventana que está visible inicialmente. Obligatorio si desea que el control sea visible inmediatamente, como las ventanas normales.

  • WS_DISABLED Crea una ventana que está deshabilitada inicialmente. Una ventana deshabilitada no puede recibir la entrada del usuario. Se puede establecer si el control tiene una propiedad Habilitado.

  • WS_BORDER Crea una ventana con un borde de línea fina. Se puede establecer si el control tiene una propiedad BorderStyle.

  • WS_GROUP Especifica el primer control de un grupo de controles. El usuario puede cambiar el foco del teclado desde un control del grupo al siguiente mediante las teclas de dirección. Todos los controles definidos con el estilo WS_GROUP después del primer control pertenecen al mismo grupo. El siguiente control con el estilo WS_GROUP finaliza el grupo e inicia el siguiente grupo.

  • WS_TABSTOP Especifica un control que puede recibir el foco del teclado cuando el usuario presiona la tecla TAB. Al presionar la tecla TAB, se cambia el foco del teclado al siguiente control del estilo WS_TABSTOP.

Ejemplo

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 ventana especificada y la asocia al objeto 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);

Parámetros

dwExStyle
Combinación bit a bit (OR) de estilos de ventana extendidos; de lo contrario, NULL para el estilo de ventana extendido predeterminado.

lpszClassName
Un puntero a una cadena terminada en NULL que contiene el nombre de una clase de ventana del sistema registrada, o el nombre de una clase de ventana del sistema predefinida.

lpszWindowName
Un puntero a una cadena terminada en NULL que contiene el nombre para mostrar de la ventana; de lo contrario, NULL si no hay nombre para mostrar de la ventana.

dwStyle
La combinación bit a bit (OR) de estilos de ventana; de lo contrario, NULL para el estilo de ventana predeterminado.

x
La distancia horizontal inicial de la ventana desde el lado izquierdo de la pantalla o la ventana primaria.

y
La distancia vertical inicial de la ventana desde la parte superior de la pantalla o la ventana primaria.

nWidth
El ancho del objeto en píxeles.

nHeight
El alto de la ventana en píxeles.

hwndParent
Para una ventana secundaria, el identificador de la ventana primaria; de lo contrario, el identificador de la ventana de propietario si la ventana tiene un propietario.

nIDorHMenu
Para una ventana secundaria, el Id. de la ventana; de lo contrario, el Id. de un menú de la ventana.

lpParam
Un puntero a los datos de usuario que se pasan al método CWnd::OnCreate en el campo lpCreateParams.

rect
El tamaño y la ubicación de la ventana en relación con la pantalla o la ventana primaria.

pParentWnd
Para una ventana secundaria, puntero a la ventana primaria; de lo contrario, puntero a la ventana de propietario si la ventana tiene un propietario.

nID
Para una ventana secundaria, el Id. de la ventana; de lo contrario, el Id. de un menú de la ventana.

Valor devuelto

si el método es correcto; TRUE, en caso contrario, FALSE.

Comentarios

Advertencia

CWnd::PreCreateWindow ahora asigna el miembro hMenu de su parámetro CREATESTRUCT al puntero this si el menú es NULL y el estilo contiene WS_CHILD. Para obtener una funcionalidad adecuada, asegúrese de que el control de diálogo tiene un Id. que no sea NULL.

Este cambio corrige un bloqueo en escenarios de interoperabilidad administrados o nativos. Una instrucción TRACE en alertas CWnd::Create al desarrollador del problema.

El estilo de ventana extendido predeterminado es WS_EX_LEFT. El estilo de ventana predeterminado es WS_OVERLAPPED.

Use la función AfxRegisterWndClass para registrar clases de ventana. Las clases de ventana definidas por el usuario están disponibles en el módulo donde están registradas.

Las dimensiones de las ventanas secundarias son relativas a la esquina superior izquierda del área cliente de la ventana primaria. Las dimensiones de las ventanas de nivel superior son relativas a la esquina superior izquierda de la pantalla.

Se llama al método CWnd::OnCreate antes de que el método CreateEx devuelva un valor, y antes de que la ventana se haga visible.

Ejemplo

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 rectángulo gris para el símbolo de inserción y se hace con la propiedad de ese símbolo de inserción.

void CreateGrayCaret(
    int nWidth,
    int nHeight);

Parámetros

nWidth
Especifica el ancho del cursor de inserción (en unidades lógicas). Si este parámetro es 0, el ancho se establece en el ancho del borde de ventana definido por el sistema.

nHeight
Especifica el alto del cursor de inserción (en unidades lógicas). Si este parámetro es 0, el alto se establece en el alto del borde de ventana definido por el sistema.

Comentarios

La forma del cursor de inserción puede ser una línea o un bloque.

Los parámetros nWidth y nHeight especifican el ancho y alto del cursor de inserción (en unidades lógicas); el ancho y alto exactos (en píxeles) dependen del modo de asignación.

La función de Windows GetSystemMetrics puede recuperar el ancho o alto del borde de ventana del sistema con los índices SM_CXBORDER y SM_CYBORDER. El uso del ancho o alto del borde de la ventana garantiza que el cursor de inserción esté visible en una pantalla de alta resolución.

La función miembro CreateGrayCaret destruye automáticamente la forma del cursor de inserción anterior, si existiera, independientemente de la ventana de propietario del símbolo de inserción. Una vez creado, inicialmente, el cursor de inserción está oculto. Para mostrar el cursor de inserción, se debe llamar a la función miembro ShowCaret.

El símbolo de inserción del sistema es un recurso compartido. CWnd debe crear un cursor de inserción solo cuando tenga el foco de entrada o esté activo. Debe destruir el cursor de inserción antes de perder el foco de entrada o volverse inactivo.

Ejemplo

// Create a 5x10 gray caret in the edit control.
void CMyDlg::OnCreateGrayCaret()
{
   m_MyEdit.CreateGrayCaret(5, 10);
   m_MyEdit.ShowCaret();
}

CWnd::CreateSolidCaret

Crea un rectángulo gris para el símbolo de inserción y se hace con la propiedad del cursor de inserción.

void CreateSolidCaret(
    int nWidth,
    int nHeight);

Parámetros

nWidth
Especifica el ancho del cursor de inserción (en unidades lógicas). Si este parámetro es 0, el ancho se establece en el ancho del borde de ventana definido por el sistema.

nHeight
Especifica el alto del cursor de inserción (en unidades lógicas). Si este parámetro es 0, el alto se establece en el alto del borde de ventana definido por el sistema.

Comentarios

La forma del cursor de inserción puede ser una línea o un bloque.

Los parámetros nWidth y nHeight especifican el ancho y alto del cursor de inserción (en unidades lógicas); el ancho y alto exactos (en píxeles) dependen del modo de asignación.

La función de Windows GetSystemMetrics puede recuperar el ancho o alto del borde de ventana del sistema con los índices SM_CXBORDER y SM_CYBORDER. El uso del ancho o alto del borde de la ventana garantiza que el cursor de inserción esté visible en una pantalla de alta resolución.

La función miembro CreateSolidCaret destruye automáticamente la forma del cursor de inserción anterior, si existiera, independientemente de la ventana de propietario del símbolo de inserción. Una vez creado, inicialmente, el cursor de inserción está oculto. Para mostrar el cursor de inserción, se debe llamar a la función miembro ShowCaret.

El símbolo de inserción del sistema es un recurso compartido. CWnd debe crear un cursor de inserción solo cuando tenga el foco de entrada o esté activo. Debe destruir el cursor de inserción antes de perder el foco de entrada o volverse inactivo.

Ejemplo

// Create a 5x10 solid caret in the edit control.
void CMyDlg::OnCreateSolidCaret()
{
   m_MyEdit.CreateSolidCaret(5, 10);
   m_MyEdit.ShowCaret();
}

CWnd::CWnd

Construye un objeto CWnd.

CWnd();

Comentarios

La ventana de Windows no se crea ni se asocia hasta que se llama a la función miembro CreateEx o Create.

CWnd::Default

Llama al procedimiento de ventana predeterminado.

LRESULT Default();

Valor devuelto

Depende del mensaje enviado.

Comentarios

El procedimiento de ventana predeterminado proporciona el procesamiento predeterminado de todos los mensajes de ventana que una aplicación no procesa. Esta función miembro garantiza que se procesen todos los mensajes.

Ejemplo

// 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

Llama al procedimiento de ventana predeterminado, que proporciona el procesamiento predeterminado de todos los mensajes de ventana que una aplicación no procesa.

virtual LRESULT DefWindowProc(
    UINT message,
    WPARAM wParam,
    LPARAM lParam);

Parámetros

message
Especifica el mensaje de Windows que se va a procesar.

wParam
Proporciona información adicional dependiente del mensaje.

lParam
Proporciona información adicional dependiente del mensaje.

Valor devuelto

Depende del mensaje enviado.

Comentarios

Esta función miembro garantiza que se procesen todos los mensajes. Se la debe llamar con los mismos parámetros que los recibidos por el procedimiento de ventana.

CWnd::DeleteTempMap

Llamado automáticamente por el controlador de tiempo de inactividad del objeto CWinApp.

static void PASCAL DeleteTempMap();

Comentarios

Elimina los objetos temporales CWnd creados por la función miembro FromHandle.

Ejemplo

// DeleteTempMap() is a static member and does not need 
// to be called within the scope of an instantiated CWnd object.
CWnd::DeleteTempMap();

CWnd::DestroyWindow

Destruye la ventana de Windows asociada al objeto CWnd.

virtual BOOL DestroyWindow();

Valor devuelto

Distinto de cero si se destruye la ventana; de lo contrario, 0.

Comentarios

La función miembro DestroyWindow envía los mensajes correspondientes a la ventana para desactivarla y quitar el foco de entrada. También destruye el menú de la ventana, vacía la cola de aplicaciones, destruye los temporizadores pendientes, quita la propiedad del Portapapeles e interrumpe la cadena del visor de Portapapeles si CWnd está en la parte superior de la cadena del visor. Envía mensajes WM_DESTROY y WM_NCDESTROY a la ventana. No destruye el objeto CWnd.

DestroyWindow es un marcador de posición para realizar la limpieza. Dado que DestroyWindow es una función virtual, se muestra en cualquier clase derivada de CWnd la Vista de clases. Pero incluso si se invalida esta función en la clase derivada de CWnd, no se llama necesariamente a DestroyWindow. Si no se llama a DestroyWindow en el código MFC, si quiere que se la llame, tendrá que llamarla usted explícitamente en su propio código.

Supongamos, por ejemplo, que se ha invalidado DestroyWindow en una clase derivada de CView. Dado que el código fuente de MFC no llama a DestroyWindow en ninguna de sus clases derivadas de CFrameWnd, no se llamará al DestroyWindow invalidado, a menos que lo llame usted explícitamente.

Si la ventana es el elemento primario de cualquier ventana, estas ventanas secundarias se destruirán automáticamente cuando se destruya la ventana primaria. La función miembro DestroyWindow destruye primero las ventanas secundarias y, a continuación, la propia ventana.

La función miembro DestroyWindow también destruye los cuadros de diálogo no modales creados por CDialog::Create.

Si el CWnd que se destruye es una ventana secundaria y no tiene el estilo WS_EX_NOPARENTNOTIFY establecido, el mensaje WM_PARENTNOTIFY se envía al elemento primario.

Ejemplo

// 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

Desasocia un identificador de Windows de un objeto CWnd y devuelve el identificador.

HWND Detach();

Valor devuelto

Un HWND al objeto de Windows.

Ejemplo

Vea el ejemplo de CWnd::Attach.

CWnd::DlgDirList

Rellena un cuadro de lista con una lista de archivos o directorios.

int DlgDirList(
    LPTSTR lpPathSpec,
    int nIDListBox,
    int nIDStaticPath,
    UINT nFileType);

Parámetros

lpPathSpec
Un puntero a una cadena terminada en NULL y que contiene la ruta de acceso o el nombre de archivo. DlgDirList modifica esta cadena, que debe ser lo suficientemente larga como para contener las modificaciones. Para obtener más información, consulte la sección «Comentarios» más adelante.

nIDListBox
Especifica el identificador de un cuadro de lista. Si nIDListBox es 0, DlgDirList asume que no existe ningún cuadro de lista y no intenta rellenar uno.

nIDStaticPath
Especifica el identificador del control de texto estático usado para mostrar la unidad y el directorio actuales. Si nIDStaticPath es 0, DlgDirList asume que tal control de texto no está presente.

nFileType
Especifica los atributos de los archivos que se van a mostrar. Puede ser cualquier combinación de los valores siguientes:

  • DDL_READWRITE Archivos de datos de lectura escritura sin atributos adicionales.

  • DDL_READONLY Archivos de sólo lectura.

  • DDL_HIDDEN Archivos ocultos.

  • DDL_SYSTEM Archivos de sistema.

  • DDL_DIRECTORY Directorios.

  • DDL_ARCHIVE Archivos.

  • DDL_POSTMSGSmarca LB_DIR. Si se establece la marca LB_DIR, Windows coloca los mensajes generados por DlgDirList en la cola de la aplicación; de lo contrario, se envían directamente al procedimiento de cuadro de diálogo.

  • DDL_DRIVES Unidades. Si se establece la marca DDL_DRIVES, la marca DDL_EXCLUSIVE se establece automáticamente. Por lo tanto, para crear una lista de directorios que incluya unidades y archivos, se debe llamar a DlgDirList dos veces: una vez con la marca DDL_DRIVES establecida y la otra, con las marcas para el resto de la lista.

  • DDL_EXCLUSIVE Bit exclusivo. Si se establece el bit exclusivo, solo se muestran los archivos del tipo especificado; de lo contrario, se enumeran los archivos normales y los archivos del tipo especificado.

Valor devuelto

Es distinto de cero si la función se realiza correctamente; de lo contrario, es 0.

Comentarios

DlgDirList envía mensajes LB_RESETCONTENT y LB_DIR al cuadro de lista. Rellena el cuadro de lista especificado por nIDListBox con los nombres de todos los archivos que coinciden con la ruta de acceso proporcionada por lpPathSpec.

El parámetro lpPathSpec tiene el siguiente formato:

[drive:] [ [\u]directory[\idirectory]...\u] [filename]

En este ejemplo, drive es una letra de unidad, directory es un nombre de directorio válido y filename es un nombre de archivo válido que debe contener al menos un carácter comodín. Los caracteres comodín son el signo de interrogación (?), que significa coincidencia con cualquier carácter, y el asterisco (*), que significa coincidencia con cualquier número de caracteres.

Si se especifica una cadena de longitud 0 para lpPathSpec, o si se especifica solo un nombre de directorio, pero no se incluye ninguna especificación de archivo, la cadena se cambiará a «*.*».

Si lpPathSpec incluye una unidad o un nombre de directorio, la unidad y el directorio actuales se cambian a la unidad y directorio designados antes de rellenar el cuadro de lista. El control de texto identificado por nIDStaticPath también se actualiza con el nuevo nombre de la unidad y/o directorio.

Una vez rellenado el cuadro de lista, lpPathSpec se actualiza quitando la parte de unidad y/o directorio de la ruta de acceso.

Ejemplo

// 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

Rellena el cuadro de lista de un cuadro combinado con una lista de archivos o directorios.

int DlgDirListComboBox(
    LPTSTR lpPathSpec,
    int nIDComboBox,
    int nIDStaticPath,
    UINT nFileType);

Parámetros

lpPathSpec
Un puntero a una cadena terminada en NULL y que contiene la ruta de acceso o el nombre de archivo. DlgDirListComboBox modifica esta cadena, por lo que estos datos no deben estar en forma de literal de cadena. Consulte la siguiente sección «Comentarios».

nIDComboBox
Especifica el identificador de un cuadro combinado en un cuadro de diálogo. Si nIDComboBox es 0, DlgDirListComboBox asume que no existe ningún cuadro combinado o intenta rellenar uno.

nIDStaticPath
Especifica el identificador del control de texto estático usado para mostrar la unidad y el directorio actuales. Si nIDStaticPath es 0, DlgDirListComboBox asume que tal control de texto no está presente.

nFileType
Especifica los atributos de los archivos DOS que se van a mostrar. Puede ser cualquier combinación de los valores siguientes:

  • DDL_READWRITE Archivos de datos de lectura escritura sin atributos adicionales.

  • DDL_READONLY Archivos de sólo lectura.

  • DDL_HIDDEN Archivos ocultos.

  • DDL_SYSTEM Archivos de sistema.

  • DDL_DIRECTORY Directorios.

  • DDL_ARCHIVE Archivos.

  • DDL_POSTMSGSmarca CB_DIR. Si se establece la marca CB_DIR, Windows coloca los mensajes generados por DlgDirListComboBox en la cola de la aplicación; de lo contrario, se envían directamente al procedimiento de cuadro de diálogo.

  • DDL_DRIVES Unidades. Si se establece la marca DDL_DRIVES, la marca DDL_EXCLUSIVE se establece automáticamente. Por lo tanto, para crear una lista de directorios que incluya unidades y archivos, se debe llamar a DlgDirListComboBox dos veces: una vez con la marca DDL_DRIVES establecida y la otra, con las marcas para el resto de la lista.

  • DDL_EXCLUSIVE Bit exclusivo. Si se establece el bit exclusivo, solo se muestran los archivos del tipo especificado; de lo contrario, se enumeran los archivos normales y los archivos del tipo especificado.

Valor devuelto

Especifica el resultado de la función . Es distinto de cero si se ha realizado una lista, incluso si es una lista vacía. Un valor 0 devuelto implica que la cadena de entrada no contenía una ruta de búsqueda válida.

Comentarios

DlgDirListComboBox envía mensajes CB_RESETCONTENT y CB_DIR al cuadro combinado. Rellena el cuadro de lista del cuadro combinado especificado por nIDComboBox con los nombres de todos los archivos que coinciden con la ruta de acceso proporcionada por lpPathSpec.

El parámetro lpPathSpec tiene el siguiente formato:

[drive:] [ [\u]directory[\idirectory]...\u] [filename]

En este ejemplo, drive es una letra de unidad, directory es un nombre de directorio válido y filename es un nombre de archivo válido que debe contener al menos un carácter comodín. Los caracteres comodín son el signo de interrogación (?), que significa coincidencia con cualquier carácter, y el asterisco (*), que significa coincidencia con cualquier número de caracteres.

Si se especifica una cadena de longitud cero para lpPathSpec, se usará el directorio actual y lpPathSpec no se modificará. Si se especifica solo un nombre de directorio, pero no se incluye ninguna especificación de archivo, la cadena se cambiará a «*.*».

Si lpPathSpec incluye una unidad o un nombre de directorio, la unidad y el directorio actuales se cambian a la unidad y directorio designados antes de rellenar el cuadro de lista. El control de texto identificado por nIDStaticPath también se actualiza con el nuevo nombre de la unidad y/o directorio.

Una vez rellenado el cuadro combinado, lpPathSpec se actualiza quitando la parte de unidad y/o directorio de la ruta de acceso.

Ejemplo

// 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 selección actual de un cuadro de lista.

BOOL DlgDirSelect(
    LPTSTR lpString,
    int nIDListBox);

Parámetros

lpString
Apunta a un búfer que va a recibir la selección actual en el cuadro de lista.

nIDListBox
Especifica el Id. entero de un cuadro de lista en el cuadro de diálogo.

Valor devuelto

Si es correcta, su valor es distinto de cero. En caso contrario, es cero.

Comentarios

Asume que la función miembro DlgDirList ha rellenado el cuadro de lista y que la selección es una letra de unidad, un archivo o un nombre de directorio.

La función miembro DlgDirSelect copia la selección en el búfer proporcionado por lpString. Si no hay ninguna selección, lpString no cambia.

DlgDirSelect envía mensajes LB_GETCURSEL y LB_GETTEXT al cuadro de lista.

No permite que se devuelva más de un nombre de archivo desde un cuadro de lista. El cuadro de lista no debe ser un cuadro de lista de selección múltiple.

CWnd::DlgDirSelectComboBox

Recupera la selección actual del cuadro de lista de un cuadro combinado.

BOOL DlgDirSelectComboBox(
    LPTSTR lpString,
    int nIDComboBox);

Parámetros

lpString
Apunta a un búfer que va a recibir la ruta de acceso seleccionada.

nIDComboBox
Especifica el Id. entero de un cuadro combinado en el cuadro de diálogo.

Valor devuelto

Si es correcta, su valor es distinto de cero. En caso contrario, es cero.

Comentarios

Asume que la función miembro DlgDirListComboBox ha rellenado el cuadro de lista y que la selección es una letra de unidad, un archivo o un nombre de directorio.

La función miembro DlgDirSelectComboBox copia la selección al búfer proporcionado. Si no hay ninguna selección, no se cambia el contenido del búfer.

DlgDirSelectComboBox envía mensajes CB_GETCURSEL y CB_GETLBTEXT al cuadro combinado.

No permite que se devuelva más de un nombre de archivo desde un cuadro combinado.

CWnd::DoDataExchange

Lo llama el marco para intercambiar y validar los datos de diálogo.

virtual void DoDataExchange(CDataExchange* pDX);

Parámetros

pDX
Puntero a un objeto CDataExchange .

Comentarios

Nunca llame a esta función directamente. Es la función miembro UpdateData quien la llama. Llame a UpdateData para inicializar los controles de un cuadro de diálogo o recuperar datos de un cuadro de diálogo.

Al derivar una clase de diálogo específica de la aplicación de CDialog, debe invalidar esta función miembro si desea usar el intercambio y la validación automáticos de datos del marco. El asistente para agregar variables escribirá una versión invalidada de esta función miembro que contenga la «asignación de datos» deseada de las llamadas a funciones globales de intercambio de datos de diálogo (DDX) y validación (DDV).

Para generar automáticamente una versión invalidada de esta función miembro, cree primero un recurso de diálogo con el editor de diálogos y, a continuación, derive una clase de diálogo específica de la aplicación. A continuación, use el asistente para agregar variables para asociar variables, datos e intervalos de validación con varios controles en el nuevo cuadro de diálogo. Después, el asistente escribe el DoDataExchange invalidado, que contiene un mapa de datos. A continuación se muestra un bloque de código DDX/DDV de ejemplo generado por el asistente para agregar variables:

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 función miembro DoDataExchange invalidada debe preceder a las instrucciones de macro en el archivo de origen.

Para obtener más información sobre el intercambio y la validación de datos de cuadros de diálogo, consulte Mostrar y manipular datos en un formulario e Intercambio y validación de datos de diálogo. Para obtener una descripción de las macros de DDX_ y DDV_ generadas por el asistente para agregar variables, consulte Nota técnica 26.

CWnd::DragAcceptFiles

Llame a esta función miembro desde una ventana, mediante un puntero CWnd, en la función CWinApp::InitInstance de la aplicación para indicar que la ventana acepta archivos quitados del Administrador de archivos de Windows o del Explorador de archivos.

void DragAcceptFiles(BOOL bAccept = TRUE);

Parámetros

BAccept
Una marca que indica si se aceptan archivos arrastrados.

Comentarios

Solo la ventana que llama a DragAcceptFiles con el parámetro bAccept establecido en TRUE se ha identificado como capaz de procesar el mensaje de Windows WM_DROPFILES. Por ejemplo, en una aplicación MDI, si se usa el puntero de ventana CMDIFrameWnd en la llamada de función DragAcceptFiles, solo la ventana CMDIFrameWnd obtiene el mensaje WM_DROPFILES. Este mensaje no se envía a todas las ventanas CMDIChildWnd abiertas. Para que una ventana CMDIChildWnd reciba este mensaje, debe llamar a DragAcceptFiles con el puntero de ventana CMDIChildWnd.

Para dejar de recibir archivos arrastrados, llame a la función miembro con bAccept establecido en FALSE.

CWnd::DragDetect

Captura el mouse y realiza un seguimiento de su movimiento hasta que el usuario suelta el botón primario, presiona la tecla ESC o mueve el mouse fuera del rectángulo de arrastre alrededor del punto especificado.

BOOL DragDetect(POINT pt) const;

Parámetros

pt
La posición inicial del mouse en coordenadas de pantalla. La función determina las coordenadas del rectángulo de arrastre mediante este punto.

Valor devuelto

Si el usuario ha movido el mouse fuera del rectángulo de arrastre mientras mantenía presionado el botón izquierdo, el valor devuelto es distinto de cero.

Si el usuario no ha movido el mouse fuera del rectángulo de arrastre mientras mantenía presionado el botón izquierdo, el valor devuelto es cero.

Comentarios

Esta función miembro emula la funcionalidad de la función DragDetect, tal y como se describe en Windows SDK.

CWnd::DrawAnimatedRects

Dibuja un rectángulo de trama de alambres y lo anima para señalar un icono abierto o una ventana minimizada o maximizada.

BOOL DrawAnimatedRects(
    int idAni,
    CONST RECT* lprcFrom,
    CONST RECT* lprcTo);

Parámetros

idAni
Especifica el tipo de animación. Si se especifica IDANI_CAPTION, el título de la ventana se animará desde la posición especificada por lprcFrom a la posición especificada por lprcTo. El efecto es similar a minimizar o maximizar una ventana.

lprcFrom
Un puntero a una estructura RECT que especifica la ubicación y el tamaño del icono o la ventana minimizada.

lprcTo
Un puntero a una estructura RECT que especifica la ubicación y el tamaño de la ventana restaurada

Valor devuelto

Es distinto de cero si la función se realiza correctamente; de lo contrario, 0.

Comentarios

Esta función miembro emula la funcionalidad de la función DrawAnimatedRects, tal y como se describe en Windows SDK.

CWnd::DrawCaption

Dibuja el título de una ventana.

BOOL DrawCaption(
    CDC* pDC,
    LPCRECT lprc,
    UINT uFlags);

Parámetros

pDC
Puntero a un contexto de dispositivo. La función dibuja el título de la ventana en este contexto de dispositivo.

lprc
Un puntero a una estructura RECT que especifica el rectángulo delimitador del título de la ventana.

uFlags
Especifica las opciones de dibujo. Para obtener una lista completa de los valores, consulte DrawCaption.

Valor devuelto

Es distinto de cero si la función se realiza correctamente; de lo contrario, 0.

Comentarios

Esta función miembro emula la funcionalidad de la función DrawCaption, tal y como se describe en Windows SDK.

CWnd::DrawMenuBar

Vuelve a dibujar la barra de menús.

void DrawMenuBar();

Comentarios

Si se cambia una barra de menú después de que Windows haya creado la ventana, llame a esta función para dibujar la barra de menú modificada.

Ejemplo

Vea el ejemplo de CWnd::GetMenu.

CWnd::EnableActiveAccessibility

Habilita las funciones de Active Accessibility definidas por el usuario.

void EnableActiveAccessibility();

Comentarios

La compatibilidad predeterminada de MFC con Active Accessibility es suficiente para las ventanas y controles estándar, incluidos los controles ActiveX; sin embargo, si la clase derivada de CWnd contiene elementos de la interfaz de usuario no en ventana, MFC no tiene ninguna manera de saber de ellos. En ese caso, debe invalidar las funciones miembro de Active Accessibility correspondientes en la clase, y debe llamar a EnableActiveAccessibility en el constructor de la clase.

CWnd::EnableDynamicLayout

Habilita o deshabilita al administrador de diseño dinámico. Si el diseño dinámico está habilitado, la posición y el tamaño de las ventanas secundarias se pueden ajustar dinámicamente cuando el usuario cambie el tamaño de la ventana.

void EnableDynamicLayout(BOOL bEnable = TRUE);

Parámetros

bEnable
TRUE para habilitar el diseño dinámico; FALSE para deshabilitarlo.

Comentarios

Si desea habilitar el diseño dinámico, no puede limitarse a llamar a este método: también debe proporcionar información de diseño dinámico que especifique cómo responden los controles de la ventana a los cambios de tamaño. Puede especificar esta información en el editor de recursos o mediante programación para cada control. Consulte Diseño dinámico.

CWnd::EnableD2DSupport

Habilita o deshabilita la compatibilidad D2D de ventana. Llame a este método antes de que se inicialice la ventana principal.

void EnableD2DSupport(
    BOOL bEnable = TRUE,
    BOOL bUseDCRenderTarget = FALSE);

Parámetros

bEnable
Especifica si se debe activar o desactivar la compatibilidad D2D.

bUseDCRenderTarget
Especifica si se utiliza el destino de representación Contexto de dispositivo (DC), CDCRenderTarget. En el caso de FALSE, se utiliza CHwndRenderTarget.

CWnd::EnableScrollBar

Habilita o deshabilita una o ambas flechas de una barra de desplazamiento.

BOOL EnableScrollBar(
    int nSBFlags,
    UINT nArrowFlags = ESB_ENABLE_BOTH);

Parámetros

nSBFlags
Especifica el tipo de barra de desplazamiento. Puede tener uno de los siguientes valores:

  • SB_BOTH Habilita o deshabilita las flechas de las barras de desplazamiento horizontal y vertical asociadas a la ventana.

  • SB_HORZ Habilita o deshabilita las flechas de la barra de desplazamiento horizontal asociada a la ventana.

  • SB_VERT Habilita o deshabilita las flechas de la barra de desplazamiento vertical asociada a la ventana.

nArrowFlags
Especifica si las flechas de la barra de desplazamiento están habilitadas o deshabilitadas y qué flechas están habilitadas o deshabilitadas. Puede tener uno de los siguientes valores:

  • ESB_ENABLE_BOTH Habilita ambas flechas en una barra de desplazamiento (predeterminado).

  • ESB_DISABLE_LTUP Deshabilita la flecha izquierda de una barra de desplazamiento horizontal o la flecha arriba de una barra de desplazamiento vertical.

  • ESB_DISABLE_RTDN Deshabilita la flecha derecha de una barra de desplazamiento horizontal o la flecha hacia abajo de una barra de desplazamiento vertical.

  • ESB_DISABLE_BOTH Deshabilita ambas flechas de una barra de desplazamiento.

Valor devuelto

Distinto de cero si las flechas están habilitadas o deshabilitadas según lo especificado. De lo contrario, es 0, lo que indica que las flechas ya están en el estado solicitado o que se ha producido un error.

CWnd::EnableScrollBarCtrl

Habilita o deshabilita la barra de desplazamiento de esta ventana.

void EnableScrollBarCtrl(
    int nBar,
    BOOL bEnable = TRUE);

Parámetros

nBar
El identificador de barra de desplazamiento.

bEnable
Especifica si la barra de desplazamiento se va a habilitar o deshabilitar.

Comentarios

Si la ventana tiene un control de barra de desplazamiento relacionado, se usa esa barra de desplazamiento; de lo contrario, se usa la propia barra de desplazamiento de la ventana.

CWnd::EnableToolTips

Habilita sugerencias de herramientas para la ventana especificada.

BOOL EnableToolTips(BOOL bEnable = TRUE);

Parámetros

bEnable
Especifica si el control de información sobre herramientas está habilitado o deshabilitado. TRUE habilita el control; FALSE deshabilita el control.

Valor devuelto

TRUE si las sugerencias de herramientas están habilitadas; de lo contrario, FALSE.

Comentarios

Invalide OnToolHitTest para proporcionar la estructura o los structs TOOLINFO para la ventana.

Nota:

Algunas ventanas, como CToolBar, proporcionan una implementación integrada de OnToolHitTest.

Consulte TOOLINFO de Windows SDK para obtener más información sobre esta estructura.

Simplemente llamar a EnableToolTips no es suficiente para mostrar sugerencias de herramientas para los controles secundarios, a menos que la ventana primaria se derive de CFrameWnd. Esto se debe a que CFrameWnd proporciona un controlador predeterminado para la notificación TTN_NEEDTEXT. Si la ventana primaria no se deriva de CFrameWnd, es decir, si es un cuadro de diálogo o una vista de formulario, las sugerencias de herramientas para los controles secundarios no se mostrarán correctamente, a menos que proporcione un controlador para la notificación de información sobre herramientas TTN_NEEDTEXT. Consulte Sugerencias sobre herramientas.

Las sugerencias de herramientas predeterminadas para las ventanas proporcionadas por EnableToolTips no tienen texto asociado a ellas. Para recuperar texto de la información sobre herramientas que se va a mostrar, la notificación TTN_NEEDTEXT se envía a la ventana primaria del control de información sobre herramientas justo antes de que se muestre la ventana de información sobre herramientas. Si no hay ningún controlador para que este mensaje asigne algún valor al miembro pszText de la estructura TOOLTIPTEXT, no se mostrará ningún texto para la información sobre herramientas.

Ejemplo

// 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

Habilita o deshabilita la información sobre herramientas de seguimiento.

BOOL EnableTrackingToolTips(BOOL bEnable = TRUE);

Parámetros

bEnable
Especifica si las sugerencias de herramientas de seguimiento están habilitadas o deshabilitadas. Si este parámetro es TRUE, se habilitarán las sugerencias de herramientas de seguimiento. Si este parámetro es FALSE, se deshabilitarán las sugerencias de la herramienta de seguimiento.

Valor devuelto

Indica el estado antes de llamar a la función miembro EnableWindow. El valor devuelto es distinto de cero si la ventana se ha deshabilitado previamente. El valor devuelto es 0 si la ventana se ha habilitado previamente o se ha producido un error.

Comentarios

Las sugerencias de herramientas de seguimiento son ventanas de información sobre herramientas que se pueden colocar dinámicamente en la pantalla. Al actualizar rápidamente la posición, la ventana de información sobre herramientas parece moverse suavemente, o «deslizarse». Esta funcionalidad puede ser útil si necesita que el texto de información sobre herramientas siga la posición del puntero a medida que se mueve.

CWnd::EnableWindow

Habilita o deshabilita la entrada de mouse y de teclado.

BOOL EnableWindow(BOOL bEnable = TRUE);

Parámetros

bEnable
Especifica si la ventana dada se va a habilitar o deshabilitar. Si este parámetro es TRUE, se habilitará la ventana. Si este parámetro es FALSE, se deshabilitará la ventana.

Valor devuelto

Indica el estado antes de llamar a la función miembro EnableWindow. El valor devuelto es distinto de cero si la ventana se ha deshabilitado previamente. El valor devuelto es 0 si la ventana se ha habilitado previamente o se ha producido un error.

Comentarios

Cuando la entrada está deshabilitada, las entradas como los clics del mouse y las pulsaciones de tecla se ignoran. Cuando la entrada está habilitada, la ventana procesa toda la entrada.

Si el estado habilitado cambia, el mensaje WM_ENABLE se envía antes de que esta función devuelva un valor.

Si está deshabilitado, todas las ventanas secundarias están deshabilitadas implícitamente, aunque no se envían mensajes WM_ENABLE.

Para poder activar una ventana, se debe habilitarla antes. Por ejemplo, si una aplicación muestra un cuadro de diálogo no modal y ha deshabilitado su ventana principal, la ventana principal debe estar habilitada antes de que se destruya el cuadro de diálogo. De lo contrario, otra ventana obtendrá el foco de entrada y se activará. Si se deshabilita una ventana secundaria, Windows la ignora cuando intenta determinar qué ventana debe recibir mensajes del mouse.

De forma predeterminada, se habilita una ventana cuando se crea. Una aplicación puede especificar el estilo WS_DISABLED en la función miembro Create o CreateEx para crear una ventana que está deshabilitada inicialmente. Una vez creada una ventana, una aplicación también puede usar la función miembro EnableWindow para habilitar o deshabilitar la ventana.

Una aplicación puede usar esta función para habilitar o deshabilitar un control en un cuadro de diálogo. Un control deshabilitado no puede recibir el foco de entrada y ningún usuario puede acceder a él.

Ejemplo

//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

Finaliza una llamada a RunModalLoop.

virtual void EndModalLoop(int nResult);

Parámetros

nResult
Contiene el valor que se va a devolver al autor de la llamada a RunModalLoop.

Comentarios

El parámetro nResult se propaga al valor devuelto de RunModalLoop.

CWnd::EndModalState

Llame a esta función miembro para cambiar una ventana marco de modal a no modal.

virtual void EndModalState();

CWnd::EndPaint

Marca el final de la pintura en la ventana especificada.

void EndPaint(LPPAINTSTRUCT lpPaint);

Parámetros

lpPaint
Apunta a una estructura PAINTSTRUCT que contiene la información de pintura recuperada por la función miembro BeginPaint.

Comentarios

La función miembro EndPaint es necesaria para cada llamada a la función miembro BeginPaint, pero solo una vez que se haya completado la pintura.

Si la función miembro BeginPaint oculta el cursor de inserción, EndPaint restaura el cursor de inserción en la pantalla.

Ejemplo

Vea el ejemplo de CWnd::BeginPaint.

CWnd::ExecuteDlgInit

Inicia un recurso de cuadro de diálogo.

BOOL ExecuteDlgInit(LPCTSTR lpszResourceName);
BOOL ExecuteDlgInit(LPVOID lpResource);

Parámetros

lpszResourceName
Un puntero a una cadena terminada en NULL que especifica el nombre del recurso.

lpResource
Un puntero a un recurso.

Valor devuelto

TRUE si se ejecuta un recurso de diálogo; de lo contrario, FALSE.

Comentarios

ExecuteDlgInit usará recursos enlazados al módulo en ejecución o recursos de otros orígenes. Para ello, ExecuteDlgInit busca un identificador de recursos mediante una llamada a AfxFindResourceHandle. Si la aplicación MFC no usa el archivo DLL compartido (MFCx0[U][D].DLL), AfxFindResourceHandle llama a AfxGetResourceHandle, que devuelve el identificador de recursos actual para el ejecutable. Si la aplicación MFC usa MFCx0[U][D].DLL, AfxFindResourceHandle recorre la lista de objetos CDynLinkLibrary de archivos DLL de extensión compartida y MFC para buscar el identificador de recursos correcto.

CWnd::FilterToolTipMessage

Lo llama el marco para mostrar mensajes de información sobre herramientas.

void FilterToolTipMessage(MSG* pMsg);

Parámetros

pMsg
Un puntero al mensaje de información sobre herramientas.

Comentarios

En la mayoría de las aplicaciones MFC, el marco llama a este método desde PreTranslateMessage y EnableToolTips, y no es necesario que lo llame usted mismo.

Sin embargo, en determinadas aplicaciones, por ejemplo, algunos controles ActiveX, es posible que el marco no invoque estos métodos, y usted tendrá que llamar a FilterToolTipMessage. Para obtener más información, consulte Métodos de creación de sugerencias de herramientas.

CWnd::FindWindow

Devuelve el nivel superior CWnd cuya clase de ventana es determinada por lpszClassName y cuyo nombre de ventana, o título, es determinado por lpszWindowName.

static CWnd* PASCAL FindWindow(
    LPCTSTR lpszClassName,
    LPCTSTR lpszWindowName);

Parámetros

lpszClassName
Apunta a una cadena terminada en NULL que especifica el nombre de clase de la ventana (una estructura WNDCLASS). Si lpClassName es NULL, todos los nombres de clase coinciden.

lpszWindowName
Apunta a una cadena terminada en NULL que especifica el nombre de la ventana (el título de la ventana). Si lpWindowName es NULL, todos los nombres de ventana coinciden.

Valor devuelto

Identifica la ventana que tiene el nombre de clase y el nombre de la ventana especificados. Es NULL si no se encuentra ninguna ventana de este tipo.

El CWnd* que se devuelve puede ser temporal y no debe almacenarse para su uso posterior.

Comentarios

Esta función no busca ventanas secundarias.

Ejemplo

// 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 el objeto de ventana cuyo nombre de clase y nombre de ventana coinciden con las cadenas especificadas.

static CWnd* FindWindowEx(
    HWND hwndParent,
    HWND hwndChildAfter,
    LPCTSTR lpszClass,
    LPCTSTR lpszWindow);

Parámetros

hwndParent
El identificador de la ventana primaria cuyas ventanas secundarias se van a buscar.

hwndChildAfter
El identificador de una ventana secundaria. La búsqueda comienza con la siguiente ventana secundaria en el orden Z. La ventana secundaria debe ser una ventana secundaria directa de hwndParent, y no simplemente una ventana descendiente.

lpszClass
Un puntero a una cadena terminada en NULL que especifica el nombre de clase o un átomo de clase creado por una llamada anterior al RegisterClass o RegisterClassEx.

lpszWindow
Apunta a una cadena terminada en NULL que especifica el nombre de la ventana (el título de la ventana). Si este parámetro es NULL, todos los nombres de ventana coinciden.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es un puntero al objeto de ventana que tiene los nombres de ventana y clase especificados. Si la función produce un error, el valor devuelto es NULL.

Comentarios

Esta función miembro emula la funcionalidad de la función FindWindowEx, tal y como se describe en Windows SDK.

CWnd::FlashWindow

Muestra un destello en la ventana una vez.

BOOL FlashWindow(BOOL bInvert);

Parámetros

bInvert
Especifica si CWnd se va a mostrar un destello o se va a devolver a su estado original. El CWnd muestra destellos en uno y otro estado si bInvert es TRUE. Si bInvert es FALSE, la ventana se devuelve a su estado original (activa o inactiva).

Valor devuelto

Distinto de cero si la ventana estaba activa antes de la llamada a la función miembro FlashWindow; en caso contrario, 0.

Comentarios

Para los destellos sucesivos, cree un temporizador del sistema y llame repetidamente a FlashWindow. Mostrar destellos en CWnd significa cambiar la apariencia de su barra de título como si el CWnd estuviera cambiando de estado inactivo a activo, o viceversa. (Una barra de título inactiva cambia a barra de título activa; una barra de título activa cambia a barra de título inactiva).

Normalmente, se muestra un destello en una ventana para informar al usuario de que requiere atención, pero que actualmente no tiene el foco de entrada.

El parámetro bInvert debe ser FALSE solo cuando la ventana obtenga el foco de entrada, y ya no mostrará destellos; debe ser TRUE en llamadas sucesivas mientras espera a obtener el foco de entrada.

Esta función siempre devuelve valores distintos de cero para ventanas minimizadas. Si la ventana está minimizada, FlashWindow mostrará un destello en el icono de la ventana; bInvert se ignora en ventanas minimizadas.

Ejemplo

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

Muestra un destello en la ventana una vez.

BOOL FlashWindowEx(
    DWORD dwFlags,
    UINT uCount,
    DWORD dwTimeout);

Parámetros

*dwFlags*
Especifica el estado de destello. Para obtener una lista completa de los valores, consulte FLASHWINFO.

uCount
Especifica el número de veces que se va a haber destellos en la ventana.

dwTimeout
Especifica la velocidad, en milisegundos, a la que se producirán los destellos en la ventana. Si dwTimeout es cero, la función usa la velocidad de parpadeo predeterminada del cursor.

Valor devuelto

El valor devuelto especifica el estado de la ventana antes de la llamada a la función FlashWindowEx. Si el título de la ventana se ha dibujado como activo antes de la llamada, el valor devuelto es distinto de cero. De lo contrario, el valor devuelto es cero.

Comentarios

Este método emula la funcionalidad de la función FlashWindowEx, tal y como se describe en Windows SDK.

CWnd::FromHandle

Devuelve un puntero a un objeto CWnd cuando se especifica un identificador a una ventana. Si un objeto CWnd no está asociado al identificador, se creará y asociará un objeto CWnd temporal.

static CWnd* PASCAL FromHandle(HWND hWnd);

Parámetros

hWnd
Un HWND de una ventana de Windows.

Valor devuelto

Devuelve un puntero a un objeto CWnd cuando se especifica un identificador a una ventana. Si un objeto CWnd no está asociado al identificador, se creará y asociará un objeto CWnd temporal.

El puntero puede ser temporal y no se debe almacenar para su uso posterior.

CWnd::FromHandlePermanent

Devuelve un puntero a un objeto CWnd cuando se especifica un identificador a una ventana.

static CWnd* PASCAL FromHandlePermanent(HWND hWnd);

Parámetros

hWnd
Un HWND de una ventana de Windows.

Valor devuelto

Puntero a un objeto CWnd .

Comentarios

Si un objeto CWnd no está asociado al identificador, se devuelve NULL.

Esta función, a diferencia de FromHandle, no crea objetos temporales.

CWnd::get_accChild

El marco llama a este método para recuperar la dirección de una interfaz IDispatch del elemento secundario especificado.

virtual HRESULT get_accChild(
    VARIANT varChild,
    IDispatch** ppdispChild);

Parámetros

varChild
Identifica el elemento secundario cuya interfaz IDispatch se va a recuperar.

ppdispChild
Recibe la dirección de la interfaz IDispatch del objeto secundario.

Valor devuelto

Devuelve S_OK si se ejecuta correctamente, y un código de error COM en caso de error. Consulte Valores devueltos en IAccessible::get_accChild de Windows SDK.

Comentarios

Esta función forma parte de la compatibilidad con Active Accessibility de MFC.

Invalide esta función en la clase derivada de CWnd si tiene elementos de interfaz de usuario no en ventana (distintos de los controles ActiveX sin ventana, que controla MFC).

Para más información, consulte IAccessible::get_accChild en Windows SDK.

CWnd::get_accChildCount

El marco llama a este método para recuperar el número de elementos secundarios que pertenecen a este objeto.

virtual HRESULT get_accChildCount(long* pcountChildren);

Parámetros

pcountChildren
El número de elementos secundarios.

Valor devuelto

Devuelve S_OK si se ejecuta correctamente, y un código de error COM en caso de error. Consulte Valores devueltos en IAccessible::get_accChildCount de Windows SDK.

Comentarios

Esta función forma parte de la compatibilidad con Active Accessibility de MFC.

Invalide esta función en la clase derivada de CWnd si tiene elementos de interfaz de usuario no en ventana (distintos de los controles ActiveX sin ventana, que controla MFC). Llame a la versión de la clase base y agregue los elementos secundarios no en ventana.

Para más información, consulte IAccessible::get_accChildCount en Windows SDK.

CWnd::get_accDefaultAction

El marco llama a este método para recuperar una cadena que describe la acción predeterminada del objeto.

virtual HRESULT get_accDefaultAction(
    VARIANT varChild,
    BSTR* pszDefaultAction);

Parámetros

varChild
Especifica si la acción predeterminada que se va a recuperar es la del objeto o de uno de los elementos secundarios del objeto. Este parámetro puede ser CHILDID_SELF (para obtener información sobre el objeto) o un Id. secundario (para obtener información sobre el elemento secundario del objeto).

pszDefaultAction
Dirección de un BSTR que recibe una cadena localizada que describe la acción predeterminada para el objeto especificado, o NULL si este objeto no tiene ninguna acción predeterminada.

Valor devuelto

Devuelve S_OK si se ejecuta correctamente, y un código de error COM en caso de error. Consulte Valores devueltos en IAccessible::get_accDefaultAction de Windows SDK.

Comentarios

Esta función forma parte de la compatibilidad con Active Accessibility de MFC.

Invalide esta función en la clase derivada de CWnd para describir la acción predeterminada del objeto.

Para más información, consulte IAccessible::get_accDefaultAction en Windows SDK.

CWnd::get_accDescription

El marco llama a este método para recuperar una cadena que describe la apariencia visual del objeto especificado.

virtual HRESULT get_accDescription(
    VARIANT varChild,
    BSTR* pszDescription);

Parámetros

varChild
Especifica si la ubicación que se debe recuperar es la del objeto o de uno de los elementos secundarios del objeto. Este parámetro puede ser CHILDID_SELF (para obtener información sobre el objeto) o un Id. secundario (para obtener información sobre el elemento secundario del objeto).

pszDescription
Dirección de un objeto BSTR que recibe una cadena localizada que describe el objeto especificado, o NULL si no hay ninguna descripción disponible para este objeto.

Valor devuelto

Devuelve S_OK si se ejecuta correctamente, y un código de error COM en caso de error. Consulte Valores devueltos en IAccessible::get_accDescription de Windows SDK.

Comentarios

Esta función forma parte de la compatibilidad con Active Accessibility de MFC.

Invalide esta función en la clase derivada de CWnd para describir el objeto. Llame a la versión de la clase base y agregue la descripción.

Para más información, consulte IAccessible::get_accDescription en Windows SDK.

CWnd::get_accFocus

El marco llama a este método para recuperar el objeto que tiene el foco de teclado.

virtual HRESULT get_accFocus(VARIANT* pvarChild);

Parámetros

pvarChild
Recibe información sobre el objeto que tiene el foco. Consulte pvarID en IAccessible::get_accFocus de Windows SDK.

Valor devuelto

Devuelve S_OK si se ejecuta correctamente, y un código de error COM en caso de error. Consulte Valores devueltos en IAccessible::get_accFocus de Windows SDK.

Comentarios

Esta función forma parte de la compatibilidad con Active Accessibility de MFC.

Invalide esta función en la clase derivada de CWnd si tiene elementos de interfaz de usuario no en ventana (distintos de los controles ActiveX sin ventana, que controla MFC).

Para más información, consulte IAccessible::get_accFocus en Windows SDK.

CWnd::get_accHelp

El marco llama a este método para recuperar la cadena de propiedad Help de un objeto.

virtual HRESULT get_accHelp(
    VARIANT varChild,
    BSTR* pszHelp);

Parámetros

varChild
Especifica si la información de ayuda que se debe recuperar es la del objeto o de uno de los elementos secundarios del objeto. Este parámetro puede ser CHILDID_SELF (para obtener información sobre el objeto) o un Id. secundario (para obtener información sobre el elemento secundario del objeto).

pszHelp
Dirección de un BSTR que recibe la cadena localizada que contiene la información de ayuda para el objeto especificado, o NULL si no hay información de ayuda disponible.

Valor devuelto

Devuelve S_OK si se ejecuta correctamente, y un código de error COM en caso de error. Consulte Valores devueltos en IAccessible::get_accHelp de Windows SDK.

Comentarios

Esta función forma parte de la compatibilidad con Active Accessibility de MFC.

Invalide esta función en la clase derivada de CWnd para proporcionar texto de ayuda para el objeto.

Para más información, consulte IAccessible::get_accHelp en Windows SDK.

CWnd::get_accHelpTopic

El marco lo llama para recuperar la ruta de acceso completa del archivo WinHelp asociado al objeto especificado y el identificador del tema correspondiente dentro de ese archivo.

virtual HRESULT get_accHelpTopic(
    BSTR* pszHelpFile,
    VARIANT varChild,
    long* pidTopic);

Parámetros

pszHelpFile
La dirección de un objeto BSTR que recibe la ruta de acceso completa del archivo WinHelp asociado al objeto especificado, si existiera.

varChild
Especifica si el tema de Ayuda que se debe recuperar es el del objeto o de uno de los elementos secundarios del objeto. Este parámetro puede ser CHILDID_SELF (para obtener un tema de Ayuda para el objeto) o un Id. secundario (para obtener un tema de Ayuda para uno de los elementos secundarios del objeto).

pidTopic
Identifica el tema del archivo de Ayuda asociado al objeto especificado. Consulte pidTopic en IAccessible::get_accHelpTopic de Windows SDK.

Valor devuelto

Devuelve S_OK si se ejecuta correctamente, y un código de error COM en caso de error. Consulte Valores devueltos en IAccessible::get_accHelpTopic de Windows SDK.

Comentarios

Esta función forma parte de la compatibilidad con Active Accessibility de MFC.

Invalide esta función en la clase derivada de CWnd para proporcionar información de ayuda sobre el objeto.

Para más información, consulte IAccessible::get_accHelpTopic en Windows SDK.

CWnd::get_accKeyboardShortcut

El marco llama a este método para recuperar la tecla de método abreviado o la tecla de acceso del objeto especificado.

virtual HRESULT get_accKeyboardShortcut(
    VARIANT varChild,
    BSTR* pszKeyboardShortcut);

Parámetros

varChild
Especifica si el método abreviado de teclado que se debe recuperar es el del objeto o de uno de los elementos secundarios del objeto. Este parámetro puede ser CHILDID_SELF (para obtener información sobre el objeto) o un Id. secundario (para obtener información sobre el elemento secundario del objeto).

pszKeyboardShortcut
Dirección de un BSTR que recibe una cadena localizada que identifica el método abreviado de teclado, o NULL si ningún método abreviado de teclado está asociado con el objeto especificado.

Valor devuelto

Devuelve S_OK si se ejecuta correctamente, y un código de error COM en caso de error. Consulte Valores devueltos en IAccessible::get_accKeyboardShortcut de Windows SDK.

Comentarios

Esta función forma parte de la compatibilidad de Active Accessibility de MFC.

Invalide esta función en la clase derivada de CWnd para identificar el método abreviado de teclado para el objeto.

Para más información, consulte IAccessible::get_accKeyboardShortcut en Windows SDK.

CWnd::get_accName

El marco llama a este método para recuperar el nombre del objeto especificado.

virtual HRESULT get_accName(
    VARIANT varChild,
    BSTR* pszName);

Parámetros

varChild
Especifica si el nombre que se debe recuperar es el del objeto o de uno de los elementos secundarios del objeto. Este parámetro puede ser CHILDID_SELF (para obtener información sobre el objeto) o un Id. secundario (para obtener información sobre el elemento secundario del objeto).

pszName
Dirección de un BSTR que recibe una cadena que contiene el nombre del objeto especificado.

Valor devuelto

Devuelve S_OK si se ejecuta correctamente, y un código de error COM en caso de error. Consulte Valores devueltos en IAccessible::get_accName de Windows SDK.

Comentarios

Esta función forma parte de la compatibilidad con Active Accessibility de MFC.

Invalide esta función en la clase derivada de CWnd para devolver el nombre del objeto.

Para más información, consulte IAccessible::get_accName en Windows SDK.

CWnd::get_accParent

El marco llama a este método para recuperar la interfaz IDispatch del elemento principal del objeto.

virtual HRESULT get_accParent(IDispatch** ppdispParent);

Parámetros

ppdispParent
Recibe la dirección de la interfaz IDispatch del objeto primario. La variable se establece en NULL si no existe ningún elemento primario o si el elemento secundario no puede tener acceso a su elemento primario.

Valor devuelto

Devuelve S_OK si se ejecuta correctamente, y un código de error COM en caso de error. Consulte Valores devueltos en IAccessible::get_accParent de Windows SDK.

Comentarios

Esta función forma parte de la compatibilidad con Active Accessibility de MFC.

En la mayoría de los casos no es necesario invalidar esta función.

Para más información, consulte IAccessible::get_accParent en Windows SDK.

CWnd::get_accRole

El marco llama a este método para recuperar información que describe el rol del objeto especificado.

virtual HRESULT get_accRole(
    VARIANT varChild,
    VARIANT* pvarRole);

Parámetros

varChild
Especifica si la información de rol que se debe recuperar es la del objeto o de uno de los elementos secundarios del objeto. Este parámetro puede ser CHILDID_SELF (para obtener información sobre el objeto) o un Id. secundario (para obtener información sobre el elemento secundario del objeto).

pvarRole
Recibe la información del rol. Consulte pvarRole en IAccessible::get_accRole de Windows SDK.

Valor devuelto

Devuelve S_OK si se ejecuta correctamente, y un código de error COM en caso de error. Consulte Valores devueltos en IAccessible::get_accRole de Windows SDK.

Comentarios

Esta función forma parte de la compatibilidad con Active Accessibility de MFC.

Invalide esta función en la clase derivada de CWnd si tiene elementos de interfaz de usuario no en ventana (distintos de los controles ActiveX sin ventana, que controla MFC).

Para más información, consulte IAccessible::get_accRole en Windows SDK.

CWnd::get_accSelection

El marco llama a este método para recuperar el elemento secundario seleccionado de este objeto.

virtual HRESULT get_accSelection(VARIANT* pvarChildren);

Parámetros

pvarChildren
Recibe información sobre qué elementos secundarios se han seleccionado. Consulte pvarChildren en IAccessible::get_accSelection de Windows SDK.

Valor devuelto

Devuelve S_OK si se ejecuta correctamente, y un código de error COM en caso de error. Consulte Valores devueltos en IAccessible::get_accSelection de Windows SDK.

Comentarios

Esta función forma parte de la compatibilidad con Active Accessibility de MFC.

Invalide esta función en la clase derivada de CWnd si tiene elementos de interfaz de usuario no en ventana (distintos de los controles ActiveX sin ventana, que controla MFC).

Para más información, consulte IAccessible::get_accSelection en Windows SDK.

CWnd::get_accState

El marco llama a este método para recuperar el estado actual del objeto especificado.

virtual HRESULT get_accState(
    VARIANT varChild,
    VARIANT* pvarState);

Parámetros

varChild
Especifica si la información de estado que se debe recuperar es la del objeto o de uno de los elementos secundarios del objeto. Este parámetro puede ser CHILDID_SELF (para obtener información sobre el objeto) o un Id. secundario (para obtener información sobre el elemento secundario del objeto).

pvarState
Recibe información sobre el estado del objeto. Consulte pvarState en IAccessible::get_accState de Windows SDK.

Valor devuelto

Devuelve S_OK si se ejecuta correctamente, y un código de error COM en caso de error. Consulte Valores devueltos en IAccessible::get_accState de Windows SDK.

Comentarios

Esta función forma parte de la compatibilidad con Active Accessibility de MFC.

Invalide esta función en la clase derivada de CWnd si tiene elementos de interfaz de usuario no en ventana (distintos de los controles ActiveX sin ventana, que controla MFC).

Para más información, consulte IAccessible::get_accState en Windows SDK.

CWnd::get_accValue

El marco llama a este método para recuperar el valor del objeto especificado.

virtual HRESULT get_accValue(
    VARIANT varChild,
    BSTR* pszValue);

Parámetros

varChild
Especifica si la información de valor que se debe recuperar es la del objeto o de uno de los elementos secundarios del objeto. Este parámetro puede ser CHILDID_SELF (para obtener información sobre el objeto) o un Id. secundario (para obtener información sobre el elemento secundario del objeto).

pszValue
Dirección del BSTR que recibe una cadena localizada que contiene el valor actual del objeto.

Valor devuelto

Devuelve S_OK si se ejecuta correctamente, y un código de error COM en caso de error. Consulte Valores devueltos en IAccessible::get_accValue de Windows SDK.

Comentarios

Esta función forma parte de la compatibilidad con Active Accessibility de MFC.

Invalide esta función en la clase derivada de CWnd si tiene elementos de interfaz de usuario no en ventana (distintos de los controles ActiveX sin ventana, que controla MFC).

Para más información, consulte IAccessible::get_accValue en Windows SDK.

CWnd::GetActiveWindow

Recupera un puntero a la ventana activa.

static CWnd* PASCAL GetActiveWindow();

Valor devuelto

La ventana activa o NULL si ninguna ventana estaba activa en el momento de la llamada. El puntero puede ser temporal y no se debe almacenar para su uso posterior.

Comentarios

La ventana activa es la ventana que tiene el foco de entrada actual o la ventana que se ha activado explícitamente mediante la función miembro SetActiveWindow.

CWnd::GetAncestor

Recupera el objeto de ventana antecesor de la ventana especificada.

CWnd* GetAncestor(UINT gaFlags) const;

Parámetros

gaFlags
Especifica el antecesor que se va a recuperar. Para obtener una lista completa de valores posibles, consulte GetAncestor.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es un puntero al objeto de ventana antecesor. Si la función produce un error, el valor devuelto es NULL.

Comentarios

Esta función miembro emula la funcionalidad de la función GetAncestor, tal y como se describe en Windows SDK.

CWnd::GetCapture

Recupera la ventana que tiene la captura del mouse.

static CWnd* PASCAL GetCapture();

Valor devuelto

Identifica la ventana que tiene la captura del mouse. Es NULL si ninguna ventana tiene la captura del mouse.

El valor que se devuelve puede ser temporal y no debe almacenarse para su uso posterior.

Comentarios

Solo una ventana tiene la captura del mouse en un momento dado. Una ventana recibe la captura del mouse cuando se llama a la función miembro SetCapture. Esta ventana recibe la entrada del mouse tanto si el cursor está dentro de sus bordes como si no.

CWnd::GetCaretPos

Recupera las coordenadas de cliente de la posición actual del cursor de inserción y las devuelve como un CPoint.

static CPoint PASCAL GetCaretPos();

Valor devuelto

Objeto CPoint que contiene las coordenadas de la posición del cursor de inserción.

Comentarios

La posición del cursor de inserción se asigna en las coordenadas de cliente de la ventana CWnd.

CWnd::GetCheckedRadioButton

Recupera el Id. del botón de radio actualmente activado en el grupo especificado.

int GetCheckedRadioButton(
    int nIDFirstButton,
    int nIDLastButton);

Parámetros

nIDFirstButton
Especifica el identificador entero del primer botón de radio del grupo.

nIDLastButton
Especifica el identificador entero del último botón de radio del grupo.

Valor devuelto

Id. del botón de radio activado, o 0 si no se selecciona ninguno.

CWnd::GetClientRect

Copia las coordenadas de cliente del área cliente CWnd en la estructura a la que apunta lpRect.

void GetClientRect(LPRECT lpRect) const;

Parámetros

lpRect
Apunta a una estructura RECT o un objeto CRect para recibir las coordenadas del cliente. Los miembros left y top serán 0. Los miembros right y bottom contendrán el ancho y el alto de la ventana.

Comentarios

Las coordenadas de cliente especifican las esquinas superior izquierda e inferior derecha del área cliente. Dado que las coordenadas de cliente son relativas a las esquinas superiores izquierdas del área cliente CWnd, las coordenadas de la esquina superior izquierda son (0,0).

Ejemplo

Vea el ejemplo de CWnd::IsIconic.

CWnd::GetClipboardOwner

Recupera el propietario actual del Portapapeles.

static CWnd* PASCAL GetClipboardOwner();

Valor devuelto

Identifica la ventana de propietario del Portapapeles si la función se ejecuta correctamente. De lo contrario, es NULL.

El puntero devuelto puede ser temporal y no se debe almacenar para su uso posterior.

Comentarios

El Portapapeles todavía puede contener datos aunque no tenga un propietario.

CWnd::GetClipboardViewer

Recupera la primera ventana de la cadena de visor del Portapapeles.

static CWnd* PASCAL GetClipboardViewer();

Valor devuelto

Identifica la ventana actualmente responsable de mostrar el Portapapeles si se ejecuta correctamente; de lo contrario, NULL (por ejemplo, si no hay ningún visor).

El puntero devuelto puede ser temporal y no se debe almacenar para su uso posterior.

CWnd::GetControlUnknown

Llame a esta función miembro para recuperar un puntero a un control OLE desconocido.

LPUNKNOWN GetControlUnknown();

Valor devuelto

Un puntero a la interfaz IUnknown del control OLE representado por este objeto CWnd. Si este objeto no representa un control OLE, el valor devuelto es NULL.

Comentarios

No debe liberar este puntero IUnknown. Normalmente, se usaría para obtener una interfaz específica del control.

El puntero de interfaz devuelto por GetControlUnknown no se cuenta por referencia. No llame a IUnknown::Release en el puntero a menos que haya llamado previamente a IUnknown::AddRef en él.

Ejemplo

// 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

Devuelve un puntero al mensaje que esta ventana está procesando actualmente. Solo es necesario llamarlo cuando se encuentra en una función miembro de controlador de mensajes Mensajesactivados.

static const MSG* PASCAL GetCurrentMessage();

Valor devuelto

Devuelve un puntero a la estructura MSG que contiene el mensaje que la ventana está procesando actualmente. Solo se debe llamar cuando se encuentra en un controlador de Mensajesactivados.

Ejemplo

Vea el ejemplo de CMDIFrameWnd::MDICascade.

CWnd::GetDC

Recupera un puntero a un contexto de dispositivo común, de clase o privado para el área cliente según el estilo de clase especificado por el CWnd.

CDC* GetDC();

Valor devuelto

Identifica el contexto del dispositivo para el área cliente CWnd si se ejecuta correctamente; de lo contrario, el valor devuelto es NULL. El puntero puede ser temporal y no se debe almacenar para su uso posterior.

Comentarios

Para los contextos de dispositivo comunes, GetDC asigna atributos predeterminados al contexto cada vez que se recupera. En el caso de los contextos privados y de clase, GetDC deja los atributos asignados previamente sin cambios. El contexto del dispositivo se puede usar en las funciones de interfaz de dispositivo gráfico (GDI) subsiguientes para dibujar en el área cliente.

A menos que el contexto del dispositivo pertenezca a una clase de ventana, se debe llamar a la función miembro ReleaseDC para liberar el contexto después de pintar.

La función miembro GetDC devuelve un contexto de dispositivo que pertenece a la clase CWnd si CS_CLASSDC, CS_OWNDC o CS_PARENTDC se ha especificado como un estilo en la estructura WNDCLASS al registrar la clase.

CWnd::GetDCEx

Recupera el identificador de un contexto de dispositivo para la ventana CWnd.

CDC* GetDCEx(
    CRgn* prgnClip,
    DWORD flags);

Parámetros

prgnClip
Identifica una región de recorte que se puede combinar con la región visible de la ventana de cliente.

flags
Puede tener uno de los siguientes valores preestablecidos:

  • DCX_CACHE Devuelve un contexto de dispositivo de la memoria caché en lugar de la ventana OWNDC o CLASSDC. Invalida CS_OWNDC y CS_CLASSDC.

  • DCX_CLIPCHILDREN Excluye las regiones visibles de todas las ventanas secundarias debajo de la ventana CWnd.

  • DCX_CLIPSIBLINGSExcluye las regiones visibles de todas las ventanas del mismo nivel encima de la ventana CWnd.

  • DCX_EXCLUDERGN Excluye la región de recorte identificada por prgnClip de la región visible del contexto de dispositivo devuelto.

  • DCX_INTERSECTRGN Se interseca con la región de recorte identificada por prgnClip dentro de la región visible del contexto de dispositivo devuelto.

  • DCX_LOCKWINDOWUPDATE Permite dibujar incluso si hay una llamada de LockWindowUpdate en vigor que, de lo contrario, excluiría esta ventana. Este valor se usa para dibujar durante el seguimiento.

  • DCX_PARENTCLIP Usa la región visible de la ventana primaria e ignora los bits de estilo WS_CLIPCHILDREN y WS_PARENTDC de la ventana primaria. Este valor establece el origen del contexto del dispositivo en la esquina superior izquierda de la ventana CWnd.

  • DCX_WINDOW Devuelve un contexto de dispositivo que corresponde al rectángulo de ventana en lugar de al rectángulo de cliente.

Valor devuelto

El contexto de dispositivo de la ventana especificada si la función se ejecuta correctamente; en caso contrario, NULL.

Comentarios

El contexto del dispositivo se puede usar en las funciones GDI subsiguientes para dibujar en el área cliente.

Esta función, que es una extensión de la función GetDC, proporciona a una aplicación más control sobre cómo se recorta, y si se recorta, un contexto de dispositivo para una ventana.

A menos que el contexto del dispositivo pertenezca a una clase de ventana, se debe llamar a la función ReleaseDC para liberar el contexto después de pintar. Dado que solo hay cinco contextos de dispositivo comunes disponibles en un momento dado, el error al liberar un contexto de dispositivo puede impedir que otras aplicaciones obtengan acceso a un contexto de dispositivo.

Para obtener un contexto de dispositivo almacenado en caché, una aplicación debe especificar DCX_CACHE. Si no se especifica DCX_CACHE y la ventana no es ni CS_OWNDC ni CS_CLASSDC, esta función devuelve NULL.

La función GetDCEx devuelve un contexto de dispositivo con características especiales si el estilo CS_CLASSDC, CS_OWNDC o CS_PARENTDC se ha especificado en la estructura WNDCLASS al registrar la clase.

Para obtener más información sobre estas características, consulte la descripción de la estructura WNDCLASS de Windows SDK.

CWnd::GetDCRenderTarget

Recupera el destino de representación (DC) del contexto de dispositivo de la ventana CWnd.

CDCRenderTarget* GetDCRenderTarget();

Valor devuelto

El destino de representación del contexto de dispositivo de la ventana especificada si la función se ejecuta correctamente; en caso contrario, NULL.

Comentarios

CWnd::GetDescendantWindow

Llame a esta función miembro para buscar la ventana descendiente especificada por el Id. dado.

CWnd* GetDescendantWindow(
    int nID,
    BOOL bOnlyPerm = FALSE) const;

Parámetros

nID
Especifica el identificador del control o la ventana secundaria que se va a recuperar.

bOnlyPerm
Especifica si la ventana que se va a devolver puede ser temporal. Si es TRUE, solo se puede devolver una ventana permanente; si es FALSE, la función puede devolver una ventana temporal. Para obtener más información sobre las ventanas temporales, consulte Nota técnica 3.

Valor devuelto

Un puntero a un objeto CWnd, o NULL si no se encuentra ninguna ventana secundaria.

Comentarios

Esta función miembro busca en todo el árbol de ventanas secundarias, no solo las ventanas que son elementos secundarios inmediatos.

CWnd::GetDesktopWindow

Devuelve la ventana de escritorio de Windows.

static CWnd* PASCAL GetDesktopWindow();

Valor devuelto

Identifica la ventana de escritorio de Windows. Este puntero puede ser temporal y no se debe almacenar para su uso posterior.

Comentarios

La ventana de escritorio cubre toda la pantalla y es el área sobre la que se pintan todos los iconos y otras ventanas.

CWnd::GetDlgCtrlID

Devuelve el valor de Id. de ventana o de control de cualquier ventana secundaria, no solo de un control en un cuadro de diálogo.

int GetDlgCtrlID() const;

Valor devuelto

El identificador numérico de la ventana secundaria CWnd si la función se ejecuta correctamente; en caso contrario, 0.

Comentarios

Puesto que las ventanas de nivel superior no tienen un valor de Id., el valor devuelto de esta función no es válido si CWnd es una ventana de nivel superior.

Ejemplo

Vea el ejemplo de CWnd::OnCtlColor.

CWnd::GetDlgItem

Recupera un puntero al control o a la ventana secundaria especificados en un cuadro de diálogo u otra ventana.

CWnd* GetDlgItem(int nID) const;

void GetDlgItem(
    int nID,
    HWND* phWnd) const;

Parámetros

nID
Especifica el identificador del control o la ventana secundaria que se va a recuperar.

phWnd
Un puntero a una ventana secundaria.

Valor devuelto

Un puntero al control especificado o a la ventana secundaria. Si no existe ningún control con el Id. entero proporcionado por el parámetro nID, el valor es NULL.

El puntero devuelto puede ser temporal y no se debe almacenar para su uso posterior.

Comentarios

El puntero devuelto normalmente se convierte en el tipo de control identificado por nID.

Ejemplo

// uses GetDlgItem to return a pointer to a user interface control
CEdit *pBoxOne;
pBoxOne = (CEdit*)GetDlgItem(IDC_MYEDIT);
GotoDlgCtrl(pBoxOne);

CWnd::GetDlgItemInt

Recupera el texto del control identificado por nID.

UINT GetDlgItemInt(
    int nID,
    BOOL* lpTrans = NULL,
    BOOL bSigned = TRUE) const;

Parámetros

nID
Especifica el identificador entero del control de cuadro de diálogo que se va a traducir.

lpTrans
Apunta a la variable booleana que va a recibir la marca traducida.

bSigned
Especifica si el valor que se va a recuperar tiene signo.

Valor devuelto

Especifica el valor traducido del texto del elemento del cuadro de diálogo. Dado que 0 es un valor devuelto válido, lpTrans se debe usar para detectar errores. Si se desea que un valor devuelto tenga signo, conviértalo a un tipo int.

La función devuelve 0 si el número traducido es mayor que INT_MAX (para números con signo) o UINT_MAX (para sin signo).

Cuando se producen errores, como encontrar caracteres no numéricos y superar el máximo anterior, GetDlgItemInt copia 0 en la ubicación a la que apunta lpTrans. Si no hay ningún error, lpTrans recibe un valor distinto de cero. Si lpTrans es NULL, GetDlgItemInt no muestra advertencias sobre los errores.

Comentarios

Convierte el texto del control especificado en el cuadro de diálogo especificado en un valor entero al quitar los espacios adicionales al principio del texto y convertir los dígitos decimales. Detiene la traducción cuando llega al final del texto o cuando encuentra cualquier carácter no numérico.

Si bSigned es TRUE, GetDlgItemInt comprueba si hay un signo menos (-) al principio del texto y convierte el texto en un número con signo. De lo contrario, crea un valor sin signo.

Envía un mensaje WM_GETTEXT al control.

CWnd::GetDlgItemText

Llame a esta función miembro para recuperar el título o el texto asociado a un control de un cuadro de diálogo.

int GetDlgItemText(
    int nID,
    LPTSTR lpStr,
    int nMaxCount) const;

int GetDlgItemText(
    int nID,
    CString& rString) const;

Parámetros

nID
Especifica el identificador entero del control cuyo título se va a recuperar.

lpStr
Apunta al búfer para recibir el título o el texto del control.

nMaxCount
Especifica la longitud máxima (en caracteres) de la cadena que se va a copiar en lpStr. Si la cadena es mayor que nMaxCount, se trunca.

rString
Referencia a .CString

Valor devuelto

Especifica el número de caracteres copiados en el búfer, sin incluir el carácter nulo de terminación. El valor es 0 si no se copia texto.

Comentarios

La función miembro GetDlgItemText copia el texto en la ubicación a la que apunta lpStr y devuelve un recuento del número de bytes que copia.

CWnd::GetDSCCursor

Llame a esta función miembro para recuperar un puntero al cursor subyacente definido por las propiedades SQL DataSource, UserName y Password del control de origen de datos.

IUnknown* GetDSCCursor();

Valor devuelto

Un puntero a un cursor definido por un control de origen de datos. MFC se encarga de llamar a AddRef para el puntero.

Comentarios

Use el puntero devuelto para establecer la propiedad ICursor de un control complejo enlazado a datos, como el control de cuadrícula enlazado a datos. Un control de origen de datos no se activará hasta que el primer control enlazado solicite su cursor. Esto puede ocurrir explícitamente mediante una llamada a GetDSCCursor o implícitamente mediante el administrador de enlaces de MFC. En cualquier caso, puede forzar que un control de origen de datos se active llamando a GetDSCCursor y, a continuación, llamando a Release en el puntero devuelto a IUnknown. La activación hará que el control de origen de datos intente conectarse al origen de datos subyacente. El puntero devuelto podría usarse en el contexto siguiente:

Ejemplo

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 puntero al objeto del administrador de diseño dinámico.

CMFCDynamicLayout* GetDynamicLayout();

Valor devuelto

Un puntero al objeto del administrador de diseño dinámico, o NULL si el diseño dinámico no está habilitado.

Comentarios

El objeto de ventana posee y administra la duración del puntero devuelto, por lo que solo es aconsejable usarlo para tener acceso al objeto. No elimine el puntero ni lo almacene de manera permanente.

CWnd::GetExStyle

Devuelve el estilo extendido de ventana.

DWORD GetExStyle() const;

Valor devuelto

El estilo extendido de ventana. Para obtener más información sobre los estilos de ventana extendidos usados en MFC, consulte Estilos de ventana extendidos.

CWnd::GetFocus

Recupera el objeto CWnd que tiene el foco de entrada actualmente.

static CWnd* PASCAL GetFocus();

Valor devuelto

Un puntero a la ventana que tiene el foco actual o NULL si no hay ninguna ventana con foco.

El puntero puede ser temporal y no se debe almacenar para su uso posterior.

CWnd::GetFont

Envía el mensaje WM_GETFONT a la ventana para recuperar la fuente actual.

CFont* GetFont() const;

Valor devuelto

Un puntero a un objeto CFont que está asociado a la fuente actual de la ventana.

Comentarios

Este método no tiene ningún efecto a menos que la ventana procese el mensaje WM_GETFONT. Muchas clases de MFC que derivan de CWnd procesan este mensaje porque están asociadas a una clase de ventana predefinida que incluye un controlador de mensajes para el mensaje WM_GETFONT. Para usar este método, las clases derivadas de CWnd deben definir un controlador de método para el mensaje WM_GETFONT.

CWnd::GetForegroundWindow

Devuelve un puntero a la ventana en primer plano (la ventana de nivel superior con la que el usuario está trabajando actualmente).

static CWnd* PASCAL GetForegroundWindow();

Valor devuelto

Un puntero a la ventana en primer plano. Puede tratarse de un objeto CWnd temporal.

Comentarios

La ventana en primer plano solo se aplica a las ventanas de nivel superior (ventanas de marco o cuadros de diálogo).

CWnd::GetIcon

Llame a esta función miembro para obtener el identificador de un icono grande (32x32) o el identificador de un icono pequeño (16x16), como se indica en bBigIcon.

HICON GetIcon(BOOL bBigIcon) const;

Parámetros

bBigIcon
Especifica un icono de 32 píxeles por 32 píxeles si es TRUE; especifica un icono de 16 píxeles por 16 píxeles si es FALSE.

Valor devuelto

Identificador de un icono. Si no se realiza correctamente, devuelve NULL.

CWnd::GetLastActivePopup

Determina cuál fue la ventana emergente propiedad de CWnd activa más recientemente.

CWnd* GetLastActivePopup() const;

Valor devuelto

Identifica la ventana emergente que ha estado activa más recientemente. El valor devuelto será la misma ventana si se cumple alguna de las condiciones siguientes:

  • La ventana misma ha estado activa más recientemente.

  • La ventana no es propietaria de ventanas emergentes.

  • La ventana no es una ventana de nivel superior ni es propiedad de otra ventana.

El puntero puede ser temporal y no se debe almacenar para su uso posterior.

Ejemplo

Vea el ejemplo de CWnd::FindWindow.

CWnd::GetLayeredWindowAttributes

Recupera la clave de color de transparencia y opacidad de una ventana superpuesta.

BOOL GetLayeredWindowAttributes(
    COLORREF* pcrKey,
    BYTE* pbAlpha,
    DWORD* pdwFlags) const;

Parámetros

pcrKey
Un puntero a un valor COLORREF que recibe la clave de color de transparencia que se usará al componer la ventana superpuesta. Todos los píxeles pintados por la ventana de este color serán transparentes. Puede ser NULL si el argumento no es necesario.

pbAlpha
Un puntero a un objeto BYTE que recibe el valor Alfa utilizado para describir la opacidad de la ventana superpuesta. Cuando la variable a la que hace referencia pbAlpha es 0, la ventana es completamente transparente. Cuando la variable a la que hace referencia pbAlpha es 255, la ventana es opaca. Puede ser NULL si el argumento no es necesario.

pdwFlags
Un puntero a un objeto DWORD que recibe una marca de capas. Puede ser NULL si el argumento no es necesario. Para una lista completa de posibles valores, consulte `GetLayeredWindowAttributes.

Valor devuelto

Es distinto de cero si la función se realiza correctamente; de lo contrario, 0.

Comentarios

Esta función miembro emula la funcionalidad de la función GetLayeredWindowAttributes, tal y como se describe en Windows SDK.

CWnd::GetMenu

Recupera un puntero al menú de esta ventana.

CMenu* GetMenu() const;

Valor devuelto

Identifica el menú. El valor es NULL si CWnd no tiene menú. El valor devuelto no está definido si CWnd es una ventana secundaria.

El puntero devuelto puede ser temporal y no se debe almacenar para su uso posterior.

Comentarios

Esta función no se debe usar para ventanas secundarias, porque no tienen un menú.

Ejemplo

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 información sobre la barra de menú especificada.

BOOL GetMenuBarInfo(
    LONG idObject,
    LONG idItem,
    PMENUBARINFO pmbi) const;

Parámetros

idObject
Especifica el objeto de menú. Para obtener una lista de los valores posibles, vea GetMenuBarInfo.

idItem
Especifica el elemento para el que se va a recuperar información. Si este parámetro es cero, la función recupera información sobre el propio menú. Si este parámetro es 1, la función recupera información sobre el primer elemento del menú, y así sucesivamente.

pmbi
Puntero a una estructura MENUBARINFO que recibe la información.

Valor devuelto

Es distinto de cero si la función se realiza correctamente; de lo contrario, 0.

Comentarios

Esta función miembro emula la funcionalidad de la función GetMenuBarInfo, tal y como se describe en Windows SDK.

CWnd::GetNextDlgGroupItem

Busca el control anterior o siguiente dentro de un grupo de controles en un cuadro de diálogo.

CWnd* GetNextDlgGroupItem(
    CWnd* pWndCtl,
    BOOL bPrevious = FALSE) const;

COleControlSiteOrWnd* GetNextDlgGroupItem(
    COleControlSiteOrWnd* pCurSiteOrWnd = NULL) const;

Parámetros

pWndCtl
Identifica el control que se va a usar como punto de partida para la búsqueda.

bPrevious
Especifica cómo busca la función en el grupo de controles en el cuadro de diálogo. Si es TRUE, la función busca el control anterior en el grupo; si es FALSE, busca el control siguiente del grupo.

pCurSiteOrWnd
Identifica el control COleControlSiteOrWnd. Para obtener más información acerca de COleControlSiteOrWnd, consulte Comentarios.

Valor devuelto

Un puntero al control anterior o siguiente del grupo si la función miembro se ejecuta correctamente.

El puntero devuelto puede ser temporal y no se debe almacenar para su uso posterior.

Comentarios

Un grupo de controles comienza con un control creado con el estilo WS_GROUP y termina con el último control que no se ha creado con el estilo WS_GROUP.

De forma predeterminada, la función miembro GetNextDlgGroupItem devuelve un puntero al siguiente control del grupo. Si pWndCtl identifica el primer control del grupo y bPrevious es TRUE, GetNextDlgGroupItem devuelve un puntero al último control del grupo.

Nota:

Dado que MFC admite controles ActiveX sin ventanas, controles ActiveX estándar y ventanas, hacer referencia a un control sólo mediante HWND ya no es suficiente. El objeto COleControlSiteOrWnd incluye información que identifica el objeto como un control ActiveX con ventana, un control ActiveX sin ventana o una ventana, como se indica a continuación:

Tipo de control o ventana Información de identificación
Control ActiveX con ventana Contiene un HWND y asocia un objeto COleControlSite con él. El miembro m_hWnd de COleControlSiteOrWnd se establece en el HWND control y el miembro m_pSite apunta al COleControlSite del control.
Control ActiveX sin ventana No contiene HWND. El miembro m_pSite de COleControlSiteOrWnd apunta al control COleControlSite, y el miembro m_hWnd es NULL.
Ventana estándar Contiene solo un HWND. El miembro m_hWnd de COleControlSiteOrWnd se establece en el HWND de la ventana y el miembro m_pSite es NULL.

CWnd::GetNextDlgTabItem

Recupera un puntero al primer control creado con el estilo WS_TABSTOP y que precede o sigue al control especificado.

CWnd* GetNextDlgTabItem(
    CWnd* pWndCtl,
    BOOL bPrevious = FALSE) const;

COleControlSiteOrWnd* GetNextDlgTabItem(
    COleControlSiteOrWnd* pCurSiteOrWnd,
    BOOL bPrevious) const;

Parámetros

pWndCtl
Identifica el control que se va a usar como punto de partida para la búsqueda.

pCurSiteOrWnd
Identifica el control COleControlSiteOrWnd. Para obtener más información sobre COleControlSiteOrWnd, vea CWnd::GetNextDlgGroupItem.

bPrevious
Especifica cómo busca la función en el cuadro de diálogo. Si es TRUE, la función busca el control anterior en el cuadro de diálogo; si es FALSE, busca el control siguiente.

Valor devuelto

Un puntero al control anterior o siguiente que tiene el estilo WS_TABSTOP si la función miembro se ejecuta correctamente.

El puntero devuelto puede ser temporal y no se debe almacenar para su uso posterior.

Para obtener más información sobre COleControlSiteOrWnd, vea CWnd::GetNextDlgGroupItem.

CWnd::GetNextWindow

Devuelve la ventana siguiente (o anterior) en la lista del administrador de ventanas.

CWnd* GetNextWindow(UINT nFlag = GW_HWNDNEXT) const;

Parámetros

nFlag
Especifica si la función devuelve un puntero a la ventana siguiente o a la ventana anterior. Puede ser GW_HWNDNEXT, que devuelve la ventana que sigue al objeto CWnd de la lista del administrador de ventanas, o GW_HWNDPREV, que devuelve la ventana anterior en la lista del administrador de ventanas.

Valor devuelto

Identifica la siguiente ventana (o anterior) en la lista del administrador de ventanas si la función miembro se ejecuta correctamente.

El puntero devuelto puede ser temporal y no se debe almacenar para su uso posterior.

Comentarios

La lista del administrador de ventanas contiene entradas para todas las ventanas de nivel superior, sus ventanas secundarias asociadas y las ventanas secundarias de cualquier ventana secundaria.

Si CWnd es una ventana de nivel superior, la función busca la ventana de nivel superior siguiente (o anterior); si CWnd es una ventana secundaria, la función busca la siguiente (o anterior) ventana secundaria.

CWnd::GetOleControlSite

Recupera el sitio personalizado del control ActiveX especificado.

COleControlSite* GetOleControlSite(UINT idControl) const;

Parámetros

idControl
El Id. para el control ActiveX.

CWnd::GetOpenClipboardWindow

Recupera un identificador a la ventana que actualmente tiene el Portapapeles abierto.

static CWnd* PASCAL GetOpenClipboardWindow();

Valor devuelto

El identificador de la ventana que actualmente tiene abierto el Portapapeles si la función se ejecuta correctamente; de lo contrario, NULL.

CWnd::GetOwner

Recupera un puntero al propietario de la ventana.

CWnd* GetOwner() const;

Valor devuelto

Puntero a un objeto CWnd .

Comentarios

Si la ventana no tiene propietario, de forma predeterminada se devuelve un puntero al objeto de ventana primaria. Tenga en cuenta que la relación entre el propietario y la propiedad difiere del aspecto primario-secundario en varios aspectos importantes. Por ejemplo, una ventana con un elemento primario se limita al área cliente de la ventana primaria. Las ventanas propiedad se pueden dibujar en cualquier ubicación del escritorio.

El concepto de propiedad de esta función es diferente del concepto de propiedad de GetWindow.

CWnd::GetParent

Llame a esta función para obtener un puntero a la ventana primaria de una ventana secundaria (si existiera).

CWnd* GetParent() const;

Valor devuelto

Consulte la sección Valores devueltos en GetParent de Windows SDK.

Comentarios

La función GetParent devuelve un puntero al elemento primario inmediato (si existe). Por el contrario, la función GetParentOwner devuelve un puntero a la ventana principal o propietaria más inmediata y que no sea una ventana secundaria (no tiene el estilo WS_CHILD). Si tiene una ventana secundaria dentro de una ventana secundaria, GetParent y GetParentOwner devuelven resultados diferentes.

CWnd::GetParentFrame

Llame a esta función miembro para recuperar la ventana de marco primaria.

CFrameWnd* GetParentFrame() const;

Valor devuelto

Puntero a una ventana de marco si se ejecuta correctamente; de lo contrario, NULL.

Comentarios

La función miembro busca en la cadena primaria hasta que se encuentra un objeto CFrameWnd (o una clase derivada).

CWnd::GetParentOwner

Llame a esta función miembro para obtener un puntero a la ventana primaria o a la ventana de propietario de una ventana secundaria.

CWnd* GetParentOwner() const;

Valor devuelto

Puntero a un objeto CWnd . Si un objeto CWnd no está asociado al identificador, se creará y asociará un objeto CWnd temporal. El puntero puede ser temporal y no se debe almacenar para su uso posterior.

Comentarios

GetParentOwner devuelve un puntero a la ventana primaria o propietaria más inmediata y que no sea una ventana secundaria (no tiene el estilo WS_CHILD). La ventana del propietario actual se puede establecer con SetOwner. De forma predeterminada, el elemento primario de una ventana es su propietario.

Por el contrario, la función GetParent devuelve un puntero al elemento primario inmediato, tanto si es una ventana secundaria como si no. Si tiene una ventana secundaria dentro de una ventana secundaria, GetParent y GetParentOwner devuelven resultados diferentes.

CWnd::GetProperty

Llame a esta función miembro para obtener la propiedad de control ActiveX especificada por dwDispID.

void GetProperty(
    DISPID dwDispID,
    VARTYPE vtProp,
    void* pvProp)const;

Parámetros

dwDispID
Identifica la propiedad que se va a recuperar.

vtProp
Especifica el tipo de la propiedad que se va a recuperar. Para los valores posibles, consulte la sección Comentarios para COleDispatchDriver::InvokeHelper.

pvProp
Dirección de la variable que recibirá el valor de la propiedad. Debe coincidir con el tipo especificado por vtProp.

Comentarios

GetProperty devuelve el valor a través de pvProp.

Nota:

Solo se debe llamar a esta función en un objeto CWnd que represente un control ActiveX.

Para obtener más información sobre el uso de esta función miembro con contenedores de controles ActiveX, consulte el artículo Contenedores de controles ActiveX: Programación de controles ActiveX en un contenedor de controles ActiveX.

CWnd::GetRenderTarget

Obtiene un destino de presentación asociado a esta ventana.

CHwndRenderTarget* GetRenderTarget();

Valor devuelto

Un puntero al destino de representación o NULL.

CWnd::GetSafeHwnd

Devuelve m_hWnd, o bien NULL si el puntero this es NULL.

HWND GetSafeHwnd() const;

Valor devuelto

Devuelve el identificador de ventana de una ventana. Devuelve NULL si CWnd no está asociado a una ventana o si se usa con un puntero NULL de CWnd.

Ejemplo

Vea el ejemplo de CWnd::SubclassWindow.

CWnd::GetSafeOwner

Llame a esta función miembro para recuperar la ventana de propietario que se debe usar para cuadros de diálogo u otras ventanas modales.

static CWnd* GetSafeOwner(
    CWnd* pParent = NULL,
    HWND* pWndTop = NULL);

Parámetros

pParent
Un puntero a una ventana primaria CWnd. Puede ser NULL.

pWndTop
Un puntero a la ventana que está encima actualmente. Puede ser NULL.

Valor devuelto

Un puntero al propietario seguro de la ventana especificada.

Comentarios

El propietario seguro es la primera ventana primaria que no es secundaria de pParent. Si pParent es NULL, la ventana principal del subproceso (recuperada a través de AfxGetMainWnd) se usa para buscar un propietario.

Nota:

El propio marco usa esta función para determinar la ventana de propietario correcta para los cuadros de diálogo y las hojas de propiedades donde no se especifica el propietario.

CWnd::GetScrollBarCtrl

Llame a esta función miembro para obtener un puntero a la barra de desplazamiento de mismo nivel especificada o a la ventana divisora.

virtual CScrollBar* GetScrollBarCtrl(int nBar) const;

Parámetros

nBar
Especifica el tipo de barra de desplazamiento. El parámetro puede establecerse en uno de los valores siguientes:

  • SB_HORZ Recupera la posición de la barra de desplazamiento horizontal.

  • SB_VERT Recupera la posición de la barra de desplazamiento vertical.

Valor devuelto

Un control de barra de desplazamiento del mismo nivel, o NULL si no hay ninguna.

Comentarios

Esta función miembro no funciona en barras de desplazamiento creadas cuando los bits WS_HSCROLL o WS_VSCROLL se establecen durante la creación de una ventana. La implementación CWnd de esta función simplemente devuelve NULL. Las clases derivadas, como CView, implementan la funcionalidad descrita.

CWnd::GetScrollBarInfo

Recupera información sobre la barra de desplazamiento especificada.

BOOL GetScrollBarInfo(
    LONG idObject,
    PSCROLLBARINFO psbi) const;

Parámetros

idObject
Especifica el objeto de menú. Para obtener una lista de los valores posibles, vea GetScrollBarInfo.

psbi
Puntero a una estructura SCROLLBARINFO que recibe la información.

Valor devuelto

Es distinto de cero si la función se realiza correctamente; de lo contrario, 0.

Comentarios

Esta función miembro emula la funcionalidad de la función GetScrollBarInfo, tal y como se describe en Windows SDK.

CWnd::GetScrollInfo

Llame a esta función miembro para recuperar la información que mantiene la estructura SCROLLINFO sobre una barra de desplazamiento.

BOOL GetScrollInfo(
    int nBar,
    LPSCROLLINFO lpScrollInfo,
    UINT nMask = SIF_ALL);

Parámetros

nBar
Especifica si la barra de desplazamiento es un control o parte del área no cliente de una ventana. Si forma parte del área no cliente, nBar también indica si la barra de desplazamiento está colocada horizontalmente, verticalmente o ambas. Debe ser uno de los siguientes:

  • SB_CTL recupera los parámetros de un control de la barra de desplazamiento. El miembro de datos m_hWnd debe ser el identificador del control de la barra de desplazamiento.

  • SB_HORZ recupera los parámetros de la barra de desplazamiento horizontal estándar de la ventana.

  • SB_VERT recupera los parámetros de la barra de desplazamiento vertical estándar de la ventana.

lpScrollInfo
Un puntero a una estructura SCROLLINFO. Consulte Windows SDK para obtener más información sobre esta estructura.

nMask
Especifica los parámetros de la barra de desplazamiento que se van a recuperar. El valor predeterminado especifica una combinación de SIF_PAGE, SIF_POS, SIF_TRACKPOS y SIF_RANGE. Consulte SCROLLINFO para obtener más información sobre los valores nMask.

Valor devuelto

Si el mensaje recupera valores, el valor devuelto es TRUE. De lo contrario, es FALSE.

Comentarios

GetScrollInfo permite a las aplicaciones usar posiciones de desplazamiento de 32 bits.

La estructura SCROLLINFO contiene información sobre una barra de desplazamiento, incluidas las posiciones de desplazamiento mínima y máxima, el tamaño de página y la posición del cuadro de desplazamiento (el control). Consulte el tema de estructura SCROLLINFO de Windows SDK para más información sobre cómo cambiar los valores predeterminados de la estructura.

Los controladores de mensajes de Windows de MFC que indican la posición de la barra de desplazamiento, CWnd::OnHScroll y CWnd::OnVScroll, proporcionan solo 16 bits de datos de posición. GetScrollInfo y SetScrollInfo proporcionan 32 bits de datos de posición de barra de desplazamiento. Por lo tanto, una aplicación puede llamar a GetScrollInfo al procesar CWnd::OnHScroll o CWnd::OnVScroll para obtener datos de posición de barra de desplazamiento de 32 bits.

CWnd::GetScrollLimit

Llame a esta función miembro para recuperar la posición máxima de desplazamiento de la barra de desplazamiento.

int GetScrollLimit(int nBar);

Parámetros

nBar
Especifica el tipo de barra de desplazamiento. El parámetro puede establecerse en uno de los valores siguientes:

  • SB_HORZ recupera el límite de desplazamiento de la barra de desplazamiento horizontal.

  • SB_VERT recupera el límite de desplazamiento de la barra de desplazamiento vertical.

Valor devuelto

Especifica la posición máxima de una barra de desplazamiento si se ejecuta correctamente; de lo contrario, 0.

CWnd::GetScrollPos

Recupera la posición actual del cuadro de desplazamiento de una barra de desplazamiento.

int GetScrollPos(int nBar) const;

Parámetros

nBar
Especifica la barra de desplazamiento que se va a examinar. El parámetro puede establecerse en uno de los valores siguientes:

  • SB_HORZ Recupera la posición de la barra de desplazamiento horizontal.

  • SB_VERT Recupera la posición de la barra de desplazamiento vertical.

Valor devuelto

Especifica la posición actual del cuadro de desplazamiento en la barra de desplazamiento si se ejecuta correctamente; de lo contrario, 0.

Comentarios

La posición actual es un valor relativo que depende del intervalo de desplazamiento actual. Por ejemplo, si el intervalo de desplazamiento es de 50 a 100 y el cuadro de desplazamiento está en medio de la barra, la posición actual es 75.

CWnd::GetScrollRange

Copia las posiciones mínima y máxima actuales de la barra de desplazamiento especificada a las ubicaciones especificadas por lpMinPos y lpMaxPos.

void GetScrollRange(
    int nBar,
    LPINT lpMinPos,
    LPINT lpMaxPos) const;

Parámetros

nBar
Especifica la barra de desplazamiento que se va a examinar. El parámetro puede establecerse en uno de los valores siguientes:

  • SB_HORZ Recupera la posición de la barra de desplazamiento horizontal.

  • SB_VERT Recupera la posición de la barra de desplazamiento vertical.

lpMinPos
Apunta a la variable de entero que va a recibir la posición mínima.

lpMaxPos
Apunta a la variable de entero que va a recibir la posición máxima.

Comentarios

Si CWnd no tiene una barra de desplazamiento, la función miembro GetScrollRange copia 0 en lpMinPos y lpMaxPos.

El intervalo predeterminado de una barra de desplazamiento estándar es de 0 a 100. El intervalo predeterminado de un control de barra de desplazamiento está vacío (ambos valores son 0).

CWnd::GetStyle

Devuelve el estilo de ventana actual.

DWORD GetStyle() const;

Valor devuelto

El estilo de la ventana. Para obtener más información sobre los estilos de ventana usados en MFC, vea Estilos de ventana.

CWnd::GetSystemMenu

Permite a la aplicación tener acceso al menú de sistema para hacer copias y modificaciones.

CMenu* GetSystemMenu(BOOL bRevert) const;

Parámetros

bRevert
Especifica la acción que se va a realizar. Si bRevert es FALSE, GetSystemMenu devuelve un identificador a una copia del menú Control actualmente en uso. Esta copia es inicialmente idéntica al menú Control, pero se puede modificar. Si bRevert es TRUE, GetSystemMenu restablece el menú Control de nuevo al estado predeterminado. El menú Control anterior, posiblemente modificado, si existe, se destruye. El valor devuelto es indefinido en este caso.

Valor devuelto

Identifica una copia del menú Control si bRevert es FALSE. Si bRevert es TRUE, el valor devuelto es indefinido.

El puntero devuelto puede ser temporal y no se debe almacenar para su uso posterior.

Comentarios

Cualquier ventana que no use GetSystemMenu para realizar su propia copia del menú Control recibe el menú Control estándar.

El puntero devuelto por la función miembro GetSystemMenu se puede usar con las funciones CMenu::AppendMenu, CMenu::InsertMenu y CMenu::ModifyMenu para cambiar el menú Control.

El menú Control contiene inicialmente elementos identificados con varios valores de Id., como SC_CLOSE, SC_MOVE y SC_SIZE. Los elementos del menú Control generan mensajes WM_SYSCOMMAND. Todos los elementos predefinidos del menú Control tienen números de Id. mayores que 0xF000. Si una aplicación agrega elementos al menú Control, debe usar números de Id. inferiores a F000.

Windows puede hacer que algunos elementos no estén disponibles automáticamente en el menú Control estándar. CWnd puede llevar a cabo su propia selección o falta de disponibilidad al responder a los mensajes WM_INITMENU, que se envían antes de que se muestre cualquier menú.

Ejemplo

// 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 información sobre la barra de título especificada.

BOOL GetTitleBarInfo(PTITLEBARINFO pti) const;

Parámetros

pti
Puntero a una estructura TITLEBARINFO que recibe la información.

Comentarios

Esta función miembro emula la funcionalidad de la función GetTitleBarInfo, tal y como se describe en Windows SDK.

CWnd::GetTopLevelFrame

Llame a esta función miembro para recuperar la ventana de marco de nivel superior, si existe.

CFrameWnd* GetTopLevelFrame() const;

Valor devuelto

Identifica la ventana de marco de nivel superior de la ventana.

El puntero devuelto puede ser temporal y no se debe almacenar para su uso posterior.

Comentarios

Si CWnd no tiene ninguna ventana asociada o su elemento primario de nivel superior no es un objeto derivado de CFrameWnd, esta función devuelve NULL.

CWnd::GetTopLevelOwner

Llame a esta función miembro para recuperar la ventana de nivel superior.

CWnd* GetTopLevelOwner() const;

Valor devuelto

Identifica la ventana de nivel superior. El puntero devuelto puede ser temporal y no se debe almacenar para su uso posterior.

Comentarios

La ventana de nivel superior es la ventana que es un elemento secundario del escritorio. Si CWnd no tiene ninguna ventana asociada, esta función devuelve NULL.

CWnd::GetTopLevelParent

Llame a esta función miembro para recuperar la ventana primaria de nivel superior de la ventana, si existe.

CWnd* GetTopLevelParent() const;

Valor devuelto

Identifica la ventana primaria de nivel superior de la ventana.

El puntero devuelto puede ser temporal y no se debe almacenar para su uso posterior.

Comentarios

GetTopLevelParent es similar a GetTopLevelFrame y GetTopLevelOwner; sin embargo, ignora el valor establecido como la ventana del propietario actual.

CWnd::GetTopWindow

Busca la ventana secundaria de nivel superior que pertenece a CWnd.

CWnd* GetTopWindow() const;

Valor devuelto

Identifica la ventana secundaria de nivel superior en una lista vinculada CWnd de ventanas secundarias. Si no existen ventanas secundarias, el valor es NULL.

El puntero devuelto puede ser temporal y no se debe almacenar para su uso posterior.

Comentarios

Si CWnd no tiene elementos secundarios, esta función devuelve NULL.

CWnd::GetUpdateRect

Recupera las coordenadas del rectángulo más pequeño que contiene completamente la región de actualización.

BOOL GetUpdateRect(
    LPRECT lpRect,
    BOOL bErase = FALSE);

Parámetros

lpRect
Apunta a un objeto CRect o estructura RECT que va a recibir las coordenadas de cliente de la actualización que incluye la región de actualización.

Establezca este parámetro en NULL para determinar si existe una región de actualización dentro de CWnd. Si lpRect es NULL, la función miembro GetUpdateRect devuelve un valor distinto de cero si existe una región de actualización, y 0 si no la tiene. Esto proporciona una manera de determinar si un mensaje WM_PAINT ha resultado de un área no válida. No establezca este parámetro en NULL en la versión 3.0 de Windows o versiones anteriores.

bErase
Especifica si el fondo de la región de actualización debe borrarse.

Valor devuelto

Especifica el estado de la región de actualización. El valor es distinto de cero si la región de actualización no está vacía; de lo contrario, es 0.

Si el parámetro lpRect se establece en NULL, el valor devuelto es distinto de cero si existe una región de actualización; de lo contrario, es 0.

Comentarios

Si CWnd se ha creado con el estilo CS_OWNDC y el modo de asignación no es MM_TEXT, la función miembro GetUpdateRect proporciona el rectángulo en coordenadas lógicas. De lo contrario, GetUpdateRect proporciona el rectángulo en coordenadas de cliente. Si no hay ninguna región de actualización, GetUpdateRect establece que el rectángulo esté vacío (establece todas las coordenadas en 0).

El parámetro bErase especifica si GetUpdateRect debe borrar el fondo de la región de actualización. Si bErase es TRUE y la región de actualización no está vacía, se borra el fondo. Para borrar el fondo, GetUpdateRect envía el mensaje WM_ERASEBKGND.

El rectángulo de actualización recuperado por la función miembro BeginPaint es idéntico al recuperado por la función miembro GetUpdateRect.

La función miembro BeginPaint valida automáticamente la región de actualización, por lo que cualquier llamada a GetUpdateRect realizada inmediatamente después de una llamada a BeginPaint recupera una región de actualización vacía.

CWnd::GetUpdateRgn

Recupera la región de actualización en una región identificada por pRgn.

int GetUpdateRgn(
    CRgn* pRgn,
    BOOL bErase = FALSE);

Parámetros

pRgn
Identifica la región de actualización.

bErase
Especifica si se borrará el fondo y se dibujarán áreas no cliente de ventanas secundarias. Si el valor es FALSE, no se realiza ningún dibujo.

Valor devuelto

Especifica una marca de entero corto que indica el tipo de región resultante. El valor puede ser cualquiera de los siguientes:

  • SIMPLEREGION: la región no tiene bordes superpuestos.

  • COMPLEXREGION: la región tiene bordes superpuestos.

  • NULLREGION La región está vacía.

  • ERROR: no se ha creado ninguna región.

Comentarios

Las coordenadas de esta región son relativas a la esquina superior izquierda (coordenadas de cliente).

La función miembro BeginPaint valida automáticamente la región de actualización, por lo que cualquier llamada a GetUpdateRgn realizada inmediatamente después de una llamada a BeginPaint recupera una región de actualización vacía.

CWnd::GetWindow

Devuelve un puntero a la ventana solicitada, o NULL si no existe.

CWnd* GetWindow(UINT nCmd) const;

Parámetros

*nCmd*
Especifica la relación entre CWnd y la ventana devuelta. Puede tomar uno de los valores siguientes:

  • GW_CHILD Identifica la primera ventana secundaria CWnd.

  • GW_HWNDFIRST Si CWnd es una ventana secundaria, devuelve la primera ventana del mismo nivel. De lo contrario, devuelve la primera ventana de nivel superior de la lista.

  • GW_HWNDLAST Si CWnd es una ventana secundaria, devuelve la última ventana del mismo nivel. De lo contrario, devuelve la última ventana de nivel superior de la lista.

  • GW_HWNDNEXT Devuelve la ventana siguiente en la lista del administrador de ventanas.

  • GW_HWNDPREV Devuelve la ventana anterior en la lista del administrador de ventanas.

  • GW_OWNER Identifica al propietario CWnd.

Valor devuelto

El puntero devuelto puede ser temporal y no se debe almacenar para su uso posterior.

CWnd::GetWindowContextHelpId

Llame a esta función miembro para recuperar el identificador de contexto de ayuda, si existiera, asociado a la ventana.

DWORD GetWindowContextHelpId() const;

Valor devuelto

El identificador de contexto de ayuda. Devuelve 0 si la ventana no tiene ninguno.

CWnd::GetWindowedChildCount

Llame a esta función miembro para recuperar el número de ventanas secundarias asociadas.

long GetWindowedChildCount();

Valor devuelto

El número de ventanas secundarias asociadas al objeto CWnd.

CWnd::GetWindowDC

Recupera el contexto de visualización de toda la ventana, como la barra de título, los menús y las barras de desplazamiento.

CDC* GetWindowDC();

Valor devuelto

Identifica el contexto de visualización de la ventana especificada si la función se ejecuta correctamente; de lo contrario, NULL.

El puntero devuelto puede ser temporal y no se debe almacenar para su uso posterior. Se debe llamar a ReleaseDC una vez por cada llamada correcta a GetWindowDC.

Comentarios

Un contexto de visualización de ventana permite pintar en cualquier parte de CWnd, ya que el origen del contexto es la esquina superior izquierda de CWnd, y no del área cliente.

Los atributos predeterminados se asignan al contexto de visualización cada vez que recupera el contexto. Los atributos anteriores se pierden.

GetWindowDC está pensado para utilizarse para efectos de pintura especiales dentro del área no cliente CWnd. No se recomienda pintar en áreas no cliente de cualquier ventana.

La función de Windows GetSystemMetrics se puede usar para recuperar las dimensiones de varias partes del área no cliente, como la barra de títulos, el menú y las barras de desplazamiento.

Una vez completada la pintura, se debe llamar a la ReleaseDC función miembro para liberar el contexto de visualización. Si no se libera el contexto de visualización, la pintura solicitada se verá gravemente afectada por las aplicaciones debido a limitaciones en el número de contextos de dispositivo que se pueden abrir al mismo tiempo.

CWnd::GetWindowInfo

Recupera información sobre la ventana.

BOOL GetWindowInfo(PWINDOWINFO pwi) const;

Parámetros

pwi
Un puntero a una estructura WINDOWINFO.

Comentarios

Esta función miembro emula la funcionalidad de la función GetWindowInfo, tal y como se describe en Windows SDK.

CWnd::GetWindowlessChildCount

Devuelve el número de ventanas secundarias sin ventanas que están asociadas.

long GetWindowlessChildCount();

Valor devuelto

El número de ventanas secundarias sin ventanas que están asociadas al objeto CWnd.

CWnd::GetWindowPlacement

Recupera el estado de visualización y las posiciones normal (restaurada), minimizada y maximizada de una ventana.

BOOL GetWindowPlacement(WINDOWPLACEMENT* lpwndpl) const;

Parámetros

lpwndpl
Apunta a la estructura WINDOWPLACEMENT que recibe la información de posición y estado de presentación.

Valor devuelto

Es distinto de cero si la función se realiza correctamente; de lo contrario, es 0.

Comentarios

El miembro flags de la WINDOWPLACEMENT estructura recuperada por esta función siempre es 0. Si CWnd se maximiza, el miembro showCmd de WINDOWPLACEMENT es SW_SHOWMAXIMIZED. Si la ventana está minimizada, es SW_SHOWMINIMIZED. De lo contrario, es SW_SHOWNORMAL.

CWnd::GetWindowRect

Copia las dimensiones del rectángulo delimitador del objeto CWnd en la estructura a la que apunta lpRect.

void GetWindowRect(LPRECT lpRect) const;

Parámetros

lpRect
Apunta a un objeto CRect o una estructura RECT que recibirá las coordenadas de pantalla de las esquinas superior izquierda e inferior derecha.

Comentarios

Las dimensiones se proporcionan en coordenadas de pantalla relativas a la esquina superior izquierda de la pantalla. Se incluyen las dimensiones del título, el borde y las barras de desplazamiento, si están presentes.

CWnd::GetWindowRgn

Llame a esta función miembro para obtener la región de ventana de una ventana.

int GetWindowRgn(HRGN hRgn)const;

Parámetros

hRgn
Un identificador de una región de ventana.

Valor devuelto

El valor devuelto especifica el tipo de la región que obtiene la función. Puede ser uno de los siguientes valores:

  • NULLREGION La región está vacía.

  • SIMPLEREGION La región es un único rectángulo.

  • COMPLEXREGION La región es más de un rectángulo.

  • ERROR Se ha producido un error; la región no se ve afectada.

Comentarios

La región de la ventana determina el área dentro de la ventana donde el sistema operativo permite dibujar. El sistema operativo no muestra ninguna parte de una ventana que se encuentre fuera de la región de la ventana.

Las coordenadas de la región de ventana de una ventana son relativas a la esquina superior izquierda de la ventana, no al área cliente de la ventana.

Para establecer la región de la ventana de una ventana, llame a CWnd::SetWindowRgn.

CWnd::GetWindowText

Copia el título CWnd (si tiene uno) en el búfer al que apunta lpszStringBuf o en la cadena de destino rString.

int GetWindowText(
    LPTSTR lpszStringBuf,
    int nMaxCount) const;

void GetWindowText(
    CString& rString) const;

Parámetros

lpszStringBuf
Apunta al búfer que va a recibir la cadena copiada del título de la ventana.

nMaxCount
Especifica el número máximo de caracteres que se van a copiar en el búfer, incluido el carácter nulo de terminación. Si la cadena es más larga que el número máximo de caracteres especificado en nMaxCount, se trunca.

rString
Un objeto CString que va a recibir la cadena copiada del título de la ventana.

Valor devuelto

Especifica la longitud, en caracteres, de la cadena copiada, sin incluir el carácter NULL de terminación. Es 0 si CWnd no tiene título o si el título está vacío.

Comentarios

Si el objeto CWnd es un control, la función miembro GetWindowText copia el texto dentro del control en lugar de copiar el título.

Esta función miembro hace que el mensaje WM_GETTEXT se envíe al objeto CWnd.

Ejemplo

Vea el ejemplo de CWnd::SetWindowText.

CWnd::GetWindowTextLength

Devuelve la longitud del título de texto del objeto CWnd.

int GetWindowTextLength() const;

Valor devuelto

Especifica la longitud del texto en caracteres, sin incluir ningún carácter nulo de terminación. El valor es 0 si no existe dicho texto.

Comentarios

Si CWnd es un control, la función miembro GetWindowTextLength devuelve la longitud del texto dentro del control en lugar del título.

Esta función miembro hace que el mensaje WM_GETTEXTLENGTH se envíe al objeto CWnd.

Ejemplo

Vea el ejemplo de CWnd::SetWindowText.

CWnd::HideCaret

Quita el cursor de inserción de la presentación en pantalla para ocultarlo.

void HideCaret();

Comentarios

Aunque el cursor de inserción ya no está visible, se puede volver a mostrar mediante la función miembro ShowCaret. Ocultar el cursor de inserción no destruye su forma actual.

La ocultación es acumulativa. Si HideCaret se ha llamado cinco veces seguidas, se debe llamar a la función miembro ShowCaret cinco veces antes de que se muestre el cursor de inserción.

CWnd::HiliteMenuItem

Resalta o quita el resaltado de un elemento de menú de nivel superior (barra de menús).

BOOL HiliteMenuItem(
    CMenu* pMenu,
    UINT nIDHiliteItem,
    UINT nHilite);

Parámetros

pMenu
Identifica el menú de nivel superior que contiene el elemento que se va a resaltar.

nIDHiliteItem
Especifica el elemento de menú que se va a resaltar, en función del valor del parámetro nHilite.

nHilite
Especifica si el elemento de menú está resaltado o se ha quitado el resaltado. Puede ser una combinación de MF_HILITE o MF_UNHILITE con MF_BYCOMMAND o MF_BYPOSITION. Estos marcadores se pueden combinar utilizando el operador bit a bit OR. Estos valores tienen los significados siguientes:

  • MF_BYCOMMAND interpreta nIDHiliteItem como el Id. del elemento de menú (la interpretación predeterminada).

  • MF_BYPOSITION interpreta nIDHiliteItem como el desplazamiento de base cero del elemento de menú.

  • MF_HILITE resalta el elemento. Si no se da este valor, el elemento deja de estar resaltado.

  • MF_UNHILITE quita el resaltado del elemento.

Valor devuelto

Especifica si el elemento de menú se ha resaltado. Distinto de cero si el elemento estaba resaltado; de lo contrario, 0.

Comentarios

Las MF_HILITE marcas y MF_UNHILITE solo se pueden usar con esta función miembro; no se pueden usar con la función miembro CMenu::ModifyMenu.

CWnd::HtmlHelp

Llame a esta función miembro para invocar la aplicación HTMLHelp.

virtual void HtmlHelp(
    DWORD_PTR dwData,
    UINT nCmd = 0x000F);

Parámetros

dwData
Especifica datos adicionales. El valor usado depende del valor del parámetro nCmd.

nCmd
Especifica el tipo de ayuda solicitado. Para obtener una lista de los valores posibles y cómo afectan al parámetro dwData, consulte el parámetro uCommand descrito en la Referencia de la API de ayuda HTML de Windows SDK.

Comentarios

Consulte CWinApp::HtmlHelp para obtener más información.

CWnd::InitDynamicLayout

Llamado por el marco de trabajo para inicializar la presentación dinámica de una ventana.

void InitDynamicLayout();

Comentarios

No llame a este método directamente.

CWnd::Invalidate

Invalida toda el área cliente de CWnd.

void Invalidate(BOOL bErase = TRUE);

Parámetros

bErase
Especifica si el fondo de la región de actualización debe borrarse.

Comentarios

El área cliente se marca para pintar cuando se produce el siguiente mensaje WM_PAINT. La región también se puede validar antes de que se produzca un mensaje WM_PAINT mediante la función miembro ValidateRect o ValidateRgn.

El parámetro bErase especifica si se borrará el fondo dentro del área de actualización cuando se procese la región de actualización. Si bErase es TRUE, el fondo se borra cuando se llama a la función miembro BeginPaint; si bErase es FALSE, el fondo permanece sin cambios. Si bErase es TRUE para cualquier parte de la región de actualización, se borra el fondo de toda la región, no solo en la parte especificada.

Windows envía un mensaje WM_PAINT cuando la región de actualización CWnd no está vacía y no hay otros mensajes en la cola de la aplicación para esa ventana.

Ejemplo

Vea el ejemplo de CWnd::UpdateWindow.

CWnd::InvalidateRect

Invalida el área cliente dentro del rectángulo especificado agregando dicho rectángulo a la región de actualización CWnd.

void InvalidateRect(
    LPCRECT lpRect,
    BOOL bErase = TRUE);

Parámetros

lpRect
Apunta a un objeto CRect o una estructura RECT que contiene el rectángulo (en coordenadas de cliente) que se va a agregar a la región de actualización. Si lpRect es NULL, se agrega toda el área cliente a la región.

bErase
Especifica si el fondo de la región de actualización debe borrarse.

Comentarios

El rectángulo invalidado, junto con todas las demás áreas de la región de actualización, se marca para pintar cuando se envía el siguiente mensaje WM_PAINT. Las áreas invalidadas se acumulan en la región de actualización hasta que se procesa la región cuando se produce la siguiente llamada de WM_PAINT, o hasta que la función miembro ValidateRect o ValidateRgn valida la región.

El parámetro bErase especifica si se borrará el fondo dentro del área de actualización cuando se procese la región de actualización. Si bErase es TRUE, el fondo se borra cuando se llama a la función miembro BeginPaint; si bErase es FALSE, el fondo permanece sin cambios. Si bErase es TRUE para cualquier parte de la región de actualización, se borra el fondo de toda la región, no solo en la parte especificada.

Windows envía un mensaje WM_PAINT cuando la región de actualización CWnd no está vacía y no hay otros mensajes en la cola de la aplicación para esa ventana.

CWnd::InvalidateRgn

Invalida el área cliente dentro de la región especificada agregando dicha región a la región de actualización actual de CWnd.

void InvalidateRgn(
    CRgn* pRgn,
    BOOL bErase = TRUE);

Parámetros

pRgn
Un puntero a un objeto CRgn que identifica la región que se va a agregar a la región de actualización. Se supone que la región tiene coordenadas de cliente. Si este parámetro es NULL, se agrega toda el área cliente a la región de actualización.

bErase
Especifica si el fondo de la región de actualización debe borrarse.

Comentarios

La región invalidada, junto con todas las demás áreas de la región de actualización, se marca para pintar cuando se envía el mensaje WM_PAINT. Las áreas invalidadas se acumulan en la región de actualización hasta que la región se procesa cuando se envía un mensaje WM_PAINT a continuación, o hasta que la función miembro ValidateRect o ValidateRgn valida la región.

El parámetro bErase especifica si se borrará el fondo dentro del área de actualización cuando se procese la región de actualización. Si bErase es TRUE, el fondo se borra cuando se llama a la función miembro BeginPaint; si bErase es FALSE, el fondo permanece sin cambios. Si bErase es TRUE para cualquier parte de la región de actualización, se borra el fondo de toda la región, no solo en la parte especificada.

Windows envía un mensaje WM_PAINT cuando la región de actualización CWnd no está vacía y no hay otros mensajes en la cola de la aplicación para esa ventana.

Una de las funciones de región debe haber creado previamente la región especificada.

CWnd::InvokeHelper

Llame a esta función miembro para invocar el método o la propiedad del control ActiveX especificado por dwDispID en el contexto especificado por wFlags.

void AFX_CDECL InvokeHelper(
    DISPID dwDispID,
    WORD wFlags,
    VARTYPE vtRet,
    void* pvRet,
    const BYTE* pbParamInfo,
    ... );

Parámetros

dwDispID
Identifica el método o la propiedad que se va a invocar.

wFlags
Las marcas que describen el contexto de la llamada a IDispatch::Invoke.

vtRet
Especifica el tipo del valor devuelto. Para los valores posibles, consulte la sección Comentarios para COleDispatchDriver::InvokeHelper.

pvRet
La dirección de la variable que recibirá el valor de la propiedad o el valor devuelto. Debe coincidir con el tipo especificado por vtRet.

pbParamInfo
Puntero a una cadena terminada en null de bytes que especifica los tipos de los parámetros que siguen a pbParamInfo. Para los valores posibles, consulte la sección Comentarios para COleDispatchDriver::InvokeHelper.

...
La lista de variables de parámetros de los tipos especificados en pbParamInfo.

Comentarios

El parámetro pbParamInfo especifica los tipos de los parámetros pasados al método o a la propiedad. La lista variable de argumentos se representa mediante ... en la declaración de sintaxis.

Esta función convierte los parámetros a valores VARIANTARG, y a continuación invoca el método IDispatch::Invoke del control ActiveX. Si se produce un error en la llamada a IDispatch::Invoke , esta función generará una excepción. Si el SCODE (código de estado) devuelto por IDispatch::Invoke es DISP_E_EXCEPTION, esta función inicia un objeto COleException; de lo contrario, inicia un COleDispatchException.

Nota:

Solo se debe llamar a esta función en un objeto CWnd que represente un control ActiveX.

Para obtener más información sobre el uso de esta función miembro con contenedores de controles ActiveX, consulte el artículo Contenedores de controles ActiveX: Programación de controles ActiveX en un contenedor de controles ActiveX.

CWnd::IsChild

Indica si la ventana especificada por pWnd es una ventana secundaria u otro descendiente directo de CWnd.

BOOL IsChild(const CWnd* pWnd) const;

Parámetros

pWnd
Identifica la ventana que se va a probar.

Valor devuelto

Especifica el resultado de la función . El valor es distinto de cero si la ventana identificada por pWnd es una ventana secundaria de CWnd; en caso contrario, es 0.

Comentarios

Una ventana secundaria es el descendiente directo de CWnd si el objeto CWnd está en la cadena de ventanas primarias que conduce desde la ventana emergente original a la ventana secundaria.

CWnd::IsD2DSupportEnabled

Determina si la compatibilidad con D2D está habilitada.

BOOL IsD2DSupportEnabled();

Valor devuelto

TRUE si la característica está habilitada; de lo contrario, FALSE.

CWnd::IsDialogMessage

Llame a esta función miembro para determinar si el mensaje especificado está pensado para un cuadro de diálogo no modal; si es así, esta función procesa el mensaje.

BOOL IsDialogMessage(LPMSG lpMsg);

Parámetros

lpMsg
Apunta a una estructura MSG que contiene el mensaje que se va a comprobar.

Valor devuelto

Especifica si la función miembro ha procesado el mensaje dado. Es distinto de cero si se ha procesado el mensaje; de lo contrario, es 0. Si el valor devuelto es 0, llame a la función miembro CWnd::PreTranslateMessage de la clase base para procesar el mensaje. En una invalidación de la función miembro CWnd::PreTranslateMessage, el código tiene el siguiente aspecto:

BOOL CAboutDlg::PreTranslateMessage(MSG *pMsg)
{
   if (IsDialogMessage(pMsg))
      return TRUE;
   else
      return CDialog::PreTranslateMessage(pMsg);
}

Comentarios

Cuando la función IsDialogMessage procesa un mensaje, comprueba si hay mensajes de teclado y los convierte en comandos de selección para el cuadro de diálogo correspondiente. Por ejemplo, la tecla TAB selecciona el siguiente control o grupo de controles y la tecla FLECHA ABAJO selecciona el siguiente control en un grupo.

No se debe pasar un mensaje procesado mediante IsDialogMessage a las funciones de Windows TranslateMessage o DispatchMessage, porque ya se ha procesado.

CWnd::IsDlgButtonChecked

Determina si un control de botón tiene una marca de verificación junto a él.

UINT IsDlgButtonChecked(int nIDButton) const;

Parámetros

nIDButton
Especifica el identificador entero del control de botón.

Valor devuelto

Distinto de cero si el control especificado está activado, y 0 si no está activado. Solo se pueden activar botones de radio y casillas. En el caso de los botones de tres estados, el valor devuelto puede ser 2 si el botón es indeterminado. Esta función miembro devuelve 0 para un botón de inserción.

Comentarios

Si el botón es un control de tres estados, la función miembro determina si está atenuado, activado o ninguno de las dos.

CWnd::IsDynamicLayoutEnabled

Determina si el diseño dinámico está habilitado en esta ventana. Si el diseño dinámico está habilitado, la posición y el tamaño de las ventanas secundarias pueden cambiar cuando el usuario cambie el tamaño de la ventana primaria.

BOOL IsDynamicLayoutEnabled() const;

Valor devuelto

TRUE si el diseño dinámico está habilitado; en caso contrario, FALSE.

Comentarios

CWnd::IsIconic

Identifica si CWnd está minimizado (icono).

BOOL IsIconic() const;

Valor devuelto

Distinto de cero si CWnd está minimizado; en caso contrario, 0.

Ejemplo

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

Especifica si CWnd es compatible con la entrada táctil.

BOOL IsTouchWindow() const;

Valor devuelto

TRUE si CWnd tiene compatibilidad táctil; de lo contrario, FALSE.

Comentarios

CWnd::IsWindowEnabled

Especifica si CWnd está habilitado para la entrada de mouse y de teclado.

BOOL IsWindowEnabled() const;

Valor devuelto

Distinto de cero si CWnd está habilitado; en caso contrario, 0.

Ejemplo

//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 el estado de visibilidad de la ventana especificada.

BOOL IsWindowVisible() const;

Valor devuelto

Distinto de cero si CWnd está visible (tiene establecido el bit de estilo WS_VISIBLE y la ventana primaria es visible). Dado que el valor devuelto refleja el estado del bit de estilo WS_VISIBLE, el valor devuelto puede ser distinto de cero aunque CWnd esté totalmente oculto por otras ventanas.

Comentarios

Una ventana posee un estado de visibilidad indicado por el bit de estilo WS_VISIBLE. Cuando este bit de estilo se establece con una llamada a la función miembro ShowWindow, se muestra la ventana y el dibujo posterior en la ventana se muestra siempre que la ventana tenga el bit de estilo establecido.

Cualquier dibujo en una ventana que tenga el estilo WS_VISIBLE no se mostrará si la ventana está cubierta por otras ventanas o recortada mediante su ventana primaria.

Ejemplo

// 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 si CWnd se ha maximizado.

BOOL IsZoomed() const;

Valor devuelto

Distinto de cero si CWnd está maximizado; en caso contrario, 0.

CWnd::KillTimer

Termina el evento de temporizador identificado por nIDEvent de la llamada anterior a SetTimer.

BOOL KillTimer(UINT_PTR nIDEvent);

Parámetros

nIDEvent
El valor del evento de temporizador que se ha pasado a SetTimer.

Valor devuelto

Especifica el resultado de la función . El valor es distinto de cero si se ha terminado el evento. Es 0 si la función miembro KillTimer no puede encontrar el evento de temporizador especificado.

Comentarios

Los mensajes WM_TIMER pendientes asociados al temporizador no se quitan de la cola de mensajes.

Ejemplo

Vea el ejemplo de CWnd::SetTimer.

CWnd::LoadDynamicLayoutResource

Lo llama el marco para que cargue la información de diseño dinámico desde el archivo de recursos.

BOOL LoadDynamicLayoutResource(LPCTSTR lpszResourceName);

Parámetros

lpszResourceName
El nombre del recurso que contiene la información de diseño dinámico que se desea para esta ventana.

Valor devuelto

Es distinto de cero si la función se realiza correctamente. Es 0 si se produce un error.

Comentarios

No llame a este método directamente.

CWnd::LockWindowUpdate

Deshabilita el dibujo en la ventana especificada.

BOOL LockWindowUpdate();

Valor devuelto

Es distinto de cero si la función se realiza correctamente. Es 0 si se produce un error o si la función LockWindowUpdate se ha usado para bloquear otra ventana.

Comentarios

Una ventana bloqueada no se puede mover. Solo se puede bloquear una ventana cada vez. Para desbloquear una ventana bloqueada con LockWindowUpdate, llame a UnlockWindowUpdate.

Si una aplicación con una ventana bloqueada (o cualquier ventana secundaria bloqueada) llama a la función Windows GetDC, GetDCEx o BeginPaint, la función llamada devuelve un contexto de dispositivo cuya región visible está vacía. Esto se producirá hasta que la aplicación desbloquee la ventana llamando a la función miembro UnlockWindowUpdate.

Mientras las actualizaciones de ventanas están bloqueadas, el sistema realiza un seguimiento del rectángulo delimitador de las operaciones de dibujo en contextos de dispositivo asociados a una ventana bloqueada. Cuando se vuelve a habilitar el dibujo, este rectángulo delimitador se invalida en la ventana bloqueada y sus ventanas secundarias para forzar que un eventual mensaje WM_PAINT actualice la pantalla. Si no se ha producido ningún dibujo mientras las actualizaciones de la ventana estaban bloqueadas, no se invalida ningún área.

La función miembro LockWindowUpdate no hace que la ventana especificada sea invisible y no borra el bit de estilo WS_VISIBLE.

CWnd::m_hWnd

El identificador de la ventana de Windows asociada a este CWnd.

HWND m_hWnd;

Comentarios

El miembro de datos m_hWnd es una variable pública de tipo HWND.

CWnd::MapWindowPoints

Convierte (asigna) un conjunto de puntos del espacio de coordenadas de CWnd al espacio de coordenadas de otra ventana.

void MapWindowPoints(
    CWnd* pwndTo,
    LPRECT lpRect) const;

void MapWindowPoints(
    CWnd* pwndTo,
    LPPOINT lpPoint,
    UINT nCount) const;

Parámetros

pwndTo
Identifica la ventana a la que se convierten los puntos. Si este parámetro es NULL, los puntos se convierten en coordenadas de pantalla.

lpRect
Especifica el rectángulo cuyos puntos se van a convertir. La primera versión de esta función solo está disponible para Windows 3.1 y versiones posteriores.

lpPoint
Un puntero a una matriz de estructura POINT que contiene el conjunto de puntos que se van a convertir.

nCount
Especifica el número de estructuras de POINT en la matriz a la que apunta lpPoint.

CWnd::MessageBox

Crea y muestra una ventana que contiene un mensaje y un título proporcionados por la aplicación, además de una combinación de los iconos predefinidos y los botones de inserción descritos en la lista Estilos de cuadro de mensaje.

int MessageBox(
    LPCTSTR lpszText,
    LPCTSTR lpszCaption = NULL,
    UINT nType = MB_OK);

Parámetros

lpszText
Apunta a un objeto CString o una cadena terminada en NULL que contiene el mensaje que se va a mostrar.

lpszCaption
Apunta a un objeto CString o una cadena terminada en NULL que se va a usar para el título del cuadro de mensaje. Si lpszCaption es NULL, se usa el título predeterminado «Error».

nType
Especifica el contenido y el comportamiento del cuadro de mensaje.

Valor devuelto

Este método utiliza la función MessageBox tal y como se define en Windows SDK. Este método devuelve el resultado de llamar a esta función.

Comentarios

Use la función global AfxMessageBox en lugar de esta función miembro para implementar un cuadro de mensaje en la aplicación.

A continuación se muestran los distintos iconos del sistema que se pueden usar en un cuadro de mensaje:

Iconos Macro
Stop or X icon, consisting of a red circle with a white x in the middle. MB_ICONHAND, MB_ICONSTOP y MB_ICONERROR
Help or question mark icon, consisting of a thought bubble icon with a question mark in it. MB_ICONQUESTION
Important or exclamation point icon, consisting of a yellow triangle with a black exclamation point in it. MB_ICONEXCLAMATION y MB_ICONWARNING
Information or letter I icon, consiting of a thought bubble with a lowercase letter i in it. MB_ICONASTERISK y MB_ICONINFORMATION

Ejemplo

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

Llame a esta función miembro para modificar el estilo de una ventana.

BOOL ModifyStyle(
    DWORD dwRemove,
    DWORD dwAdd,
    UINT nFlags = 0);

Parámetros

dwRemove
Especifica los estilos de ventana que se van a quitar durante la modificación del estilo.

dwAdd
Especifica los estilos de ventana que se van a agregar durante la modificación del estilo.

nFlags
Las marcas que se van a pasar a SetWindowPos, o cero si no se debe llamar a SetWindowPos. El valor predeterminado es cero. Consulte la sección Comentarios para obtener una lista de marcas preestablecidas.

Valor devuelto

Distinto de cero si el estilo se ha modificado correctamente; de lo contrario, 0.

Comentarios

Los estilos que se van a agregar o quitar se pueden combinar mediante el operador bit a bit OR (|). Consulte los temas Estilos de ventana y CreateWindow de Windows SDK para obtener información sobre los estilos de ventana disponibles.

Si nFlags es distinto de cero, ModifyStyle llama a la función de la API de Windows SetWindowPos y vuelve a dibujar la ventana combinando nFlags con las cuatro marcas preestablecidas siguientes:

  • SWP_NOSIZE Conserva el tamaño actual.

  • SWP_NOMOVE Conserva la posición actual.

  • SWP_NOZORDER Conserva el orden Z actual.

  • SWP_NOACTIVATE No activa la ventana.

Para modificar los estilos extendidos de una ventana, consulte ModifyStyleEx.

Nota:

Para algunos estilos de determinados controles (el estilo ES_READONLY del control de edición, por ejemplo), es posible que ModifyStyle no cambie correctamente el estilo porque es posible que el control tenga que realizar un procesamiento interno especial. En estos casos, un mensaje correspondiente para cambiar el estilo estará disponible (EM_SETREADONLY en el ejemplo mencionado).

Ejemplo

// 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

Llame a esta función miembro para modificar el estilo extendido de una ventana.

BOOL ModifyStyleEx(
    DWORD dwRemove,
    DWORD dwAdd,
    UINT nFlags = 0);

Parámetros

dwRemove
Especifica los estilos extendidos de ventana que se van a quitar durante la modificación del estilo.

dwAdd
Especifica los estilos extendidos de ventana que se van a agregar durante la modificación del estilo.

nFlags
Las marcas que se van a pasar a SetWindowPos, o cero si no se debe llamar a SetWindowPos. El valor predeterminado es cero. Consulte la sección Comentarios para obtener una lista de marcas preestablecidas.

Valor devuelto

Distinto de cero si el estilo se ha modificado correctamente; de lo contrario, 0.

Comentarios

Los estilos que se van a agregar o quitar se pueden combinar mediante el operador bit a bit OR (|). Consulte los temas Estilos extendidos de ventana en este libro y CreateWindowEx de Windows SDK para obtener información sobre los estilos extendidos disponibles.

Si nFlags es distinto de cero, ModifyStyleEx llama a la función de la API de Windows SetWindowPos y vuelve a dibujar la ventana combinando nFlags con las cuatro marcas preestablecidas siguientes:

  • SWP_NOSIZE Conserva el tamaño actual.

  • SWP_NOMOVE Conserva la posición actual.

  • SWP_NOZORDER Conserva el orden Z actual.

  • SWP_NOACTIVATE No activa la ventana.

Para modificar ventanas mediante estilos de ventana normales, consulte ModifyStyle.

Ejemplo

// 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

Cambia la posición y las dimensiones.

void MoveWindow(
    int x,
    int y,
    int nWidth,
    int nHeight,
    BOOL bRepaint = TRUE);

void MoveWindow(
    LPCRECT lpRect,
    BOOL bRepaint = TRUE);

Parámetros

x
Especifica la nueva posición del lado izquierdo del CWnd.

y
Especifica la nueva posición de la parte superior del CWnd.

nWidth
Especifica el nuevo ancho de CWnd.

nHeight
Especifica el nuevo alto de CWnd.

bRepaint
Especifica si CWnd se va a volver a pintar. Si es TRUE, CWnd recibe un mensaje WM_PAINT en su controlador de mensajes OnPaint, como de costumbre. Si este parámetro es FALSE, no se vuelve a pintar de ninguna manera. Esto se aplica al área cliente, al área no cliente (incluidas las barras de título y de desplazamiento) y a cualquier parte de la ventana primaria que esté descubierta como resultado del movimiento de CWnd. Cuando este parámetro es FALSE, la aplicación debe invalidar explícitamente o volver a dibujar las partes de CWnd y la ventana primaria que se deben volver a dibujar.

lpRect
El objeto CRect o la estructura RECT que especifica el nuevo tamaño y posición.

Comentarios

Para un objeto de nivel superior CWnd, los parámetros x y y son relativos a la esquina superior izquierda de la pantalla. Para un objeto secundario CWnd, son relativos a la esquina superior izquierda del área cliente de la ventana primaria.

La función MoveWindow envía el mensaje WM_GETMINMAXINFO. Controlar este mensaje ofrece a CWnd la oportunidad de modificar los valores predeterminados para las ventanas más grandes y más pequeñas posibles. Si los parámetros de la función miembro MoveWindow superan estos valores, los valores se pueden reemplazar por los valores mínimos o máximos del controlador WM_GETMINMAXINFO.

Ejemplo

Vea el ejemplo de CWnd::ClientToScreen.

CWnd::NotifyWinEvent

Indica al sistema que se ha producido un evento predefinido. Si alguna aplicación cliente ha registrado una función de enlace para el evento, el sistema llama a la función de enlace del cliente.

void NotifyWinEvent(
    DWORD event,
    LONG idObjectType,
    LONG idObject);

Parámetros

event
Especifica el evento que ha tenido lugar. Este valor debe ser una de las constantes de evento.

idObjectType
Identifica el tipo de objeto que ha generado el evento. Este valor es uno de los identificadores de objeto predefinidos o un valor personalizado de Id. de objeto.

idObject
Identifica si un objeto o un elemento secundario del objeto ha generado el evento. Si este valor es CHILDID_SELF, el propio objeto ha generado el evento. Si no es así, este valor es el Id. secundario del elemento que ha generado el evento.

Comentarios

Esta función miembro emula la funcionalidad de la función NotifyWinEvent, tal y como se describe en Windows SDK.

CWnd::OnActivate

El marco llama a esta función miembro cuando un objeto CWnd se está activando o desactivando.

afx_msg void OnActivate(
    UINT nState,
    CWnd* pWndOther,
    BOOL bMinimized);

Parámetros

nState
Especifica si CWnd se está activando o desactivando. Puede ser uno de los siguientes valores:

  • WA_INACTIVE La ventana se está desactivando.

  • WA_ACTIVE La ventana se está activando mediante algún método distinto de un clic del mouse (por ejemplo, mediante el uso de la interfaz de teclado para seleccionar la ventana).

  • WA_CLICKACTIVE La ventana se está activando mediante un clic del mouse.

pWndOther
El puntero al CWnd que se está activando o desactivando. El puntero puede ser NULL, y puede ser temporal.

bMinimized
Especifica el estado minimizado del CWnd que se está activando o desactivando. Un valor de TRUE indica que la ventana está minimizada.

Si es TRUE, CWnd está activando; de lo contrario, se está desactivando.

Comentarios

Si el objeto CWnd se activa con un clic del mouse, también recibirá una llamada de función miembro OnMouseActivate.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnActivateApp

El marco llama a esta función miembro para todas las ventanas de nivel superior de la tarea que se están activando y para todas las ventanas de nivel superior de la tarea que se están desactivando.

afx_msg void OnActivateApp(
    BOOL bActive,
    DWORD dwThreadID);

Parámetros

bActive
Especifica si CWnd se está activando o desactivando. TRUE significa que CWnd se está activando. FALSE significa que CWnd se está desactivando.

dwThreadID
Especifica el valor del Id. del subproceso. Si bActive es TRUE, dwThreadID identifica el subproceso propietario del CWnd que se está desactivando. Si bActive es FALSE, dwThreadID identifica el subproceso propietario del CWnd que se está activando.

Comentarios

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnAmbientProperty

El marco llama a esta función miembro para obtener valores de propiedad ambiente de una ventana que contiene controles OLE.

virtual BOOL OnAmbientProperty(
    COleControlSite* pSite,
    DISPID dispid,
    VARIANT* pvar);

Parámetros

pSite
Un puntero al sitio del control que ha solicitado la propiedad ambiente.

dispid
El Id. de distribución de la propiedad de ambiente solicitada.

pvar
Un puntero a una estructura VARIANT asignada por el autor de la llamada, a través de la cual se devolverá el valor de la propiedad ambiente.

Valor devuelto

TRUE si se admite la propiedad ambiente; FALSE si no es así.

Comentarios

Invalide esta función para modificar los valores de propiedad ambiente predeterminados devueltos por un contenedor de controles OLE a sus controles. Las solicitudes de propiedad ambiente no controladas por una función de invalidación deben reenviarse a la implementación de la clase base.

CWnd::OnAppCommand

El marco llama a esta función miembro cuando el usuario genera un evento de comando de aplicación. Tal evento se produce cuando el usuario hace clic en un botón de comando de aplicación o escribe una clave de comando de aplicación.

afx_msg void OnAppCommand(
    CWnd* pWnd,
    UINT nCmd,
    UINT nDevice,
    UINT nKey);

Parámetros

pWnd
[entrada] Un puntero a un objeto CWnd que representa la ventana en la que el usuario ha hecho clic en el botón de comando o presionado la tecla de comando. Esta ventana puede ser una ventana secundaria de la ventana que recibe el mensaje.

nCmd
[entrada] Indica el comando de aplicación. Para obtener una lista de los valores posibles, consulte los comandos en la sección cmd del parámetro lParam de WM_APPCOMMAND.

nDevice
[entrada] El dispositivo de entrada que ha generado el evento de entrada. Para obtener una lista de los valores posibles, consulte los dispositivos en la sección uDevice del parámetro lParam de WM_APPCOMMAND.

nKey
[entrada] Indica las teclas virtuales que están presionadas, como la tecla CTRL o el botón izquierdo del mouse. Para obtener una lista de los valores posibles, consulte las teclas en la sección dwKeys del parámetro lParam de WM_APPCOMMAND. Para obtener más información, consulte la sección «Parámetros del mensaje» en Acerca de las entrada del mouse.

Comentarios

Este método recibe la notificación WM_APPCOMMAND, descrita en Windows SDK.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnAskCbFormatName

El marco llama a esta función miembro cuando el Portapapeles contiene un identificador de datos para el formato CF_OWNERDISPLAY (cuando el propietario del Portapapeles muestre el contenido del Portapapeles).

afx_msg void OnAskCbFormatName(
    UINT nMaxCount,
    LPTSTR lpszString);

Parámetros

nMaxCount
Especifica el número máximo de bytes que se van a copiar.

lpszString
Apunta al búfer donde se va a almacenar la copia del nombre de formato.

Comentarios

El propietario del Portapapeles debe proporcionar un nombre para el formato.

Invalide esta función miembro y copie el nombre del formato CF_OWNERDISPLAY en el búfer especificado, sin superar el número máximo de bytes especificados.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnCancelMode

El marco llama a esta función miembro para informar a CWnd de que debe cancelar cualquier modo interno.

afx_msg void OnCancelMode();

Comentarios

Si el objeto CWnd tiene el foco, se llama a su función miembro OnCancelMode cuando se muestra un cuadro de diálogo o un cuadro de mensaje. Esto proporciona a CWnd la oportunidad de cancelar modos como la captura del mouse.

La implementación predeterminada responde llamando a la función de Windows ReleaseCapture. Invalide esta función miembro en la clase derivada para controlar otros modos.

CWnd::OnCaptureChanged

El marco llama a esta función miembro para notificar a la ventana que está perdiendo la captura del mouse.

afx_msg void OnCaptureChanged(CWnd* pWnd);

Parámetros

pWnd
Un puntero a la ventana para obtener la captura del mouse

Comentarios

Una ventana recibe este mensaje incluso si ella misma llama a ReleaseCapture. Una aplicación no debe intentar establecer la captura del mouse en respuesta a este mensaje. Cuando recibe este mensaje, una ventana debe volver a dibujarse, si fuera necesario, para reflejar el nuevo estado de captura del mouse.

Consulte Windows SDK para obtener información sobre la función de Windows ReleaseCapture.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnChangeCbChain

El marco llama a esta función miembro para cada ventana de la cadena de visor del Portapapeles para notificarle que se está quitando una ventana de la cadena.

afx_msg void OnChangeCbChain(
    HWND hWndRemove,
    HWND hWndAfter);

Parámetros

hWndRemove
Especifica el identificador de ventana que se está quitando de la cadena de visor del Portapapeles.

hWndAfter
Especifica el identificador de ventana que sigue a la ventana que se está quitando de la cadena de visor del Portapapeles.

Comentarios

Cada objeto CWnd que recibe una llamada de OnChangeCbChain debe usar la función de Windows SendMessage para enviar el mensaje WM_CHANGECBCHAIN a la siguiente ventana de la cadena de visor del Portapapeles (el identificador devuelto por SetClipboardViewer). Si hWndRemove es la siguiente ventana de la cadena, la ventana especificada por hWndAfter se convierte en la siguiente ventana y los mensajes del Portapapeles se pasan a ella.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnChangeUIState

Se llama cuando es necesario cambiar el estado de la interfaz de usuario.

afx_msg void OnChangeUIState(
    UINT nAction,
    UINT nUIElement);

Parámetros

nAction
Especifica la acción que se va a realizar. Puede ser uno de los siguientes valores:

  • UIS_CLEAR El elemento de estado de la interfaz de usuario (especificado por nUIElement) debe estar oculto.

  • UIS_INITIALIZE El elemento de estado de la interfaz de usuario (especificado por nUIElement) debe cambiarse en función del último evento de entrada. Para obtener más información, consulte la sección Comentarios de WM_CHANGEUISTATE.

  • UIS_SET El elemento de estado de la interfaz de usuario (especificado por nUIElement) debe ser visible.

nUIElement
Especifica qué elementos de estado de la interfaz de usuario se ven afectados, o el estilo del control. Puede ser uno de los siguientes valores:

  • UISF_HIDEACCEL Aceleradores de teclado.

  • UISF_HIDEFOCUS Indicadores de foco.

  • UISF_ACTIVE Windows XP: se debe dibujar un control en el estilo usado para los controles activos.

Comentarios

Esta función miembro se usa para emular la funcionalidad del mensaje WM_CHANGEUISTATE, tal como se describe en Windows SDK.

CWnd::OnChar

El marco llama a esta función miembro cuando una pulsación de tecla se traduce en un carácter que no es del sistema.

afx_msg void OnChar(
    UINT nChar,
    UINT nRepCnt,
    UINT nFlags);

Parámetros

nChar
Contiene el valor de código de carácter de la tecla.

nRepCnt
Contiene el recuento de repeticiones, el número de veces que se repite la pulsación de tecla cuando el usuario mantiene presionada la tecla.

nFlags
Contiene el código de examen, el código de transición de tecla, el estado de tecla anterior y el código de contexto, como se muestra en la lista siguiente:

Valor Significado
0-15 Especifica el recuento de repeticiones. El valor es el número de veces que se repite la pulsación de tecla como resultado de que el usuario mantenga presionada la tecla.
16-23 Especifica el código de examen. El valor depende del fabricante del equipo original (OEM).
24 Especifica si la tecla es una tecla extendida, como las teclas ALT y CTRL de la derecha que aparecen en un teclado mejorado de 101 o 102 teclas. El valor es 1 si es una tecla extendida; de lo contrario, es 0.
25-28 Windows los usa de manera interna.
29 Especifica el código de contexto. El valor es 1 si la tecla ALT se mantiene presionada mientras se presiona la tecla; de lo contrario, el valor es 0.
30 Especifica el estado de tecla anterior. El valor es 1 si la tecla está presionada antes de que se envíe el mensaje, o es 0 si la tecla no está presionada.
31 Especifica el estado de transición. El valor es 1 si se está liberando la tecla, o 0 si se está presionando la tecla.

Comentarios

Se llama a esta función antes de que se llame a la función miembro OnKeyUp y después de llamar a la función miembro OnKeyDown. OnChar contiene el valor de la tecla de teclado que se está presionando o liberando.

Dado que no hay necesariamente una correspondencia uno a uno entre las teclas presionadas y las llamadas de OnChar que se generan, la información en nFlags no suele ser útil para las aplicaciones. La información en nFlags solo se aplica a la llamada más reciente a la función miembro OnKeyUp o a la función miembro OnKeyDown que precede a la llamada a OnChar.

Para los teclados IBM mejorados con 101 o 102 teclas, las teclas mejoradas son las teclas ALT derecha y CTRL derecha en la sección principal del teclado; las teclas INS, SUPR, INICIO, FIN, REPÁG, AVPÁG y las teclas con flechas en los clústeres a la izquierda del teclado numérico, así como las teclas de barra diagonal (/) y ENTRAR en el teclado numérico. Otros teclados pueden admitir el bit de tecla extendida en nFlags.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnCharToItem

Se llama cuando un cuadro de lista con el estilo LBS_WANTKEYBOARDINPUT envía a su propietario un mensaje WM_CHARTOITEM en respuesta a un mensaje WM_CHAR.

afx_msg int OnCharToItem(
    UINT nChar,
    CListBox* pListBox,
    UINT nIndex);

Parámetros

nChar
Especifica el valor de la tecla presionada por el usuario.

pListBox
Especifica un puntero al cuadro de lista. Puede ser temporal.

nIndex
Especifica la posición actual del cursor de inserción.

Valor devuelto

El marco llama a esta función miembro para especificar la acción que ha realizado la aplicación en respuesta a la llamada. Si el valor devuelto es -2, la aplicación ha controlado todos los aspectos de la selección del elemento y no quiere ninguna acción adicional mediante el cuadro de lista. Si el valor devuelto es -1, el cuadro de lista debe realizar la acción predeterminada en respuesta a la pulsación de tecla. Un valor devuelto que sea 0 o mayor que 0 especifica el índice de base cero de un elemento en el cuadro de lista e indica que el cuadro de lista debe realizar la acción predeterminada para la pulsación de tecla en el elemento especificado.

Comentarios

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnChildActivate

Si el objeto CWnd es una ventana secundaria de la interfaz de varios documentos (MDI), el marco llama a OnChildActivate cuando el usuario hace clic en la barra de título de la ventana, o bien cuando se activa o mueve la ventana o se ajusta su tamaño.

afx_msg void OnChildActivate();

CWnd::OnChildNotify

Esta ventana primaria de la ventana llama a esta función miembro cuando recibe un mensaje de notificación que se aplica a esta ventana.

virtual BOOL OnChildNotify(
    UINT message,
    WPARAM wParam,
    LPARAM lParam,
    LRESULT* pResult);

Parámetros

message
Un número de mensaje de Windows enviado a una ventana primaria.

wParam
El wparam asociado con el mensaje.

lParam
El lparam asociado con el mensaje.

pLResult
Un puntero a un valor que se va a devolver desde el procedimiento de ventana principal. Este puntero será NULL si no se espera que se devuelva un valor.

Valor devuelto

Distinto de cero si esta ventana es responsable de controlar el mensaje enviado a su elemento primario; de lo contrario, 0.

Comentarios

Nunca llame a esta función miembro directamente.

La implementación predeterminada de esta función miembro devuelve 0, lo que significa que el elemento primario debe controlar el mensaje.

Invalide esta función miembro para ampliar la manera en que un control responde a los mensajes de notificación.

CWnd::OnClipboardUpdate

El marco llama a esta función miembro cuando el contenido del Portapapeles ha cambiado.

afx_msg void OnClipboardUpdate();

CWnd::OnClose

El marco llama a esta función miembro como señal de que se va a terminar CWnd o una aplicación.

afx_msg void OnClose();

Comentarios

La implementación predeterminada llama a DestroyWindow.

CWnd::OnColorizationColorChanged

El marco llama a este miembro cuando la directiva de representación del área no cliente ha cambiado.

afx_msg void OnColorizationColorChanged(
    DWORD dwColorizationColor,
    BOOL bOpacity);

Parámetros

dwColorizationColor
[entrada] Especifica el nuevo color de coloración. El formato de color es un número hexadecimal de la forma 0xAARRGGBB, donde cada uno de los cuatro componentes pertenece al intervalo de 0x00 a 0xFF. El componente AA es el valor alfa, RR es el color rojo, GG es verde y BB es azul.

bOpacity
[entrada] TRUE si el nuevo color se combina con opacidad; FALSE si no es así.

Comentarios

Este método recibe un mensaje de notificación WM_DWMNCRENDERINGCHANGED, descrito en Windows SDK.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnCommand

El marco llama a esta función miembro cuando el usuario selecciona un elemento de un menú, cuando un control secundario envía un mensaje de notificación o cuando se traduce una pulsación de tecla del acelerador.

virtual BOOL OnCommand(
    WPARAM wParam,
    LPARAM lParam);

Parámetros

wParam
La palabra de valor inferior de wParam identifica el Id. de comando del elemento de menú, del control o del acelerador. La palabra de valor superior de wParam especifica el mensaje de notificación si el mensaje procede de un control. Si el mensaje procede de un acelerador, la palabra de valor superior es 1. Si el mensaje procede de un menú, la palabra de valor superior es 0.

lParam
Identifica el control que envía el mensaje si el mensaje procede de un control. De lo contrario, lParam es 0.

Valor devuelto

Una aplicación devuelve un valor distinto de cero si procesa este mensaje; de lo contrario, 0.

Comentarios

OnCommand procesa el mapa de mensajes para la notificación de control y las entradas ON_COMMAND, y llama a la función miembro adecuada.

Invalide esta función miembro en la clase derivada para controlar el mensaje WM_COMMAND. Una invalidación no procesará el mapa de mensajes a menos que se llame a la clase base OnCommand.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnCompacting

El marco llama a esta función miembro para todas las ventanas de nivel superior cuando Windows detecta que más del 12,5 % del tiempo del sistema en un intervalo de 30 a 60 segundos se dedica a compactar memoria.

afx_msg void OnCompacting(UINT nCpuTime);

Parámetros

nCpuTime
Especifica la proporción de tiempo de CPU que Windows dedica a la compactación de memoria con respecto al tiempo de CPU dedicado a realizar otras operaciones. Por ejemplo, 8000 h representa el 50 % del tiempo de CPU dedicado a compactar memoria.

Comentarios

Esto indica que la memoria del sistema es baja.

Cuando un objeto CWnd recibe esta llamada, debe liberar tanta memoria como sea posible, teniendo en cuenta el nivel actual de actividad de la aplicación y el número total de aplicaciones que se están ejecutando en Windows. La aplicación puede llamar a la función de Windows para determinar cuántas aplicaciones se están ejecutando.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnCompareItem

El marco llama a esta función miembro para especificar la posición relativa de un nuevo elemento en un cuadro combinado o un cuadro de lista, ambos secundarios, ordenados y de dibujo de propietario.

afx_msg int OnCompareItem(
    int nIDCtl,
    LPCOMPAREITEMSTRUCT lpCompareItemStruct);

Parámetros

nIDCtl
Identificador del control que ha enviado el mensaje WM_COMPAREITEM.

lpCompareItemStruct
Contiene un puntero largo a una estructura de datos COMPAREITEMSTRUCT que contiene los identificadores y los datos proporcionados por la aplicación para dos elementos del cuadro combinado o de lista.

Valor devuelto

Indica la posición relativa de los dos elementos. Puede ser cualquiera de los siguientes valores:

Valor Significado
-1 El elemento 1 se sitúa antes del elemento 2.
0 El elemento 1 y el elemento 2 se ordenan igual.
1 El elemento 1 se ordena después del elemento 2.

Comentarios

Si se crea un cuadro combinado o de lista con el estilo CBS_SORT o LBS_SORT, Windows envía al propietario del cuadro combinado o de lista un mensaje WM_COMPAREITEM cada vez que la aplicación agrega un nuevo elemento.

Dos elementos del cuadro combinado o de lista se reforman en una estructura COMPAREITEMSTRUCT a la que apunta lpCompareItemStruct. OnCompareItem debe devolver un valor que indique cuál de los elementos debe aparecer antes del otro. Normalmente, Windows realiza esta llamada varias veces hasta que determina la posición exacta del nuevo elemento.

Si el miembro hwndItem de la estructura COMPAREITEMSTRUCT pertenece a un objeto CListBox o CComboBox, se llama a la función virtual CompareItem de la clase adecuada. Invalide CComboBox::CompareItem o CListBox::CompareItem en la clase derivada CListBox o CComboBox para realizar la comparación de elementos.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnCompositionChanged

El marco llama a esta función miembro en relación con todas las ventanas de nivel superior cuando se habilita o deshabilita la composición del Administrador de ventanas de escritorio (DWM, de Desktop Window Manager).

afx_msg void OnCompositionChanged();

Comentarios

Este método recibe la notificación WM_DWMCOMPOSITIONCHANGED, descrita en Windows SDK.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnContextMenu

La llama el marco cuando el usuario ha hecho clic en la ventana con el botón derecho del mouse.

afx_msg void OnContextMenu(
    CWnd* pWnd,
    CPoint pos);

Parámetros

pWnd
El identificador de la ventana en la que el usuario ha hecho clic con el botón derecho del mouse. Esta ventana puede ser una ventana secundaria de la ventana que recibe el mensaje. Para obtener más información sobre cómo procesar este mensaje, consulte la sección Comentarios.

pos
La posición del cursor, en coordenadas de pantalla, en el momento del clic en el mouse.

Comentarios

Se puede procesar este mensaje mostrando un menú contextual mediante TrackPopupMenu.

Si no se muestra un menú contextual, se debe pasar este mensaje a la función DefWindowProc. Si la ventana es una ventana secundaria, DefWindowProc envía el mensaje a la ventana primaria. De lo contrario, DefWindowProc muestra un menú contextual predeterminado si la posición especificada está en el título de la ventana.

CWnd::OnCopyData

El marco llama a esta función miembro para copiar datos de una aplicación a otra.

afx_msg BOOL OnCopyData(
    CWnd* pWnd,
    COPYDATASTRUCT* pCopyDataStruct);

Parámetros

pWnd
Un puntero a un objeto CWnd que envía los datos.

pCopyDataStruct
Un puntero a una estructura COPYDATASTRUCT que contiene los datos que se envían.

Valor devuelto

Devuelve TRUE si la aplicación receptora acepta correctamente los datos. De lo contrario, devuelve FALSE.

Comentarios

Los datos que se pasan no deben contener punteros u otras referencias a objetos que no sean accesibles para la aplicación que recibe los datos.

Mientras se copian los datos, no debe cambiarlos ningún otro subproceso del proceso de envío.

La aplicación receptora debe tener en cuenta los datos de solo lectura. La estructura a la que apunta el parámetro pCopyDataStruct solo es válida durante la transferencia de datos; sin embargo, la aplicación receptora no debe liberar la memoria asociada a la estructura.

Si la aplicación receptora necesita acceder a los datos después de que esta función vuelva, debe copiar los datos recibidos en un búfer local.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnCreate

El marco llama a esta función miembro cuando una aplicación solicita la creación de la ventana de Windows llamando a la función miembro Create o CreateEx.

afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);

Parámetros

lpCreateStruct
Un puntero a una estructura CREATESTRUCT que contiene información sobre el objeto CWnd que se está creando.

Valor devuelto

OnCreate debe devolver 0 para continuar con la creación del objeto CWnd. Si la aplicación devuelve -1, se destruirá la ventana.

Comentarios

El objeto CWnd recibe esta llamada después de crear la ventana, pero antes de que se haga visible. Se llama a OnCreate antes de que vuelva la función miembro Create o CreateEx.

Invalide esta función miembro para realizar cualquier inicialización necesaria de una clase derivada.

La estructura CREATESTRUCT contiene copias de los parámetros usados para crear la ventana.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnCtlColor

El marco llama a esta función miembro cuando un control secundario está a punto de dibujarse.

afx_msg HBRUSH OnCtlColor(
    CDC* pDC,
    CWnd* pWnd,
    UINT nCtlColor);

Parámetros

pDC
Contiene un puntero al contexto de visualización de la ventana secundaria. Puede ser temporal.

pWnd
Contiene un puntero al control que solicita el color. Puede ser temporal.

nCtlColor
Contiene uno de los valores siguientes, que especifica el tipo de control:

  • CTLCOLOR_BTN Control de botón

  • CTLCOLOR_DLG Cuadro de diálogo

  • CTLCOLOR_EDIT Control de edición

  • CTLCOLOR_LISTBOX Control de cuadro de lista

  • CTLCOLOR_MSGBOX Cuadro de mensaje

  • CTLCOLOR_SCROLLBAR Control de barra de desplazamiento

  • CTLCOLOR_STATIC Control estático

Valor devuelto

OnCtlColor debe devolver un identificador al pincel que se va a usar para pintar el fondo del control.

Comentarios

La mayoría de los controles envían este mensaje a su elemento primario (normalmente un cuadro de diálogo) para preparar el pDC para dibujar el control con los colores correctos.

Para cambiar el color del texto, llame a la función miembro SetTextColor con los valores rojo, verde y azul (RGB) deseados.

Para cambiar el color de fondo de un control de edición de una sola línea, establezca el identificador de pincel en los códigos de mensaje CTLCOLOR_EDIT y CTLCOLOR_MSGBOX, y llame a la función CDC::SetBkColor en respuesta al código CTLCOLOR_EDIT.

No se llamará a OnCtlColor para el cuadro de lista de un cuadro combinado desplegable, porque el cuadro de lista desplegable es un elemento secundario del cuadro combinado y no un elemento secundario de la ventana. Para cambiar el color del cuadro de lista desplegable, cree un CComboBox con una invalidación de OnCtlColor que comprueba CTLCOLOR_LISTBOX en el parámetro nCtlColor. En este controlador, la función miembro SetBkColor debe usarse para establecer el color de fondo del texto.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función. Para agregar el método siguiente a la clase de diálogo, use el panel de propiedades de Visual Studio para agregar un controlador de mensajes para WM_CTLCOLOR. Como alternativa, puede agregar manualmente una entrada ON_WM_CTLCOLOR() al mapa de mensajes.

Ejemplo

// 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

El marco llama a esta función miembro cuando se llama a la función miembro OnKeyUp y a las funciones miembro OnKeyDown.

afx_msg void OnDeadChar(
    UINT nChar,
    UINT nRepCnt,
    UINT nFlags);

Parámetros

nChar
Especifica el valor del carácter de tecla inactiva.

nRepCnt
Especifica el recuento de repeticiones.

nFlags
Contiene el código de examen, el código de transición de teclas, el estado de tecla anterior y el código de contexto, como se muestra en la lista siguiente:

Valor Descripción
0-7 Código de examen (valor dependiente del OEM). Byte bajo de palabra de valor superior.
8 Tecla extendida, como una tecla de función o una tecla del teclado numérico (1 si es una tecla extendida; en caso contrario, 0).
9-10 No se utiliza.
11-12 Windows los usa de manera interna.
13 Código de contexto (1 si se mantiene presionada la tecla ALT mientras se presiona la tecla; en caso contrario, 0).
14 Estado de tecla anterior (1 si la tecla está presionada antes de la llamada, 0 si la tecla no está presionada).
15 Estado de transición (1 si se está liberando la tecla, 0 si se está presionando la tecla).

Comentarios

Esta función miembro se puede usar para especificar el valor de carácter de una tecla inactiva. Una tecla inactiva es una tecla como el carácter diéresis, que se combina con otros caracteres para formar un carácter compuesto. Por ejemplo, el carácter diéresis-O consiste en la tecla inactiva diéresis y la tecla O.

Normalmente, una aplicación usa OnDeadChar para proporcionar información al usuario sobre cada tecla presionada. Por ejemplo, una aplicación puede mostrar el acento en la posición del carácter actual sin mover el cursor de inserción.

Dado que no hay necesariamente una correspondencia uno a uno entre las teclas presionadas y las llamadas de OnDeadChar, en general la información en nFlags no es útil para las aplicaciones. La información en nFlags solo se aplica a la llamada más reciente a la función miembro OnKeyUp o a la función miembro OnKeyDown que precede a la llamada de OnDeadChar.

Para los teclados IBM mejorados con 101 o 102 teclas, las teclas mejoradas son las teclas ALT derecha y CTRL derecha en la sección principal del teclado; las teclas INS, SUPR, INICIO, FIN, REPÁG, AVPÁG y las teclas con flechas en los clústeres a la izquierda del teclado numérico, así como las teclas de barra diagonal (/) y ENTRAR en el teclado numérico. Otros teclados pueden admitir el bit de tecla extendida en nFlags.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnDeleteItem

El marco llama a esta función miembro para informar al propietario de un cuadro de lista o cuadro combinado, ambos de dibujo de propietario, de que el cuadro de lista o el cuadro combinado se ha destruido o que se han quitado elementos mediante CComboBox::DeleteString, CListBox::DeleteString, CComboBox::ResetContent o CListBox::ResetContent.

afx_msg void OnDeleteItem(
    int nIDCtl,
    LPDELETEITEMSTRUCT lpDeleteItemStruct);

Parámetros

nIDCtl
Identificador del control que ha enviado el mensaje WM_DELETEITEM.

lpDeleteItemStruct
Especifica un puntero largo a una estructura de datos DELETEITEMSTRUCT que contiene información sobre el elemento de cuadro de lista eliminado.

Comentarios

Si el miembro hwndItem de la estructura DELETEITEMSTRUCT pertenece a un cuadro combinado o un cuadro de lista, se llama a la función virtual DeleteItem de la clase adecuada. Invalide la función miembro DeleteItem de la clase del control adecuada para eliminar datos específicos del elemento.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnDestroy

El marco llama a esta función miembro para informar al objeto CWnd de que se está destruyendo.

afx_msg void OnDestroy();

Comentarios

Se llama a OnDestroy después de quitar el objeto CWnd de la pantalla.

Se llama primero a OnDestroy para el CWnd que se destruye y, a continuación, para las ventanas secundarias de CWnd a medida que se destruyen. Se puede suponer que todas las ventanas secundarias siguen existiendo mientras se ejecuta OnDestroy.

Si el objeto CWnd que se destruye forma parte de la cadena de visor del Portapapeles (establecida mediante una llamada a la función miembro SetClipboardViewer), el CWnd debe quitarse a sí mismo de la cadena de visor del Portapapeles mediante la llamada a la función miembro ChangeClipboardChain antes de volver de la función OnDestroy.

CWnd::OnDestroyClipboard

El marco llama a esta función miembro para el propietario del Portapapeles cuando el Portapapeles se vacía a través de una llamada a la función de Windows EmptyClipboard.

afx_msg void OnDestroyClipboard();

CWnd::OnDeviceChange

El marco llama a esta función miembro para notificar a una aplicación o un controlador de dispositivo de un cambio en la configuración de hardware de un dispositivo o del equipo.

afx_msg BOOL OnDeviceChange(
    UINT nEventType,
    DWORD_PTR dwData);

Parámetros

nEventType
Un tipo de evento. Consulte la sección Comentarios para obtener una descripción de los valores disponibles.

dwData
La dirección de una estructura que contiene datos específicos del evento. Su significado depende del evento especificado.

Comentarios

En el caso de los dispositivos que ofrecen características controlables por software, como la expulsión y el bloqueo, el sistema operativo normalmente envía un mensaje DBT_DEVICEREMOVEPENDING para permitir que las aplicaciones y los controladores de dispositivos finalicen su uso del dispositivo correctamente.

Si el sistema operativo quita de forma forzada un dispositivo, es posible que no envíe un mensaje DBT_DEVICEQUERYREMOVE antes de hacerlo.

El parámetro nEvent puede ser uno de estos valores:

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnDevModeChange

El marco llama a esta función miembro para todos los objetos CWnd de nivel superior cuando el usuario cambia la configuración del modo de dispositivo.

afx_msg void OnDevModeChange(LPTSTR lpDeviceName);

Parámetros

lpDeviceName
Apunta al nombre del dispositivo especificado en el archivo de inicialización de Windows, WIN.INI.

Comentarios

Las aplicaciones que controlan el mensaje WM_DEVMODECHANGE pueden reinicializar la configuración del modo de dispositivo. Las aplicaciones que usan la función ExtDeviceMode de Windows para guardar y restaurar la configuración del dispositivo normalmente no procesan esta función.

No se llama a esta función cuando el usuario cambia la impresora predeterminada desde el panel de control. En este caso, se llama a la función OnWinIniChange.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnDrawClipboard

El marco llama a esta función miembro para cada ventana de la cadena de visor de Portapapeles cuando el contenido del Portapapeles cambia.

afx_msg void OnDrawClipboard();

Comentarios

Solo las aplicaciones que se han unido a la cadena de visor de Portapapeles mediante una llamada a la función miembro SetClipboardViewer deben responder a esta llamada.

Cada ventana que recibe una llamada de OnDrawClipboard debe llamar a la función de Windows SendMessagepara pasar un mensaje WM_DRAWCLIPBOARD a la siguiente ventana de la cadena de visor de Portapapeles. La función miembro SetClipboardViewer devuelve el identificador de la ventana siguiente; se puede modificar en respuesta a una llamada de función miembro OnChangeCbChain.

CWnd::OnDrawIconicThumbnailOrLivePreview

El marco llama a este método cuando necesita obtener un mapa de bits para mostrarlo en la miniatura de pestañas de Windows 7 o en el cliente para ojear la aplicación.

virtual void OnDrawIconicThumbnailOrLivePreview(
    CDC& dc,
    CRect rect,
    CSize szRequiredThumbnailSize,
    BOOL bIsThumbnail,
    BOOL& bAlphaChannelSet);

Parámetros

dc
Especifica el contexto del dispositivo.

rect
Especifica el rectángulo delimitador del área que se va a representar.

szRequiredThumbnailSize
Especifica el tamaño de la miniatura de destino. Se debe ignorar si bIsThumbnail es FALSE.

bIsThumbnail
Especifica si se llama a este método para miniaturas de icono o para vista previa dinámica (echar una ojeada).

bAlphaChannelSet
[salida] Establézcalo en TRUE si la implementación inicializa el canal alfa de un mapa de bits seleccionado en dc.

Comentarios

Invalide este método en una clase derivada y dibuje en el contexto de dispositivo especificado para personalizar la miniatura y echar una ojeada. Si bThumbnail es TRUE, se puede ignorar szRequiredThumbnailSize. En este caso debe tener en cuenta que dibuja un mapa de bits de tamaño completo (es decir, un mapa de bits que cubre toda el área cliente). El contexto del dispositivo (dc) viene con un mapa de bits seleccionado de 32 bits. La implementación predeterminada envía WM_PRINT a esta ventana con marcas PRF_CLIENT, PRF_CHILDREN y PRF_NONCLIENT.

CWnd::OnDrawItem

El marco llama a esta función miembro para el propietario de un control de botón de dibujo de propietario, control de cuadro combinado, control de cuadro de lista o menú cuando ha cambiado un aspecto visual del control o del menú.

afx_msg void OnDrawItem(
    int nIDCtl,
    LPDRAWITEMSTRUCT lpDrawItemStruct);

Parámetros

nIDCtl
Contiene el identificador del control que ha enviado el mensaje WM_DRAWITEM. Si un menú ha enviado el mensaje, nIDCtl contiene 0.

lpDrawItemStruct
Especifica un puntero largo a una estructura de datos DRAWITEMSTRUCT que contiene información sobre el elemento que se va a dibujar y el tipo de dibujo necesario.

Comentarios

El miembro itemAction de la estructura DRAWITEMSTRUCT define la operación de dibujo que se va a realizar. Los datos de este miembro permiten al propietario del control determinar qué acción de dibujo es necesaria.

Antes de volver del procesamiento de este mensaje, una aplicación debe asegurarse de que el contexto del dispositivo identificado por el miembro hDC de la estructura DRAWITEMSTRUCT se restaure al estado predeterminado.

Si el miembro hwndItem pertenece a un objeto CButton, CMenu, CListBox o CComboBox, se llama a la función virtual DrawItem de la clase adecuada. Invalide la función miembro DrawItem de la clase del control adecuada para eliminar datos específicos del elemento.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnDropFiles

El marco llama esta función miembro cuando el usuario suelta el botón izquierdo del mouse en una ventana que se ha registrado a sí misma como destinataria de los archivos colocados.

afx_msg void OnDropFiles(HDROP hDropInfo);

Parámetros

hDropInfo
Un puntero a una estructura de datos interna que describe los archivos colocados. Las funciones de Windows DragFinish, DragQueryFile y DragQueryPoint usan este identificador para recuperar información sobre los archivos colocados.

Comentarios

Normalmente, una clase derivada se diseñará para admitir archivos colocados y se registrará a sí misma durante la construcción de ventanas.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnEnable

El marco llama a esta función miembro cuando una aplicación cambia el estado habilitado del objeto CWnd.

afx_msg void OnEnable(BOOL bEnable);

Parámetros

bEnable
Especifica si el objeto CWnd se ha habilitado o deshabilitado. Este parámetro es TRUE si se ha habilitado el CWnd; es FALSE si se ha deshabilitado el CWnd.

Comentarios

Se llama a OnEnable antes de que la función miembro EnableWindow vuelva, pero después de que haya cambiado el estado habilitado de la ventana (bit de estilo WS_DISABLED).

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnEndSession

El marco llama a esta función miembro después de que el objeto CWnd haya devuelto un valor distinto de cero de una llamada de función miembro OnQueryEndSession.

afx_msg void OnEndSession(BOOL bEnding);

Parámetros

bEnding
Especifica si se está finalizando o no la sesión. Es TRUE si se está finalizando la sesión; de lo contrario, FALSE.

Comentarios

La llamada de OnEndSession informa al objeto CWnd de si la sesión realmente está finalizando.

Si bEnding es TRUE, Windows puede finalizar en cualquier momento después de que todas las aplicaciones hayan vuelto del procesamiento de esta llamada. Por lo tanto, haga que una aplicación realice todas las tareas necesarias para la finalización dentro de OnEndSession.

No es necesario llamar a la función miembro DestroyWindow o a la función de Windows PostQuitMessage cuando finaliza la sesión.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnEnterIdle

El marco llama a esta función miembro para informar al procedimiento de ventana principal de una aplicación de que un menú o un cuadro de diálogo modal está entrando en estado inactivo.

afx_msg void OnEnterIdle(
    UINT nWhy,
    CWnd* pWho);

Parámetros

nWhy
Especifica si el mensaje es el resultado de un cuadro de diálogo o de un menú que se muestra. Este parámetro puede establecerse con uno de los siguientes valores:

  • MSGF_DIALOGBOX El sistema está inactivo porque se está mostrando un cuadro de diálogo.

  • MSGF_MENU El sistema está inactivo porque se está mostrando un menú.

pWho
Especifica un puntero al cuadro de diálogo (si nWhy es MSGF_DIALOGBOX) o la ventana que contiene el menú mostrado (si nWhy es MSGF_MENU). Este puntero puede ser temporal y no se debe almacenar para su uso posterior.

Comentarios

Un cuadro de diálogo modal o menú entra en un estado inactivo cuando no hay ningún mensaje esperando en la cola después de haber procesado uno o varios mensajes anteriores.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnEnterMenuLoop

El marco llama a esta función miembro cuando se ha entrado en un bucle modal de menú.

afx_msg void OnEnterMenuLoop(BOOL bIsTrackPopupMenu);

Parámetros

bIsTrackPopupMenu
Especifica si el menú implicado es un menú emergente. Es distinto de cero si la función se ejecuta correctamente; de lo contrario, 0.

Comentarios

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnEnterSizeMove

El marco llama a esta función miembro una vez después de que la ventana afectada entre en un bucle modal de movimiento o de ajuste de tamaño.

afx_msg void OnEnterSizeMove();

Comentarios

Este método recibe la notificación WM_ENTERSIZEMOVE, descrita en Windows SDK.

Una ventana entra en un bucle modal de movimiento o de ajuste de tamaño cuando el usuario hace clic en la barra de título o en el borde de tamaño de la ventana, o cuando la ventana pasa el mensaje WM_SYSCOMMAND a la función CWnd::DefWindowProc y el parámetro wParam de ese mensaje especifica SC_MOVE o SC_SIZE.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnEraseBkgnd

El marco llama a esta función miembro cuando es necesario borrar el fondo del objeto CWnd (por ejemplo, cuando cambia de tamaño).

afx_msg BOOL OnEraseBkgnd(CDC* pDC);

Parámetros

pDC
Especifica el objeto del contexto de dispositivo.

Valor devuelto

Distinto de cero si borra el fondo; de lo contrario, 0.

Comentarios

Se llama para preparar una región invalidada para que se pinte.

La implementación predeterminada borra el fondo mediante el pincel de fondo de la clase de ventana especificado por el miembro hbrBackground de la estructura de la clase de ventana.

Si el miembro hbrBackground es NULL, la versión invalidada de OnEraseBkgnd debe borrar el color de fondo. La versión también debe alinear el origen del pincel previsto con las coordenadas CWnd llamando primero a UnrealizeObject para el pincel y, a continuación, seleccionando el pincel.

Un OnEraseBkgnd invalidado debe devolver un valor distinto de cero en respuesta a WM_ERASEBKGND si procesa el mensaje y borra el fondo; esto indica que no se requiere un borrado adicional. Si devuelve 0, la ventana mantendrá la marca de que necesita ser borrada. (Normalmente, esto significa que el miembro fErase de la estructura PAINTSTRUCT será TRUE).

Windows supone que el fondo se calcula con el modo de asignación MM_TEXT. Si el contexto del dispositivo usa cualquier otro modo de asignación, es posible que el área borrada no esté dentro de la parte visible del área cliente.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnExitMenuLoop

El marco llama a esta función miembro cuando se sale de un bucle modal de menú.

afx_msg void OnExitMenuLoop(BOOL bIsTrackPopupMenu);

Parámetros

bIsTrackPopupMenu
Especifica si el menú implicado es un menú emergente. Es distinto de cero si la función se ejecuta correctamente; de lo contrario, 0.

Comentarios

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnExitSizeMove

El marco llama a esta función miembro una vez después de que la ventana afectada salga de un bucle modal de movimiento o de ajuste de tamaño.

afx_msg void OnExitSizeMove();

Comentarios

Este método recibe la notificación WM_EXITSIZEMOVE, descrita en Windows SDK.

Una ventana entra en un bucle modal de movimiento o de ajuste de tamaño cuando el usuario hace clic en la barra de título o en el borde de tamaño de la ventana, o cuando la ventana pasa el mensaje WM_SYSCOMMAND a la función CWnd::DefWindowProc y el parámetro wParam de ese mensaje especifica SC_MOVE o SC_SIZE.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnFontChange

Todas las ventanas de nivel superior del sistema reciben una llamada de OnFontChange desde el marco después de que la aplicación cambie el grupo de recursos de fuente.

afx_msg void OnFontChange();

Comentarios

Una aplicación que agrega o quita fuentes del sistema (por ejemplo, a través de la función de Windows AddFontResource o RemoveFontResource) debe enviar el mensaje WM_FONTCHANGE a todas las ventanas de nivel superior.

Para enviar este mensaje, use la función de Windows SendMessage con el parámetro hWnd establecido en HWND_BROADCAST.

CWnd::OnGetDlgCode

Se llama en relación con un control para que el control pueda procesar por sí mismo las entradas de tecla de dirección y de tecla TAB.

afx_msg UINT OnGetDlgCode();

Valor devuelto

Uno o varios de los siguientes valores, que indican qué tipo de entrada procesa la aplicación:

  • DLGC_BUTTON Botón (genérico).

  • DLGC_DEFPUSHBUTTON Botón de inserción predeterminado.

  • DLGC_HASSETSELmensajes EM_SETSEL.

  • DLGC_UNDEFPUSHBUTTON Procesamiento no predeterminado del botón de inserción. (Una aplicación puede usar esta marca con DLGC_BUTTON para indicar que procesa la entrada del botón, pero se basa en el sistema para el procesamiento predeterminado del botón de inserción).

  • DLGC_RADIOBUTTON Botón de radio.

  • DLGC_STATIC Control estático.

  • DLGC_WANTALLKEYS Todas las entradas mediante teclado.

  • DLGC_WANTARROWSTeclas de dirección.

  • DLGC_WANTCHARSmensajes WM_CHAR.

  • DLGC_WANTMESSAGE Todas las entradas mediante teclado. La aplicación pasa este mensaje al control.

  • DLGC_WANTTAB Tecla TAB.

Comentarios

Normalmente, Windows controla todas las entradas de tecla de dirección y tecla TAB en un control CWnd. Al invalidar OnGetDlgCode, un control CWnd puede elegir un tipo determinado de entrada para procesarse a sí mismo.

Las funciones OnGetDlgCode predeterminadas de las clases de control predefinidas devuelven un código adecuado para cada clase.

CWnd::OnGetMinMaxInfo

El marco llama a esta función miembro siempre que Windows necesita conocer la posición o dimensiones maximizadas, o el tamaño de seguimiento mínimo o máximo.

afx_msg void OnGetMinMaxInfo(MINMAXINFO* lpMMI);

Parámetros

lpMMI
Apunta a una estructura MINMAXINFO que contiene información sobre el tamaño y la posición maximizados de una ventana, así como su tamaño de seguimiento mínimo y máximo. Para obtener más información sobre esta estructura, consulte la estructura MINMAXINFO.

Comentarios

El tamaño maximizado es el tamaño de la ventana cuando sus bordes están totalmente extendidos. El tamaño máximo de seguimiento de la ventana es el tamaño de ventana más grande que se puede lograr al ajustar el tamaño de la ventana con los bordes. El tamaño mínimo de seguimiento de la ventana es el tamaño de ventana más pequeño que se puede lograr al ajustar el tamaño de la ventana con los bordes.

Windows rellena una matriz de puntos que especifican valores predeterminados para las distintas posiciones y dimensiones. La aplicación puede cambiar estos valores en OnGetMinMaxInfo.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnHelp

Controla la Ayuda de F1 de la aplicación (usando el contexto actual).

afx_msg void OnHelp();

Comentarios

Consulte CWinApp::OnHelp para obtener más información.

CWnd::OnHelpFinder

Controla los comandos ID_HELP_FINDER y ID_DEFAULT_HELP.

afx_msg void OnHelpFinder();

Comentarios

Consulte CWinApp::OnHelpFinder para obtener más información.

CWnd::OnHelpIndex

Controla el comando ID_HELP_INDEX y proporciona un tema de Ayuda predeterminado.

afx_msg void OnHelpIndex();

Comentarios

Consulte CWinApp::OnHelpIndex para obtener más información.

CWnd::OnHelpInfo

El marco llama a este método cuando el usuario presiona la tecla F1.

afx_msg BOOL OnHelpInfo(HELPINFO* lpHelpInfo);

Parámetros

lpHelpInfo
Un puntero a una estructura HELPINFO que contiene información sobre el elemento de menú, el control, el cuadro de diálogo o la ventana para el que se solicita ayuda.

Valor devuelto

Devuelve TRUE si una ventana tiene el foco del teclado o si un menú está activo dentro de una ventana. Si ninguna ventana tiene el foco del teclado, devuelve FALSE.

Comentarios

Si un menú está activo cuando se presiona F1, WM_HELP se envía a la ventana asociada al menú; de lo contrario, WM_HELP se envía a la ventana que tiene el foco del teclado. Si no hay ninguna ventana con el foco del teclado, WM_HELP se envía a la ventana activa actualmente.

CWnd::OnHelpUsing

Controla el comando ID_HELP_USING.

afx_msg void OnHelpUsing();

Comentarios

Consulte CWinApp::OnHelpUsing para obtener más información.

CWnd::OnHotKey

El marco llama a esta función miembro cuando el usuario presiona una tecla de acceso rápido para todo el sistema.

afx_msg void OnHotKey(
    UINT nHotKeyId,
    UINT nKey1,
    UINT nKey2);

Parámetros

nHotKeyId
[entrada] El identificador de la tecla de acceso rápido que ha generado el mensaje. Si el mensaje lo ha generado una tecla de acceso rápido definida por el sistema, este parámetro tendrá uno de los siguientes valores:

  • IDHOT_SNAPDESKTOP: se ha presionado la tecla de acceso rápido para acoplar el escritorio.
  • IDHOT_SNAPWINDOW: se ha presionado la tecla de acceso rápido para acoplar la ventana.

nKey1
[entrada] Una combinación bit a bit (OR) de marcas que indican las teclas que se han presionado en combinación con la tecla especificada por el parámetro nKey2. Los valores posibles son:

  • MOD_ALT: se ha presionado cualquier tecla ALT.
  • MOD_CONTROL: se ha presionado cualquier tecla CTRL.
  • MOD_SHIFT: se ha presionado la tecla MAYÚS.
  • MOD_WIN: se ha presionado cualquier tecla WINDOWS. Estas teclas están etiquetadas con el logotipo de Microsoft Windows.

nKey2
[entrada] El código de tecla virtual de la tecla de acceso rápido.

Comentarios

Este método recibe la notificación WM_HOTKEY, descrita en Windows SDK. Este mensaje se coloca en la parte superior de la cola de mensajes asociada al subproceso que ha registrado la tecla de acceso rápido. Use la función RegisterHotKey para registrar una tecla de acceso rápido para todo el sistema.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnHScroll

El marco llama a esta función miembro cuando el usuario hace clic en la barra de desplazamiento horizontal de una ventana.

afx_msg void OnHScroll(
    UINT nSBCode,
    UINT nPos,
    CScrollBar* pScrollBar);

Parámetros

nSBCode
Especifica un código de barra de desplazamiento que indica la solicitud de desplazamiento del usuario. Este parámetro puede ser uno de los siguientes:

  • SB_LEFT Desplazamiento hasta el extremo izquierdo.

  • SB_ENDSCROLL Fin del desplazamiento.

  • SB_LINELEFT Desplazamiento a la izquierda.

  • SB_LINERIGHT Desplazamiento a la derecha.

  • SB_PAGELEFT Desplazamiento de una página hacia la izquierda.

  • SB_PAGERIGHT Desplazamiento de una página hacia la derecha.

  • SB_RIGHT Desplazamiento hasta el extremo derecho.

  • SB_THUMBPOSITION Desplazamiento hasta la posición absoluta. El parámetro nPos especifica la posición actual.

  • SB_THUMBTRACK Arrastre del cuadro de desplazamiento hasta la posición especificada. El parámetro nPos especifica la posición actual.

nPos
Especifica la posición del cuadro de desplazamiento si el código de barra de desplazamiento es SB_THUMBPOSITION o SB_THUMBTRACK; de lo contrario, no se usa. En función del intervalo de desplazamiento inicial, nPos puede ser negativo y debe convertirse a un int si es necesario.

pScrollBar
Si el mensaje de desplazamiento procede de un control de barra de desplazamiento, contiene un puntero al control. Si el usuario hace clic en la barra de desplazamiento de una ventana, este parámetro es NULL. El puntero puede ser temporal y no se debe almacenar para su uso posterior.

Comentarios

Normalmente, el código de barra de desplazamiento SB_THUMBTRACK lo usan las aplicaciones que proporcionan información mientras se arrastra el cuadro de desplazamiento.

Si una aplicación desplaza el contenido controlado por la barra de desplazamiento, también debe restablecer la posición del cuadro de desplazamiento con la función miembro SetScrollPos.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

Ejemplo

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

El visor del Portapapeles llama a la función miembro OnHScrollClipboard del propietario del Portapapeles cuando los datos del Portapapeles tienen el formato CF_OWNERDISPLAY y hay un evento en la barra de desplazamiento horizontal del visor del Portapapeles.

afx_msg void OnHScrollClipboard(
    CWnd* pClipAppWnd,
    UINT nSBCode,
    UINT nPos);

Parámetros

pClipAppWnd
Especifica un puntero a una ventana del visor del Portapapeles. El puntero puede ser temporal y no se debe almacenar para su uso posterior.

nSBCode
Especifica uno de los siguientes códigos de barra de desplazamiento en la palabra de valor inferior:

  • SB_BOTTOM Desplazamiento a la esquina inferior derecha.

  • SB_ENDSCROLL Fin del desplazamiento.

  • SB_LINEDOWN Desplazamiento de una línea hacia abajo.

  • SB_LINEUP Desplazamiento de una línea hacia arriba.

  • SB_PAGEDOWN Desplazamiento de una página hacia abajo.

  • SB_PAGEUP Desplazamiento de una página hacia arriba.

  • SB_THUMBPOSITION Desplazamiento a la posición absoluta. La posición actual se proporciona en nPos.

  • SB_TOP Desplazamiento a la esquina superior izquierda.

nPos
Especifica la posición del cuadro de desplazamiento si el código de barra de desplazamiento es SB_THUMBPOSITION; de lo contrario, no se usa.

Comentarios

El propietario tiene que desplazarse por la imagen del Portapapeles, invalidar la sección correspondiente y actualizar los valores de la barra de desplazamiento.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnIconEraseBkgnd

El marco llama a esta función miembro para un objeto minimizado (icono ) CWnd cuando el fondo del icono debe rellenarse antes de pintar el icono.

afx_msg void OnIconEraseBkgnd(CDC* pDC);

Parámetros

pDC
Especifica el objeto del contexto de dispositivo del icono. Puede ser temporal y no debe almacenarse para su uso posterior.

Comentarios

CWnd recibe esta llamada solo si se define un icono de clase para la implementación predeterminada de la ventana; de lo contrario, se llama a OnEraseBkgnd.

La función miembro DefWindowProc rellena el fondo del icono con el pincel de fondo de la ventana primaria.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnInitMenu

El marco llama a esta función miembro cuando un menú está a punto de activarse.

afx_msg void OnInitMenu(CMenu* pMenu);

Parámetros

pMenu
Especifica el menú que se va a inicializar. Puede ser temporal y no debe almacenarse para su uso posterior.

Comentarios

Se llama a OnInitMenu cuando el usuario hace clic en un elemento de la barra de menús o presiona una tecla de menú. Invalide esta función miembro para modificar el menú antes de que se muestre.

Solo se llama a OnInitMenu una vez, cuando se accede por primera vez a un menú (por ejemplo, cuando un usuario hace clic en un elemento de la barra de menús). Este método no proporciona información sobre los elementos de menú. No se llama a la función de nuevo cuando el usuario se mueve a los elementos del menú (por ejemplo, moviendo el mouse a través de varios elementos de menú). Una vez que el usuario sale del menú (por ejemplo, haciendo clic en el área cliente de la aplicación) y después hace clic en un elemento de la barra de menús, se volverá a llamar a la función.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnInitMenuPopup

El marco llama a esta función miembro cuando está a punto de activarse un menú emergente.

afx_msg void OnInitMenuPopup(
    CMenu* pPopupMenu,
    UINT nIndex,
    BOOL bSysMenu);

Parámetros

pPopupMenu
Especifica el objeto de menú del menú emergente. Puede ser temporal y no debe almacenarse para su uso posterior.

nIndex
Especifica el índice del menú emergente en el menú principal.

bSysMenu
TRUE si el menú emergente es el menú Control; de lo contrario, FALSE.

Comentarios

Esto permite a una aplicación modificar el menú emergente antes de que se muestre sin cambiar todo el menú.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnInputDeviceChange

El marco llama a esta función miembro cuando se agrega o quita un dispositivo de E/S del sistema.

afx_msg void OnInputDeviceChange(unsigned short uFlag);

Parámetros

uFlag
[entrada] Esta marca puede tomar los siguientes valores:

  • GIDC_ARRIVAL: Se ha agregado un nuevo dispositivo al sistema.
  • GIDC_REMOVAL: Se ha quitado un dispositivo del sistema.

Comentarios

Este método recibe la notificación WM_INPUT_DEVICE_CHANGE, descrita en Windows SDK. Es un mensaje de dispositivo de entrada genérico.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnInputLangChange

El marco llama a este miembro para la ventana de más alto nivel afectada después de que se haya cambiado el idioma de entrada de una aplicación.

afx_msg void OnInputLangChange(
    UINT nCharSet,
    UINT nLocaleId);

Parámetros

nCharSet
[entrada] Conjunto de caracteres de la nueva configuración regional. Para obtener más información, vea el parámetro lfCharSet de la estructura LOGFONT.

nLocaleId
[entrada] El identificador de configuración regional de entrada. Para obtener más información, vea Constantes y cadenas de identificador de idioma.

Comentarios

Este método recibe un mensaje de notificación WM_INPUTLANGCHANGE, descrito en Windows SDK.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnInputLangChangeRequest

El marco llama a este miembro para la ventana con el foco cuando el usuario elige un nuevo idioma de entrada.

afx_msg void OnInputLangChangeRequest(
    UINT nFlags,
    UINT nLocaleId);

Parámetros

nFlags
[entrada] Una combinación bit a bit (OR) de marcas que indica que la nueva configuración regional se ha seleccionado de la configuración regional anterior o siguiente en la lista de configuraciones regionales instaladas, o que el nuevo diseño de teclado de la configuración regional de entrada se puede usar con el juego de caracteres del sistema. Los valores posibles son INPUTLANGCHANGE_BACKWARD, INPUTLANGCHANGE_FORWARD y INPUTLANGCHANGE_SYSCHARSET.

nLocaleId
[entrada] El identificador de configuración regional de entrada. Para obtener más información, vea Constantes y cadenas de identificador de idioma.

Comentarios

Este método recibe un mensaje de notificación WM_INPUTLANGCHANGEREQUEST, descrito en Windows SDK. Este mensaje se publica cuando el usuario elige un nuevo idioma de entrada con una tecla de acceso rápido especificada en la aplicación del panel de control de teclado o desde el indicador de la barra de tareas del sistema.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnKeyDown

El marco llama a esta función miembro cuando se presiona una tecla no del sistema.

afx_msg void OnKeyDown(
    UINT nChar,
    UINT nRepCnt,
    UINT nFlags);

Parámetros

nChar
Especifica el código de tecla virtual de la tecla dada. Para obtener una lista de códigos de tecla virtual estándar, consulte Winuser.h.

nRepCnt
El recuento de repeticiones (el número de veces que se repite la pulsación de tecla como resultado de que el usuario mantenga presionada la tecla).

nFlags
Contiene el código de examen, el código de transición de teclas, el estado de tecla anterior y el código de contexto, como se muestra en la lista siguiente:

Valor Descripción
0-7 Código de examen (valor dependiente del OEM).
8 Tecla extendida, como una tecla de función o una tecla en el teclado numérico (1 si es una tecla extendida).
9-10 No se utiliza.
11-12 Windows los usa de manera interna.
13 Código de contexto (1 si se mantiene presionada la tecla ALT mientras se presiona la tecla; en caso contrario, 0).
14 Estado de tecla anterior (1 si la tecla está presionada antes de la llamada, 0 si la tecla no está presionada).
15 Estado de transición (1 si se está liberando la tecla, 0 si se está presionando la tecla).

Para un mensaje WM_KEYDOWN, el bit de transición de tecla (bit 15) es 0, y el bit de código de contexto (bit 13) es 0.

Comentarios

Una tecla no del sistema es una tecla de teclado que se presiona cuando la tecla ALT no está presionada o cuando CWnd tiene el foco de entrada.

Debido a la repetición automática, puede producirse más de una llamada de OnKeyDown antes de que se realice una llamada de función miembro OnKeyUp. El bit que indica el estado de tecla anterior se puede usar para determinar si la llamada OnKeyDown es la primera transición descendente o una transición descendente repetida.

Para los teclados IBM mejorados con 101 o 102 teclas, las teclas mejoradas son las teclas ALT derecha y CTRL derecha en la sección principal del teclado; las teclas INS, SUPR, INICIO, FIN, REPÁG, AVPÁG y las teclas con flechas en los clústeres a la izquierda del teclado numérico, así como las teclas de barra diagonal (/) y ENTRAR en el teclado numérico. Otros teclados pueden admitir el bit de tecla extendida en nFlags.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnKeyUp

El marco llama a esta función miembro cuando se presiona una tecla no del sistema.

afx_msg void OnKeyUp(
    UINT nChar,
    UINT nRepCnt,
    UINT nFlags);

Parámetros

nChar
Especifica el código de tecla virtual de la tecla dada. Para obtener una lista de códigos de tecla virtual estándar, consulte Winuser.h.

nRepCnt
El recuento de repeticiones (el número de veces que se repite la pulsación de tecla como resultado de que el usuario mantenga presionada la tecla).

nFlags
Contiene el código de examen, el código de transición de teclas, el estado de tecla anterior y el código de contexto, como se muestra en la lista siguiente:

Valor Descripción
0-7 Código de examen (valor dependiente del OEM). Byte bajo de palabra de valor superior.
8 Tecla extendida, como una tecla de función o una tecla del teclado numérico (1 si es una tecla extendida; en caso contrario, 0).
9-10 No se utiliza.
11-12 Windows los usa de manera interna.
13 Código de contexto (1 si se mantiene presionada la tecla ALT mientras se presiona la tecla; en caso contrario, 0).
14 Estado de tecla anterior (1 si la tecla está presionada antes de la llamada, 0 si la tecla no está presionada).
15 Estado de transición (1 si se está liberando la tecla, 0 si se está presionando la tecla).

Para un mensaje WM_KEYUP, el bit de transición de tecla (bit 15) es 1, y el bit de código de contexto (bit 13) es 0.

Comentarios

Una tecla no del sistema es una tecla de teclado que se presiona cuando la tecla ALT no está presionada o cuando el CWnd tiene el foco de entrada.

Para los teclados IBM mejorados con 101 o 102 teclas, las teclas mejoradas son las teclas ALT derecha y CTRL derecha en la sección principal del teclado; las teclas INS, SUPR, INICIO, FIN, REPÁG, AVPÁG y las teclas con flechas en los clústeres a la izquierda del teclado numérico, así como las teclas de barra diagonal (/) y ENTRAR en el teclado numérico. Algunos teclados pueden admitir el bit de tecla extendida en nFlags.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnKillFocus

El marco llama a esta función miembro inmediatamente antes de perder el foco de entrada.

afx_msg void OnKillFocus(CWnd* pNewWnd);

Parámetros

pNewWnd
Especifica un puntero a la ventana que recibe el foco de entrada (puede ser NULL o puede ser temporal).

Comentarios

Si el objeto CWnd está mostrando un cursor de inserción, el cursor de inserción debe destruirse en este momento.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnLButtonDblClk

El marco llama a esta función miembro cuando el usuario hace doble clic en el botón izquierdo del mouse.

afx_msg void OnLButtonDblClk(
    UINT nFlags,
    CPoint point);

Parámetros

nFlags
Indica si hay varias teclas virtuales presionadas. Este parámetro puede ser una combinación de los siguientes valores:

  • MK_CONTROL Se establece si la tecla CTRL está presionada.

  • MK_LBUTTON Se establece si el botón izquierdo del mouse está presionado.

  • MK_MBUTTON Se establece si el botón central del mouse está presionado.

  • MK_RBUTTON Se establece si el botón derecho del mouse está presionado.

  • MK_SHIFT Se establece si la tecla MAYÚS está presionada.

point
Especifica las coordenadas x e y del cursor. Las coordenadas siempre son relativas a la esquina superior izquierda de la ventana.

Comentarios

Solo las ventanas que tengan el estilo CS_DBLCLKSWNDCLASS recibirán llamadas de OnLButtonDblClk. Este es el valor predeterminado para las ventanas de Microsoft Foundation Class. Windows llama a OnLButtonDblClk cuando el usuario presiona, suelta y, a continuación, vuelve a presionar el botón izquierdo del mouse dentro del límite de tiempo de doble clic del sistema. Al hacer doble clic en el botón izquierdo del mouse, se generan cuatro eventos: los mensajes WM_LBUTTONDOWN y WM_LBUTTONUP, la llamada de WM_LBUTTONDBLCLK y otro mensaje WM_LBUTTONUP cuando se suelta el botón.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnLButtonDown

El marco llama a esta función miembro cuando el usuario presiona el botón izquierdo del mouse.

afx_msg void OnLButtonDown(
    UINT nFlags,
    CPoint point);

Parámetros

nFlags
Indica si hay varias teclas virtuales presionadas. Este parámetro puede ser una combinación de los siguientes valores:

  • MK_CONTROL Se establece si la tecla CTRL está presionada.

  • MK_LBUTTON Se establece si el botón izquierdo del mouse está presionado.

  • MK_MBUTTON Se establece si el botón central del mouse está presionado.

  • MK_RBUTTON Se establece si el botón derecho del mouse está presionado.

  • MK_SHIFT Se establece si la tecla MAYÚS está presionada.

point
Especifica las coordenadas x e y del cursor. Las coordenadas siempre son relativas a la esquina superior izquierda de la ventana.

Comentarios

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnLButtonUp

El marco llama a esta función miembro cuando el usuario suelta el botón izquierdo del mouse.

afx_msg void OnLButtonUp(
    UINT nFlags,
    CPoint point);

Parámetros

nFlags
Indica si hay varias teclas virtuales presionadas. Este parámetro puede ser una combinación de los siguientes valores:

  • MK_CONTROL Se establece si la tecla CTRL está presionada.

  • MK_MBUTTON Se establece si el botón central del mouse está presionado.

  • MK_RBUTTON Se establece si el botón derecho del mouse está presionado.

  • MK_SHIFT Se establece si la tecla MAYÚS está presionada.

point
Especifica las coordenadas x e y del cursor. Las coordenadas siempre son relativas a la esquina superior izquierda de la ventana.

Comentarios

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnMButtonDblClk

El marco llama a esta función miembro cuando el usuario hace doble clic en el botón central del mouse.

afx_msg void OnMButtonDblClk(
    UINT nFlags,
    CPoint point);

Parámetros

nFlags
Indica si hay varias teclas virtuales presionadas. Este parámetro puede ser una combinación de los siguientes valores:

  • MK_CONTROL Se establece si la tecla CTRL está presionada.

  • MK_LBUTTON Se establece si el botón izquierdo del mouse está presionado.

  • MK_MBUTTON Se establece si el botón central del mouse está presionado.

  • MK_RBUTTON Se establece si el botón derecho del mouse está presionado.

  • MK_SHIFT Se establece si la tecla MAYÚS está presionada.

point
Especifica las coordenadas x e y del cursor. Las coordenadas siempre son relativas a la esquina superior izquierda de la ventana.

Comentarios

Solo las ventanas que tengan el estilo CS_DBLCLKSWNDCLASS recibirán llamadas de OnMButtonDblClk. Este es el valor predeterminado para las ventanas de Microsoft Foundation Class. Windows genera una llamada de OnMButtonDblClk cuando el usuario presiona, suelta y, a continuación, vuelve a presionar el botón central del mouse dentro del límite de tiempo de doble clic del sistema. Al hacer doble clic en el botón central del mouse, se generan cuatro eventos: los mensajes WM_MBUTTONDOWN y WM_MBUTTONUP, la llamada de WM_MBUTTONDBLCLK y otro mensaje WM_MBUTTONUP.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnMButtonDown

El marco llama a esta función miembro cuando el usuario presiona el botón central del mouse.

afx_msg void OnMButtonDown(
    UINT nFlags,
    CPoint point);

Parámetros

nFlags
Indica si hay varias teclas virtuales presionadas. Este parámetro puede ser una combinación de los siguientes valores:

  • MK_CONTROL Se establece si la tecla CTRL está presionada.

  • MK_LBUTTON Se establece si el botón izquierdo del mouse está presionado.

  • MK_MBUTTON Se establece si el botón central del mouse está presionado.

  • MK_RBUTTON Se establece si el botón derecho del mouse está presionado.

  • MK_SHIFT Se establece si la tecla MAYÚS está presionada.

point
Especifica las coordenadas x e y del cursor. Las coordenadas siempre son relativas a la esquina superior izquierda de la ventana.

Comentarios

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnMButtonUp

El marco llama a esta función miembro cuando el usuario suelta el botón central del mouse.

afx_msg void OnMButtonUp(
    UINT nFlags,
    CPoint point);

Parámetros

nFlags
Indica si hay varias teclas virtuales presionadas. Este parámetro puede ser una combinación de los siguientes valores:

  • MK_CONTROL Se establece si la tecla CTRL está presionada.

  • MK_LBUTTON Se establece si el botón izquierdo del mouse está presionado.

  • MK_RBUTTON Se establece si el botón derecho del mouse está presionado.

  • MK_SHIFT Se establece si la tecla MAYÚS está presionada.

point
Especifica las coordenadas x e y del cursor. Las coordenadas siempre son relativas a la esquina superior izquierda de la ventana.

Comentarios

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnMDIActivate

El marco llama a esta función miembro para la ventana secundaria que se desactiva y para la ventana secundaria que se activa.

afx_msg void OnMDIActivate(
    BOOL bActivate,
    CWnd* pActivateWnd,
    CWnd* pDeactivateWnd);

Parámetros

bActivate
TRUE si el elemento secundario se está activando y FALSE si se está desactivando.

pActivateWnd
Contiene un puntero a la ventana secundaria MDI que se va a activar. Cuando lo recibe una ventana secundaria MDI, pActivateWnd contiene un puntero a la ventana secundaria que se está activando. Este puntero puede ser temporal y no se debe almacenar para su uso posterior.

pDeactivateWnd
Contiene un puntero a la ventana secundaria MDI que se está desactivando. Este puntero puede ser temporal y no se debe almacenar para su uso posterior.

Comentarios

Una ventana secundaria MDI se activa independientemente de la ventana de marco MDI. Cuando el marco se activa, la ventana secundaria que se ha activado por última vez con una llamada de OnMDIActivate recibe un mensaje WM_NCACTIVATE para dibujar un marco de ventana activo y una barra de título, pero no recibe otra llamada de OnMDIActivate.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnMeasureItem

El marco llama a esta función miembro mediante el marco para el propietario de un botón de dibujo de propietario, un cuadro combinado, un cuadro de lista o un elemento de menú cuando se crea el control.

afx_msg void OnMeasureItem(
    int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStruct);

Parámetros

nIDCtl
Identificador del control.

lpMeasureItemStruct
Apunta a una estructura de datos MEASUREITEMSTRUCT que contiene las dimensiones del control de dibujo de propietario.

Comentarios

Invalide esta función miembro y rellene la estructura de datos MEASUREITEMSTRUCT a la que apunta lpMeasureItemStruct y vuelva; esto informa a Windows de las dimensiones del control y permite a Windows procesar correctamente la interacción del usuario con el control.

Si se crea un cuadro de lista o un cuadro combinado con el estilo LBS_OWNERDRAWVARIABLE o CBS_OWNERDRAWVARIABLE, el marco llama a esta función para el propietario de cada elemento del control; de lo contrario, se llama a esta función una vez.

Windows inicia la llamada a OnMeasureItem para el propietario de cuadros combinados y cuadros de lista creados con el estilo OWNERDRAWFIXED antes de enviar el mensaje WM_INITDIALOG. Como resultado, cuando el propietario recibe esta llamada, Windows aún no ha determinado el alto y el ancho de la fuente utilizada en el control; las llamadas de función y los cálculos que requieren estos valores deben producirse en la función principal de la aplicación o biblioteca.

Si el elemento que se mide es un objeto CMenu, CListBox o CComboBox, se llama a la función virtual MeasureItem de la clase adecuada. Invalide la función miembro MeasureItem de la clase de control adecuada para calcular y establecer el tamaño de cada elemento.

Se llamará a OnMeasureItem sólo si la clase del control se crea en tiempo de ejecución o se crea con el estilo LBS_OWNERDRAWVARIABLE o CBS_OWNERDRAWVARIABLE. Si es el editor de diálogos el que crea el control, no se llamará a OnMeasureItem. Esto se debe a que el mensaje WM_MEASUREITEM se envía con anterioridad en el proceso de creación del control. Si se asigna como subclase mediante DDX_Control, SubclassDlgItem o SubclassWindow, la asignación como subclase se produce normalmente después del proceso de creación. Por lo tanto, no hay ninguna manera de controlar el mensaje WM_MEASUREITEM en la función OnChildNotify del control, que es el mecanismo que usa MFC para implementar ON_WM_MEASUREITEM_REFLECT.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnMenuChar

El marco llama a esta función miembro cuando el usuario presiona un carácter de acceso de menú que no coincide con ninguna de las teclas de acceso predefinidas en el menú actual.

afx_msg LRESULT OnMenuChar(
    UINT nChar,
    UINT nFlags,
    CMenu* pMenu);

Parámetros

nChar
En función de la configuración de compilación, especifica el carácter ANSI o Unicode que el usuario ha presionado.

nFlags
Contiene la marca MF_POPUP si el menú es un menú emergente. Contiene la marca MF_SYSMENU si el menú es un menú Control.

pMenu
Contiene un puntero al CMenu seleccionado. El puntero puede ser temporal y no se debe almacenar.

Valor devuelto

La palabra de valor superior del valor devuelto debe contener uno de los siguientes códigos de comando:

Valor Descripción
0 Ordena a Windows que descarte el carácter que ha presionado el usuario y genera un breve pitido en el altavoz del sistema.
1 Ordena a Windows que cierre el menú actual.
2 Informa a Windows de que la palabra de valor inferior del valor devuelto contiene el número de elemento de un elemento específico. Windows selecciona este elemento.

La palabra de valor inferior se ignora si la palabra de valor superior contiene 0 o 1. Las aplicaciones deben procesar este mensaje cuando se usan teclas de aceleración (método abreviado) para seleccionar mapas de bits colocados en un menú.

Comentarios

Se envía al CWnd propietario del menú. También se llama a OnMenuChar cuando el usuario presiona ALT y cualquier otra tecla, incluso si la tecla no corresponde a un carácter de acceso. En este caso, pMenu apunta al menú propiedad de CWnd, y nFlags es 0.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnMenuDrag

El marco llama a esta función miembro del menú actual de arrastrar y colocar cuando el usuario comienza a arrastrar un elemento de menú.

afx_msg UINT OnMenuDrag(
    UINT nPos,
    CMenu* pMenu);

Parámetros

nPos
[entrada] La posición de índice del elemento de menú cuando comienza la operación de arrastrar.

pMenu
[entrada] El puntero al objeto CMenu que contiene el elemento de menú.

Valor devuelto

Valor devuelto Significado
MND_CONTINUE El menú debe permanecer activo. Si se libera el mouse, se debe ignorar.
MND_ENDMENU El menú se debe terminar.

Comentarios

Este método recibe la notificación WM_MENUDRAG, descrita en Windows SDK.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnMenuGetObject

El marco llama a esta función miembro del menú actual de arrastrar y colocar cuando el cursor del mouse entra en un elemento de menú o se mueve desde el centro del elemento a la parte superior o inferior del elemento.

afx_msg UINT OnMenuGetObject(MENUGETOBJECTINFO* pMenuGetObjectInfo);

Parámetros

pMenu
[entrada] El puntero a una estructura MENUGETOBJECTINFO que contiene información sobre el menú de arrastrar y colocar en el que se encuentra el cursor del mouse.

Valor devuelto

Valor devuelto Significado
MNGO_NOERROR Se devuelve un puntero de interfaz que admite operaciones de arrastrar y colocar en el miembro pvObj de la estructura MENUGETOBJECTINFO. Actualmente, solo se admite la interfaz IDropTarget.
MNGO_NOINTERFACE No se admite ninguna interfaz de arrastrar y colocar.

Comentarios

Este método recibe la notificación WM_MENUGETOBJECT, descrita en Windows SDK.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnMenuRButtonUp

El marco llama a esta función miembro cuando el usuario suelta el botón derecho del mouse mientras el cursor está dentro de un elemento de menú.

afx_msg void OnMenuRButtonUp(
    UINT nPos,
    CMenu* pMenu);

Parámetros

nPos
[entrada] La posición de índice del elemento de menú cuando se libera el botón derecho del mouse.

pMenu
[entrada] El puntero al objeto CMenu que contiene el elemento de menú.

Comentarios

Este método recibe la notificación WM_MENURBUTTONUP, descrita en Windows SDK. El mensaje WM_MENURBUTTONUP permite a una aplicación proporcionar un menú contextual para el elemento de menú especificado en el mensaje.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnMenuSelect

Si el objeto CWnd está asociado a un menú, el marco llama a OnMenuSelect cuando el usuario selecciona un elemento de menú.

afx_msg void OnMenuSelect(
    UINT nItemID,
    UINT nFlags,
    HMENU hSysMenu);

Parámetros

nItemID
Identifica el elemento seleccionado. Si el elemento seleccionado es un elemento de menú, nItemID contiene el Id. del elemento de menú. Si el elemento seleccionado contiene un menú emergente, nItemID contiene el índice del menú emergente y hSysMenu contiene el identificador del menú principal (en el que se ha hecho clic).

nFlags
Contiene una combinación de las marcas de menú siguientes:

  • MF_BITMAP El elemento es un mapa de bits.

  • MF_CHECKED El elemento está activado.

  • MF_DISABLED El elemento está deshabilitado.

  • MF_GRAYED El elemento está atenuado.

  • MF_MOUSESELECT El elemento se ha seleccionado con un mouse.

  • MF_OWNERDRAW El elemento es un elemento de dibujo de propietario.

  • MF_POPUP El elemento contiene un menú emergente.

  • MF_SEPARATOR El elemento es un separador de elementos de menú.

  • MF_SYSMENU El elemento se encuentra en el menú Control.

hSysMenu
Si nFlags contiene MF_SYSMENU, identifica el menú asociado al mensaje. Si nFlags contiene MF_POPUP, identifica el identificador del menú principal. Si nFlags no contiene ni MF_SYSMENU ni MF_POPUP, no se usa.

Comentarios

Si nFlags contiene 0xFFFF y hSysMenu contiene 0, Windows ha cerrado el menú porque el usuario ha presionado la tecla ESC o ha hecho clic fuera del menú.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnMouseActivate

El marco llama a esta función miembro cuando el cursor está en una ventana inactiva y el usuario presiona un botón del mouse.

afx_msg int OnMouseActivate(
    CWnd* pDesktopWnd,
    UINT nHitTest,
    UINT message);

Parámetros

pDesktopWnd
Especifica un puntero a la ventana primaria de nivel superior de la ventana que se está activando. El puntero puede ser temporal y no se debe almacenar.

nHitTest
Especifica el código del área de prueba de posicionamiento. Una prueba de posicionamiento es una prueba que determina la ubicación del cursor.

message
Especifica el número del mensaje del mouse.

Valor devuelto

Especifica si se va a activar CWnd y si se va a descartar el evento del mouse. Debe tener uno de los siguientes valores:

  • MA_ACTIVATE Activar el objeto CWnd.

  • MA_NOACTIVATE No activar el objeto CWnd.

  • MA_ACTIVATEANDEAT Activar el objeto CWnd y descartar el evento del mouse.

  • MA_NOACTIVATEANDEAT No activar el objeto CWnd y descartar el evento del mouse.

Comentarios

La implementación predeterminada pasa este mensaje a la ventana primaria antes de que se produzca cualquier procesamiento. Si la ventana primaria devuelve TRUE, se detiene el procesamiento.

Para obtener una descripción de los códigos de área de prueba de posicionamiento individuales, consulte la función miembro OnNcHitTest.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

Ejemplo

// 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

El marco llama a esta función miembro cuando el cursor se sitúa sobre el área cliente de la ventana durante el período de tiempo especificado en una llamada anterior a TrackMouseEvent.

afx_msg void OnMouseHover(
    UINT nFlags,
    CPoint point);

Parámetros

nFlags
[entrada] Una combinación bit a bit (OR) de marcas que indica qué teclas modificadoras están presionadas. Por ejemplo, la marca MK_CONTROL indica que se presiona la tecla CTRL.

point
[entrada] Un objeto CPoint que especifica las coordenadas x y y del cursor en relación con la esquina superior izquierda del área cliente.

Comentarios

Este método recibe la notificación WM_MOUSEHOVER, descrita en Windows SDK.

El parámetro nFlags puede ser una combinación de las teclas modificadoras enumeradas en la tabla siguiente. Para obtener más información, consulte Acerca de la entrada del mouse.

Tecla modificadora Descripción
MK_CONTROL Se presiona la tecla CTRL.
MK_LBUTTON Se presiona el botón izquierdo del mouse.
MK_MBUTTON Se presiona el botón central del mouse.
MK_RBUTTON Se presiona el botón derecho del mouse.
MK_SHIFT Se presiona la tecla MAYÚS.
MK_XBUTTON1 Se presiona el botón del mouse XBUTTON1 de Microsoft IntelliMouse.
MK_XBUTTON2 Se presiona el botón del mouse XBUTTON2 de Microsoft IntelliMouse.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnMouseHWheel

El marco llama a este miembro cuando la rueda de desplazamiento horizontal del mouse está inclinada o girada.

afx_msg void OnMouseHWheel(
    UINT nFlags,
    short zDelta,
    CPoint pt);

Parámetros

nFlags
[entrada] Una combinación bit a bit (OR) de marcas que indica qué teclas modificadoras están presionadas. Por ejemplo, la marca MK_CONTROL indica que se presiona la tecla CTRL. Para obtener una lista de marcas, consulte la sección «Parámetros del mensaje» en Acerca de las entrada del mouse.

zDelta
[entrada] Indica la distancia a la que se rota la rueda, expresada en múltiplos o divisiones de WHEEL_DELTA, que es 120. Un valor positivo indica que la rueda se ha rotado hacia la derecha; un valor negativo indica que la rueda se ha rotado hacia la izquierda.

pt
[entrada] Un objeto CPoint que especifica las coordenadas x y y del cursor en relación con la esquina superior izquierda del área cliente.

Comentarios

Este método recibe un mensaje de notificación WM_MOUSEHWHEEL, descrito en Windows SDK. Este mensaje se envía a la ventana que tiene el foco cuando la rueda de desplazamiento horizontal del mouse se ha inclinado o rotado.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnMouseLeave

El marco llama a esta función miembro cuando el cursor abandona el área cliente de la ventana especificada en una llamada anterior a TrackMouseEvent.

afx_msg void OnMouseLeave();

Comentarios

Este método recibe la notificación WM_MOUSELEAVE, descrita en Windows SDK.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnMouseMove

El marco llama a esta función miembro cuando se mueve el cursor del mouse.

afx_msg void OnMouseMove(
    UINT nFlags,
    CPoint point);

Parámetros

nFlags
Indica si hay varias teclas virtuales presionadas. Este parámetro puede ser una combinación de los siguientes valores:

  • MK_CONTROL Se establece si la tecla CTRL está presionada.

  • MK_LBUTTON Se establece si el botón izquierdo del mouse está presionado.

  • MK_MBUTTON Se establece si el botón central del mouse está presionado.

  • MK_RBUTTON Se establece si el botón derecho del mouse está presionado.

  • MK_SHIFT Se establece si la tecla MAYÚS está presionada.

point
Especifica las coordenadas x e y del cursor. Las coordenadas siempre son relativas a la esquina superior izquierda de la ventana.

Comentarios

Si el mouse no se captura, el objeto CWnd recibe el mensaje WM_MOUSEMOVE debajo del cursor del mouse; de lo contrario, el mensaje va a la ventana que ha capturado el mouse.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnMouseWheel

El marco llama a esta función miembro en el momento en que un usuario gira la rueda del mouse y encuentra la siguiente muesca de la rueda.

afx_msg BOOL OnMouseWheel(
    UINT nFlags,
    short zDelta,
    CPoint pt);

Parámetros

nFlags
Indica si hay varias teclas virtuales presionadas. Este parámetro puede ser una combinación de los siguientes valores:

  • MK_CONTROL Se establece si la tecla CTRL está presionada.

  • MK_LBUTTON Se establece si el botón izquierdo del mouse está presionado.

  • MK_MBUTTON Se establece si el botón central del mouse está presionado.

  • MK_RBUTTON Se establece si el botón derecho del mouse está presionado.

  • MK_SHIFT Se establece si la tecla MAYÚS está presionada.

zDelta
Indica la distancia girada. El valor zDelta se expresa en múltiplos o divisiones de WHEEL_DELTA, que es 120. Un valor menor que cero indica que se gira hacia atrás (hacia el usuario), mientras que un valor mayor que cero indica que se gira hacia delante (alejándose del usuario). El usuario puede revertir esta respuesta cambiando la configuración de la rueda en el software del mouse. Para obtener más información acerca de este parámetro, vea los Comentarios.

pt
Especifica las coordenadas x e y del cursor. Estas coordenadas siempre son relativas a la esquina superior izquierda de la pantalla.

Valor devuelto

Distinto de cero si el desplazamiento de la rueda del mouse está habilitado; de lo contrario, 0.

Comentarios

A menos que se invalide, OnMouseWheel llama al valor predeterminado de WM_MOUSEWHEEL. Windows enruta automáticamente el mensaje al control o a la ventana secundaria que tiene el foco. La función DefWindowProc de Win32 propaga el mensaje hacia arriba en la cadena primaria hasta la ventana que la procesa.

El parámetro zDelta es un múltiplo de WHEEL_DELTA, que está establecido en 120. Este valor es el umbral para que se realice una acción; y una acción de este tipo (por ejemplo, desplazarse hacia delante una muesca) se debe producir para cada delta.

WHEEL_DELTA se ha establecido en 120 para permitir ruedas de resolución más fina, como una rueda de rotación libre sin muescas. Una rueda de resolución más fina envía más mensajes por rotación, pero cada mensaje tiene un valor de delta más pequeño. Para usar este tipo de rueda, agregue los valores zDelta entrantes hasta que se alcance WHEEL_DELTA (para obtener la misma respuesta para una rotación diferencial determinada), o bien desplácese por líneas parciales en respuesta a los mensajes más frecuentes. También puede elegir una granularidad de desplazamiento y acumular deltas hasta que se alcance WHEEL_DELTA.

Invalide esta función miembro para proporcionar el comportamiento de desplazamiento de rueda del mouse que desee.

Nota:

OnMouseWheel controla los mensajes para Windows NT 4.0 y versiones posteriores. Para el control de mensajes de Windows 95/98 o Windows NT 3.51, use OnRegisteredMouseWheel.

CWnd::OnMove

El marco llama a esta función miembro después de que se haya movido el objeto CWnd.

afx_msg void OnMove(
    int x,
    int y);

Parámetros

x
Especifica la nueva ubicación de la coordenada x de la esquina superior izquierda del área cliente. Esta nueva ubicación se da en coordenadas de pantalla para ventanas emergentes y superpuestas, y coordenadas de cliente primario para ventanas secundarias.

y
Especifica la nueva ubicación de la coordenada y de la esquina superior izquierda del área cliente. Esta nueva ubicación se da en coordenadas de pantalla para ventanas emergentes y superpuestas, y coordenadas de cliente primario para ventanas secundarias.

Comentarios

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnMoving

El marco llama a esta función miembro mientras un usuario mueve un objeto CWnd.

afx_msg void OnMoving(
    UINT nSide,
    LPRECT lpRect);

Parámetros

nSide
El borde de la ventana que se va a mover.

lpRect
La dirección del CRect o la estructura RECT que contendrá las coordenadas del elemento.

Comentarios

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnNcActivate

El marco llama a esta función miembro cuando el área no cliente debe cambiarse para indicar un estado activo o inactivo.

afx_msg BOOL OnNcActivate(BOOL bActive);

Parámetros

bActive
Especifica cuándo se debe cambiar una barra de títulos o un icono para indicar un estado activo o inactivo. El parámetro bActive es TRUE si se va a dibujar un título o icono activo. Es FALSE para un título o un icono inactivos.

Valor devuelto

Distinto de cero si Windows debe continuar con el procesamiento predeterminado; 0 para evitar que se desactive la barra de títulos o el icono.

Comentarios

La implementación predeterminada dibuja la barra de título y el texto de la barra de título en sus colores activos si bActive es TRUE, y en sus colores inactivos si bActive es FALSE.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnNcCalcSize

El marco llama a esta función miembro cuando es necesario calcular el tamaño y la posición del área cliente.

afx_msg void OnNcCalcSize(
    BOOL bCalcValidRects,
    NCCALCSIZE_PARAMS* lpncsp);

Parámetros

bCalcValidRects
Especifica si la aplicación debe especificar qué parte del área cliente contiene información válida. Windows copiará la información válida en el área especificada dentro de la nueva área cliente. Si este parámetro es TRUE, la aplicación debe especificar qué parte del área cliente es válida.

lpncsp
Apunta a una estructura de datos NCCALCSIZE_PARAMS que contiene información que una aplicación puede usar para calcular los nuevos tamaño y posición del rectángulo CWnd (incluidos el área cliente, los bordes, el título, las barras de desplazamiento, etc.).

Comentarios

Al procesar este mensaje, una aplicación puede controlar el contenido del área cliente de la ventana al cambiar el tamaño o la posición de la ventana.

Independientemente del valor de bCalcValidRects, el primer rectángulo de la matriz especificado por el miembro de estructura rgrc de la estructura NCCALCSIZE_PARAMS contiene las coordenadas de la ventana. Para una ventana secundaria, las coordenadas son relativas al área cliente de la ventana primaria. En el caso de las ventanas de nivel superior, las coordenadas son coordenadas de pantalla. Una aplicación debe modificar el rectángulo rgrc[0] para reflejar el tamaño y la posición del área cliente.

Los rectángulos rgrc[1] y rgrc[2] solo son válidos si bCalcValidRects es TRUE. En este caso, el rectángulo rgrc[1] contiene las coordenadas de la ventana antes de moverla o cambiar su tamaño. El rectángulo rgrc[2] contiene las coordenadas del área cliente de la ventana antes de mover la ventana. Todas las coordenadas son relativas a la ventana o pantalla primarias.

La implementación predeterminada calcula el tamaño del área cliente en función de las características de la ventana (presencia de barras de desplazamiento, menú, etc.) y coloca el resultado en lpncsp.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnNcCreate

El marco llama a esta función miembro antes del mensaje WM_CREATE cuando el objeto CWnd se crea por primera vez.

afx_msg BOOL OnNcCreate(LPCREATESTRUCT lpCreateStruct);

Parámetros

lpCreateStruct
Apunta a la estructura de datos CREATESTRUCT para CWnd.

Valor devuelto

Distinto de cero si se crea el área no cliente. Es 0 si se produce un error; la función Create devolverá failure en este caso.

Comentarios

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnNcDestroy

La llama el marco cuando se está destruyendo el área no cliente y es la última función miembro a la que se llama cuando se destruye la ventana de Windows.

afx_msg void OnNcDestroy();

Comentarios

La implementación predeterminada realiza una limpieza y, a continuación, llama a la función miembro virtual PostNcDestroy.

Invalide PostNcDestroy si desea realizar su propia limpieza, como una operación delete this. Si invalida OnNcDestroy, debe llamar a OnNcDestroy en la clase base para asegurarse de que se libera la memoria asignada internamente para la ventana.

CWnd::OnNcHitTest

El marco llama a esta función miembro para el objeto CWnd que contiene el cursor (o el objeto CWnd que ha usado la función miembro SetCapture para capturar la entrada del mouse) cada vez que se mueve el mouse.

afx_msg LRESULT OnNcHitTest(CPoint point);

Parámetros

point
Contiene las coordenadas x e y del cursor. Estas coordenadas siempre son coordenadas de pantalla.

Valor devuelto

Uno de los valores enumerados de la prueba de posicionamiento del mouse. Consulte WM_NCHITTEST para obtener una lista de valores.

Comentarios

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnNcLButtonDblClk

El marco llama a esta función miembro cuando el usuario hace doble clic en el botón izquierdo del mouse mientras el cursor está dentro de un área no cliente de CWnd.

afx_msg void OnNcLButtonDblClk(
    UINT nHitTest,
    CPoint point);

Parámetros

nHitTest
Especifica el código de prueba de posicionamiento. Una prueba de posicionamiento es una prueba que determina la ubicación del cursor. Consulte WM_NCHITTEST para obtener una lista de valores.

point
Especifica un objeto CPoint que contiene las coordenadas de pantalla x e y de la posición del cursor. Estas coordenadas siempre son relativas a la esquina superior izquierda de la pantalla.

Comentarios

Si procede, se envía el mensaje WM_SYSCOMMAND.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnNcLButtonDown

El marco llama a esta función miembro cuando el usuario presiona el botón izquierdo del mouse mientras el cursor está dentro de un área no cliente del objeto CWnd.

afx_msg void OnNcLButtonDown(
    UINT nHitTest,
    CPoint point);

Parámetros

nHitTest
Especifica el código de prueba de posicionamiento. Una prueba de posicionamiento es una prueba que determina la ubicación del cursor. Consulte WM_NCHITTEST para obtener una lista de valores.

point
Especifica un objeto CPoint que contiene las coordenadas de pantalla x e y de la posición del cursor. Estas coordenadas siempre son relativas a la esquina superior izquierda de la pantalla.

Comentarios

Si procede, se envía WM_SYSCOMMAND.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros pasados a la función reflejan los parámetros que ha recibido el marco al recibir el mensaje. Si se llama a la implementación de clase base de esta función, esa implementación usará los parámetros pasados originalmente con el mensaje y no los parámetros que se proporcionen a la función.

CWnd::OnNcLButtonUp

El marco llama a esta función miembro cuando el usuario suelta el botón izquierdo del mouse mientras el cursor está dentro de un área no cliente.

afx_msg void OnNcLButtonUp(
    UINT nHitTest,
    CPoint point);

Parámetros

nHitTest
Especifica el código de prueba de posicionamiento. Una prueba de posicionamiento es una prueba que determina la ubicación del cursor. Consulte WM_NCHITTEST para obtener una lista de valores.

point
Especifica un objeto CPoint que contiene las coordenadas de pantalla x e y de la posición del cursor. Estas coordenadas siempre son relativas a la esquina superior izquierda de la pantalla.

Comentarios

Si procede, se envía WM_SYSCOMMAND.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnNcMButtonDblClk

El marco llama a esta función miembro cuando el usuario hace doble clic en el botón central del mouse mientras el cursor está dentro de un área no cliente.

afx_msg void OnNcMButtonDblClk(
    UINT nHitTest,
    CPoint point);

Parámetros

nHitTest
Especifica el código de prueba de posicionamiento. Una prueba de posicionamiento es una prueba que determina la ubicación del cursor.

point
Especifica un objeto CPoint que contiene las coordenadas de pantalla x e y de la posición del cursor. Estas coordenadas siempre son relativas a la esquina superior izquierda de la pantalla.

Comentarios

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnNcMButtonDown

El marco llama a esta función miembro cuando el usuario presiona el botón central del mouse mientras el cursor está dentro de un área no cliente.

afx_msg void OnNcMButtonDown(
    UINT nHitTest,
    CPoint point);

Parámetros

nHitTest
Especifica el código de prueba de posicionamiento. Una prueba de posicionamiento es una prueba que determina la ubicación del cursor.

point
Especifica un objeto CPoint que contiene las coordenadas de pantalla x e y de la posición del cursor. Estas coordenadas siempre son relativas a la esquina superior izquierda de la pantalla.

Comentarios

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnNcMButtonUp

El marco llama a esta función miembro cuando el usuario suelta el botón central del mouse mientras el cursor está dentro de un área no cliente.

afx_msg void OnNcMButtonUp(
    UINT nHitTest,
    CPoint point);

Parámetros

nHitTest
Especifica el código de prueba de posicionamiento. Una prueba de posicionamiento es una prueba que determina la ubicación del cursor.

point
Especifica un objeto CPoint que contiene las coordenadas de pantalla x e y de la posición del cursor. Estas coordenadas siempre son relativas a la esquina superior izquierda de la pantalla.

Comentarios

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnNcMouseHover

El marco llama a esta función miembro cuando el cursor se mantiene sobre el área no cliente de la ventana durante el período de tiempo especificado en una llamada anterior a TrackMouseEvent.

afx_msg void OnNcMouseHover(
    UINT nHitTest,
    CPoint point);

Parámetros

nHitTest
[entrada] El valor de prueba de posicionamiento devuelto por la función CWnd::DefWindowProc como resultado del procesamiento del mensaje WM_NCHITTEST.

point
[entrada] Un objeto CPoint que especifica las coordenadas x e y del cursor en relación con la esquina superior izquierda de la pantalla.

Comentarios

Este método recibe la notificación WM_NCMOUSEHOVER, descrita en Windows SDK.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnNcMouseLeave

El marco llama a esta función miembro cuando el cursor abandona el área no cliente de la ventana especificada en una llamada anterior a TrackMouseEvent.

afx_msg void OnNcMouseLeave();

Comentarios

Este método recibe la notificación WM_NCMOUSELEAVE, descrita en Windows SDK.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnNcMouseMove

El marco llama a esta función miembro cuando el cursor se mueve dentro de un área no cliente.

afx_msg void OnNcMouseMove(
    UINT nHitTest,
    CPoint point);

Parámetros

nHitTest
Especifica el código de prueba de posicionamiento. Una prueba de posicionamiento es una prueba que determina la ubicación del cursor.

point
Especifica un objeto CPoint que contiene las coordenadas de pantalla x e y de la posición del cursor. Estas coordenadas siempre son relativas a la esquina superior izquierda de la pantalla.

Comentarios

Si procede, se envía el mensaje WM_SYSCOMMAND.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnNcPaint

El marco llama a esta función miembro cuando se debe pintar el área no cliente.

afx_msg void OnNcPaint();

Comentarios

La implementación predeterminada pinta el marco de la ventana.

Una aplicación puede invalidar esta llamada y pintar su propio marco de ventana personalizado. La región de recorte siempre es rectangular, incluso si se modifica la forma del marco.

CWnd::OnNcRButtonDblClk

El marco llama a esta función miembro cuando el usuario hace doble clic en el botón derecho del mouse mientras el cursor está dentro de un área no cliente de CWnd.

afx_msg void OnNcRButtonDblClk(
    UINT nHitTest,
    CPoint point);

Parámetros

nHitTest
Especifica el código de prueba de posicionamiento. Una prueba de posicionamiento es una prueba que determina la ubicación del cursor.

point
Especifica un objeto CPoint que contiene las coordenadas de pantalla x e y de la posición del cursor. Estas coordenadas siempre son relativas a la esquina superior izquierda de la pantalla.

Comentarios

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnNcRButtonDown

El marco llama a esta función miembro cuando el usuario presiona el botón derecho del mouse mientras el cursor está dentro de un área no cliente.

afx_msg void OnNcRButtonDown(
    UINT nHitTest,
    CPoint point);

Parámetros

nHitTest
Especifica el código de prueba de posicionamiento. Una prueba de posicionamiento es una prueba que determina la ubicación del cursor.

point
Especifica un objeto CPoint que contiene las coordenadas de pantalla x e y de la posición del cursor. Estas coordenadas siempre son relativas a la esquina superior izquierda de la pantalla.

Comentarios

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnNcRButtonUp

El marco llama a esta función miembro cuando el usuario suelta el botón derecho del mouse mientras el cursor está dentro de un área no cliente.

afx_msg void OnNcRButtonUp(
    UINT nHitTest,
    CPoint point);

Parámetros

nHitTest
Especifica el código de prueba de posicionamiento. Una prueba de posicionamiento es una prueba que determina la ubicación del cursor.

point
Especifica un objeto CPoint que contiene las coordenadas de pantalla x e y de la posición del cursor. Estas coordenadas siempre son relativas a la esquina superior izquierda de la pantalla.

Comentarios

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnNcRenderingChanged

El marco llama a este miembro cuando la directiva de representación del área no cliente ha cambiado.

afx_msg void OnNcRenderingChanged(BOOL bIsRendering);

Parámetros

bIsRendering
[entrada] TRUE si la representación del Administrador de ventanas de escritorio (DWM) está habilitada para el área no cliente de la ventana; FALSE si la representación está deshabilitada.

Comentarios

Este método recibe la notificación WM_DWMNCRENDERINGCHANGED, descrita en Windows SDK.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnNcXButtonDblClk

El marco llama a esta función miembro cuando el usuario hace doble clic en XBUTTON1 o XBUTTON2 mientras el cursor está en el área no cliente de una ventana.

void OnNcXButtonDblClk(
    short nHitTest,
    UINT nButton,
    CPoint point);

Parámetros

nHitTest
[entrada] El valor de prueba de posicionamiento devuelto por la función CWnd::DefWindowProc como resultado del procesamiento del mensaje WM_NCHITTEST.

nButton
[entrada] Un valor de XBUTTON1 si se hace doble clic en el primer botón X de Microsoft Intellimouse, o XBUTTON2 si se hace doble clic en el segundo botón X.

point
[entrada] Un objeto CPoint que especifica las coordenadas x y y del cursor en relación con la esquina superior izquierda del área cliente.

Comentarios

Este método recibe la notificación WM_XBUTTONDBLCLK, descrita en Windows SDK. Este mensaje se publica en la ventana que contiene el cursor. Si una ventana ha capturado el mouse, este mensaje no se publica.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnNcXButtonDown

El marco llama a esta función miembro cuando el usuario presiona XBUTTON1 o XBUTTON2 del mouse mientras el cursor está en el área no cliente de una ventana.

afx_msg void OnNcXButtonDown(
    short nHitTest,
    UINT nButton,
    CPoint point);

Parámetros

nHitTest
[entrada] El valor de prueba de posicionamiento devuelto por la función CWnd::DefWindowProc como resultado del procesamiento del mensaje WM_NCHITTEST.

nButton
[entrada] El valor de XBUTTON1 si se presiona el primer botón X del mouse, o XBUTTON2 si se presiona el segundo botón X.

point
[entrada] Un objeto CPoint que especifica las coordenadas x y y del cursor en relación con la esquina superior izquierda de la pantalla.

Comentarios

Este método recibe la notificación WM_NCXBUTTONDOWN, descrita en Windows SDK. Este mensaje se publica en la ventana que contiene el cursor. Si una ventana ha capturado el mouse, este mensaje no se publica.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnNcXButtonUp

El marco llama a esta función miembro cuando el usuario libera XBUTTON1 o XBUTTON2 del mouse mientras el cursor está en el área no cliente de una ventana.

afx_msg void OnNcXButtonUp(
    short nHitTest,
    UINT nButton,
    CPoint point);

Parámetros

nHitTest
[entrada] El valor de prueba de posicionamiento devuelto por la función CWnd::DefWindowProc como resultado del procesamiento del mensaje WM_NCHITTEST.

nButton
[entrada] El valor de XBUTTON1 si se libera el primer botón X del mouse, o XBUTTON2 si se libera el segundo botón X.

point
[entrada] Un objeto CPoint que especifica las coordenadas x e y del cursor en relación con la esquina superior izquierda de la pantalla.

Comentarios

Este método recibe la notificación WM_NCXBUTTONUP, descrita en Windows SDK. Este mensaje se publica en la ventana que contiene el cursor. Si una ventana ha capturado el mouse, este mensaje no se publica.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnNextMenu

El marco llama a esta función miembro cuando la tecla de dirección derecha o izquierda se utiliza para pasar de la barra de menús al menú del sistema.

afx_msg void OnNextMenu(
    UINT nKey,
    LPMDINEXTMENU lpMdiNextMenu);

Parámetros

nKey
[entrada] Una combinación bit a bit (OR) de marcas que indica qué teclas modificadoras se presionan. Por ejemplo, la marca MK_CONTROL indica que se presiona la tecla CTRL. Para obtener una lista de marcas, consulte la sección «Parámetros del mensaje» en Acerca de las entrada del mouse.

lpMdiNextMenu
[entrada] Un puntero a una estructura MDINEXTMENU que contiene información sobre el menú que se va a activar.

Comentarios

Este método recibe la notificación WM_UNINITMENUPOPUP, descrita en Windows SDK. En respuesta a este mensaje, la aplicación puede establecer el miembro hmenuNext de la estructura MDINEXTMENU para especificar el menú al que cambiar, y el miembro hwndNext para especificar la ventana para recibir mensajes de notificación de menú.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnNotify

El marco llama a esta función miembro para informar a la ventana primaria de un control de que se ha producido un evento en el control o de que el control requiere algún tipo de información.

virtual BOOL OnNotify(
    WPARAM wParam,
    LPARAM lParam,
    LRESULT* pResult);

Parámetros

wParam
Identifica el control que envía el mensaje si el mensaje procede de un control. De lo contrario, wParam es 0.

lParam
Un puntero a una estructura (NMHDR) de mensaje de notificación que contiene el código de notificación e información adicional. Para algunos mensajes de notificación, este parámetro apunta a una estructura mayor que tiene la estructura NMHDR como su primer miembro.

pResult
Un puntero a una variable LRESULT en la que almacenar el código de resultado si se controla el mensaje.

Valor devuelto

Una aplicación devuelve un valor distinto de cero si procesa este mensaje; de lo contrario, 0.

Comentarios

OnNotify procesa el mapa de mensajes para la notificación de control.

Invalide esta función miembro en la clase derivada para controlar el mensaje WM_NOTIFY. Una invalidación no procesará el mapa de mensajes a menos que se llame a la clase base OnNotify.

Para obtener más información sobre el mensaje WM_NOTIFY, vea la Nota técnica 61 (TN061) ON_NOTIFY y los mensajes WM_NOTIFY. También puede estar interesado en los temas relacionados descritos en Temas de control y TN062, Reflexión de mensajes para controles de Windows.

CWnd::OnNotifyFormat

El marco llama a esta función miembro para determinar si la ventana actual acepta estructuras ANSI o Unicode en el mensaje de notificación WM_NOTIFY.

afx_msg UINT OnNotifyFormat(
    CWnd* pWnd,
    UINT nCommand);

Parámetros

pWnd
[entrada] Un puntero a un objeto CWnd que representa la ventana que envía el mensaje WM_NOTIFY. Este parámetro es el puntero a un control si el parámetro nCommand es NF_QUERY o el puntero a la ventana primaria de un control si nCommand es NF_REQUERY.

nCommand
[entrada] El valor de comando que especializa el mensaje WM_NOTIFY. Los valores posibles son:

  • NF_QUERY: El mensaje es una consulta para determinar si las estructuras ANSI o Unicode deben usarse en los mensajes WM_NOTIFY. Este mensaje se envía desde un control a su ventana primaria durante la creación de un control y en respuesta al formulario NF_REQUERY de este mensaje.
  • NF_REQUERY: El mensaje es una solicitud para que un control envíe el formulario NF_QUERY de este mensaje a su ventana primaria. Esta solicitud se envía desde la ventana primaria y solicita al control que vuelva a consultar al elemento primario sobre el tipo de estructura que se va a usar en los mensajes WM_NOTIFY. Si el parámetro nCommand es NF_REQUERY, el valor devuelto es el resultado de la operación de repetición de la consulta.

Valor devuelto

Valor devuelto Significado
NFR_ANSI Las estructuras ANSI deben usarse en los mensajes WM_NOTIFY enviados por el control.
NFR_UNICODE Las estructuras Unicode deben usarse en los mensajes WM_NOTIFY enviados por el control.
0 Se produjo un error.

Comentarios

Este método recibe la notificación WM_NOTIFYFORMAT, descrita en Windows SDK. Los mensajes WM_NOTIFY se envían desde un control común a su ventana primaria y desde la ventana primaria al control común.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnPaint

El marco llama a esta función miembro cuando Windows o una aplicación realizan una solicitud para volver a pintar una parte de la ventana de una aplicación.

afx_msg void OnPaint();

Comentarios

El mensaje WM_PAINT se envía cuando se llama a la función miembro UpdateWindow o RedrawWindow.

Una ventana puede recibir mensajes de pintura internos como resultado de llamar a la función miembro RedrawWindow con la marca RDW_INTERNALPAINT establecida. En este caso, es posible que la ventana no tenga una región de actualización. Una aplicación debe llamar a la función miembro GetUpdateRect para determinar si la ventana tiene una región de actualización. Si GetUpdateRect devuelve 0, la aplicación no debe llamar a las funciones miembro BeginPaint y EndPaint.

Es responsabilidad de una aplicación comprobar si hay que volver a pintar o actualizar internamente mediante el examen de sus estructuras de datos internas para cada mensaje WM_PAINT, porque un mensaje WM_PAINT puede haber sido causado tanto por un área no válida como por una llamada a la función miembro RedrawWindow con la marca RDW_INTERNALPAINT establecida.

Windows envía un mensaje interno WM_PAINT una sola vez. Una vez que la función miembro UpdateWindow envía un mensaje interno WM_PAINT a una ventana, no se enviarán ni publicarán más mensajes WM_PAINT hasta que se invalide la ventana o hasta que se vuelva a llamar a la función miembro RedrawWindow con la marca RDW_INTERNALPAINT establecida.

Para obtener información sobre cómo representar una imagen en aplicaciones de documento o vista, consulte CView::OnDraw.

Para obtener más información sobre el uso de WM_Paint, consulte los temas siguientes de Windows SDK:

CWnd::OnPaintClipboard

Un visor del Portapapeles llama a la función miembro OnPaintClipboard de un propietario del Portapapeles cuando este ha colocado datos en el Portapapeles con el formato CF_OWNERDISPLAY y el área de cliente del visor del Portapapeles necesita volver a dibujarse.

afx_msg void OnPaintClipboard(
    CWnd* pClipAppWnd,
    HGLOBAL hPaintStruct);

Parámetros

pClipAppWnd
Especifica un puntero para la ventana de la aplicación del Portapapeles. El puntero puede ser temporal y no se debe almacenar para su uso posterior.

hPaintStruct
Identifica una estructura de datos PAINTSTRUCT que define qué parte del área cliente pintar.

Comentarios

Para determinar si necesita volver a pintarse el área cliente completa o solamente una parte de ella, el propietario del Portapapeles debe comparar las dimensiones del área de dibujo especificadas en el miembro rcpaint de la estructura PAINTSTRUCT con las dimensiones indicadas en la llamada más reciente de la función miembro OnSizeClipboard.

OnPaintClipboard debe usar la función de Windows GlobalLock para bloquear la memoria que contiene la estructura de datos PAINTSTRUCT y desbloquear esa memoria con la función de Windows GlobalUnlock antes de salir.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnPaletteChanged

El marco llama a esta función miembro para todas las ventanas de nivel superior después de que la ventana con foco de entrada haya realizado su paleta lógica, cambiando así la paleta del sistema.

afx_msg void OnPaletteChanged(CWnd* pFocusWnd);

Parámetros

pFocusWnd
Especifica un puntero a la ventana que ha causado que la paleta del sistema cambie. El puntero puede ser temporal y no se debe almacenar.

Comentarios

Esta llamada permite que una ventana sin el foco de entrada que usa una paleta de colores realice sus paletas lógicas y actualice su área cliente.

Se llama a la función miembro OnPaletteChanged para todas las ventanas de nivel superior y superpuestas, incluida la que ha cambiado la paleta del sistema y provocado que se envíe el mensaje WM_PALETTECHANGED. Si alguna ventana secundaria usa una paleta de colores, este mensaje debe pasársele.

Para evitar un bucle infinito, la ventana no debe realizar su paleta a menos que determine que pFocusWnd no contiene un puntero a sí mismo.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnPaletteIsChanging

El marco llama a esta función miembro para informar a las aplicaciones de que una aplicación va a realizar su paleta lógica.

afx_msg void OnPaletteIsChanging(CWnd* pRealizeWnd);

Parámetros

pRealizeWnd
Especifica la ventana que está a punto de realizar su paleta lógica.

Comentarios

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnParentNotify

El marco llama a la función miembro OnParentNotify de un elemento primario cuando se crea o se destruye su ventana secundaria, o cuando el usuario hace clic en un botón del mouse mientras el cursor está sobre la ventana secundaria.

afx_msg void OnParentNotify(
    UINT message,
    LPARAM lParam);

Parámetros

message
Especifica el evento para el que se notifica al elemento primario, así como el identificador de la ventana secundaria. El evento es la palabra de valor inferior de message. Si el evento es WM_CREATE o WM_DESTROY, la palabra de valor superior de message es el identificador de la ventana secundaria; de lo contrario, la palabra de valor superior no está definida. El evento (palabra de valor inferior de message) puede tomar cualquiera de estos valores:

  • WM_CREATE Se está creando la ventana secundaria.

  • WM_DESTROY Se está destruyendo la ventana secundaria.

  • WM_LBUTTONDOWN El usuario ha colocado el cursor del mouse sobre la ventana secundaria y ha hecho clic en el botón izquierdo del mouse.

  • WM_MBUTTONDOWN El usuario ha colocado el cursor del mouse sobre la ventana secundaria y ha hecho clic en el botón central del mouse.

  • WM_RBUTTONDOWN El usuario ha colocado el cursor del mouse sobre la ventana secundaria y ha hecho clic en el botón derecho del mouse.

lParam
Si el evento (palabra de valor inferior) de message es WM_CREATE o WM_DESTROY, lParam especifica el identificador de ventana de la ventana secundaria; de lo contrario, lParam contiene las coordenadas x e y del cursor. La coordenada x está en la palabra de valor inferior y la coordenada y está en la palabra de valor superior.

Comentarios

Cuando se está creando la ventana secundaria, el sistema llama a OnParentNotify justo antes de que vuelva la función miembro Create que crea la ventana. Cuando se está destruyendo la ventana secundaria, el sistema llama a OnParentNotify antes de que se produzca cualquier proceso para destruir la ventana.

Se llama a OnParentNotify para todas las ventanas antecesoras de la ventana secundaria, incluida la ventana de nivel superior.

Todas las ventanas secundarias excepto las que tienen el estilo WS_EX_NOPARENTNOTIFY envían este mensaje a sus ventanas primarias. De forma predeterminada, las ventanas secundarias de un cuadro de diálogo tienen el estilo WS_EX_NOPARENTNOTIFY a menos que la ventana secundaria se haya creado sin este estilo mediante la llamada a la función miembro CreateEx.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnPowerBroadcast

El marco llama a esta función miembro cuando se produce un evento de administración de energía.

afx_msg UINT OnPowerBroadcast(
    UINT nPowerEvent,
    UINT nEventData);

Parámetros

nPowerEvent
[entrada] Un evento de administración de energía.

nEventData
[entrada] Datos específicos del evento.

Valor devuelto

Si el evento es una solicitud, devuelva TRUE para conceder la solicitud, o BROADCAST_QUERY_DENY para denegarla.

Comentarios

Este método recibe el mensaje WM_POWERBROADCAST, descrito en Windows SDK.

El parámetro nPowerEvent especifica eventos como que el nivel de la batería es bajo, el estado de energía ha cambiado, el permiso para suspender la operación se ha solicitado o denegado, una operación se está reanudando automáticamente después de un evento, el sistema está suspendiendo la operación o una operación se está reanudando después de haber estado suspendida. El parámetro nEventData normalmente no se usa. Para obtener más información, consulte los parámetros wParam y lParam del mensaje WM_POWERBROADCAST.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnQueryDragIcon

El marco llama a esta función miembro mediante una ventana minimizada (de icono) que no tiene un icono definido para su clase.

afx_msg HCURSOR OnQueryDragIcon();

Valor devuelto

Valor de doble palabra que contiene un identificador de cursor o de icono en la palabra de valor inferior. El cursor o el icono debe ser compatible con la resolución del controlador de pantalla. Si la aplicación devuelve NULL, el sistema muestra el cursor predeterminado. El valor devuelto predeterminado es NULL.

Comentarios

El sistema realiza esta llamada para obtener el cursor que se va a mostrar mientras el usuario arrastra la ventana minimizada. Si una aplicación devuelve el identificador de un icono o cursor, el sistema lo convierte en blanco y negro. Si una aplicación devuelve un identificador, el identificador debe identificar un cursor o icono monocromático compatible con la resolución del controlador de pantalla. La aplicación puede llamar a las funciones miembro CWinApp::LoadCursor o CWinApp::LoadIcon para cargar un cursor o icono desde los recursos de su archivo ejecutable y para obtener este identificador.

CWnd::OnQueryEndSession

El marco llama a esta función miembro cuando el usuario elige finalizar la sesión de Windows o cuando una aplicación llama a la función de Windows ExitWindows.

afx_msg BOOL OnQueryEndSession();

Valor devuelto

Distinto de cero si una aplicación se puede apagar convenientemente; de lo contrario, 0.

Comentarios

Si alguna aplicación devuelve 0, la sesión de Windows no finaliza. Windows deja de llamar a OnQueryEndSession tan pronto como una aplicación devuelve 0 y envía el mensaje WM_ENDSESSION con un valor de parámetro de FALSE para cualquier aplicación que ya haya devuelto un valor distinto de cero.

CWnd::OnQueryNewPalette

El marco llama a esta función miembro cuando el objeto CWnd está a punto de recibir el foco de entrada, lo que da la oportunidad a CWnd de realizar su paleta lógica cuando recibe el foco.

afx_msg BOOL OnQueryNewPalette();

Valor devuelto

Distinto de cero si CWnd realiza su paleta lógica; en caso contrario, 0.

CWnd::OnQueryOpen

El marco llama a esta función miembro cuando se minimiza el objeto CWnd y el usuario solicita que se restaure CWnd al tamaño y posición previos a la minimización.

afx_msg BOOL OnQueryOpen();

Valor devuelto

Distinto de cero si se puede abrir el icono, o 0 para evitar que se abra el icono.

Comentarios

Mientras esté en OnQueryOpen, CWnd no debe realizar ninguna acción que pueda provocar un cambio de activación o de foco (por ejemplo, crear un cuadro de diálogo).

CWnd::OnQueryUIState

Se llama para recuperar el estado de la interfaz de usuario de una ventana.

afx_msg UINT OnQueryUIState();

Valor devuelto

El valor devuelto es NULL si los indicadores de foco y los aceleradores de teclado están visibles. De lo contrario, el valor devuelto puede ser uno o varios de los valores siguientes:

  • UISF_HIDEFOCUS Los indicadores de foco están ocultos.

  • UISF_HIDEACCEL Los aceleradores de teclado están ocultos.

  • UISF_ACTIVE Windows XP: se debe dibujar un control en el estilo usado para los controles activos.

Comentarios

Esta función miembro se usa para emular la funcionalidad del mensaje WM_QUERYUISTATE, tal como se describe en Windows SDK.

CWnd::OnRawInput

El marco llama a esta función miembro cuando la ventana actual obtiene una entrada sin procesar.

afx_msg void OnRawInput(
    UINT nInputCode,
    HRAWINPUT hRawInput);

Parámetros

nInputCode
[entrada] Código de entrada que indica si la entrada se ha producido mientras la aplicación estaba en primer plano o no. En cualquier caso, la aplicación debe llamar a CWnd::DefWindowProc para que el sistema pueda realizar la limpieza. Este parámetro puede establecerse con uno de los siguientes valores:

  • RIM_INPUT: La entrada se ha producido mientras la aplicación estaba en primer plano.
  • RIM_INPUTSINK: La entrada ha producido mientras la aplicación no estaba en primer plano.

hRawInput
[entrada] El identificador a una estructura RAWINPUT que contiene la entrada sin procesar del dispositivo.

Comentarios

Este método recibe la notificación WM_INPUT, descrita en Windows SDK.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnRButtonDblClk

El marco llama a esta función miembro cuando el usuario hace doble clic en el botón derecho del mouse.

afx_msg void OnRButtonDblClk(
    UINT nFlags,
    CPoint point);

Parámetros

nFlags
Indica si hay varias teclas virtuales presionadas. Este parámetro puede ser una combinación de los siguientes valores:

  • MK_CONTROL Se establece si la tecla CTRL está presionada.

  • MK_LBUTTON Se establece si el botón izquierdo del mouse está presionado.

  • MK_MBUTTON Se establece si el botón central del mouse está presionado.

  • MK_RBUTTON Se establece si el botón derecho del mouse está presionado.

  • MK_SHIFT Se establece si la tecla MAYÚS está presionada.

point
Especifica las coordenadas x e y del cursor. Las coordenadas siempre son relativas a la esquina superior izquierda de la ventana.

Comentarios

Solo las ventanas que tienen el estilo WNDCLASS de CS_DBLCLKS pueden recibir llamadas de OnRButtonDblClk. Este es el valor predeterminado para las ventanas de la biblioteca MFC. Windows llama a OnRButtonDblClk cuando el usuario presiona, suelta y vuelve a presionar el botón derecho del mouse dentro del límite de tiempo de doble clic del sistema. Al hacer doble clic en el botón derecho del mouse, se generan cuatro eventos: los mensajes WM_RBUTTONDOWN y WM_RBUTTONUP, la llamada de OnRButtonDblClk, y otro mensaje WM_RBUTTONUP cuando se suelta el botón.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnRButtonDown

El marco llama a esta función miembro cuando el usuario presiona el botón derecho del mouse.

afx_msg void OnRButtonDown(
    UINT nFlags,
    CPoint point);

Parámetros

nFlags
Indica si hay varias teclas virtuales presionadas. Este parámetro puede ser una combinación de los siguientes valores:

  • MK_CONTROL Se establece si la tecla CTRL está presionada.

  • MK_LBUTTON Se establece si el botón izquierdo del mouse está presionado.

  • MK_MBUTTON Se establece si el botón central del mouse está presionado.

  • MK_RBUTTON Se establece si el botón derecho del mouse está presionado.

  • MK_SHIFT Se establece si la tecla MAYÚS está presionada.

point
Especifica las coordenadas x e y del cursor. Las coordenadas siempre son relativas a la esquina superior izquierda de la ventana.

Comentarios

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnRButtonUp

El marco llama a esta función miembro cuando el usuario suelta el botón derecho del mouse.

afx_msg void OnRButtonUp(
    UINT nFlags,
    CPoint point);

Parámetros

nFlags
Indica si hay varias teclas virtuales presionadas. Este parámetro puede ser una combinación de los siguientes valores:

  • MK_CONTROL Se establece si la tecla CTRL está presionada.

  • MK_LBUTTON Se establece si el botón izquierdo del mouse está presionado.

  • MK_MBUTTON Se establece si el botón central del mouse está presionado.

  • MK_SHIFT Se establece si la tecla MAYÚS está presionada.

point
Especifica las coordenadas x e y del cursor. Las coordenadas siempre son relativas a la esquina superior izquierda de la ventana.

Comentarios

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnRegisteredMouseWheel

El marco llama a esta función miembro en el momento en que un usuario gira la rueda del mouse y encuentra la siguiente muesca de la rueda.

afx_msg LRESULT OnRegisteredMouseWheel(
    WPARAM wParam,
    LPARAM lParam);

Parámetros

wParam
La posición horizontal del puntero.

lParam
La posición vertical del puntero.

Valor devuelto

Insignificante en este momento. Siempre cero.

Comentarios

A menos que se invalide, OnRegisteredMouseWheel enruta el mensaje a la ventana adecuada (la ventana primaria con foco) y llama al controlador WM_MOUSEWHEEL de esa ventana.

Invalide esta función miembro para proporcionar su propio enrutamiento de mensajes o para modificar el comportamiento de desplazamiento con la rueda del mouse.

Nota:

OnRegisteredMouseWheel controla los mensajes de Windows 95/98 y Windows NT 3.51. Para el control de mensajes de Windows NT 4.0, use OnMouseWheel.

CWnd::OnRenderAllFormats

El marco llama a la función miembro OnRenderAllFormats del propietario del Portapapeles cuando se está destruyendo la aplicación propietaria.

afx_msg void OnRenderAllFormats();

Comentarios

El propietario del Portapapeles debe representar los datos en todos los formatos que es capaz de generar y pasar al Portapapeles un identificador de datos para cada formato llamando a la función de Windows SetClipboardData. Esto garantiza que el Portapapeles contenga datos válidos aunque la aplicación que representa los datos se destruya. La aplicación debe llamar a la función miembro OpenClipboard antes de llamar a la función de Windows SetClipboardData, y llamar a la función de Windows CloseClipboard después.

CWnd::OnRenderFormat

El marco llama a la función miembro OnRenderFormat del propietario del Portapapeles cuando es necesario representar un formato determinado con representación retrasada.

afx_msg void OnRenderFormat(UINT nFormat);

Parámetros

nFormat
Especifica el formato del Portapapeles.

Comentarios

El receptor debe representar los datos en ese formato y pasarlo al Portapapeles llamando a la función de Windows SetClipboardData.

No llame a la función miembro OpenClipboard ni a la función de Windows CloseClipboard desde dentro de OnRenderFormat.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnSessionChange

El marco llama a esta función miembro para notificar a una aplicación un cambio en el estado de sesión.

afx_msg void OnSessionChange(
    UINT nSessionState,
    UINT nId);

Parámetros

nSessionState
[entrada] Un código de estado describe el cambio de estado de sesión.

nId
[entrada] El identificador de la sesión.

Comentarios

Este método recibe la notificación WM_WTSSESSION_CHANGE, descrita en Windows SDK.

El parámetro nSessionState especifica si una sesión está conectada o desconectada de la consola o de un terminal remoto, un usuario ha iniciado o cerrado sesión, una sesión está bloqueada o desbloqueada, o una sesión ha cambiado al estado controlado de forma remota. Para obtener más información, vea el parámetro wParam del mensaje WM_WTSSESSION_CHANGE.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnSetCursor

El marco llama a esta función miembro si no se captura la entrada del mouse y el mouse provoca el movimiento del cursor dentro del objeto CWnd.

afx_msg BOOL OnSetCursor(
    CWnd* pWnd,
    UINT nHitTest,
    UINT message);

Parámetros

pWnd
Especifica un puntero a la ventana que contiene el cursor. El puntero puede ser temporal y no se debe almacenar para su uso posterior.

nHitTest
Especifica el código del área de prueba de posicionamiento. La prueba de posicionamiento determina la ubicación del cursor.

message
Especifica el número del mensaje del mouse.

Valor devuelto

Distinto de cero para detener el procesamiento adicional, o 0 para continuar.

Comentarios

La implementación predeterminada llama al OnSetCursor de la ventana primaria antes del procesamiento. Si la ventana primaria devuelve TRUE, se detiene el procesamiento. Llamar a la ventana primaria proporciona a la ventana primaria el control sobre la configuración del cursor en una ventana secundaria.

La implementación predeterminada establece el cursor en una flecha si no está en el área cliente o en el cursor de clase registrada si está en el área cliente.

Si nHitTest es HTERROR y message es un mensaje de botón presionado del mouse, se llama a la función miembro MessageBeep.

El parámetro message es 0 cuando CWnd entra en el modo de menú.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnSetFocus

El marco llama a esta función miembro después de obtener el foco de entrada.

afx_msg void OnSetFocus(CWnd* pOldWnd);

Parámetros

pOldWnd
Contiene el objeto CWnd que pierde el foco de entrada (puede ser NULL). El puntero puede ser temporal y no se debe almacenar para su uso posterior.

Comentarios

Para mostrar un cursor de inserción, CWnd debe llamar a las funciones de cursor de inserción adecuadas en este momento.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnSettingChange

El marco llama a OnSettingChange para todas las ventanas de nivel superior cuando la función SystemParametersInfo de Win32 cambia una configuración de todo el sistema.

afx_msg void OnSettingChange(
    UINT uFlags,
    LPCTSTR lpszSection);

Parámetros

uFlags
Cuando el sistema envía el mensaje como resultado de una llamada de SystemParametersInfo, este parámetro es una marca que indica el parámetro del sistema que se ha cambiado. Para obtener una lista de valores, consulte SystemParametersInfo en Windows SDK. Cuando una aplicación envía el mensaje, este parámetro debe ser 0.

lpszSection
Apunta a una cadena que especifica el nombre de la sección que ha cambiado. (La cadena no incluye los corchetes que encierran el nombre de sección).

Comentarios

Una aplicación debe enviar el mensaje a todas las ventanas de nivel superior cuando realice cambios en los parámetros del sistema, y Windows enviará el mensaje si el usuario cambia la configuración a través del Panel de control.

El mensaje ON_WM_SETTINGCHANGE es similar al mensaje ON_WM_WININICHANGE, con la siguiente diferencia:

  • Use ON_WM_SETTINGCHANGE al ejecutar Windows NT 4.0 o posterior, o en Windows 95/98.

  • Use ON_WININICHANGE al ejecutar Windows NT 3.51 o una versión anterior. Este mensaje ahora está obsoleto.

Solo debe tener una de estas macros en el mapa de mensajes. Para escribir un programa que funcione para Windows 95/98 y Windows NT 4.0, escriba un controlador para ON_WM_SETTINGCHANGE. En Windows NT 3.51, OnSettingChange llamará al controlador y uFlags siempre será cero.

CWnd::OnShowWindow

El marco llama a esta función miembro cuando el objeto CWnd está a punto de ocultarse o mostrarse.

afx_msg void OnShowWindow(
    BOOL bShow,
    UINT nStatus);

Parámetros

bShow
Especifica si se está mostrando una ventana. Es TRUE si se está mostrando la ventana; es FALSE si se está ocultando la ventana.

nStatus
Especifica el estado de la ventana que se está mostrando. Es 0 si el mensaje se envía debido a una llamada de función miembro ShowWindow; de lo contrario, nStatus es uno de los siguientes:

  • SW_PARENTCLOSING La ventana primaria se está cerrando (se está haciendo icono) o se está ocultando una ventana emergente.

  • SW_PARENTOPENING La ventana primaria se está abriendo (se está mostrando) o se está mostrando una ventana emergente.

Comentarios

Una ventana se oculta o se muestra cuando se llama a la función miembro ShowWindow, cuando se maximiza o restaura una ventana superpuesta, o cuando una ventana emergente o superpuesta se cierra (se hace icono) o se abre (se muestra en la pantalla). Cuando se cierra una ventana superpuesta, todas las ventanas emergentes asociadas a esa ventana se ocultan.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnSize

El marco llama a esta función miembro después de que el tamaño de la ventana haya cambiado.

afx_msg void OnSize(
    UINT nType,
    int cx,
    int cy);

Parámetros

nType
Especifica el tipo de cambio de tamaño solicitado. Este parámetro puede establecerse con uno de los siguientes valores:

  • SIZE_MAXIMIZED La ventana se ha maximizado.

  • SIZE_MINIMIZED La ventana se ha minimizado.

  • SIZE_RESTORED Se ha cambiado el tamaño de la ventana, pero no se aplican ni SIZE_MINIMIZED ni SIZE_MAXIMIZED.

  • SIZE_MAXHIDE El mensaje se envía a todas las ventanas emergentes cuando se maximiza alguna otra ventana.

  • SIZE_MAXSHOW El mensaje se envía a todas las ventanas emergentes cuando alguna otra ventana se ha restaurado a su tamaño anterior.

cx
Especifica el nuevo ancho del área cliente.

cy
Especifica el nuevo alto de del área cliente.

Comentarios

Si se llama a la función miembro SetScrollPos o MoveWindow para una ventana secundaria desde OnSize, el parámetro bRedraw de SetScrollPos o MoveWindow debe ser distinto de cero para que CWnd se vuelva a pintar.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

Ejemplo

// 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

El visor del Portapapeles llama a la función miembro OnSizeClipboard del propietario del Portapapeles cuando el Portapapeles contiene datos con el atributo CF_OWNERDISPLAY y el tamaño del área cliente de la ventana del visor del Portapapeles ha cambiado.

afx_msg void OnSizeClipboard(
    CWnd* pClipAppWnd,
    HGLOBAL hRect);

Parámetros

pClipAppWnd
Identifica la ventana de la aplicación Portapapeles. El puntero puede ser temporal y no se debe almacenar.

hRect
Identifica un objeto de memoria global. El objeto de memoria contiene una estructura de datos RECT que especifica el área que va a pintar el propietario del Portapapeles.

Comentarios

Se llama a la función miembro OnSizeClipboard con un rectángulo nulo (0,0,0,0) como nuevo tamaño cuando la aplicación Portapapeles está a punto de destruirse o minimizarse. Esto permite al propietario del Portapapeles liberar sus recursos de visualización.

Dentro de OnSizeClipboard, una aplicación debe usar la función de Windows GlobalLock para bloquear la memoria que contiene la estructura de datos RECT. Haga que la aplicación desbloquee esa memoria con la función de Windows GlobalUnlock antes de que ceda o devuelva el control.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnSizing

El marco llama a esta función miembro para indicar que el usuario está cambiando el tamaño del rectángulo.

afx_msg void OnSizing(
    UINT nSide,
    LPRECT lpRect);

Parámetros

nSide
El borde de la ventana que se va a mover.

lpRect
La dirección del CRect o la estructura RECT que contendrá las coordenadas del elemento.

Comentarios

Al procesar este mensaje, una aplicación puede supervisar el tamaño y la posición del rectángulo de arrastre y, si fuera necesario, cambiar su tamaño o posición.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

Ejemplo

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

El marco llama a esta función miembro desde el Administrador de impresión cada vez que un trabajo se agrega a la cola del Administrador de impresión o se quita de ella.

afx_msg void OnSpoolerStatus(
    UINT nStatus,
    UINT nJobs);

Parámetros

nStatus
Especifica la marca SP_JOBSTATUS.

nJobs
Especifica el número de trabajos restantes en la cola del Administrador de impresión.

Comentarios

Esta llamada sólo tiene fines informativos.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnStyleChanged

El marco llama a esta función miembro después de que la función SetWindowLong haya cambiado uno o varios estilos de la ventana.

afx_msg void OnStyleChanged(
    int nStyleType,
    LPSTYLESTRUCT lpStyleStruct);

Parámetros

nStyleType
Especifica si los estilos extendidos o no extendidos de la ventana han cambiado. Este parámetro puede ser una combinación de los siguientes valores:

  • GWL_EXSTYLE Los estilos extendidos de la ventana han cambiado.

  • GWL_STYLE Los estilos no extendidos de la ventana han cambiado.

lpStyleStruct
Apunta a una estructura STYLESTRUCT que contiene los nuevos estilos para la ventana. Una aplicación puede examinar los estilos, pero no puede cambiarlos.

Comentarios

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnStyleChanging

El marco llama a esta función miembro cuando la función SetWindowLong está a punto de cambiar uno o varios estilos de la ventana.

afx_msg void OnStyleChanging(
    int nStyleType,
    LPSTYLESTRUCT lpStyleStruct);

Parámetros

nStyleType
Especifica si los estilos extendidos o no extendidos de la ventana han cambiado. Este parámetro puede ser una combinación de los siguientes valores:

  • GWL_EXSTYLE Los estilos extendidos de la ventana han cambiado.

  • GWL_STYLE Los estilos no extendidos de la ventana han cambiado.

lpStyleStruct
Apunta a una estructura STYLESTRUCT que contiene los nuevos estilos para la ventana. Una aplicación puede examinar los estilos y cambiarlos.

Comentarios

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnSysChar

El marco llama a esta función miembro si CWnd tiene el foco de entrada y los mensajes WM_SYSKEYUP y WM_SYSKEYDOWN están traducidos.

afx_msg void OnSysChar(
    UINT nChar,
    UINT nRepCnt,
    UINT nFlags);

Parámetros

nChar
Especifica el código de tecla de carácter ASCII de una tecla del menú Control.

nRepCnt
Especifica el recuento de repeticiones, es decir, el número de veces que se repite la pulsación de tecla como resultado de que el usuario mantenga presionada la tecla.

nFlags
El parámetro nFlags puede tener estos valores:

Valor Significado
0-15 Especifica el recuento de repeticiones. El valor es el número de veces que se repite la pulsación de tecla como resultado de que el usuario mantenga presionada la tecla.
16-23 Especifica el código de examen. El valor depende del fabricante del equipo original (OEM).
24 Especifica si la tecla es una tecla extendida, como las teclas ALT y CTRL de la derecha que aparecen en un teclado mejorado de 101 o 102 teclas. El valor es 1 si es una tecla extendida; de lo contrario, es 0.
25-28 Windows los usa de manera interna.
29 Especifica el código de contexto. El valor es 1 si la tecla ALT se mantiene presionada mientras se presiona la tecla; de lo contrario, el valor es 0.
30 Especifica el estado de tecla anterior. El valor es 1 si la tecla está presionada antes de que se envíe el mensaje, o es 0 si la tecla no está presionada.
31 Especifica el estado de transición. El valor es 1 si se está liberando la tecla, o 0 si se está presionando la tecla.

Comentarios

Especifica el código de tecla virtual de la tecla del menú de Control. (Para obtener una lista de códigos de tecla virtual estándar, consulte Winuser.h).

Cuando el código de contexto es 0, WM_SYSCHAR puede pasar el mensaje WM_SYSCHAR a la función de Windows TranslateAccelerator, que lo controlará como si fuera un mensaje de una tecla normal en lugar de una tecla de carácter del sistema. Esto permite usar las teclas de aceleración con la ventana activa incluso si la ventana activa no tiene el foco de entrada.

Para los teclados IBM mejorados con 101 o 102 teclas, las teclas mejoradas son las teclas ALT derecha y CTRL derecha en la sección principal del teclado; las teclas INS, SUPR, INICIO, FIN, REPÁG, AVPÁG y las teclas con flechas en los clústeres a la izquierda del teclado numérico, así como las teclas de barra diagonal (/) y ENTRAR en el teclado numérico. Otros teclados pueden admitir el bit de tecla extendida en nFlags.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnSysColorChange

El marco llama a esta función miembro para todas las ventanas de nivel superior cuando se realiza un cambio en la configuración de color del sistema.

afx_msg void OnSysColorChange();

Comentarios

Windows llama a OnSysColorChange para cualquier ventana afectada por un cambio de color del sistema.

Las aplicaciones que tienen pinceles que usan los colores del sistema existentes deben eliminar esos pinceles y volver a crearlos con los nuevos colores del sistema.

CWnd::OnSysCommand

El marco llama a esta función miembro cuando el usuario selecciona un comando en el menú Control, o cuando el usuario selecciona el botón para maximizar o minimizar.

afx_msg void OnSysCommand(
    UINT nID,
    LPARAM lParam);

Parámetros

nID
Especifica el tipo de comando de sistema solicitado. Este parámetro puede establecerse en uno de los siguientes valores:

  • SC_CLOSE Cerrar el objeto CWnd.

  • SC_HOTKEY Activar el objeto CWnd asociado a la tecla activa especificada por la aplicación. La palabra de valor inferior de lParam identifica el HWND de la ventana que se va a activar.

  • SC_HSCROLL Realizar un desplazamiento horizontal.

  • SC_KEYMENU Recuperar un menú a través de una pulsación de tecla.

  • SC_MAXIMIZE (o SC_ZOOM) Maximizar el objeto CWnd.

  • SC_MINIMIZE (o SC_ICON) Minimizar el objeto CWnd.

  • SC_MOUSEMENU Recuperar un menú mediante un clic del mouse.

  • SC_MOVE Mover el objeto CWnd.

  • SC_NEXTWINDOW Desplazarse a la ventana siguiente.

  • SC_PREVWINDOW Desplazarse a la ventana anterior.

  • SC_RESTORE Restaurar la ventana a la posición y el tamaño normales.

  • SC_SCREENSAVE Ejecutar la aplicación de protector de pantalla especificada en la sección [arranque] del archivo SYSTEM.INI.

  • SC_SIZE Ajustar el tamaño del objeto CWnd.

  • SC_TASKLIST Ejecutar o activar la aplicación Administrador de tareas de Windows.

  • SC_VSCROLL Realizar un desplazamiento vertical.

lParam
Si se elige un comando del menú de Control con el mouse, lParam contiene las coordenadas del cursor. La palabra de valor inferior contiene la coordenada x, y la palabra de valor superior contiene la coordenada y. En caso contrario, este parámetro no se usa.

  • SC_HOTKEY Activar la ventana asociada a la tecla activa especificada por la aplicación. La palabra de valor inferior de lParam identifica la ventana que se va a activar.

  • SC_SCREENSAVE Ejecutar la aplicación de protector de pantalla especificada en la sección Escritorio de Panel de control.

Comentarios

De forma predeterminada, OnSysCommand lleva a cabo la solicitud del menú Control para las acciones predefinidas especificadas en la tabla anterior.

En los mensajes WM_SYSCOMMAND, Windows usa internamente los cuatro bits de valor inferior del parámetro nID. Cuando una aplicación prueba el valor de nID, debe combinar el valor 0xFFF0 con el valor nID mediante el operador bit a bit AND para obtener el resultado correcto.

Los elementos de menú de un menú Control se pueden modificar con las funciones miembro GetSystemMenu, AppendMenu, InsertMenu y ModifyMenu. Las aplicaciones que modifican el menú Control deben procesar mensajes WM_SYSCOMMAND, y todos los mensajes WM_SYSCOMMAND no administrados por la aplicación deben pasarse a OnSysCommand. Todos los valores de comando agregados por una aplicación debe procesarlos la aplicación y no se pueden pasar a OnSysCommand.

Una aplicación puede llevar a cabo cualquier comando del sistema en cualquier momento pasando un mensaje WM_SYSCOMMAND a OnSysCommand.

Las pulsaciones de tecla de aceleración (método abreviado) que se definen para seleccionar elementos del menú Control se traducen en llamadas de OnSysCommand; todas las demás pulsaciones de tecla de aceleración se traducen en mensajes WM_COMMAND.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnSysDeadChar

El marco llama a esta función miembro si el objeto CWnd tiene el foco de entrada cuando se llama a la función miembro OnSysKeyUp o OnSysKeyDown.

afx_msg void OnSysDeadChar(
    UINT nChar,
    UINT nRepCnt,
    UINT nFlags);

Parámetros

nChar
Especifica el valor del carácter de tecla inactiva.

nRepCnt
Especifica el recuento de repeticiones.

nFlags
Contiene el código de examen, el código de transición de teclas, el estado de tecla anterior y el código de contexto, como se muestra en la lista siguiente:

Valor Significado
0-7 Código de examen (valor dependiente del OEM). Byte bajo de palabra de valor superior.
8 Tecla extendida, como una tecla de función o una tecla del teclado numérico (1 si es una tecla extendida; en caso contrario, 0).
9-10 No se utiliza.
11-12 Windows los usa de manera interna.
13 Código de contexto (1 si se mantiene presionada la tecla ALT mientras se presiona la tecla; en caso contrario, 0).
14 Estado de tecla anterior (1 si la tecla está presionada antes de la llamada, 0 si la tecla no está presionada).
15 Estado de transición (1 si se está liberando la tecla, 0 si se está presionando la tecla).

Comentarios

Especifica el valor de carácter de una tecla inactiva.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnSysKeyDown

Si el objeto CWnd tiene el foco de entrada, el marco llama a la función miembro OnSysKeyDown cuando el usuario mantiene presionada la tecla ALT y, a continuación, presiona otra tecla.

afx_msg void OnSysKeyDown(
    UINT nChar,
    UINT nRepCnt,
    UINT nFlags);

Parámetros

nChar
Especifica el código de tecla virtual de la tecla que se está presionando. Para obtener una lista de códigos de tecla virtual estándar, consulte Winuser.h.

nRepCnt
Especifica el recuento de repeticiones.

nFlags
Contiene el código de examen, el código de transición de teclas, el estado de tecla anterior y el código de contexto, como se muestra en la lista siguiente:

Valor Significado
0-7 Código de examen (valor dependiente del OEM). Byte bajo de palabra de valor superior.
8 Tecla extendida, como una tecla de función o una tecla del teclado numérico (1 si es una tecla extendida; en caso contrario, 0).
9-10 No se utiliza.
11-12 Windows los usa de manera interna.
13 Código de contexto (1 si se mantiene presionada la tecla ALT mientras se presiona la tecla; en caso contrario, 0).
14 Estado de tecla anterior (1 si la tecla está presionada antes de que se envíe el mensaje, 0 si la tecla no está presionada).
15 Estado de transición (1 si se está liberando la tecla, 0 si se está presionando la tecla).

En el caso de las llamadas de OnSysKeyDown, el bit de transición de tecla (bit 15) es 0. El bit de código de contexto (bit 13) es 1 si la tecla ALT está presionada mientras se presiona la tecla; es 0 si el mensaje se envía a la ventana activa porque ninguna ventana tiene el foco de entrada.

Comentarios

Si actualmente no hay ninguna ventana con el foco de entrada, se llama a la función miembro OnSysKeyDown de la ventana activa. El objeto CWnd que recibe el mensaje puede distinguir entre estos dos contextos comprobando el código de contexto en nFlags.

Cuando el código de contexto es 0, el mensaje WM_SYSKEYDOWN que recibe OnSysKeyDown se puede pasar a la función de Windows TranslateAccelerator, que lo controlará como si fuera un mensaje de una tecla normal en lugar de una tecla de carácter del sistema. Esto permite usar las teclas de aceleración con la ventana activa incluso si la ventana activa no tiene el foco de entrada.

Debido a la repetición automática, puede producirse más de una llamada de OnSysKeyDown antes de que se reciba el mensaje WM_SYSKEYUP. El estado de tecla anterior (bit 14) se puede usar para determinar si la llamada de OnSysKeyDown indica la primera transición descendente o una transición descendente repetida.

Para los teclados IBM mejorados con 101 y 102 teclas, las teclas mejoradas son las teclas ALT derecha y CTRL derecha en la sección principal del teclado; las teclas INS, SUPR, INICIO, FIN, REPÁG, AVPÁG y las teclas con flechas en los clústeres a la izquierda del teclado numérico, así como las teclas de barra diagonal (/) y ENTRAR en el teclado numérico. Otros teclados pueden admitir el bit de tecla extendida en nFlags.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnSysKeyUp

Si el objeto CWnd tiene el foco, el marco llama a la función miembro OnSysKeyUp cuando el usuario libera una tecla que ha presionado mientras se mantiene presionada la tecla ALT.

afx_msg void OnSysKeyUp(
    UINT nChar,
    UINT nRepCnt,
    UINT nFlags);

Parámetros

nChar
Especifica el código de tecla virtual de la tecla que se está presionando. Para obtener una lista de códigos de tecla virtual estándar, consulte Winuser.h.

nRepCnt
Especifica el recuento de repeticiones.

nFlags
Contiene el código de examen, el código de transición de teclas, el estado de tecla anterior y el código de contexto, como se muestra en la lista siguiente:

Valor Significado
0-7 Código de examen (valor dependiente del OEM). Byte bajo de palabra de valor superior.
8 Tecla extendida, como una tecla de función o una tecla del teclado numérico (1 si es una tecla extendida; en caso contrario, 0).
9-10 No se utiliza.
11-12 Windows los usa de manera interna.
13 Código de contexto (1 si se mantiene presionada la tecla ALT mientras se presiona la tecla; en caso contrario, 0).
14 Estado de tecla anterior (1 si la tecla está presionada antes de que se envíe el mensaje, 0 si la tecla no está presionada).
15 Estado de transición (1 si se está liberando la tecla, 0 si se está presionando la tecla).

En el caso de las llamadas de OnSysKeyUp, el bit de transición de tecla (bit 15) es 1. El bit de código de contexto (bit 13) es 1 si la tecla ALT está presionada mientras se presiona la tecla; es 0 si el mensaje se envía a la ventana activa porque ninguna ventana tiene el foco de entrada.

Comentarios

Si actualmente no hay ninguna ventana con el foco de entrada, se llama a la función miembro OnSysKeyUp de la ventana activa. El objeto CWnd que recibe la llamada puede distinguir entre estos dos contextos comprobando el código de contexto en nFlags.

Cuando el código de contexto es 0, el mensaje WM_SYSKEYUP que recibe OnSysKeyUp se puede pasar a la función de Windows TranslateAccelerator, que lo controlará como si fuera un mensaje de una tecla normal en lugar de una tecla de carácter del sistema. Esto permite usar las teclas de aceleración (método abreviado) con la ventana activa incluso si la ventana activa no tiene el foco de entrada.

Para los teclados IBM mejorados con 101 o 102 teclas, las teclas mejoradas son las teclas ALT derecha y CTRL derecha en la sección principal del teclado; las teclas INS, SUPR, INICIO, FIN, REPÁG, AVPÁG y las teclas con flechas en los clústeres a la izquierda del teclado numérico, así como las teclas de barra diagonal (/) y ENTRAR en el teclado numérico. Algunos teclados pueden admitir el bit de tecla extendida en nFlags.

Para los teclados mejorados de 102 teclas que no son de EE. UU., la tecla ALT derecha se controla como la combinación de teclas CTRL+ALT. A continuación se muestra la secuencia de mensajes y llamadas que resultan cuando el usuario presiona y suelta esta tecla:

Sequence Función a la que se ha accedido Mensaje que se ha pasado
1. WM_KEYDOWN VK_CONTROL
2. WM_KEYDOWN VK_MENU
3. WM_KEYUP VK_CONTROL
4. WM_SYSKEYUP VK_MENU

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnTCard

El marco llama a esta función miembro cuando el usuario hace clic en un botón que se puede modificar.

afx_msg void OnTCard(
    UINT idAction,
    DWORD dwActionData);

Parámetros

idAction
Indica la acción que ha realizado el usuario. El parámetro puede ser uno de estos valores:

  • IDABORT El usuario ha hecho clic en un botón Anular que se puede modificar.

  • IDCANCEL El usuario ha hecho clic en un botón Cancelar que se puede modificar.

  • IDCLOSE El usuario ha cerrado la tarjeta de entrenamiento.

  • IDHELP El usuario ha hecho clic en un botón de ayuda de Windows que se puede modificar.

  • IDIGNORE El usuario ha hecho clic en un botón Ignorar que se puede modificar.

  • IDOK El usuario ha hecho clic en un botón Aceptar que se puede modificar.

  • IDNO El usuario ha hecho clic en un botón No que se puede modificar.

  • IDRETRY El usuario ha hecho clic en un botón Reintentar que se puede modificar.

  • HELP_TCARD_DATA El usuario ha hecho clic en un botón que se puede modificar. El parámetro dwActionData contiene un entero largo especificado por el autor de la ayuda.

  • HELP_TCARD_NEXT El usuario ha hecho clic en un botón Siguiente que se puede modificar.

  • HELP_TCARD_OTHER_CALLER Otra aplicación ha solicitado tarjetas de entrenamiento.

  • IDYES El usuario ha hecho clic en un botón Sí que se puede modificar.

dwActionData
Si idAction especifica HELP_TCARD_DATA, este parámetro es un entero largo especificado por el autor de la ayuda. De lo contrario, este parámetro es cero.

Comentarios

Se llama a esta función sólo cuando una aplicación ha iniciado una tarjeta de entrenamiento con la Ayuda de Windows. Una aplicación inicia una tarjeta de entrenamiento especificando el comando HELP_TCARD en una llamada a la función WinHelp.

CWnd::OnTimeChange

El marco llama a esta función miembro después de que la hora del sistema haya cambiado.

afx_msg void OnTimeChange();

Comentarios

Haga que cualquier aplicación que cambie la hora del sistema envíe este mensaje a todas las ventanas de nivel superior. Para enviar el mensaje WM_TIMECHANGE a todas las ventanas de nivel superior, una aplicación puede usar la función de Windows SendMessage con su parámetro hwnd establecido en HWND_BROADCAST.

CWnd::OnTimer

El marco llama a esta función miembro después de cada intervalo especificado en la función miembro SetTimer usada para instalar un temporizador.

afx_msg void OnTimer(UINT_PTR nIDEvent);

Parámetros

nIDEvent
Especifica el identificador del temporizador.

Comentarios

La función de Windows DispatchMessage envía un mensaje WM_TIMER cuando no hay ningún otro mensaje en la cola de mensajes de la aplicación.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

Ejemplo

Consulte el ejemplo de CWnd::SetTimer.

CWnd::OnToolHitTest

El marco llama a esta función miembro para determinar si un punto está en el rectángulo delimitador de la herramienta especificada.

virtual INT_PTR OnToolHitTest(
    CPoint point,
    TOOLINFO* pTI) const;

Parámetros

point
Especifica las coordenadas x e y del cursor. Las coordenadas siempre son relativas a la esquina superior izquierda de la ventana.

pTI
Un puntero a una estructura TOOLINFO. Los siguientes valores de estructura se establecen de forma predeterminada:

  • hwnd = m_hWnd Identificador de una ventana

  • uId = (UINT)hWndChild Identificador de una ventana secundaria

  • uFlags |= TTF_IDISHWND Identificador de la herramienta

  • lpszText = LPSTR_TEXTCALLBACK Puntero a la cadena que se va a mostrar en la ventana especificada

Valor devuelto

Si se ha encontrado el control de información sobre herramientas, el Id. del control de ventana. Si no se ha encontrado el control de información sobre herramientas, -1.

Comentarios

Si el punto está en el rectángulo, recupera información sobre la herramienta.

Si el área con la que está asociada la información sobre herramientas no es un botón, OnToolHitTest establece las marcas de estructura en TTF_NOTBUTTON y TTF_CENTERTIP.

Invalide OnToolHitTest para proporcionar información diferente a la predeterminada.

Consulte TOOLINFO de Windows SDK para obtener más información sobre la estructura.

CWnd::OnTouchInput

Procese una única entrada de tecnología táctil de Windows.

virtual BOOL OnTouchInput(
    CPoint pt,
    int nInputNumber,
    int nInputsCount,
    PTOUCHINPUT pInput);

Parámetros

pt
El punto en el que se ha tocado la pantalla (en las coordenadas cliente).

nInputNumber
El número de entrada táctil.

nInputsCount
El número total de entradas táctiles.

pInput
Puntero a la estructura TOUCHINPUT .

Valor devuelto

TRUE si la aplicación procesa la entrada táctil de Windows; de lo contrario, FALSE.

Comentarios

CWnd::OnTouchInputs

Procesa entradas táctiles de Windows.

virtual BOOL OnTouchInputs(
    UINT nInputsCount,
    PTOUCHINPUT pInputs);

Parámetros

nInputsCount
Número total de entradas táctiles de Windows.

pInputs
Matriz de TOUCHINPUT.

Valor devuelto

TRUE si la aplicación procesa entradas táctiles de Windows; de lo contrario, FALSE.

Comentarios

CWnd::OnUniChar

El marco llama a esta función miembro cuando se presiona una tecla. Es decir, la ventana actual tiene el foco del teclado y la función TranslateMessage traduce un mensaje WM_KEYDOWN.

afx_msg void OnUniChar(
    UINT nChar,
    UINT nRepCnt,
    UINT nFlags);

Parámetros

nChar
[entrada] Especifica el código de carácter de la tecla presionada.

nRepCnt
[entrada] Especifica el recuento de repeticiones para el mensaje actual. El valor es el número de veces que se repite la pulsación de tecla como resultado de que el usuario mantenga presionada la tecla. Si la tecla se mantiene presionada durante un tiempo suficiente, se envían varios mensajes. Sin embargo, el recuento de repeticiones no es acumulativo.

nFlags
[entrada] Las marcas que especifican el código de examen, la tecla extendida, el código de contexto, el estado de tecla anterior y el estado de transición, como se muestra en la tabla siguiente:

Los bits de marca Descripción
0-7 Especifica el código de examen. El valor depende del fabricante del equipo original (OEM).
8 Especifica si la tecla es una tecla extendida, como las teclas ALT y CTRL de la derecha que aparecen en un teclado mejorado de 101 o 102 teclas. La marca es 1 si la tecla es una tecla extendida; de lo contrario, es 0.
9-12 Windows los usa de manera interna.
13 Especifica el código de contexto. El valor es 1 si la tecla ALT se mantiene presionada mientras se presiona la tecla; de lo contrario, el valor es 0.
14 Especifica el estado de tecla anterior. El valor es 1 si la tecla está presionada antes de que se envíe el mensaje, o 0 si la tecla no está presionada.
15 Especifica el estado de transición. El valor es 1 si se está liberando la tecla, o 0 si se está presionando la tecla.

Comentarios

Este método recibe la notificación WM_UNICHAR, descrita en Windows SDK. El mensaje WM_UNICHAR está diseñado para enviar o publicar caracteres Unicode en ventanas ANSI. Es equivalente al mensaje WM_CHAR, pero usa la codificación de Formato de transformación Unicode-32 (UTF-32), mientras que el mensaje WM_CHAR usa UTF-16.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnUnInitMenuPopup

El marco llama a esta función miembro cuando se ha destruido un menú o un submenú desplegable.

afx_msg void OnUnInitMenuPopup(
    CMenu* pPopupMenu,
    UINT nFlags);

Parámetros

pMenu
[entrada] El puntero al objeto CMenu que representa el menú o submenú.

nFlags
[entrada] El menú que se ha destruido. Actualmente, solo puede ser el menú de la ventana, MF_SYSMENU.

Comentarios

Este método recibe la notificación WM_UNINITMENUPOPUP, descrita en Windows SDK.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnUpdateUIState

Se llama para cambiar el estado de la interfaz de usuario de la ventana especificada y de todas sus ventanas secundarias.

afx_msg void OnUpdateUIState(
    UINT nAction,
    UINT nUIElement);

Parámetros

nAction
Especifica la acción que se va a realizar. Puede ser uno de los siguientes valores:

  • UIS_CLEAR El elemento de estado de la interfaz de usuario (especificado por nUIElement) debe estar oculto.

  • UIS_INITIALIZE El elemento de estado de la interfaz de usuario (especificado por nUIElement) debe cambiarse en función del último evento de entrada. Para obtener más información, consulte la sección Comentarios de WM_UPDATEISTATE.

  • UIS_SET El elemento de estado de la interfaz de usuario (especificado por nUIElement) debe ser visible.

nUIElement
Especifica qué elementos de estado de la interfaz de usuario se ven afectados, o el estilo del control. Puede ser uno de los siguientes valores:

  • UISF_HIDEACCEL Aceleradores de teclado.

  • UISF_HIDEFOCUS Indicadores de foco.

  • UISF_ACTIVE Windows XP: se debe dibujar un control en el estilo usado para los controles activos.

Comentarios

Esta función miembro se usa para emular la funcionalidad del mensaje WM_UPDATEUISTATE, tal como se describe en Windows SDK.

CWnd::OnUserChanged

El marco llama a este miembro para todas las ventanas después de que el usuario haya iniciado o cerrado sesión.

afx_msg void OnUserChanged();

Comentarios

Este método recibe un mensaje de notificación WM_USERCHANGED, descrito en Windows SDK. Cuando el usuario inicia o cierra sesión, el sistema operativo actualiza la configuración específica del usuario. El sistema envía este mensaje inmediatamente después de actualizar la configuración.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnVKeyToItem

Si el objeto CWnd posee un cuadro de lista con el estilo LBS_WANTKEYBOARDINPUT, el cuadro de lista enviará el mensaje WM_VKEYTOITEM en respuesta a un mensaje WM_KEYDOWN.

afx_msg int OnVKeyToItem(
    UINT nKey,
    CListBox* pListBox,
    UINT nIndex);

Parámetros

nKey
Especifica el código de tecla virtual de la tecla que ha presionado el usuario. Para obtener una lista de códigos de tecla virtual estándar, consulte Winuser.h.

pListBox
Especifica un puntero al cuadro de lista. El puntero puede ser temporal y no se debe almacenar para su uso posterior.

nIndex
Especifica la posición actual del cursor de inserción.

Valor devuelto

Especifica la acción que ha realizado la aplicación en respuesta al mensaje. Un valor devuelto de -2 indica que la aplicación ha controlado todos los aspectos de la selección del elemento y no requiere ninguna acción adicional por parte del cuadro de lista. Si el valor devuelto es -1, el cuadro de lista debe realizar la acción predeterminada en respuesta a la pulsación de tecla. Un valor devuelto que sea 0 o mayor que 0 especifica el índice de base cero de un elemento en el cuadro de lista e indica que el cuadro de lista debe realizar la acción predeterminada para la pulsación de tecla en el elemento especificado.

Comentarios

El marco sólo llama a esta función miembro para los cuadros de lista que tienen el estilo LBS_HASSTRINGS.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnVScroll

El marco llama a esta función miembro cuando el usuario hace clic en la barra de desplazamiento vertical de una ventana.

afx_msg void OnVScroll(
    UINT nSBCode,
    UINT nPos,
    CScrollBar* pScrollBar);

Parámetros

nSBCode
Especifica un código de barra de desplazamiento que indica la solicitud de desplazamiento del usuario. Este parámetro puede ser uno de los siguientes:

  • SB_BOTTOM Desplazamiento al final.

  • SB_ENDSCROLL Fin del desplazamiento.

  • SB_LINEDOWN Desplazamiento de una línea hacia abajo.

  • SB_LINEUP Desplazamiento de una línea hacia arriba.

  • SB_PAGEDOWN Desplazamiento de una página hacia abajo.

  • SB_PAGEUP Desplazamiento de una página hacia arriba.

  • SB_THUMBPOSITION Desplazamiento a la posición absoluta. La posición actual se proporciona en nPos.

  • SB_THUMBTRACK Arrastre del cuadro de desplazamiento hasta la posición especificada. La posición actual se proporciona en nPos.

  • SB_TOP Desplazamiento al principio.

nPos
Contiene la posición actual del cuadro de desplazamiento si el código de barra de desplazamiento es SB_THUMBPOSITION o SB_THUMBTRACK; de lo contrario, no se usa. En función del intervalo de desplazamiento inicial, nPos puede ser negativo y debe convertirse a un int si es necesario.

pScrollBar
Si el mensaje de desplazamiento procede de un control de barra de desplazamiento, contiene un puntero al control. Si el usuario hace clic en la barra de desplazamiento de una ventana, este parámetro es NULL. El puntero puede ser temporal y no se debe almacenar para su uso posterior.

Comentarios

OnVScroll lo usan normalmente las aplicaciones que proporcionan información mientras se arrastra el cuadro de desplazamiento.

Si OnVScroll desplaza el contenido del objeto CWnd, también debe restablecer la posición del cuadro de desplazamiento con la función miembro SetScrollPos.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnVScrollClipboard

El visor del Portapapeles llama a la función miembro OnVScrollClipboard del propietario del Portapapeles cuando los datos del Portapapeles tienen el formato CF_OWNERDISPLAY y hay un evento en la barra de desplazamiento vertical del visor del Portapapeles.

afx_msg void OnVScrollClipboard(
    CWnd* pClipAppWnd,
    UINT nSBCode,
    UINT nPos);

Parámetros

pClipAppWnd
Especifica un puntero a una ventana del visor del Portapapeles. El puntero puede ser temporal y no se debe almacenar para su uso posterior.

nSBCode
Especifica uno de los siguientes valores de barra de desplazamiento:

  • SB_BOTTOM Desplazamiento al final.

  • SB_ENDSCROLL Fin del desplazamiento.

  • SB_LINEDOWN Desplazamiento de una línea hacia abajo.

  • SB_LINEUP Desplazamiento de una línea hacia arriba.

  • SB_PAGEDOWN Desplazamiento de una página hacia abajo.

  • SB_PAGEUP Desplazamiento de una página hacia arriba.

  • SB_THUMBPOSITION Desplazamiento a la posición absoluta. La posición actual se proporciona en nPos.

  • SB_TOP Desplazamiento al principio.

nPos
Contiene la posición del cuadro de desplazamiento si el código de barra de desplazamiento es SB_THUMBPOSITION; de lo contrario, nPos no se usa.

Comentarios

El propietario tiene que desplazarse por la imagen del Portapapeles, invalidar la sección correspondiente y actualizar los valores de la barra de desplazamiento.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnWindowMaximizedChanged

El marco llama a este miembro cuando se maximiza la ventana actual y el Administrador de ventanas de escritorio (DWM) ha compuesto la ventana.

afx_msg void OnWindowMaximizedChanged(BOOL bIsMaximized);

Parámetros

bIsMaximized
[entrada] TRUE si la ventana actual está maximizada y FALSE si no es así.

Comentarios

Este método recibe un mensaje de notificación WM_DWMWINDOWMAXIMIZEDCHANGE, descrito en Windows SDK.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnWindowPosChanged

El marco llama a esta función miembro cuando el tamaño, la posición o el orden Z ha cambiado como resultado de una llamada a la función miembro SetWindowPos o a otra función de administración de ventanas.

afx_msg void OnWindowPosChanged(WINDOWPOS* lpwndpos);

Parámetros

lpwndpos
Apunta a una estructura de datos WINDOWPOS que contiene información sobre los nuevos tamaño y posición de la ventana.

Comentarios

La implementación predeterminada envía los mensajes WM_SIZE y WM_MOVE a la ventana. Estos mensajes no se envían si una aplicación controla la llamada de OnWindowPosChanged sin llamar a su clase base. Es más eficaz realizar cualquier procesamiento de movimiento o de cambio de tamaño durante la llamada a OnWindowPosChanged sin llamar a su clase base.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnWindowPosChanging

El marco llama a esta función miembro cuando el tamaño, la posición o el orden Z va a cambiarse como resultado de una llamada a la función miembro SetWindowPos o a otra función de administración de ventanas.

afx_msg void OnWindowPosChanging(WINDOWPOS* lpwndpos);

Parámetros

lpwndpos
Apunta a una estructura de datos WINDOWPOS que contiene información sobre los nuevos tamaño y posición de la ventana.

Comentarios

Una aplicación puede impedir cambios en la ventana estableciendo o borrando los bits adecuados en el miembro flags de la estructura WINDOWPOS.

Para una ventana con el estilo WS_OVERLAPPED o WS_THICKFRAME, la implementación predeterminada envía un mensaje WM_GETMINMAXINFO a la ventana. Esto se hace para validar los nuevos tamaño y posición de la ventana y para aplicar los estilos de cliente CS_BYTEALIGNCLIENT y CS_BYTEALIGN. Una aplicación puede invalidar esta funcionalidad sin llamar a su clase base.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnWinIniChange

El marco llama a esta función miembro después de que se realice un cambio en el archivo de inicialización de Windows, WIN.INI.

afx_msg void OnWinIniChange(LPCTSTR lpszSection);

Parámetros

lpszSection
Apunta a una cadena que especifica el nombre de la sección que ha cambiado. (La cadena no incluye los corchetes que encierran el nombre de sección).

Comentarios

La función de Windows SystemParametersInfo llama a OnWinIniChange después de que una aplicación use la función para cambiar una configuración en el archivo WIN.INI.

Para enviar el mensaje WM_WININICHANGE a todas las ventanas de nivel superior, una aplicación puede usar la función de Windows SendMessage con su parámetro hwnd establecido en HWND_BROADCAST.

Si una aplicación cambia muchas secciones diferentes en WIN.INI al mismo tiempo, la aplicación debe enviar un mensaje WM_WININICHANGE con lpszSection establecido en NULL. De lo contrario, una aplicación debe enviar WM_WININICHANGE cada vez que realiza un cambio en WIN.INI.

Si una aplicación recibe una llamada de OnWinIniChange con lpszSection establecida en NULL, la aplicación debe comprobar todas las secciones de WIN.INI que afectan a la aplicación.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnWndMsg

Se llama a esta función miembro mediante WindowProc, o durante la reflexión del mensaje.

virtual BOOL OnWndMsg(
    UINT message,
    WPARAM wParam,
    LPARAM lParam,
    LRESULT* pResult);

Parámetros

message
Especifica el mensaje que se va a enviar.

wParam
Proporciona información adicional dependiente del mensaje.

lParam
Proporciona información adicional dependiente del mensaje.

pResult
El valor devuelto de WindowProc. Depende del mensaje; puede ser NULL.

Valor devuelto

TRUE si se ha controlado el mensaje; en caso contrario, FALSE.

Comentarios

OnWndMsg determina el tipo de mensaje y llama a la función de marco adecuada (por ejemplo, OnCommand para WM_COMMAND), o bien busca el mensaje adecuado en el mapa de mensajes.

Para obtener más información sobre la reflexión de mensajes, consulte Control de mensajes reflejados.

CWnd::OnXButtonDblClk

El marco llama a esta función miembro cuando el usuario hace doble clic en XBUTTON1 o XBUTTON2 mientras el cursor está en el área cliente de una ventana.

afx_msg void OnXButtonDblClk(
    UINT nFlags,
    UINT nButton,
    CPoint point);

Parámetros

nFlags
[entrada] Una combinación bit a bit (OR) de marcas que indica qué teclas modificadoras están presionadas. Por ejemplo, la marca MK_CONTROL indica que se presiona la tecla CTRL.

nButton
[entrada] Un valor de XBUTTON1 si se hace doble clic en el primer botón X de Microsoft Intellimouse, o XBUTTON2 si se hace doble clic en el segundo botón X.

point
[entrada] Un objeto CPoint que especifica las coordenadas x y y del cursor en relación con la esquina superior izquierda del área cliente.

Comentarios

Este método recibe la notificación WM_XBUTTONDBLCLK, descrita en Windows SDK. Si el mouse no se captura, el mensaje se publica en la ventana debajo del cursor. De lo contrario, el mensaje se publica en la ventana que ha capturado el mouse.

El parámetro nFlags puede ser una combinación de las teclas modificadoras enumeradas en la tabla siguiente. Para obtener más información, consulte Acerca de la entrada del mouse.

Tecla modificadora Descripción
MK_CONTROL Se presiona la tecla CTRL.
MK_LBUTTON Se presiona el botón izquierdo del mouse.
MK_MBUTTON Se presiona el botón central del mouse.
MK_RBUTTON Se presiona el botón derecho del mouse.
MK_SHIFT Se presiona la tecla MAYÚS.
MK_XBUTTON1 Se presiona el botón del mouse XBUTTON1 de Microsoft IntelliMouse.
MK_XBUTTON2 Se presiona el botón del mouse XBUTTON2 de Microsoft IntelliMouse.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnXButtonDown

El marco llama a esta función miembro cuando el usuario presiona XBUTTON1 o XBUTTON2 mientras el cursor está en el área cliente de una ventana.

afx_msg void OnXButtonDown(
    UINT nFlags,
    UINT nButton,
    CPoint point);

Parámetros

nFlags
[entrada] Una combinación bit a bit (OR) de marcas que indica qué teclas modificadoras están presionadas. Por ejemplo, la marca MK_CONTROL indica que se presiona la tecla CTRL.

nButton
[entrada] Un valor de XBUTTON1 si se hace clic en el primer botón X de Microsoft Intellimouse, o XBUTTON2 si se hace clic en el segundo botón X.

point
[entrada] Un objeto CPoint que especifica las coordenadas x y y del cursor en relación con la esquina superior izquierda del área cliente.

Comentarios

Este método recibe la notificación WM_XBUTTONDOWN, descrita en Windows SDK. Si el mouse no se captura, el mensaje se publica en la ventana debajo del cursor. De lo contrario, el mensaje se publica en la ventana que ha capturado el mouse.

El parámetro nFlags puede ser una combinación de las teclas modificadoras enumeradas en la tabla siguiente. Para obtener más información, consulte Acerca de la entrada del mouse.

Tecla modificadora Descripción
MK_CONTROL Se presiona la tecla CTRL.
MK_LBUTTON Se presiona el botón izquierdo del mouse.
MK_MBUTTON Se presiona el botón central del mouse.
MK_RBUTTON Se presiona el botón derecho del mouse.
MK_SHIFT Se presiona la tecla MAYÚS.
MK_XBUTTON1 Se presiona el botón del mouse XBUTTON1 de Microsoft IntelliMouse.
MK_XBUTTON2 Se presiona el botón del mouse XBUTTON2 de Microsoft IntelliMouse.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OnXButtonUp

El marco llama a esta función miembro cuando el usuario libera XBUTTON1 o XBUTTON2 mientras el cursor está en el área cliente de una ventana.

afx_msg void OnXButtonUp(
    UINT nFlags,
    UINT nButton,
    CPoint point);

Parámetros

nFlags
[entrada] Una combinación bit a bit (OR) de marcas que indica qué teclas modificadoras están presionadas. Por ejemplo, la marca MK_CONTROL indica que se presiona la tecla CTRL.

nButton
[entrada] Un valor de XBUTTON1 si se hace doble clic en el primer botón X de Microsoft Intellimouse, o XBUTTON2 si se hace doble clic en el segundo botón X.

point
[entrada] Un objeto CPoint que especifica las coordenadas x y y del cursor en relación con la esquina superior izquierda del área cliente.

Comentarios

Este método recibe la notificación WM_XBUTTONUP, descrita en Windows SDK. Si el mouse no se captura, el mensaje se publica en la ventana debajo del cursor. De lo contrario, el mensaje se publica en la ventana que ha capturado el mouse.

El parámetro nFlags puede ser una combinación de las teclas modificadoras enumeradas en la tabla siguiente. Para obtener más información, consulte Acerca de la entrada del mouse.

Tecla modificadora Descripción
MK_CONTROL Se presiona la tecla CTRL.
MK_LBUTTON Se presiona el botón izquierdo del mouse.
MK_MBUTTON Se presiona el botón central del mouse.
MK_RBUTTON Se presiona el botón derecho del mouse.
MK_SHIFT Se presiona la tecla MAYÚS.
MK_XBUTTON1 Se presiona el botón del mouse XBUTTON1 de Microsoft IntelliMouse.
MK_XBUTTON2 Se presiona el botón del mouse XBUTTON2 de Microsoft IntelliMouse.

Nota:

El marco de trabajo llama a esta función miembro para que la aplicación pueda controlar un mensaje de Windows. Los parámetros que se pasaron a la función reflejan los parámetros recibidos por el marco de trabajo cuando se recibió el mensaje. Si llama a la implementación de la clase base de esta función, esa implementación usará los parámetros que se pasaron originalmente con el mensaje y no los parámetros que proporciona a la función.

CWnd::OpenClipboard

Abre el Portapapeles.

BOOL OpenClipboard();

Valor devuelto

Distinto de cero si el Portapapeles se abre a través de CWnd, o 0 si otra aplicación o ventana ha abierto el Portapapeles.

Comentarios

Otras aplicaciones no podrán modificar el Portapapeles hasta que se llame a la función de Windows CloseClipboard.

El objeto CWnd actual no se convertirá en el propietario del Portapapeles hasta que se llame a la función de Windows EmptyClipboard.

Ejemplo

//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

Use este operador para obtener el identificador del objeto CWnd.

operator HWND() const;

CWnd::operator !=

Compara dos objetos CWnd para determinar si no tienen el mismo m_hWnd.

BOOL operator!=(const CWnd& wnd) const;

Parámetros

wnd
Referencia a un objeto CWnd.

Valor devuelto

Distinto de cero si es igual; de lo contrario, 0.

CWnd::operator ==

Compara dos objetos CWnd para determinar si tienen el mismo m_hWnd.

BOOL operator==(const CWnd& wnd) const;

Parámetros

wnd
Referencia a un objeto CWnd.

Valor devuelto

Distinto de cero si es igual; de lo contrario, 0.

CWnd::PaintWindowlessControls

Dibuja controles sin ventanas en el contenedor del control.

BOOL PaintWindowlessControls(CDC* pDC);

Parámetros

pDC
El contexto del dispositivo en el que se van a dibujar los controles sin ventana.

Valor devuelto

Devuelve TRUE si hay un contenedor de controles y los controles sin ventana se dibujan correctamente; de lo contrario, FALSE.

CWnd::PostMessage

Pone un mensaje en la cola de mensajes de la ventana y vuelve sin esperar a que la ventana correspondiente procese el mensaje.

BOOL PostMessage(
    UINT message,
    WPARAM wParam = 0,
    LPARAM lParam = 0);

Parámetros

message
Especifica el mensaje que se va a publicar.

wParam
Especifica información adicional del mensaje. El contenido de este parámetro depende del mensaje que se está publicando.

lParam
Especifica información adicional del mensaje. El contenido de este parámetro depende del mensaje que se está publicando.

Valor devuelto

Distinto de cero si se publica el mensaje; de lo contrario, 0.

Comentarios

Los mensajes de una cola de mensajes se recuperan mediante llamadas a la función de Windows GetMessage o PeekMessage.

La función PostMessage de Windows se puede usar para acceder a otra aplicación.

Ejemplo

Vea el ejemplo de AfxGetMainWnd.

CWnd::PostNcDestroy

Lo llama la función miembro OnNcDestroy predeterminada después de que se haya destruido la ventana.

virtual void PostNcDestroy();

Comentarios

Las clases derivadas pueden usar esta función para la limpieza personalizada, como la eliminación del puntero this.

CWnd::PreCreateWindow

Lo llama el marco antes de crear la ventana de Windows asociada a este objeto CWnd.

virtual BOOL PreCreateWindow(CREATESTRUCT& cs);

Parámetros

cs
Un estructura CREATESTRUCT.

Valor devuelto

Distinto de cero si la creación de la ventana debe continuar; 0 para indicar un error de creación.

Comentarios

Advertencia

CWnd::PreCreateWindow asigna ahora el miembro de hMenu de cs al puntero this si el menú es NULL y el estilo contiene WS_CHILD. Para obtener una funcionalidad adecuada, asegúrese de que el control de diálogo tiene un Id. que no sea NULL.

Este cambio corrige un bloqueo en escenarios de interoperabilidad administrados o nativos. Una instrucción TRACE en alertas CWnd::Create al desarrollador del problema.

Nunca llame a esta función directamente.

La implementación predeterminada de esta función comprueba si hay un nombre de clase de ventana NULL y sustituye un valor predeterminado adecuado. Invalide esta función miembro para modificar la estructura CREATESTRUCT antes de que se cree la ventana.

Cada clase derivada de CWnd agrega su propia funcionalidad a su invalidación de PreCreateWindow. Por diseño, estas derivaciones de PreCreateWindow no están documentadas. Para determinar los estilos adecuados para cada clase y las interdependencias entre los estilos, puede examinar el código fuente de MFC para la clase base de la aplicación. Si decide invalidar PreCreateWindow,, puede determinar si los estilos usados en la clase base de la aplicación proporcionan la funcionalidad que necesita mediante la información recopilada del código fuente de MFC.

Para obtener más información sobre cómo cambiar los estilos de ventana, consulte Cambiar los estilos de una ventana creada por MFC.

Ejemplo

// 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

El marco llama a esta función miembro para permitir que se produzcan otras asignaciones como subclase necesarias antes de que se asigne la ventana como subclase.

virtual void PreSubclassWindow();

Comentarios

La invalidación de esta función miembro permite la asignación dinámica de los controles como subclase. Se trata de una invalidación avanzada.

CWnd::PreTranslateMessage

Utilizado por la clase CWinApp para traducir los mensajes de ventana antes de que se distribuyan a las funciones de Windows TranslateMessage y DispatchMessage.

virtual BOOL PreTranslateMessage(MSG* pMsg);

Parámetros

pMsg
Apunta a una estructura MSG,que contiene el mensaje que se va a procesar.

Valor devuelto

Distinto de cero si el mensaje se ha traducido y no se debe distribuir; 0 si el mensaje no se ha traducido y se debe distribuir.

CWnd::Print

Llame a esta función miembro para dibujar la ventana actual en el contexto de dispositivo especificado, que suele ser en un contexto de dispositivo de impresora.

void Print(
    CDC* pDC,
    DWORD dwFlags) const;

Parámetros

pDC
Puntero a un contexto de dispositivo.

dwFlags
Especifica las opciones de dibujo. Este parámetro puede ser una o varias de estas marcas:

  • PRF_CHECKVISIBLE Dibujar la ventana solo si está visible.

  • PRF_CHILDREN Dibujar todas las ventanas secundarias visibles.

  • PRF_CLIENT Dibujar el área cliente de la ventana.

  • PRF_ERASEBKGND Borrar el fondo antes de dibujar la ventana.

  • PRF_NONCLIENT Dibujar el área no cliente de la ventana.

  • PRF_OWNED Dibuja todas las ventanas de propiedad.

Comentarios

La función CWnd::DefWindowProc procesa este mensaje en función de la opción de dibujo que se especifica:

  • Si se especifica PRF_CHECKVISIBLE y la ventana no está visible, no hace nada.

  • Si se especifica PRF_NONCLIENT, dibuja el área no cliente en el contexto de dispositivo especificado.

  • Si se especifica PRF_ERASEBKGND, envía un mensaje WM_ERASEBKGND a la ventana.

  • Si se especifica PRF_CLIENT, envía un mensaje WM_PRINTCLIENT a la ventana.

  • Si se establece PRF_CHILDREN, envía un mensaje WM_PRINT a cada ventana secundaria visible.

  • Si se establece PRF_OWNED, envía un mensaje WM_PRINT a cada ventana de propiedad que está visible.

CWnd::PrintClient

Llame a esta función miembro para dibujar cualquier ventana en el contexto de dispositivo especificado (normalmente un contexto de dispositivo de impresora).

void PrintClient(
    CDC* pDC,
    DWORD dwFlags) const;

Parámetros

pDC
Puntero a un contexto de dispositivo.

dwFlags
Especifica las opciones de dibujo. Este parámetro puede ser una o varias de estas marcas:

  • PRF_CHECKVISIBLE Dibujar la ventana solo si está visible.

  • PRF_CHILDREN Dibujar todas las ventanas secundarias visibles.

  • PRF_CLIENT Dibujar el área cliente de la ventana.

  • PRF_ERASEBKGND Borrar el fondo antes de dibujar la ventana.

  • PRF_NONCLIENT Dibujar el área no cliente de la ventana.

  • PRF_OWNED Dibuja todas las ventanas de propiedad.

CWnd::PrintWindow

Copia una ventana visual en el contexto de dispositivo especificado (normalmente, un DC de impresora).

BOOL PrintWindow(
    CDC* pDC,
    UINT nFlags) const;

Parámetros

pDC
Un puntero al contexto del dispositivo en el que se va a imprimir.

nFlags
Especifica las opciones de dibujo. Para obtener una lista de los valores posibles, vea PrintWindow.

Valor devuelto

Es distinto de cero si la función se realiza correctamente; de lo contrario, 0.

Comentarios

Esta función miembro emula la funcionalidad de la función PrintWindow, tal y como se describe en Windows SDK.

CWnd::RedrawWindow

Actualiza el rectángulo o la región especificados en el área cliente de la ventana dada.

BOOL RedrawWindow(
    LPCRECT lpRectUpdate = NULL,
    CRgn* prgnUpdate = NULL,
    UINT flags = RDW_INVALIDATE | RDW_UPDATENOW | RDW_ERASE);

Parámetros

lpRectUpdate
Apunta a una estructura RECT que contiene las coordenadas del rectángulo de actualización. Este parámetro se ignora si prgnUpdate contiene un identificador de región válido.

prgnUpdate
Identifica la región de actualización. Si tanto prgnUpdate como lpRectUpdate son NULL, se agrega toda el área cliente a la región de actualización.

flags
Las marcas siguientes se usan para invalidar la ventana:

  • RDW_ERASE Hace que la ventana reciba un mensaje WM_ERASEBKGND cuando se vuelve a pintar la ventana. La marca RDW_INVALIDATE también se debe especificar; de lo contrario, RDW_ERASE no tiene ningún efecto.

  • RDW_FRAME Hace que cualquier parte del área no cliente de la ventana que se interseca con la región de actualización reciba un mensaje WM_NCPAINT. La marca RDW_INVALIDATE también se debe especificar; de lo contrario, RDW_FRAME no tiene ningún efecto.

  • RDW_INTERNALPAINT Hace que se publique un mensaje WM_PAINT en la ventana independientemente de que la ventana contenga una región no válida.

  • RDW_INVALIDATE Invalida lpRectUpdate o prgnUpdate (sólo uno puede no ser NULL). Si ambos son NULL, se invalida toda la ventana.

Las marcas siguientes se usan para validar la ventana:

  • RDW_NOERASE Suprime todos los mensajes WM_ERASEBKGND pendientes.

  • RDW_NOFRAME Suprime todos los mensajes WM_NCPAINT pendientes. Esta marca debe usarse con RDW_VALIDATE y normalmente se usa con RDW_NOCHILDREN. Esta opción debe usarse con cuidado, ya que podría impedir que algunas partes de una ventana se pinten correctamente.

  • RDW_NOINTERNALPAINT Suprime los mensajes WM_PAINT internos que están pendientes. Esta marca no afecta a los mensajes WM_PAINT resultantes de áreas no válidas.

  • RDW_VALIDATE Valida lpRectUpdate o prgnUpdate (sólo uno puede no ser NULL). Si ambos son NULL, se valida toda la ventana. Esta marca no afecta a los mensajes internos WM_PAINT.

Las siguientes marcas controlan cuándo se vuelve a pintar. La función RedrawWindow no realiza la pintura a menos que se especifique uno de estos bits.

  • RDW_ERASENOW Hace que las ventanas afectadas (especificadas por las marcas RDW_ALLCHILDREN y RDW_NOCHILDREN) reciban los mensajes WM_NCPAINT y WM_ERASEBKGND, si fuera necesario, antes de que la función vuelva. Los mensajes WM_PAINT se aplazan.

  • RDW_UPDATENOW Hace que las ventanas afectadas (especificadas por las marcas RDW_ALLCHILDREN y RDW_NOCHILDREN) reciban los mensajes WM_NCPAINT, WM_ERASEBKGND y WM_PAINT, si fuera necesario, antes de que la función vuelva.

De forma predeterminada, las ventanas afectadas por la función RedrawWindow dependen de que la ventana especificada tenga el estilo WS_CLIPCHILDREN o no. Las ventanas secundarias de las ventanas WS_CLIPCHILDREN no se ven afectadas. Sin embargo, las ventanas que no son ventanas WS_CLIPCHILDREN se validan o invalidan de forma recursiva hasta que se encuentra una ventana WS_CLIPCHILDREN. Las marcas siguientes controlan qué ventanas se ven afectadas por la función RedrawWindow:

  • RDW_ALLCHILDREN Incluye ventanas secundarias, si las hubiera, en la operación de volver a pintar.

  • RDW_NOCHILDREN Excluye las ventanas secundarias, si las hubiera, de la operación de volver a pintar.

Valor devuelto

Distinto de cero si la ventana se ha vuelto a dibujar correctamente; de lo contrario, 0.

Comentarios

Cuando la función miembro RedrawWindow se usa para invalidar parte de la ventana de escritorio, esa ventana no recibe un mensaje WM_PAINT. Para volver a pintar el escritorio, una aplicación debe usar CWnd::ValidateRgn, CWnd::InvalidateRgn, CWnd::UpdateWindow o RedrawWindow.

CWnd::ReflectChildNotify

El marco llama a esta función de mensaje desde OnChildNotify.

BOOL ReflectChildNotify(
    UINT message,
    WPARAM wParam,
    LPARAM lParam,
    LRESULT* pResult);

Parámetros

message
Especifica el mensaje que se va a reflejar.

wParam
Proporciona información adicional dependiente del mensaje.

lParam
Proporciona información adicional dependiente del mensaje.

pResult
El resultado generado por la ventana secundaria que va a devolver la ventana primaria. Puede ser NULL.

Valor devuelto

TRUE si se ha reflejado el mensaje; en caso contrario, FALSE.

Comentarios

Es una función del asistente que refleja message a su origen.

Los mensajes reflejados se envían directamente a CWnd::OnWndMsg o CCmdTarget::OnCmdMsg.

Para obtener más información sobre la reflexión de mensajes, consulte Control de mensajes reflejados.

CWnd::ReflectLastMsg

El marco llama a esta función miembro para reflejar el último mensaje en la ventana secundaria.

static BOOL PASCAL ReflectLastMsg(
    HWND hWndChild,
    LRESULT* pResult = NULL);

Parámetros

hWndChild
Un identificador de una ventana secundaria.

pResult
El resultado generado por la ventana secundaria que va a devolver la ventana primaria. Puede ser NULL.

Valor devuelto

Distinto de cero si se ha controlado el mensaje; de lo contrario, 0.

Comentarios

Esta función miembro llama a SendChildNotifyLastMsg si la ventana identificada por hWndChild es un control OLE o una ventana en el mapa permanente.

Para obtener más información sobre la reflexión de mensajes, consulte Control de mensajes reflejados.

CWnd::ReleaseDC

Libera un contexto de dispositivo para que lo usen otras aplicaciones.

int ReleaseDC(CDC* pDC);

Parámetros

pDC
Identifica el contexto de dispositivo que se va a liberar.

Valor devuelto

Si es correcta, su valor es distinto de cero. En caso contrario, es cero.

Comentarios

El efecto de la función miembro ReleaseDC depende del tipo de contexto del dispositivo.

La aplicación debe llamar a la función miembro ReleaseDC para cada llamada a la función miembro GetWindowDC y para cada llamada a la función miembro GetDC.

CWnd::RepositionBars

Se llama para cambiar la posición y el tamaño de las barras de control en el área cliente de una ventana.

void RepositionBars(UINT nIDFirst,
    UINT nIDLast,
    UINT nIDLeftOver,
    UINT nFlag = reposDefault,
    LPRECT lpRectParam = NULL,
    LPCRECT lpRectClient = NULL,
    BOOL bStretch = TRUE) ;

Parámetros

nIDFirst
El Id. de la primera barra de control dentro de un intervalo de barras de control cuya posición y tamaño se van a cambiar.

nIDLast
El Id. de la última barra de control dentro de un intervalo de barras de control cuya posición y tamaño se van a cambiar.

nIDLeftOver
Especifica el Id. del panel que rellena el resto del área cliente.

nFlag
Puede tener uno de los siguientes valores:

  • CWnd::reposDefault Realiza el diseño de las barras de control. lpRectParam no se usa y puede ser NULL.

  • CWnd::reposQuery No se realiza el diseño de las barras de control; en su lugar, lpRectParam se inicializa con el tamaño del área cliente, como si el diseño se hubiera realizado realmente.

  • CWnd::reposExtra Agrega los valores de lpRectParam al área cliente de nIDLast y también realiza el diseño.

lpRectParam
Apunta a una estructura RECT cuyo uso depende del valor de nFlag.

lpRectClient
Apunta a una estructura RECT que contiene el área cliente disponible. Si es NULL, se usará el área cliente de la ventana.

bStretch
Indica si la barra debe ajustarse al tamaño del marco o no.

Comentarios

Los parámetros nIDFirst y nIDLast definen un intervalo de Id. de barras de control cuya posición en el área cliente se va a cambiar. El parámetro nIDLeftOver especifica el Id. de la ventana secundaria (normalmente, la vista) que se cambia de posición y de tamaño para rellenar el resto del área cliente que no han rellenado las barras de control.

CWnd::RunModalLoop

Llame a esta función miembro para recuperar, traducir o distribuir mensajes hasta que ContinueModal devuelva FALSE.

int RunModalLoop(DWORD dwFlags = 0);

Parámetros

dwFlags
Especifica el mensaje de Windows que se va a enviar. Puede ser uno de los siguientes valores:

  • MLF_NOIDLEMSG No envía mensajes WM_ENTERIDLE al elemento primario.

  • MLF_NOKICKIDLE No envía mensajes WM_KICKIDLE a la ventana.

  • MLF_SHOWONIDLE Muestra la ventana cuando la cola de mensajes se vuelve inactiva.

Valor devuelto

Especifica el valor del parámetro nResult pasado a la función miembro EndModalLoop, que se usa a continuación para finalizar el bucle modal.

Comentarios

De forma predeterminada, ContinueModal devuelve FALSE después de que se llame a EndModalLoop. Devuelve el valor proporcionado como nResult a EndModalLoop.

CWnd::ScreenToClient

Convierte las coordenadas de pantalla de un punto o rectángulo determinado en pantalla en las coordenadas de pantalla.

void ScreenToClient(LPPOINT lpPoint) const;  void ScreenToClient(LPRECT lpRect) const;

Parámetros

lpPoint
Apunta a un objeto CPoint o estructura POINT que contiene las coordenadas de pantalla que se van a convertir.

lpRect
Apunta a un objeto CRect o estructura RECT que contiene las coordenadas de pantalla que se van a convertir.

Comentarios

La función miembro ScreenToClient reemplaza las coordenadas de pantalla especificadas en lpPoint o lpRect por coordenadas de cliente. Las nuevas coordenadas son relativas a la esquina superior izquierda del área cliente CWnd.

Ejemplo

Vea el ejemplo de CListCtrl::GetItemRect.

CWnd::ScrollWindow

Desplaza el contenido del área cliente del objeto CWnd actual.

void ScrollWindow(
    int xAmount,
    int yAmount,
    LPCRECT lpRect = NULL,
    LPCRECT lpClipRect = NULL);

Parámetros

xAmount
Especifica la cantidad, en unidades de dispositivo, de desplazamiento horizontal. Este parámetro debe tener un valor negativo para desplazarse a la izquierda.

yAmount
Especifica la cantidad, en unidades de dispositivo, de desplazamiento vertical. Este parámetro debe tener un valor negativo para desplazarse hacia arriba.

lpRect
Apunta a un objeto CRect o estructura RECT que especifica la parte del área cliente que se va a desplazar. Si lpRect es NULL, se desplaza toda el área cliente. El cursor de inserción se cambia de posición si el rectángulo del cursor se interseca con el rectángulo de desplazamiento.

lpClipRect
Apunta a un objeto CRect o estructura RECT que especifica el rectángulo de recorte que se va a desplazar. Solo se desplazan los bits dentro de este rectángulo. Los bits fuera de este rectángulo no se ven afectados aunque estén en el rectángulo lpRect. Si lpClipRect es NULL, no se realiza ningún recorte en el rectángulo de desplazamiento.

Comentarios

Si el cursor de inserción está en el CWnd que se desplaza, ScrollWindow oculta automáticamente el cursor de inserción para evitar que se borre y, a continuación, una vez finalizado el desplazamiento, restaura el cursor de inserción. La posición del cursor de inserción se ajusta en consecuencia.

El área descubierta por la función miembro ScrollWindow no se vuelve a pintar, pero se combina en la región de actualización del objeto CWnd actual. Eventualmente, la aplicación recibirá un mensaje WM_PAINT que le notificará que es necesario volver a pintar la región. Para volver a dibujar el área descubierta al mismo tiempo que se realiza el desplazamiento, llame a la función miembro UpdateWindow inmediatamente después de llamar a ScrollWindow.

Si lpRect es NULL, las posiciones de las ventanas secundarias de la ventana se desplazan en una cantidad especificada por xAmount y yAmount, y las áreas no válidas (sin pintar) de CWnd también se desplazan. ScrollWindow es más rápido cuando lpRect es NULL.

Si lpRect no es NULL, las posiciones de las ventanas secundarias no cambian y las áreas no válidas de CWnd no se desplazan. Para evitar problemas de actualización cuando lpRect no es NULL, llame a la función miembro UpdateWindow para volver a pintar CWnd antes de llamar a ScrollWindow.

CWnd::ScrollWindowEx

Desplaza el contenido del área cliente de una ventana.

int ScrollWindowEx(
    int dx,
    int dy,
    LPCRECT lpRectScroll,
    LPCRECT lpRectClip,
    CRgn* prgnUpdate,
    LPRECT lpRectUpdate,
    UINT flags);

Parámetros

dx
Especifica la cantidad, en unidades de dispositivo, de desplazamiento horizontal. Este parámetro debe tener un valor negativo para desplazarse a la izquierda.

dy
Especifica la cantidad, en unidades de dispositivo, de desplazamiento vertical. Este parámetro debe tener un valor negativo para desplazarse hacia arriba.

lpRectScroll
Apunta a una estructura RECT que especifica la parte del área cliente que se va a desplazar. Si este parámetro es NULL, se desplaza toda el área cliente.

lpRectClip
Apunta a una estructura RECT que especifica el rectángulo de recorte que se va a desplazar. Esta estructura tiene prioridad sobre el rectángulo al que apunta lpRectScroll. Solo se desplazan los bits dentro de este rectángulo. Los bits fuera de este rectángulo no se ven afectados aunque estén en el rectángulo lpRectScroll. Si este parámetro es NULL, no se realiza ningún recorte en el rectángulo de desplazamiento.

prgnUpdate
Identifica la región que se modifica para contener la región invalidada mediante el desplazamiento. Este parámetro puede ser NULL.

lpRectUpdate
Apunta a una estructura RECT que recibirá los límites del rectángulo invalidado por el desplazamiento. Este parámetro puede ser NULL.

flags
Puede tener uno de los siguientes valores:

  • SW_ERASE Cuando se especifica con SW_INVALIDATE, borra la región recién invalidada mediante el envío de un mensaje WM_ERASEBKGND a la ventana.

  • SW_INVALIDATE Invalida la región que identifica prgnUpdate después del desplazamiento.

  • SW_SCROLLCHILDREN Desplaza todas las ventanas secundarias que se intersecan con el rectángulo al que apunta lpRectScroll en el número de píxeles especificados en dx y dy. Windows envía un mensaje WM_MOVE a todas las ventanas secundarias que se intersecan con lpRectScroll, incluso si no se mueven. El cursor de inserción se cambia de posición cuando se desplaza una ventana secundaria y el rectángulo del cursor se interseca con el rectángulo de desplazamiento.

Valor devuelto

El valor devuelto es SIMPLEREGION (región invalidada rectangular), COMPLEXREGION (región invalidada no rectangular; rectángulos superpuestos) o NULLREGION (región no invalidada), si la función se ejecuta correctamente; de lo contrario, el valor devuelto es ERROR.

Comentarios

Esta función es similar a la función ScrollWindow, con algunas características adicionales.

Si SW_INVALIDATE y SW_ERASE no se especifican, la función miembro ScrollWindowEx no invalida el área no invalida el área de la que se aleja el desplazamiento. Si se establece alguna de estas marcas, ScrollWindowEx invalida esta área. El área no se actualiza hasta que la aplicación llama a la función miembro UpdateWindow, llama a la función miembro RedrawWindow (especificando RDW_UPDATENOW o RDW_ERASENOW) o recupera el mensaje WM_PAINT de la cola de aplicaciones.

Si la ventana tiene el estilo WS_CLIPCHILDREN, las áreas devueltas especificadas por prgnUpdate y lpRectUpdate representan el área total de la ventana desplazada que se debe actualizar, incluidas las áreas de ventanas secundarias que necesitan actualizarse.

Si se especifica la marca SW_SCROLLCHILDREN, Windows no actualizará correctamente la pantalla si se desplaza parte de una ventana secundaria. La parte de la ventana secundaria desplazada que se encuentra fuera del rectángulo de origen no se borrará y no se volverá a dibujar correctamente en su nuevo destino. Use la función de Windows DeferWindowPos para mover ventanas secundarias que no se encuentran completamente dentro del rectángulo lpRectScroll. El cursor se cambia de posición si la marca SW_SCROLLCHILDREN está establecida y el rectángulo del cursor de inserción se interseca con el rectángulo de desplazamiento.

Se supone que todas las coordenadas de entrada y salida (para lpRectScroll, lpRectClip, lpRectUpdate y prgnUpdate) están en coordenadas de cliente, independientemente de que la ventana tenga el estilo de clase CS_OWNDC o CS_CLASSDC. Use las funciones de Windows LPtoDP y DPtoLP para convertir a y desde coordenadas lógicas, si fuera necesario.

CWnd::SendChildNotifyLastMsg

El marco llama a esta función miembro para proporcionar un mensaje de notificación a una ventana secundaria, desde la ventana primaria, para que la ventana secundaria pueda controlar una tarea.

BOOL SendChildNotifyLastMsg(LRESULT* pResult = NULL);

Parámetros

pResult
El resultado generado por la ventana secundaria que va a devolver la ventana primaria.

Valor devuelto

Distinto de cero si la ventana secundaria ha controlado el mensaje enviado a su elemento primario; de lo contrario, 0.

Comentarios

SendChildNotifyLastMsg envía el mensaje actual al origen si es un mensaje que se refleja.

Para obtener más información sobre la reflexión de mensajes, consulte Control de mensajes reflejados.

CWnd::SendDlgItemMessage

Envía un mensaje a un control.

LRESULT SendDlgItemMessage(
    int nID,
    UINT message,
    WPARAM wParam = 0,
    LPARAM lParam = 0);

Parámetros

nID
Especifica el identificador del control de diálogo que recibirá el mensaje.

message
Especifica el mensaje que se va a enviar.

wParam
Proporciona información adicional dependiente del mensaje.

lParam
Proporciona información adicional dependiente del mensaje.

Valor devuelto

Especifica el valor devuelto por el procedimiento de ventana del control, o 0 si no se encuentra el control.

Comentarios

La función miembro SendDlgItemMessage no devuelve un valor hasta que se haya procesado el mensaje.

Usar SendDlgItemMessage es idéntico a obtener un CWnd* al control especificado y llamar a la función miembro SendMessage.

Ejemplo

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

Envía el mensaje especificado a esta ventana.

LRESULT SendMessage(
    UINT message,
    WPARAM wParam = 0,
    LPARAM lParam = 0);

Parámetros

message
Especifica el mensaje que se va a enviar.

wParam
Proporciona información adicional dependiente del mensaje.

lParam
Proporciona información adicional dependiente del mensaje.

Valor devuelto

El resultado del procesamiento del mensaje, cuyo valor depende del mensaje enviado.

Comentarios

La función miembro SendMessage llama directamente al procedimiento de ventana y no vuelve hasta que ese procedimiento de ventana ha procesado el mensaje. Esto contrasta con la función miembro PostMessage, que coloca el mensaje en la cola de mensajes de la ventana y vuelve inmediatamente.

Ejemplo

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

Llame a esta función miembro para enviar el mensaje de Windows especificado a todas las ventanas descendientes.

void SendMessageToDescendants(
    UINT message,
    WPARAM wParam = 0,
    LPARAM lParam = 0,
    BOOL bDeep = TRUE,
    BOOL bOnlyPerm = FALSE);

Parámetros

message
Especifica el mensaje que se va a enviar.

wParam
Proporciona información adicional dependiente del mensaje.

lParam
Proporciona información adicional dependiente del mensaje.

bDeep
Especifica el nivel en el que se va a buscar. Si es TRUE, busca de forma recursiva todos los elementos secundarios; si es FALSE, busca solo elementos secundarios inmediatos.

bOnlyPerm
Especifica si las ventanas temporales recibirán el mensaje. Si es TRUE, las ventanas temporales pueden recibir el mensaje; si es FALSE, solo las ventanas permanentes reciben el mensaje. Para obtener más información sobre las ventanas temporales, consulte Nota técnica 3.

Comentarios

Si bDeep es FALSE, el mensaje se envía sólo a los elementos secundarios inmediatos de la ventana; de lo contrario, el mensaje se envía a todas las ventanas descendientes.

Si bDeep y bOnlyPerm son TRUE, la búsqueda continúa por debajo de las ventanas temporales. En este caso, solo las ventanas permanentes que se han encontrado durante la búsqueda reciben el mensaje. Si bDeep es FALSE, el mensaje sólo se envía a los elementos secundarios inmediatos de la ventana.

Ejemplo

// 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

Envía el mensaje especificado a la ventana.

BOOL SendNotifyMessage(
    UINT message,
    WPARAM wParam,
    LPARAM lParam);

Parámetros

message
Especifica el mensaje que se va a enviar.

wParam
Proporciona información adicional dependiente del mensaje.

lParam
Proporciona información adicional dependiente del mensaje.

Valor devuelto

Es distinto de cero si la función se realiza correctamente; de lo contrario, es 0.

Comentarios

Si el subproceso que realiza la llamada ha creado la ventana, SendNotifyMessage llama al procedimiento de ventana para la ventana y no vuelve hasta que el procedimiento de ventana haya procesado el mensaje. Si un subproceso diferente ha creado la ventana, SendNotifyMessage pasa el mensaje al procedimiento de ventana y vuelve inmediatamente; no espera a que el procedimiento de ventana termine de procesar el mensaje.

CWnd::SetActiveWindow

Hace de CWnd la ventana activa.

CWnd* SetActiveWindow();

Valor devuelto

La ventana que estaba activa anteriormente.

El puntero devuelto puede ser temporal y no se debe almacenar para su uso posterior.

Comentarios

La función miembro SetActiveWindow debe usarse con cuidado, ya que permite que una aplicación tome el control de la ventana activa y el foco de entrada de manera arbitraria. Normalmente, Windows se encarga de todas la activaciones.

CWnd::SetCapture

Hace que todas las entradas posteriores del mouse se envíen al objeto CWnd actual, independientemente de la posición del cursor.

CWnd* SetCapture();

Valor devuelto

Un puntero al objeto de ventana que ha recibido previamente toda la entrada del mouse. Es NULL si no hay tal ventana. El puntero devuelto puede ser temporal y no se debe almacenar para su uso posterior.

Comentarios

Cuando CWnd ya no requiere toda la entrada del mouse, la aplicación debe llamar a la función ReleaseCapture para que otras ventanas puedan recibir la entrada del mouse.

Mientras se captura la entrada del mouse, no se envían mensajes WM_NCHITTEST ni WM_SETCURSOR a la ventana activa.

CWnd::SetCaretPos

Establece la posición del cursor de inserción.

static void PASCAL SetCaretPos(POINT point);

Parámetros

point
Especifica las nuevas coordenadas x e y (en coordenadas de cliente) del cursor de inserción.

Comentarios

La función miembro SetCaretPos mueve el cursor de inserción sólo si es propiedad de una ventana de la tarea actual. SetCaretPos mueve el cursor de inserción tanto si el cursor de inserción está oculto como si no lo está.

El cursor de inserción es un recurso compartido. Una ventana no debe mover el cursor de inserción si no es propietaria del cursor de inserción.

Ejemplo

// 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

Agrega esta ventana a la cadena de ventanas a las que se notifica (mediante el mensaje WM_DRAWCLIPBOARD) cada vez que se cambia el contenido del Portapapeles.

HWND SetClipboardViewer();

Valor devuelto

Un identificador para la siguiente ventana de la cadena del visor del Portapapeles si se ejecuta correctamente. Las aplicaciones deben guardar este identificador (se puede almacenar como una variable miembro) y usarlo al responder a los mensajes de la cadena del visor del Portapapeles.

Comentarios

Una ventana que forma parte de la cadena del visor del Portapapeles debe responder a los mensajes WM_DRAWCLIPBOARD, WM_CHANGECBCHAIN y WM_DESTROY y pasar el mensaje a la siguiente ventana de la cadena.

Esta función miembro envía un mensaje WM_DRAWCLIPBOARD a la ventana. Puesto que el identificador de la siguiente ventana de la cadena del visor del Portapapeles aún no se ha devuelto, la aplicación no debe pasar el mensaje WM_DRAWCLIPBOARD que recibe durante la llamada a SetClipboardViewer.

Para quitarse de la cadena del visor del Portapapeles, una aplicación debe llamar a la función miembro ChangeClipboardChain.

CWnd::SetDlgCtrlID

Establece el Id. de ventana o el Id. de control de la ventana en un nuevo valor.

int SetDlgCtrlID(int nID);

Parámetros

nID
El nuevo valor que se va a establecer para el identificador del control.

Valor devuelto

El identificador anterior de la ventana, si se ejecuta correctamente; de lo contrario, 0.

Comentarios

La ventana puede ser cualquier ventana secundaria, no solo un control de un cuadro de diálogo. La ventana no puede ser una ventana de nivel superior.

CWnd::SetDlgItemInt

Establece el texto de un control dado en un cuadro de diálogo en la representación de cadena de un valor entero especificado.

void SetDlgItemInt(
    int nID,
    UINT nValue,
    BOOL bSigned = TRUE);

Parámetros

nID
Especifica el Id. entero del control que se va a cambiar.

nValue
Especifica el valor entero utilizado para generar el texto del elemento.

bSigned
Especifica si el valor entero tiene signo o no. Si este parámetro es TRUE, nValue tiene signo. Si este parámetro es TRUE y nValue es menor que 0, se coloca un signo menos antes del primer dígito de la cadena. Si este parámetro es FALSE, nValue no tiene signo.

Comentarios

SetDlgItemInt envía un mensaje WM_SETTEXT al control especificado.

Ejemplo

Vea el ejemplo de CWnd::SetDlgItemText.

CWnd::SetDlgItemText

Establece el título o el texto de un control propiedad de una ventana o un cuadro de diálogo.

void SetDlgItemText(
    int nID,
    LPCTSTR lpszString);

Parámetros

nID
Identifica el control cuyo texto se va a establecer.

lpszString
Apunta a un objeto CString o cadena terminada en NULL que contiene el texto que se va a copiar en el control.

Comentarios

SetDlgItemText envía un mensaje WM_SETTEXT al control especificado.

Ejemplo

// 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

Pone en primer plano el subproceso que creó la ventana y activa la ventana.

BOOL SetForegroundWindow();

Valor devuelto

Es distinto de cero si la función se realiza correctamente; de lo contrario, es 0.

Comentarios

La entrada del teclado se dirige a la ventana y se cambian varias indicaciones visuales para el usuario. La ventana en primer plano es la ventana con la que el usuario está trabajando actualmente. La ventana en primer plano solo se aplica a las ventanas de nivel superior (ventanas de marco o cuadros de diálogo).

Ejemplo

Vea el ejemplo de CWnd::FindWindow.

CWnd::SetFocus

Reclama el foco de entrada.

CWnd* SetFocus();

Valor devuelto

Un puntero al objeto de ventana que tenía el foco de entrada anteriormente. Es NULL si no hay tal ventana. El puntero devuelto puede ser temporal y no se debe almacenar para su uso posterior.

Comentarios

El foco de entrada dirige todas las entradas de teclado posteriores a esta ventana. Cualquier ventana que tuviera previamente el foco de entrada lo pierde.

La función miembro SetFocus envía un mensaje WM_KILLFOCUS a la ventana que pierde el foco de entrada y un mensaje WM_SETFOCUS a la ventana que recibe el foco de entrada. También activa o bien la ventana, o bien su elemento primario.

Si la ventana actual está activa, pero no tiene el foco (es decir, ninguna ventana tiene el foco), cualquier tecla presionada generará los mensajes WM_SYSCHAR, WM_SYSKEYDOWN o WM_SYSKEYUP.

CWnd::SetFont

Envía el mensaje WM_SETFONT a la ventana para usar la fuente especificada.

void SetFont(
    CFont* pFont,
    BOOL bRedraw = TRUE);

Parámetros

pFont
Un puntero a un objeto CFont.

bRedraw
TRUE para que la ventana se vuelva a dibujar inmediatamente después de procesar el mensaje WM_SETFONT; de lo contrario, FALSE.

Comentarios

Este método no tiene ningún efecto a menos que la ventana procese el mensaje WM_SETFONT. Muchas clases de MFC que derivan de CWnd procesan este mensaje porque están asociadas a una clase de ventana predefinida que incluye un controlador de mensajes para el mensaje WM_SETFONT. Para usar este método, las clases derivadas de CWnd deben definir un controlador de método para el mensaje WM_SETFONT.

CWnd::SetIcon

Llame a esta función miembro para establecer el identificador en un icono específico, tal como lo identifica hIcon.

HICON SetIcon(
    HICON hIcon,
    BOOL bBigIcon);

Parámetros

hIcon
Un identificador de un icono anterior.

bBigIcon
Especifica un icono de 32 píxeles por 32 píxeles si es TRUE; especifica un icono de 16 píxeles por 16 píxeles si es FALSE.

Valor devuelto

Identificador de un icono.

Comentarios

Cuando se registra la clase de ventana, selecciona un icono.

Ejemplo

Vea el ejemplo de CWnd::GetSystemMenu.

CWnd::SetLayeredWindowAttributes

Establece la clave de color de transparencia y opacidad de una ventana superpuesta.

BOOL SetLayeredWindowAttributes(
    COLORREF crKey,
    BYTE bAlpha,
    DWORD dwFlags);

Parámetros

crKey
Un puntero a un valor COLORREF que especifica la clave de color de transparencia que se va a usar al componer la ventana superpuesta. Todos los píxeles pintados por la ventana de este color serán transparentes. Para generar un COLORREF, use la macro RGB.

bAlpha
El valor alfa utilizado para describir la opacidad de la ventana superpuesta. Para obtener más información, consulte el miembro SourceConstantAlpha de la estructura BLENDFUNCTION. Cuando bAlpha es 0, la ventana es completamente transparente. Cuando bAlpha es 255, la ventana es opaca.

dwFlags
Especifica una acción que se va a realizar. Este parámetro puede ser uno o más de los siguientes valores. Para obtener una lista de los valores posibles, vea SetLayeredWindowAttributes.

Valor devuelto

Es distinto de cero si la función se realiza correctamente; de lo contrario, 0.

Comentarios

Esta función miembro emula la funcionalidad de la función SetLayeredWindowAttributes, tal y como se describe en Windows SDK.

CWnd::SetMenu

Establece el menú actual en el menú especificado.

BOOL SetMenu(CMenu* pMenu);

Parámetros

pMenu
Identifica el nuevo menú. Si este parámetro es NULL, se quita el menú actual.

Valor devuelto

Distinto de cero si se cambia el menú; de lo contrario, 0.

Comentarios

Hace que la ventana se vuelva a dibujar para reflejar el cambio de menú.

SetMenu no destruirá un menú anterior. Una aplicación debe llamar a la función miembro CMenu::DestroyMenu para realizar esta tarea.

Ejemplo

Vea el ejemplo de CMenu::LoadMenu.

CWnd::SetOwner

Establece el propietario de la ventana actual en el objeto de ventana especificado.

void SetOwner(CWnd* pOwnerWnd);

Parámetros

pOwnerWnd
Identifica el nuevo propietario del objeto de ventana. Si este parámetro es NULL, el objeto de ventana no tiene propietario.

Comentarios

Este propietario puede recibir mensajes de comando del objeto de ventana actual. De forma predeterminada, el elemento primario de la ventana actual es su propietario.

A menudo resulta útil establecer conexiones entre objetos de ventana que no están relacionados mediante la jerarquía de ventanas. Por ejemplo, CToolBar envía notificaciones a su propietario en lugar de a su elemento primario. Esto permite que la barra de herramientas se convierta en el elemento secundario de una ventana (como una ventana de aplicación de contenedor OLE) al mismo tiempo que envía notificaciones a otra ventana (como la ventana de marco en contexto). Además, cuando se desactiva o activa una ventana del servidor durante la edición en contexto, cualquier otra ventana propiedad de la ventana de marco se oculta o se muestra. Esta propiedad se establece explícitamente con una llamada a SetOwner.

El concepto de propiedad de esta función es diferente del concepto de propiedad de GetWindow.

CWnd::SetParent

Cambia la ventana primaria de una ventana secundaria.

CWnd* SetParent(CWnd* pWndNewParent);

Parámetros

pWndNewParent
Identifica la nueva ventana primaria.

Valor devuelto

Un puntero al objeto de ventana primaria anterior si se ejecuta correctamente. El puntero devuelto puede ser temporal y no se debe almacenar para su uso posterior.

Comentarios

Si la ventana secundaria está visible, Windows vuelve a dibujar y a pintar adecuadamente.

CWnd::SetProperty

Llame a esta función miembro para establecer la propiedad de control OLE especificada por dwDispID.

void AFX_CDECL SetProperty(
    DISPID dwDispID,
    VARTYPE vtProp, ...);

Parámetros

dwDispID
Identifica la propiedad que se va a establecer.

vtProp
Especifica el tipo de la propiedad que se va a establecer. Para los valores posibles, consulte la sección Comentarios para COleDispatchDriver::InvokeHelper.

...
Un parámetro único del tipo especificado por vtProp.

Comentarios

Nota:

Solo se debe llamar a esta función en un objeto CWnd que represente un control OLE.

Para obtener más información sobre el uso de esta función miembro con contenedores de controles OLE, consulte el artículo Contenedores de controles ActiveX: Programación de controles ActiveX en un contenedor de controles ActiveX.

CWnd::SetRedraw

Una aplicación llama a SetRedraw para permitir o evitar que los cambios se vuelvan a dibujar.

void SetRedraw(BOOL bRedraw = TRUE);

Parámetros

bRedraw
Especifica el estado de la marca de volver a dibujar. Si este parámetro es TRUE, se establece la marca de volver a dibujar; si es FALSE, se borra la marca.

Comentarios

Esta función miembro establece o borra la marca de volver a dibujar. Mientras se borra la marca de volver a dibujar, el contenido no se actualizará después de cada cambio y no se volverá a pintar hasta que se establezca la marca de volver a dibujar. Por ejemplo, una aplicación que necesita agregar varios elementos a un cuadro de lista puede borrar la marca de volver a dibujar, agregar los elementos y, a continuación, establecer la marca de volver a dibujar. Por último, la aplicación puede llamar a la función miembro Invalidate o InvalidateRect para que se vuelva a pintar el cuadro de lista.

Ejemplo

// 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

Llame a esta función miembro para establecer la información que la estructura SCROLLINFO mantiene sobre una barra de desplazamiento.

BOOL SetScrollInfo(
    int nBar,
    LPSCROLLINFO lpScrollInfo,
    BOOL bRedraw = TRUE);

Parámetros

nBar
Especifica si la barra de desplazamiento es un control o parte del área no cliente de una ventana. Si forma parte del área no cliente, nBar también indica si la barra de desplazamiento está colocada horizontalmente, verticalmente o ambas. Debe ser uno de los siguientes:

  • SB_CTL Contiene los parámetros de un control de la barra de desplazamiento. El miembro de datos m_hWnd debe ser el identificador del control de la barra de desplazamiento.

  • SB_HORZ Especifica que la ventana es una barra de desplazamiento horizontal.

  • SB_VERT Especifica que la ventana es una barra de desplazamiento vertical.

lpScrollInfo
Un puntero a una estructura SCROLLINFO. Consulte Windows SDK para obtener más información sobre esta estructura.

bRedraw
Especifica si se debe volver a dibujar la barra de desplazamiento para reflejar la nueva posición. Si bRedraw es TRUE, la barra de desplazamiento se vuelve a dibujar. Si es FALSE, no se vuelve a dibujar. De forma predeterminada, la barra se vuelve a dibujar.

Valor devuelto

Si se ejecuta correctamente, se devuelve TRUE. De lo contrario, es FALSE.

Comentarios

La estructura SCROLLINFO contiene información sobre una barra de desplazamiento, incluidas las posiciones de desplazamiento mínima y máxima, el tamaño de página y la posición del cuadro de desplazamiento (el control). Consulte el tema de estructura SCROLLINFO de Windows SDK para más información sobre cómo cambiar los valores predeterminados de la estructura.

Los controladores de mensajes de Windows de MFC que indican la posición de la barra de desplazamiento, CWnd::OnHScroll y CWnd::OnVScroll, proporcionan solo 16 bits de datos de posición. GetScrollInfo y SetScrollInfo proporcionan 32 bits de datos de posición de barra de desplazamiento. Por lo tanto, una aplicación puede llamar a GetScrollInfo al procesar CWnd::OnHScroll o CWnd::OnVScroll para obtener datos de posición de barra de desplazamiento de 32 bits.

Nota:

CWnd::GetScrollInfo permite a las aplicaciones usar posiciones de barra de desplazamiento de 32 bits.

CWnd::SetScrollPos

Establece la posición actual de un cuadro de desplazamiento y, si se solicita, vuelve a dibujar la barra de desplazamiento para reflejar la nueva posición del cuadro de desplazamiento.

int SetScrollPos(
    int nBar,
    int nPos,
    BOOL bRedraw = TRUE);

Parámetros

nBar
Especifica la barra de desplazamiento que se va a establecer. Este parámetro puede ser uno de los siguientes:

  • SB_HORZ Establece la posición del cuadro de desplazamiento en la barra de desplazamiento horizontal de la ventana.

  • SB_VERT Establece la posición del cuadro de desplazamiento en la barra de desplazamiento vertical de la ventana.

nPos
Especifica la nueva posición del cuadro de desplazamiento. Debe estar dentro del rango de desplazamiento.

bRedraw
Especifica si se debe volver a pintar la barra de desplazamiento para reflejar la nueva posición del cuadro de desplazamiento. Si este parámetro es TRUE, la barra de desplazamiento se vuelve a pintar; si es FALSE, la barra de desplazamiento no se vuelve a pintar.

Valor devuelto

La posición anterior del cuadro de desplazamiento.

Comentarios

Establecer bRedraw en FALSE es útil siempre que la barra de desplazamiento se vuelva a dibujar mediante una llamada posterior a otra función.

CWnd::SetScrollRange

Establece los valores de posición mínimo y máximo de la barra de desplazamiento especificada.

void SetScrollRange(
    int nBar,
    int nMinPos,
    int nMaxPos,
    BOOL bRedraw = TRUE);

Parámetros

nBar
Especifica la barra de desplazamiento que se va a establecer. Este parámetro puede tener uno de los valores siguientes:

  • SB_HORZ Establece el intervalo de la barra de desplazamiento horizontal de la ventana.

  • SB_VERT Establece el intervalo de la barra de desplazamiento vertical de la ventana.

nMinPos
Especifica la posición de desplazamiento mínima.

nMaxPos
Especifica la posición de desplazamiento máxima.

bRedraw
Especifica si se debe volver a dibujar la barra de desplazamiento para reflejar el cambio. Si bRedraw es TRUE, la barra de desplazamiento se vuelve a dibujar; si es FALSE, la barra de desplazamiento no se vuelve a dibujar.

Comentarios

También se puede usar para ocultar o mostrar barras de desplazamiento estándar.

Una aplicación no debe llamar a esta función para ocultar una barra de desplazamiento mientras se procesa un mensaje de notificación de barra de desplazamiento.

Si la llamada a SetScrollRange ocurre inmediatamente después de una llamada a la función miembro SetScrollPos, el parámetro bRedraw de la función miembro SetScrollPos debe ser 0 para evitar que la barra de desplazamiento se dibuje dos veces.

El intervalo predeterminado de una barra de desplazamiento estándar es de 0 a 100. El intervalo predeterminado de un control de barra de desplazamiento está vacío (ambos valores, nMinPos y nMaxPos, son 0). La diferencia entre los valores especificados por nMinPos y nMaxPos no debe ser mayor que INT_MAX.

CWnd::SetTimer

Instala un temporizador del sistema.

UINT_PTR SetTimer(
    UINT_PTR nIDEvent,
    UINT nElapse,
    void (CALLBACK* lpfnTimer)(HWND,
    UINT,
    UINT_PTR,
    DWORD));

Parámetros

nIDEvent
Especifica un identificador de temporizador distinto de cero. Si el identificador del temporizador es único, SetTimer devuelve este mismo valor. De lo contrario, SetTimer determina un nuevo valor único y lo devuelve. Para un temporizador de ventana (que tiene una función de devolución de llamada NULL), el valor sólo debe ser único para los temporizadores de otras ventanas asociadas a la ventana actual. Para un temporizador de devolución de llamada, el valor debe ser único para todos los temporizadores de todos los procesos. Por lo tanto, al crear un temporizador de devolución de llamada, es más probable que el valor devuelto sea diferente del valor especificado.

nElapse
Especifica el valor de tiempo de espera, o intervalo, en milisegundos.

lpfnTimer
Especifica la dirección de la función de devolución de llamada TimerProc proporcionada por la aplicación que procesa los mensajes WM_TIMER. Si este parámetro es NULL, los mensajes WM_TIMER se colocan en la cola de mensajes de la aplicación y se controlan mediante el objeto CWnd.

Valor devuelto

El identificador del temporizador del nuevo temporizador si la función se ejecuta correctamente. Este valor puede ser o no igual que el valor que se ha pasado a través del parámetro nIDEvent. Una aplicación siempre debe pasar el valor devuelto a la función miembro KillTimer para eliminar el temporizador. Distinto de cero si se realiza correctamente; en caso contrario, 0.

Comentarios

Se especifica un valor de intervalo y, cada vez que transcurre el intervalo, el sistema publica un mensaje WM_TIMER en la cola de mensajes de instalación de la aplicación de instalación, o pasa el mensaje a una función de devolución de llamada TimerProc definida por la aplicación.

La función de devolución de llamada lpfnTimer no debe tener el nombre TimerProc, pero debe declararse como estática y definirse como se indica a continuación.

void CALLBACK TimerProc(
    HWND hWnd,   // handle of CWnd that called SetTimer
    UINT nMsg,   // WM_TIMER
    UINT_PTR nIDEvent,   // timer identification
    DWORD dwTime    // system time);

Ejemplo

En este ejemplo se usan CWnd::SetTimer, CWnd::OnTimer y CWnd::KillTimer para controlar los mensajes WM_TIMER. El primer temporizador se configura para enviar un mensaje WM_TIMER a la ventana de marco principal cada 2 segundos en OnStartTimer. El controlador de eventos OnTimer controla los mensajes WM_TIMER de la ventana de marco principal. Este método hace que el altavoz del equipo pite cada 2 segundos. El segundo temporizador envía un mensaje a la función de devolución de llamada cada 3,75 segundos. OnStopTimer detendrá ambos temporizadores llamando a CWnd::KillTimer para cada Id. de temporizador.

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

Llame a esta función miembro para asociar un identificador de contexto de ayuda con la ventana especificada.

BOOL SetWindowContextHelpId(DWORD dwContextHelpId);

Parámetros

dwContextHelpId
El identificador de contexto de ayuda.

Valor devuelto

Es distinto de cero si la función se realiza correctamente; de lo contrario, es 0.

Comentarios

Si una ventana secundaria no tiene un identificador de contexto de ayuda, hereda el identificador de su ventana primaria. Del mismo modo, si una ventana que es propiedad de otra no tiene un identificador de contexto de ayuda, hereda el identificador de la ventana propietaria. Esta herencia de identificadores de contexto de ayuda permite a una aplicación establecer solo un identificador para un cuadro de diálogo y todos sus controles.

Ejemplo

// 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

Establece el estado de visualización y las posiciones normal (restaurada), minimizada y maximizada de una ventana.

BOOL SetWindowPlacement(const WINDOWPLACEMENT* lpwndpl);

Parámetros

lpwndpl
Apunta a una estructura WINDOWPLACEMENT que especifica los nuevos estado de presentación y posiciones.

Valor devuelto

Es distinto de cero si la función se realiza correctamente; de lo contrario, es 0.

CWnd::SetWindowPos

Cambia el tamaño, la posición y el orden Z de las ventanas secundarias, emergentes y de nivel superior.

BOOL SetWindowPos(
    const CWnd* pWndInsertAfter,
    int x,
    int y,
    int cx,
    int cy,
    UINT nFlags);

Parámetros

pWndInsertAfter
Identifica el objeto CWnd que precederá (será mayor que) este objeto CWnd en el orden Z. Este parámetro puede ser un puntero a CWnd o un puntero a uno de los siguientes valores:

  • wndBottom Coloca la ventana al final del orden Z. Si esta CWnd es una ventana superior, la ventana pierde su estado de nivel más alto; el sistema coloca la ventana por debajo de todas las demás ventanas.

  • wndTop Coloca la ventana al principio del orden Z.

  • wndTopMost Coloca la ventana encima de todas las ventanas no superiores. La ventana mantiene su posición superior incluso cuando está desactivada.

  • wndNoTopMost Recoloca la ventana antes de todas las ventanas no superiores (es decir, detrás de todas las ventanas superiores). Esta marca no tiene ningún efecto si la ventana ya es una ventana no superior.

Para obtener reglas sobre cómo usar este parámetro, vea la sección «Comentarios» de este tema.

x
Especifica la nueva posición del lado izquierdo de la ventana.

y
Especifica la nueva posición de la parte superior de la ventana.

cx
Especifica el nuevo ancho de la ventana.

cy
Especifica el nuevo alto de la ventana.

nFlags
Especifica las opciones de ajuste de tamaño y posición. Este parámetro puede ser una combinación de las marcas siguientes:

  • SWP_DRAWFRAME Dibuja un marco (definido al crear la ventana) alrededor de la ventana.

  • SWP_FRAMECHANGED Envía un mensaje WM_NCCALCSIZE a la ventana, incluso si no se está cambiando el tamaño de la ventana. Si no se especifica esta marca, WM_NCCALCSIZE sólo se envía cuando se está cambiando el tamaño de la ventana.

  • SWP_HIDEWINDOW Oculta la ventana.

  • SWP_NOACTIVATE No activa la ventana. Si no se establece esta marca, la ventana se activa y se mueve a la parte superior del grupo superior o del grupo no superior (según la configuración del parámetro pWndInsertAfter).

  • SWP_NOCOPYBITS Descarta el contenido del área cliente. Si no se especifica esta marca, el contenido válido del área cliente se guarda y se vuelve a copiar en el área cliente después de cambiar el tamaño o la posición de la ventana.

  • SWP_NOMOVE Conserva la posición actual (ignora los parámetros x y y).

  • SWP_NOOWNERZORDER No cambia la posición de la ventana propietaria en el orden Z.

  • SWP_NOREDRAW No vuelve a dibujar los cambios. Si se establece esta marca, no se vuelve a pintar nada. Esto se aplica al área cliente, al área no cliente (incluidas las barras de título y desplazamiento) y a cualquier parte de la ventana primaria que esté descubierta como resultado del movimiento de la ventana. Cuando se establece esta marca, la aplicación debe invalidar explícitamente o volver a dibujar las partes de la ventana y la ventana primaria que se deben volver a dibujar.

  • SWP_NOREPOSITION Igual que SWP_NOOWNERZORDER.

  • SWP_NOSENDCHANGING Impide que la ventana reciba el mensaje WM_WINDOWPOSCHANGING.

  • SWP_NOSIZE Conserva la posición actual (ignora los parámetros cx y cy).

  • SWP_NOZORDER Conserva el orden actual (ignora pWndInsertAfter).

  • SWP_SHOWWINDOW Muestra la ventana.

Valor devuelto

Es distinto de cero si la función se ejecuta correctamente; de lo contrario, es 0.

Comentarios

Las ventanas se ordenan en la pantalla según su orden Z; la ventana al principio del orden Z aparece encima de todas las demás ventanas en el orden.

Todas las coordenadas de las ventanas secundarias son coordenadas de cliente (relativas a la esquina superior izquierda del área cliente de la ventana primaria).

Una ventana se puede mover a la parte superior del orden Z estableciendo el parámetro pWndInsertAfter en &wndTopMost y asegurándose de que la marca SWP_NOZORDER no esté establecida, o bien estableciendo el orden Z de una ventana para que esté por encima de cualquier ventana superior existente. Cuando una ventana no superior se hace superior, sus ventanas propiedad también devienen superiores. Sus propietarios no cambian.

Una ventana superior ya no es superior si se cambia su posición a la parte inferior (&wndBottom) del orden Z o después de cualquier ventana que no sea superior. Cuando una ventana superior se convierte en no superior, todos sus propietarios y sus ventanas propiedad también se convierten en ventanas no superiores.

Si no se especifican SWP_NOACTIVATE ni SWP_NOZORDER (es decir, cuando la aplicación solicita que una ventana se active y, simultáneamente, se coloque en el orden Z especificado), el valor especificado en pWndInsertAfter solo se usa en las siguientes circunstancias:

  • Ni &wndTopMost ni &wndNoTopMost se especifican en el parámetro pWndInsertAfter.

  • Esta ventana no es la ventana activa.

Una aplicación no puede activar una ventana inactiva sin llevarla a la parte superior del orden Z. Las aplicaciones pueden cambiar el orden Z de una ventana activada sin restricciones.

Una ventana que no sea superior puede ser propietaria de una ventana superior, pero no viceversa. Cualquier ventana (por ejemplo, un cuadro de diálogo) propiedad de una ventana superior se convierte en una ventana superior para asegurarse de que todas las ventanas propiedad permanezcan por encima de su propietario.

Con las versiones 3.1 y posteriores de Windows, las ventanas se pueden mover a la parte superior del orden Z y se pueden bloquear allí estableciendo sus estilos WS_EX_TOPMOST. Una ventana en la posición superior mantiene dicha posición superior incluso cuando se desactiva. Por ejemplo, al seleccionar el comando de WinHelp Always On Top, la ventana Ayuda se hace superior, y permanece visible cuando el usuario vuelve a la aplicación.

Para crear una ventana superior, llame a SetWindowPos con el parámetro pWndInsertAfter igual a &wndTopMost o establezca el estilo WS_EX_TOPMOST al crear la ventana.

Si el orden Z contiene ventanas con el estilo WS_EX_TOPMOST, una ventana que se mueva con el valor &wndTopMost se coloca en la parte superior de todas las ventanas no superiores, pero debajo de las ventanas superiores. Cuando una aplicación activa una ventana inactiva sin el bit WS_EX_TOPMOST, la ventana se mueve por encima de todas las ventanas no superiores, pero debajo de las ventanas superiores.

Si se llama a SetWindowPos cuando el parámetro pWndInsertAfter es &wndBottom y CWnd es una ventana superior, la ventana pierde su estado superior (se borra WS_EX_TOPMOST) y el sistema coloca la ventana al final del orden Z.

Ejemplo

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

Llame a esta función miembro para establecer la región de una ventana.

int SetWindowRgn(
    HRGN hRgn,
    BOOL bRedraw);

Parámetros

hRgn
Un identificador de una región.

bRedraw
Si es TRUE, el sistema operativo vuelve a dibujar la ventana después de establecer la región; de lo contrario, no la dibuja. En general, se establece bRedraw en TRUE si la ventana está visible. Si se establece en TRUE, el sistema envía los mensajes WM_WINDOWPOSCHANGING y WM_WINDOWPOSCHANGED a la ventana.

Valor devuelto

Si la función se realiza correctamente, el valor devuelto es distinto de cero. Si la función no se realiza correctamente, el valor devuelto es cero.

Comentarios

Las coordenadas de la región de ventana de una ventana son relativas a la esquina superior izquierda de la ventana, no al área cliente de la ventana.

Después de una llamada correcta a SetWindowRgn, el sistema operativo es propietario de la región especificada por el identificador de región hRgn. El sistema operativo no realiza una copia de la región; por ello, no realice ninguna llamada de función adicional con este identificador de región y no cierre este identificador de región.

CWnd::SetWindowText

Establece el título de la ventana en el texto especificado.

void SetWindowText(LPCTSTR lpszString);

Parámetros

lpszString
Apunta a un objeto CString o a una cadena terminada en NULL que se usará como nuevo texto de título o control.

Comentarios

Si la ventana es un control, se establece el texto dentro del control.

Esta función hace que se envíe un mensaje WM_SETTEXT a esta ventana.

Ejemplo

// 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

Muestra el cursor de inserción en la pantalla en la posición actual del cursor de inserción.

void ShowCaret();

Comentarios

Ya en pantalla, el cursor de intersección comienza a parpadear automáticamente.

La función miembro ShowCaret muestra el cursor de inserción solo si tiene una forma actual y no se ha ocultado dos o más veces consecutivamente. Si el cursor de inserción no pertenece a esta ventana, no se muestra el cursor de inserción.

Ocultar el cursor de inserción es acumulativo. Si se ha llamado a la función miembro HideCaret cinco veces consecutivamente, ShowCaret se debe llamar cinco veces para mostrar el cursor de inserción.

El cursor de inserción es un recurso compartido. La ventana debe mostrar el cursor de inserción solo cuando tiene el foco de entrada o está activa.

Ejemplo

Vea el ejemplo de CWnd::CreateCaret.

CWnd::ShowOwnedPopups

Muestra u oculta todas las ventanas emergentes propiedad de esta ventana.

void ShowOwnedPopups(BOOL bShow = TRUE);

Parámetros

bShow
Especifica si se van a mostrar u ocultar ventanas emergentes. Si este parámetro es TRUE, se muestran todas las ventanas emergentes que están ocultas. Si este parámetro es FALSE, se ocultan todas las ventanas emergentes visibles.

Ejemplo

Vea el ejemplo de CWnd::SetWindowPos.

CWnd::ShowScrollBar

Muestra u oculta una barra de desplazamiento.

void ShowScrollBar(
    UINT nBar,
    BOOL bShow = TRUE);

Parámetros

nBar
Especifica si la barra de desplazamiento es un control o parte del área no cliente de una ventana. Si forma parte del área no cliente, nBar también indica si la barra de desplazamiento está colocada horizontalmente, verticalmente o ambas. Debe ser uno de los siguientes:

  • SB_BOTH Especifica las barras de desplazamiento horizontal y vertical de la ventana.

  • SB_HORZ Especifica que la ventana es una barra de desplazamiento horizontal.

  • SB_VERT Especifica que la ventana es una barra de desplazamiento vertical.

bShow
Especifica si Windows muestra u oculta la barra de desplazamiento. Si este parámetro es TRUE, se muestra la barra de desplazamiento; de lo contrario, la barra de desplazamiento se oculta.

Comentarios

Una aplicación no debe llamar a ShowScrollBar para ocultar una barra de desplazamiento mientras se procesa un mensaje de notificación de barra de desplazamiento.

CWnd::ShowWindow

Establece el estado de visibilidad de la ventana.

BOOL ShowWindow(int nCmdShow);

Parámetros

nCmdShow
Especifica cómo se va a mostrar CWnd. Debe tener uno de los siguientes valores:

  • SW_HIDE Oculta esta ventana y pasa la activación a otra ventana.

  • SW_MINIMIZE Minimiza la ventana y activa la ventana de nivel superior en la lista del sistema.

  • SW_RESTORE Activa y muestra la ventana. Si la ventana está minimizada o maximizada, Windows la restaura a su tamaño y posición originales.

  • SW_SHOW Activa la ventana y la muestra en su tamaño y posición actuales.

  • SW_SHOWMAXIMIZED Activa la ventana y la muestra como una ventana maximizada.

  • SW_SHOWMINIMIZED Activa la ventana y la muestra como un icono.

  • SW_SHOWMINNOACTIVE Muestra la ventana como un icono. La ventana que está activa actualmente permanece activa.

  • SW_SHOWNA Muestra la ventana en su estado actual. La ventana que está activa actualmente permanece activa.

  • SW_SHOWNOACTIVATE Muestra la ventana en su tamaño y posición más recientes. La ventana que está activa actualmente permanece activa.

  • SW_SHOWNORMAL Activa y muestra la ventana. Si la ventana está minimizada o maximizada, Windows la restaura a su tamaño y posición originales.

Valor devuelto

Distinto de cero si la ventana era visible anteriormente; 0 si CWnd se estaba ocultada previamente.

Comentarios

Solo se debe llamar a ShowWindow una vez por aplicación para la ventana principal con CWinApp::m_nCmdShow. Las llamadas posteriores a ShowWindow deben usar uno de los valores enumerados anteriormente en lugar del valor especificado por CWinApp::m_nCmdShow.

Ejemplo

Vea el ejemplo de CWnd::CalcWindowRect.

CWnd::SubclassDlgItem

Llame a esta función miembro para «asignar dinámicamente como subclase» un control creado a partir de una plantilla de diálogo y asociarlo a este objeto CWnd.

BOOL SubclassDlgItem(
    UINT nID,
    CWnd* pParent);

Parámetros

nID
El Id. del control.

pParent
El elemento primario del control (normalmente, un cuadro de diálogo).

Valor devuelto

Es distinto de cero si la función se realiza correctamente; de lo contrario, es 0.

Comentarios

Cuando un control se asigna dinámicamente como subclase, los mensajes de ventana se enrutarán a través del mapa de mensajes de CWnd y llamarán primero a los controladores de mensajes de la clase de CWnd. Los mensajes que se pasan a la clase base se pasarán al controlador de mensajes predeterminado en el control.

Esta función miembro asocia el control de Windows a un objeto CWnd y reemplaza las funciones WndProc y AfxWndProc del control. La función almacena el antiguo WndProc en la ubicación devuelta por la función miembro GetSuperWndProcAddr.

Ejemplo

// 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

Llame a esta función miembro para «asignar dinámicamente como subclase» una ventana y asociarla a este objeto CWnd.

BOOL SubclassWindow(HWND hWnd);

Parámetros

hWnd
Un identificador de la ventana.

Valor devuelto

Es distinto de cero si la función se realiza correctamente; de lo contrario, es 0.

Comentarios

Cuando una ventana se asigna dinámicamente como subclase, los mensajes de ventana se enrutarán a través del mapa de mensajes de CWnd y llamarán a los controladores de mensajes de la clase CWnd primero. Los mensajes que se pasan a la clase base se pasarán al controlador de mensajes predeterminado en la ventana.

Esta función miembro asocia el control de Windows a un objeto CWnd y reemplaza las funciones WndProc y AfxWndProc de la ventana. La función almacena un puntero al antiguo WndProc en el objeto CWnd.

Nota:

La ventana aún no debe estar asociada a un objeto MFC cuando se llama a esta función.

Ejemplo

// 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

Llame a esta función miembro para desbloquear una ventana bloqueada con CWnd::LockWindowUpdate.

void UnlockWindowUpdate();

Comentarios

Solo se puede bloquear una ventana a la vez mediante LockWindowUpdate. Consulte CWnd::LockWindowUpdate o la función de Win32 LockWindowUpdate para obtener más información sobre cómo bloquear ventanas.

CWnd::UnsubclassWindow

Llame a esta función miembro para devolver WndProc a su valor original y desasociar la ventana identificada por HWND del objeto CWnd.

HWND UnsubclassWindow();

Valor devuelto

Un identificador de la ventana que se ha asignado como subclase.

Ejemplo

Vea el ejemplo de CWnd::SubclassWindow.

CWnd::UpdateData

Llame a esta función miembro para inicializar los datos en un cuadro de diálogo o para recuperar y validar los datos del diálogo.

BOOL UpdateData(BOOL bSaveAndValidate = TRUE);

Parámetros

bSaveAndValidate
La marca que indica si el cuadro de diálogo se está inicializando (FALSE) o se están recuperando datos (TRUE).

Valor devuelto

Distinto de cero si la operación es correcta; de lo contrario, 0. Si bSaveAndValidate es TRUE, un valor devuelto distinto de cero significa que los datos se han validado correctamente.

Comentarios

El marco llama automáticamente a UpdateData con bSaveAndValidate establecido en FALSE cuando se crea un cuadro de diálogo modal en la implementación predeterminada de CDialog::OnInitDialog. La llamada se produce antes de que el cuadro de diálogo esté visible. La implementación predeterminada de CDialog::OnOK llama a esta función miembro con bSaveAndValidate establecido en TRUE para recuperar los datos y, si se ejecuta correctamente, cerrará el cuadro de diálogo. (Si se hace clic en el botón Cancelar en el cuadro de diálogo, el cuadro de diálogo se cierra sin que se recuperen los datos).

CWnd::UpdateDialogControls

Llame a esta función miembro para actualizar el estado de los botones de diálogo y de otros controles de un cuadro de diálogo o ventana que usa el mecanismo de devolución de llamada ON_UPDATE_COMMAND_UI.

void UpdateDialogControls(
    CCmdTarget* pTarget,
    BOOL bDisableIfNoHndler);

Parámetros

pTarget
Apunta a la ventana de marco principal de la aplicación y se usa para enrutar mensajes de actualización.

bDisableIfNoHndler
Una marca que indica si un control que no tiene controlador de actualización debe mostrarse automáticamente como deshabilitado.

Comentarios

Si un control secundario no tiene un controlador y bDisableIfNoHndler es TRUE, el control secundario se deshabilitará.

El marco llama a esta función miembro para los controles de barras de diálogo o barras de herramientas como parte del procesamiento inactivo de la aplicación.

CWnd::UpdateLayeredWindow

Actualiza la posición, el tamaño, la forma, el contenido y la transparencia de una ventana superpuesta.

BOOL UpdateLayeredWindow(
    CDC* pDCDst,
    POINT* pptDst,
    SIZE* psize,
    CDC* pDCSrc,
    POINT* pptSrc,
    COLORREF crKey,
    BLENDFUNCTION* pblend,
    DWORD dwFlags);

Parámetros

pDCDst
Un puntero a un contexto de dispositivo para la pantalla. Se usa para la coincidencia de colores de paleta cuando se actualiza el contenido de la ventana. Si pDCDst es NULL, se usará la paleta predeterminada.

Si pDCSrc es NULL, pDCDst debe ser NULL.

pptDst
Un puntero a una estructura POINT que especifica la nueva posición de pantalla de la ventana superpuesta. Si la posición actual no cambia, pptDst puede ser NULL.

psize
Un puntero a una estructura SIZE que especifica el nuevo tamaño de la ventana superpuesta. Si el tamaño de la ventana no cambia, psize puede ser NULL.

Si pDCSrc es NULL, psize debe ser NULL.

pDCSrc
Un puntero a un controlador de dominio (DC) para la superficie que define la ventana superpuesta. Si la forma y el contexto visual de la ventana no cambian, pDCSrc puede ser NULL.

pptSrc
Un puntero a una estructura POINT que especifica la ubicación de la capa en el contexto del dispositivo.

Si pDCSrc es NULL, pptSrc debe ser NULL.

crKey
Un puntero a un valor COLORREF que especifica la clave de color de transparencia que se va a usar al componer la ventana superpuesta. Todos los píxeles pintados por la ventana de este color serán transparentes. Para generar un COLORREF, use la macro RGB.

pblend
Un puntero a un valor BLENDFUNCTION que especifica el valor de transparencia que se va a usar al componer la ventana superpuesta.

dwFlags
Especifica una acción que se va a realizar. Este parámetro puede ser uno o más de los siguientes valores. Para obtener una lista de los valores posibles, vea UpdateLayeredWindow.

Valor devuelto

Es distinto de cero si la función se realiza correctamente; de lo contrario, 0.

Comentarios

Esta función miembro emula la funcionalidad de la función UpdateLayeredWindow, tal y como se describe en Windows SDK.

CWnd::UpdateWindow

Actualiza el área cliente mediante el envío de un mensaje WM_PAINT si la región de actualización no está vacía.

void UpdateWindow();

Comentarios

La función miembro UpdateWindow envía un mensaje WM_PAINT directamente, evitando la cola de aplicaciones. Si la región de actualización está vacía, WM_PAINT no se envía.

Ejemplo

// 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

Valida el área cliente dentro del rectángulo dado quitando dicho rectángulo de la región de actualización de la ventana.

void ValidateRect(LPCRECT lpRect);

Parámetros

lpRect
Apunta a un objeto CRect o una estructura RECT que contiene las coordenadas de cliente del rectángulo que se va a quitar de la región de actualización. Si lpRect es NULL, se valida toda la ventana.

Comentarios

La función miembro BeginPaint valida automáticamente toda el área cliente. No se debe llamar ni a la función miembro ValidateRect ni a la función miembro ValidateRgn cuando es necesario validar una parte de la región de actualización antes de que se genere WM_PAINT a continuación.

Windows sigue generando mensajes WM_PAINT hasta que se valida la región de actualización actual.

CWnd::ValidateRgn

Valida el área cliente dentro de la región dada quitando la región de la región de actualización actual de la ventana.

void ValidateRgn(CRgn* pRgn);

Parámetros

pRgn
Un puntero a un objeto CRgn que identifica una región que define el área que se va a quitar de la región de actualización. Si este parámetro es NULL, se quita toda el área cliente.

Comentarios

Una función de región debe haber creado previamente la región especificada. Se supone que las coordenadas de la región son coordenadas de cliente.

La función miembro BeginPaint valida automáticamente toda el área cliente. No se debe llamar ni a la función miembro ValidateRect ni a la función miembro ValidateRgn cuando es necesario validar una parte de la región de actualización antes de que se genere el mensaje WM_PAINT a continuación.

CWnd::WindowFromPoint

Recupera la ventana que contiene el punto especificado; point debe especificar las coordenadas de pantalla de un punto en la pantalla.

static CWnd* PASCAL WindowFromPoint(POINT point);

Parámetros

point
Especifica un objeto CPoint o una estructura de datos POINT que define el punto que se va a comprobar.

Valor devuelto

Un puntero al objeto de ventana en el que se encuentra el punto. Es NULL si no existe ninguna ventana en el punto especificado. El puntero devuelto puede ser temporal y no se debe almacenar para su uso posterior.

Comentarios

WindowFromPoint no recupera una ventana oculta o deshabilitada, incluso si el punto está dentro de la ventana. Una aplicación debe usar la función miembro ChildWindowFromPoint para una búsqueda no restrictiva.

CWnd::WindowProc

Proporciona un procedimiento de Windows (WindowProc) para un objeto CWnd.

virtual LRESULT WindowProc(
    UINT message,
    WPARAM wParam,
    LPARAM lParam);

Parámetros

message
Especifica el mensaje de Windows que se va a procesar.

wParam
Proporciona información adicional que se usa para procesar el mensaje. El valor de este parámetro depende del mensaje.

lParam
Proporciona información adicional que se usa para procesar el mensaje. El valor de este parámetro depende del mensaje.

Valor devuelto

El valor devuelto depende del mensaje.

Comentarios

Distribuye mensajes a través del mapa de mensajes de la ventana.

CWnd::WinHelp

Se llama para iniciar la aplicación WinHelp.

virtual void WinHelp(
    DWORD_PTR dwData,
    UINT nCmd = HELP_CONTEXT);

Parámetros

dwData
Especifica datos adicionales. El valor usado depende del valor del parámetro nCmd.

nCmd
Especifica el tipo de ayuda solicitado. Para obtener una lista de valores posibles y cómo afectan al parámetro dwData, consulte la función de Windows WinHelp en Windows SDK.

Comentarios

Consulte CWinApp::WinHelp para obtener más información.

CWnd::RegisterTouchWindow

Registra o anula el registro de la compatibilidad táctil de Windows.

BOOL RegisterTouchWindow(
    BOOL bRegister = TRUE,
    ULONG ulFlags = 0);

Parámetros

bRegister
TRUE indica el registro de compatibilidad táctil de Windows; FALSE, lo contrario.

ulFlags
Un conjunto de marcas de bits que especifican modificaciones opcionales. Este campo puede contener 0 o uno de los siguientes valores: TWF_FINETOUCH o TWF_WANTPALM.

Valor devuelto

TRUE si es correcto; de lo contrario, FALSE.

Comentarios

CWnd::ResizeDynamicLayout

El marco llama a este método cuando el tamaño de la ventana cambia para ajustar el diseño de las ventanas secundarias, si el diseño dinámico está habilitado en esa ventana.

virtual void ResizeDynamicLayout();

Comentarios

Consulte también

CCmdTarget (clase)
Gráfico de jerarquías
CFrameWnd (clase)
CView (clase)