Compartir vía


CWinApp (clase)

La clase base de la que se deriva un objeto de aplicación Windows.

Sintaxis

class CWinApp : public CWinThread

Miembros

Constructores públicos

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

Métodos públicos

Nombre Descripción
CWinApp::AddDocTemplate Agrega una plantilla de documento a la lista de plantillas de documento disponibles de la aplicación.
CWinApp::AddToRecentFileList Agrega un nombre de archivo a la lista de los archivos utilizados más recientemente (MRU).
CWinApp::ApplicationRecoveryCallback Lo llama el marco cuando se cierra inesperadamente la aplicación.
CWinApp::CloseAllDocuments Cierra todos los documentos abiertos.
CWinApp::CreatePrinterDC Crea un contexto de dispositivo de impresora.
CWinApp::DelRegTree Elimina una clave especificada y todas sus subclaves.
CWinApp::DoMessageBox Implementa AfxMessageBox para la aplicación.
CWinApp::DoWaitCursor Activa y desactiva el cursor de espera.
CWinApp::EnableD2DSupport Habilita la compatibilidad con D2D de la aplicación. Llame a este método antes de que se inicialice la ventana principal.
CWinApp::EnableHtmlHelp Implementa HTMLHelp para la aplicación, en lugar de WinHelp.
CWinApp::EnableTaskbarInteraction Habilita la interacción de la barra de tareas.
CWinApp::ExitInstance Se invalida para limpiar cuando finaliza la aplicación.
CWinApp::GetApplicationRecoveryParameter Recupera el parámetro de entrada para el método de recuperación de aplicaciones.
CWinApp::GetApplicationRecoveryPingInterval Devuelve el período de tiempo que el administrador de reinicio espera a que se devuelva la función de devolución de llamada de recuperación.
CWinApp::GetApplicationRestartFlags Devuelve las marcas del administrador de reinicio.
CWinApp::GetAppRegistryKey Devuelve la clave de HKEY_CURRENT_USER\"Software"\RegistryKey\ProfileName.
CWinApp::GetDataRecoveryHandler Obtiene el controlador de recuperación de datos para esta instancia de la aplicación.
CWinApp::GetFirstDocTemplatePosition Recupera la posición de la primera plantilla de documento.
CWinApp::GetHelpMode Recupera el tipo de ayuda que usa la aplicación.
CWinApp::GetNextDocTemplate Recupera la posición de una plantilla de documento. Se puede usar de forma recursiva.
CWinApp::GetPrinterDeviceDefaults Recupera los valores predeterminados del dispositivo de impresora.
CWinApp::GetProfileBinary Recupera los datos binarios de una entrada en el archivo .INI de la aplicación.
CWinApp::GetProfileInt Recupera un entero de una entrada en el archivo .INI de la aplicación.
CWinApp::GetProfileString Recupera una cadena de una entrada en el archivo .INI de la aplicación.
CWinApp::GetSectionKey Devuelve la clave de HKEY_CURRENT_USER\"Software"\RegistryKey\AppName\lpszSection.
CWinApp::HideApplication Oculta la aplicación antes de cerrar todos los documentos.
CWinApp::HtmlHelp Llama a la función HTMLHelp de Windows.
CWinApp::InitInstance Se invalida para realizar la inicialización de instancias de Windows, como la creación de objetos de ventana.
CWinApp::IsTaskbarInteractionEnabled Indica si la interacción de la barra de tareas de Windows 7 está habilitada.
CWinApp::LoadCursor Carga un recurso de cursor.
CWinApp::LoadIcon Carga un recurso de icono.
CWinApp::LoadOEMCursor Carga un cursor predefinido de OEM de Windows que las constantes OCR_ especifican en WINDOWS.H.
CWinApp::LoadOEMIcon Carga un icono predefinido de OEM de Windows que las constantes OIC_ especifican en WINDOWS.H.
CWinApp::LoadStandardCursor Carga un cursor predefinido de Windows que las constantes IDC_ especifican en WINDOWS.H.
CWinApp::LoadStandardIcon Carga un icono predefinido de Windows que las constantes IDI_ especifican en WINDOWS.H.
CWinApp::OnDDECommand Lo llama el marco en respuesta a un comando de ejecución de intercambio dinámico de datos (DDE).
CWinApp::OnIdle Se invalida para realizar el procesamiento de tiempo de inactividad específico de la aplicación.
CWinApp::OpenDocumentFile Lo llama el marco para abrir un documento de un archivo.
CWinApp::ParseCommandLine Analiza los parámetros y marcas individuales en la línea de comandos.
CWinApp::PreTranslateMessage Filtra los mensajes antes de enviarlos a las funciones de Windows TranslateMessage y DispatchMessage.
CWinApp::ProcessMessageFilter Intercepta determinados mensajes antes de que lleguen a la aplicación.
CWinApp::ProcessShellCommand Controla los argumentos y las marcas de la línea de comandos.
CWinApp::ProcessWndProcException Intercepta todas las excepciones no controladas producidas por los controladores de mensajes y comandos de la aplicación.
CWinApp::Register Realiza el registro personalizado.
CWinApp::RegisterWithRestartManager Registra la aplicación con el administrador de reinicio.
CWinApp::ReopenPreviousFilesAtRestart Determina si el administrador de reinicio vuelve a abrir los archivos que estaban abiertos cuando la aplicación sale inesperadamente.
CWinApp::RestartInstance Controla un reinicio de la aplicación iniciado por el administrador de reinicio.
CWinApp::RestoreAutosavedFilesAtRestart Determina si el administrador de reinicio restaura los archivos guardados automáticamente cuando reinicia la aplicación.
CWinApp::Run Ejecuta el bucle de mensajes predeterminado. Se invalida para personalizar el bucle de mensajes.
CWinApp::RunAutomated Comprueba la línea de comandos de la aplicación para la opción /Automation. Obsoleto. En su lugar, use el valor en CCommandLineInfo::m_bRunAutomated después de llamar a ParseCommandLine.
CWinApp::RunEmbedded Comprueba la línea de comandos de la aplicación para la opción /Embedding. Obsoleto. En su lugar, use el valor de CCommandLineInfo::m_bRunEmbedded después de llamar a ParseCommandLine.
CWinApp::SaveAllModified Solicita al usuario que guarde todos los documentos modificados.
CWinApp::SelectPrinter Selecciona una impresora indicada previamente por un usuario a través de un cuadro de diálogo de impresión.
CWinApp::SetHelpMode Establece e inicializa el tipo de ayuda que usa la aplicación.
CWinApp::SupportsApplicationRecovery Determina si el administrador de reinicio recupera una aplicación que sale inesperadamente.
CWinApp::SupportsAutosaveAtInterval Determina si el administrador de reinicio guarda automáticamente los documentos abiertos a intervalos regulares.
CWinApp::SupportsAutosaveAtRestart Determina si el administrador de reinicio guarda automáticamente los documentos abiertos cuando se reinicia la aplicación.
CWinApp::SupportsRestartManager Determina si la aplicación es compatible con el administrador de reinicio.
CWinApp::Unregister Anula el registro de todo lo que se sabe que el objeto CWinApp ha registrado.
CWinApp::WinHelp Llama a la función WinHelp de Windows.
CWinApp::WriteProfileBinary Escribe los datos binarios en una entrada del archivo .INI de la aplicación.
CWinApp::WriteProfileInt Escribe un entero en una entrada del archivo .INI de la aplicación.
CWinApp::WriteProfileString Escribe una cadena en una entrada del archivo .INI de la aplicación.

Métodos protegidos

Nombre Descripción
CWinApp::EnableShellOpen Permite al usuario abrir archivos de datos desde el administrador de archivos de Windows.
CWinApp::LoadStdProfileSettings Carga la configuración estándar del archivo .INI y habilita la característica de lista de archivos MRU.
CWinApp::OnContextHelp Controla la ayuda MAYÚS+F1 dentro de la aplicación.
CWinApp::OnFileNew Implementa el comando ID_FILE_NEW.
CWinApp::OnFileOpen Implementa el comando ID_FILE_OPEN.
CWinApp::OnFilePrintSetup Implementa el comando ID_FILE_PRINT_SETUP.
CWinApp::OnHelp Controla la Ayuda de F1 de la aplicación (usando el contexto actual).
CWinApp::OnHelpFinder Controla los comandos ID_HELP_FINDER y ID_DEFAULT_HELP.
CWinApp::OnHelpIndex Controla el comando ID_HELP_INDEX y proporciona un tema de ayuda predeterminado.
CWinApp::OnHelpUsing Controla el comando ID_HELP_USING.
CWinApp::RegisterShellFileTypes Registra todos los tipos de documentos de la aplicación con el administrador de archivos de Windows.
CWinApp::SetAppID Establece explícitamente el id. de modelo de usuario de aplicación para la aplicación. Se debe llamar a este método antes de que se presente cualquier interfaz de usuario al usuario (el mejor lugar es el constructor de la aplicación).
CWinApp::SetRegistryKey Hace que la configuración de la aplicación se almacene en el registro en lugar de en archivos .INI.
CWinApp::UnregisterShellFileTypes Anula el registro de todos los tipos de documentos de la aplicación con el administrador de archivos de Windows.

Miembros de datos públicos

Nombre Descripción
CWinApp::m_bHelpMode Indica si el usuario está en modo de contexto de ayuda (normalmente invocado con MAYÚS+F1).
CWinApp::m_eHelpType Especifica el tipo de ayuda que usa la aplicación.
CWinApp::m_hInstance Identifica la instancia actual de la aplicación.
CWinApp::m_lpCmdLine Apunta a una cadena terminada en un valor NULL que especifica la línea de comandos para la aplicación.
CWinApp::m_nCmdShow Especifica cómo se va a mostrar la ventana inicialmente.
CWinApp::m_pActiveWnd Puntero a la ventana principal de la aplicación contenedora cuando un servidor OLE está activo en contexto.
CWinApp::m_pszAppID Id. de modelo de usuario de aplicación.
CWinApp::m_pszAppName Especifica el nombre de la aplicación.
CWinApp::m_pszExeName Nombre de módulo de la aplicación.
CWinApp::m_pszHelpFilePath La ruta de acceso al archivo de ayuda de la aplicación.
CWinApp::m_pszProfileName Nombre de archivo .INI de la aplicación.
CWinApp::m_pszRegistryKey Se usa para determinar la clave del Registro completa para almacenar la configuración del perfil de aplicación.

Miembros de datos protegidos

Nombre Descripción
CWinApp::m_dwRestartManagerSupportFlags Marcas que determinan cómo se comporta el administrador de reinicio.
CWinApp::m_nAutosaveInterval Tiempo, en milisegundos, entre autoguardados.
CWinApp::m_pDataRecoveryHandler Puntero al controlador de recuperación de datos para la aplicación.

Comentarios

Un objeto de aplicación proporciona funciones miembro para inicializar la aplicación (y cada instancia de ella) y para ejecutar la aplicación.

Cada aplicación que usa las clases de Microsoft Foundation solo puede contener un objeto derivado de CWinApp. Este objeto se construye al construir otros objetos globales de C++ y ya está disponible cuando Windows llama a la función WinMain, que proporciona la biblioteca MFC (Microsoft Foundation Class). Declare el objeto derivado CWinApp en el nivel global.

Al derivar una clase de aplicación de CWinApp, invalide la función miembro InitInstance para crear el objeto de ventana principal de la aplicación.

Además de las funciones miembro CWinApp, la biblioteca MFC (Microsoft Foundation Class) proporciona las siguientes funciones globales para acceder al objeto CWinApp y otra información global:

  • AfxGetApp obtiene un puntero al objeto CWinApp.

  • AfxGetInstanceHandle obtiene un identificador para la instancia de aplicación actual.

  • AfxGetResourceHandle obtiene un identificador para los recursos de la aplicación.

  • AfxGetAppName obtiene un puntero a una cadena que contiene el nombre de la aplicación. Como alternativa, si tiene un puntero al objeto CWinApp, use m_pszExeName para obtener el nombre de la aplicación.

Consulte CWinApp: clase Application para más información sobre la clase CWinApp, incluida una introducción a lo siguiente:

  • Código derivado de CWinApp escrito por el Asistente para aplicaciones.

  • El rol de CWinApp en la secuencia de ejecución de la aplicación.

  • Implementaciones de funciones miembro predeterminadas de CWinApp.

  • Reemplazables de clave de CWinApp.

El miembro de datos m_hPrevInstance ya no existe. Para determinar si se está ejecutando otra instancia de la aplicación, use una exclusión mutua con nombre. Si se produce un error al abrir la exclusión mutua, no hay ninguna otra instancia de la aplicación en ejecución.

Jerarquía de herencia

CObject

CCmdTarget

CWinThread

CWinApp

Requisitos

Encabezado: afxwin.h

CWinApp::AddDocTemplate

Llame a esta función miembro para agregar una plantilla de documento a la lista de plantillas de documento disponibles que la aplicación mantiene.

void AddDocTemplate(CDocTemplate* pTemplate);

Parámetros

pTemplate
Puntero al elemento CDocTemplate que se va a agregar.

Comentarios

Debe agregar todas las plantillas de documento a una aplicación antes de llamar a RegisterShellFileTypes.

Ejemplo

// The following code is produced by the Application Wizard when you
// choose the MDI (multiple document interface) option.
CMultiDocTemplate *pDocTemplate;
pDocTemplate = new CMultiDocTemplate(IDR_MYTYPE,
                                     RUNTIME_CLASS(CMyDoc),
                                     RUNTIME_CLASS(CChildFrame), // custom MDI child frame
                                     RUNTIME_CLASS(CMyView));
if (!pDocTemplate)
   return FALSE;
AddDocTemplate(pDocTemplate);

CWinApp::AddToRecentFileList

Llame a esta función miembro para agregar lpszPathName a la lista de archivos MRU.

virtual void AddToRecentFileList(LPCTSTR lpszPathName);

Parámetros

lpszPathName
Ruta de acceso del archivo.

Comentarios

Debe llamar a la función miembro LoadStdProfileSettings para cargar la lista de archivos MRU actual antes de usar esta función miembro.

El marco llama a esta función miembro cuando abre un archivo o ejecuta el comando Guardar como para guardar un archivo con un nuevo nombre.

Ejemplo

// This adds the pathname c:\temp\test.doc to the top of
// the most recently used (MRU) list in the File menu.
AfxGetApp()->AddToRecentFileList(_T("c:\\temp\\test.doc"));

CWinApp::ApplicationRecoveryCallback

Lo llama el marco cuando se cierra inesperadamente la aplicación.

virtual DWORD ApplicationRecoveryCallback(LPVOID lpvParam);

Parámetros

lpvParam
[in] Reservado para uso futuro.

Valor devuelto

0 si este método es correcto; distinto de cero si se produce un error.

Comentarios

Si la aplicación es compatible con el administrador de reinicio, el marco llama a esta función cuando la aplicación sale inesperadamente.

La implementación predeterminada de ApplicationRecoveryCallback usa CDataRecoveryHandler para guardar la lista de documentos abiertos actualmente en el registro. Este método no guarda automáticamente ningún archivo.

Para personalizar el comportamiento, invalide esta función en una clase CWinApp derivada o pase su propio método de recuperación de aplicaciones como parámetro a CWinApp::RegisterWithRestartManager.

CWinApp::CloseAllDocuments

Llame a esta función miembro para cerrar todos los documentos abiertos antes de salir.

void CloseAllDocuments(BOOL bEndSession);

Parámetros

bEndSession
Especifica si se está finalizando o no la sesión de Windows. Es TRUE si se está finalizando la sesión; de lo contrario, FALSE.

Comentarios

Llame a HideApplication antes de llamar a CloseAllDocuments.

CWinApp::CreatePrinterDC

Llame a esta función miembro para crear un contexto de dispositivo de impresora (DC) a partir de la impresora seleccionada.

BOOL CreatePrinterDC(CDC& dc);

Parámetros

dc
Referencia a un contexto de dispositivo de impresora.

Valor devuelto

Distinto de cero si el contexto del dispositivo de impresora se crea correctamente; de lo contrario, 0.

Comentarios

CreatePrinterDC inicializa el contexto del dispositivo que pasa por referencia, por lo que puede usarlo para imprimirlo.

Si la función se realiza correctamente, cuando haya terminado la impresión, debe destruir el contexto del dispositivo. Puede permitir que el destructor del objeto CDC lo haga, o puede hacerlo explícitamente llamando a CDC::DeleteDC.

CWinApp::CWinApp

Construye un objeto CWinApp y pasa lpszAppName para almacenarlo como nombre de la aplicación.

CWinApp(LPCTSTR lpszAppName = NULL);

Parámetros

lpszAppName
Cadena terminada en NULL que contiene el nombre de la aplicación que Windows usa. Si no se proporciona este argumento o es NULL, CWinApp usa la cadena de recurso AFX_IDS_APP_TITLE o el nombre de archivo del archivo ejecutable.

Comentarios

Debe construir un objeto global de la clase derivada de CWinApp. Solo puede haber un único objeto CWinApp en la aplicación. El constructor almacena un puntero al objeto CWinApp para que WinMain pueda llamar a las funciones miembro del objeto para inicializar y ejecutar la aplicación.

CWinApp::DelRegTree

Elimina una clave del Registro específica y todas sus subclaves.

LONG DelRegTree(
    HKEY hParentKey,
    const CString& strKeyName);

LONG DelRegTree(
    HKEY hParentKey,
    const CString& strKeyName,
    CAtlTransactionManager* pTM = NULL);

Parámetros

hParentKey
Identificador de una clave del Registro.

strKeyName
Nombre de la clave del Registro que se va a eliminar.

pTM
Puntero al objeto CAtlTransactionManager.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es ERROR_SUCCESS. Si la función no se ejecuta correctamente, el valor devuelto es un código de error distinto de cero definido en Winerror.h.

Comentarios

Llame a esta función para eliminar la clave especificada y sus subclaves.

CWinApp::DoMessageBox

El marco llama a esta función miembro para implementar un cuadro de mensaje para la función global AfxMessageBox.

virtual int DoMessageBox(
    LPCTSTR lpszPrompt,
    UINT nType,
    UINT nIDPrompt);

Parámetros

lpszPrompt
Dirección del texto en el cuadro de mensaje.

nType
El estilo del cuadro de mensaje.

nIDPrompt
Índice de una cadena de contexto de ayuda.

Valor devuelto

Devuelve los mismos valores que AfxMessageBox.

Comentarios

No llame a esta función miembro para abrir un cuadro de mensaje; use AfxMessageBox en su lugar.

Invalide esta función miembro para personalizar el procesamiento de llamadas AfxMessageBox en toda la aplicación.

CWinApp::DoWaitCursor

El marco llama a esta función miembro para implementar CWaitCursor, CCmdTarget::BeginWaitCursor, CCmdTarget::EndWaitCursor y CCmdTarget::RestoreWaitCursor.

virtual void DoWaitCursor(int nCode);

Parámetros

nCode
Si este parámetro es 1, aparece un cursor de espera. Si es 0, el cursor de espera se restaura sin incrementar el recuento de referencia. Si es -1, el cursor de espera finaliza.

Comentarios

El valor predeterminado implementa un cursor de reloj de arena. DoWaitCursor mantiene un recuento de referencia. Cuando es positivo, se muestra el cursor de reloj de arena.

Aunque por lo general no llamará a DoWaitCursor directamente, puede invalidar esta función miembro para cambiar el cursor de espera o para realizar un procesamiento adicional mientras se muestra el cursor de espera.

Para una manera más sencilla y simplificada de implementar un cursor de espera, use CWaitCursor.

Ejemplo

// The following example shows how to display the
// hourglass cursor during some lengthy processing
void CMdiView::OnLButtonDown(UINT nFlags, CPoint point)
{
   UNREFERENCED_PARAMETER(nFlags);
   UNREFERENCED_PARAMETER(point);

   AfxGetApp()->DoWaitCursor(1); // 1->>display the hourglass cursor

   // do some lengthy processing
   Sleep(1000);

   AfxGetApp()->DoWaitCursor(-1); // -1->>remove the hourglass cursor
}

// The next example shows DoWaitCursor with parameter 0. It restores
// the hourglass cursor.
void CMdiView::OnMButtonDown(UINT nFlags, CPoint point)
{
   UNREFERENCED_PARAMETER(nFlags);
   UNREFERENCED_PARAMETER(point);

   AfxGetApp()->DoWaitCursor(1); // display the hourglass cursor

   // do some lengthy processing

   // The message box will normally change the cursor to
   // the standard arrow cursor, and leave the cursor in
   // as the standard arrow cursor when the message box is
   // closed.
   AfxMessageBox(_T("DoWaitCursor Sample"));

   // Call DoWaitCursor with parameter 0 to restore
   // the cursor back to the hourglass cursor.
   AfxGetApp()->DoWaitCursor(0);

   // do some more lengthy processing
   Sleep(1000);

   AfxGetApp()->DoWaitCursor(-1); // remove the hourglass cursor
}

CWinApp::EnableD2DSupport

Se requiere Visual Studio 2010 SP1.

Habilita la compatibilidad con D2D de la aplicación. Llame a este método antes de que se inicialice la ventana principal.

BOOL EnableD2DSupport(
    D2D1_FACTORY_TYPE d2dFactoryType = D2D1_FACTORY_TYPE_SINGLE_THREADED,
    DWRITE_FACTORY_TYPE writeFactoryType = DWRITE_FACTORY_TYPE_SHARED);

Parámetros

d2dFactoryType
Modelo de subprocesos de la factoría D2D y los recursos que crea.

writeFactoryType
Valor que especifica si el objeto de fábrica de escritura se compartirá o aislará

Valor devuelto

Devuelve TRUE si la compatibilidad con D2D estaba habilitada; FALSE, de lo contrario.

CWinApp::EnableHtmlHelp

Llame a esta función miembro desde el constructor de la clase derivada de CWinApp para usar HTMLHelp para la ayuda de la aplicación.

void EnableHtmlHelp();

Comentarios

CWinApp::EnableShellOpen

Llame a esta función, normalmente desde la invalidación de InitInstance, para permitir que los usuarios de la aplicación abran archivos de datos cuando hagan doble clic en los archivos desde el administrador de archivos de Windows.

void EnableShellOpen();

Comentarios

Llame a la función miembro RegisterShellFileTypes junto con esta función o proporcione un archivo .REG con su aplicación para el registro manual de tipos de documento.

Ejemplo

// The following code fragment is from CMyApp::InitInstance.
// CMyApp is a CWinApp-derived class.

// enable file manager drag/drop and DDE Execute open
EnableShellOpen();
RegisterShellFileTypes();

CWinApp::EnableTaskbarInteraction

Habilita la interacción de la barra de tareas.

BOOL EnableTaskbarInteraction(BOOL bEnable = TRUE);

Parámetros

bEnable
Especifica si la interacción con la barra de tareas de Windows 7 debe estar habilitada (TRUE) o deshabilitada (FALSE).

Valor devuelto

Devuelve TRUE si la interacción de la barra de tareas se puede habilitar o deshabilitar.

Comentarios

Se debe llamar a este método antes de crear la ventana principal; de lo contrario, se mantiene y devuelve FALSE.

CWinApp::ExitInstance

Lo llama el marco de trabajo desde dentro de la función miembro Run para salir de esta instancia de la aplicación.

virtual int ExitInstance();

Valor devuelto

Código de salida de la aplicación; 0 indica que no hay errores y los valores mayores que 0 indican un error. Este valor se usa como valor devuelto de WinMain.

Comentarios

No llame a esta función miembro desde ningún otro lugar que no sea desde dentro de la función miembro Run.

La implementación predeterminada de esta función escribe opciones de marco en el archivo .INI de la aplicación. Invalide esta función para limpiar cuando finaliza la aplicación.

Ejemplo

int CMyApp::ExitInstance()
{
   if (m_pMySampleMem)
      delete m_pMySampleMem;

   DoCleanup();

   return CWinApp::ExitInstance();
}

CWinApp::GetApplicationRecoveryParameter

Recupera el parámetro de entrada para el método de recuperación de aplicaciones.

virtual LPVOID GetApplicationRecoveryParameter();

Valor devuelto

Parámetro de entrada predeterminado para el método de recuperación de aplicaciones.

Comentarios

El comportamiento predeterminado de esta función devuelve NULL.

Para más información, vea CWinApp::ApplicationRecoveryCallback.

CWinApp::GetApplicationRecoveryPingInterval

Devuelve el período de tiempo que el administrador de reinicio espera a que se devuelva la función de devolución de llamada de recuperación.

virtual DWORD GetApplicationRecoveryPingInterval();

Valor devuelto

Tiempo en milisegundos.

Comentarios

Cuando una aplicación registrada con el administrador de reinicio sale inesperadamente, la aplicación intenta guardar los documentos abiertos y llama a la función de devolución de llamada de recuperación. La función de devolución de llamada de recuperación predeterminada es CWinApp::ApplicationRecoveryCallback.

El período de tiempo que el marco espera a que la función de devolución de llamada de recuperación devuelva es el intervalo de ping. Puede personalizar el intervalo de ping invalidando CWinApp::GetApplicationRecoveryPingInterval o proporcionando un valor personalizado a RegisterWithRestartManager.

CWinApp::GetApplicationRestartFlags

Devuelve las marcas del administrador de reinicio.

virtual DWORD GetApplicationRestartFlags();

Valor devuelto

Marcas para el administrador de reinicio. La implementación predeterminada devuelve cero.

Comentarios

Las marcas del administrador de reinicio no tienen ningún efecto con la implementación predeterminada. Se proporcionan para su uso futuro.

Las marcas se establecen al registrar la aplicación con el administrador de reinicio mediante CWinApp::RegisterWithRestartManager.

Los valores posibles para las marcas del administrador de reinicio son los siguientes:

  • RESTART_NO_CRASH

  • RESTART_NO_HANG

  • RESTART_NO_PATCH

  • RESTART_NO_REBOOT

CWinApp::GetAppRegistryKey

Devuelve la clave para HKEY_CURRENT_USER\"Software"\RegistryKey\ProfileName.

HKEY GetAppRegistryKey(CAtlTransactionManager* pTM = NULL);

Parámetros

pTM
Un puntero a un objeto CAtlTransactionManager.

Valor devuelto

Clave de aplicación si la función se realiza correctamente; en caso contrario, NULL.

Comentarios

CWinApp::GetDataRecoveryHandler

Obtiene el controlador de recuperación de datos para esta instancia de la aplicación.

virtual CDataRecoveryHandler *GetDataRecoveryHandler();

Valor devuelto

Controlador de recuperación de datos para esta instancia de la aplicación.

Comentarios

Cada aplicación que usa el administrador de reinicio debe tener una instancia de la clase CDataRecoveryHandler. Esta clase es responsable de supervisar los documentos abiertos y los archivos de guardado automático. El comportamiento de CDataRecoveryHandler depende de la configuración del administrador de reinicio. Para más información, vea la case CDataRecoveryHandler.

Este método devuelve NULL en sistemas operativos anteriores a Windows Vista. El administrador de reinicio no se admite en sistemas operativos anteriores a Windows Vista.

Si la aplicación no tiene actualmente un controlador de recuperación de datos, este método crea uno y le devuelve un puntero.

CWinApp::GetFirstDocTemplatePosition

Obtiene la posición de la primera plantilla de documento en la aplicación.

POSITION GetFirstDocTemplatePosition() const;

Valor devuelto

Valor POSITION que se puede usar para la recuperación del puntero de objeto o iteración; NULL si la lista está vacía.

Comentarios

Use el valor POSITION devuelto en una llamada a GetNextDocTemplate para obtener el primer objeto CDocTemplate.

CWinApp::GetHelpMode

Recupera el tipo de ayuda que usa la aplicación.

AFX_HELP_TYPE GetHelpMode();

Valor devuelto

Tipo de ayuda utilizado por la aplicación. Consulte CWinApp::m_eHelpType para más información.

CWinApp::GetNextDocTemplate

Obtiene la plantilla de documento identificada por pos y, a continuación, establece pos en el valor POSITION.

CDocTemplate* GetNextDocTemplate(POSITION& pos) const;

Parámetros

pos
Referencia a un valor de POSITION devuelto por una llamada anterior a GetNextDocTemplate o GetFirstDocTemplatePosition. Esta llamada actualiza el valor a la siguiente posición.

Valor devuelto

Puntero a un objeto CDocTemplate.

Comentarios

Puede usar GetNextDocTemplate en un bucle de iteración hacia delante si establece la posición inicial con una llamada a GetFirstDocTemplatePosition.

Debe asegurarse de que el valor de POSITION sea válido. Si no es válida, se impone la versión de depuración de la biblioteca MFC (Microsoft Foundation Class).

Si la plantilla de documento recuperada es la última disponible, el nuevo valor de pos se establece en NULL.

CWinApp::GetPrinterDeviceDefaults

Llame a esta función miembro para preparar un contexto de dispositivo de impresora para la impresión.

BOOL GetPrinterDeviceDefaults(struct tagPDA* pPrintDlg);

Parámetros

pPrintDlg
Puntero a una estructura PRINTDLG.

Valor devuelto

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

Comentarios

Recupera los valores predeterminados para la impresora actual del archivo .INI de Windows según sea necesario, o usa la última configuración de impresora establecida por el usuario en Configurar impresión.

Ejemplo

void CMyApp::SetLandscapeMode()
{
   PRINTDLG pd;
   pd.lStructSize = (DWORD)sizeof(PRINTDLG);
   BOOL bRet = GetPrinterDeviceDefaults(&pd);
   if (bRet)
   {
      // protect memory handle with ::GlobalLock and ::GlobalUnlock
      DEVMODE FAR *pDevMode = (DEVMODE FAR*)::GlobalLock(pd.hDevMode);
      // set orientation to landscape
      pDevMode->dmOrientation = DMORIENT_LANDSCAPE;
      ::GlobalUnlock(pd.hDevMode);
   }
}

CWinApp::GetProfileBinary

Llame a esta función miembro para recuperar los datos binarios de una entrada dentro de una sección especificada del registro o el archivo .INI de la aplicación.

BOOL GetProfileBinary(
    LPCTSTR lpszSection,
    LPCTSTR lpszEntry,
    LPBYTE* ppData,
    UINT* pBytes);

Parámetros

lpszSection
Apunta a una cadena terminada en NULL que especifica la sección que contiene la entrada.

lpszEntry
Apunta a una cadena terminada en NULL que contiene la entrada cuyo valor se va a recuperar.

ppData
Apunta a un puntero que recibirá la dirección de los datos.

pBytes
Apunta a un UINT que recibirá el tamaño de los datos (en bytes).

Valor devuelto

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

Comentarios

Esta función miembro no distingue mayúsculas de minúsculas, por lo que las cadenas de los parámetros lpszSection e lpszEntry pueden diferir en las mayúsculas y minúsculas.

Nota:

GetProfileBinary asigna un búfer y devuelve su dirección en * ppData. El autor de la llamada es responsable de liberar el búfer mediante delete [].

Importante

Los datos devueltos por esta función no están terminados en NULL necesariamente y el llamador debe realizar la validación. Para obtener más información, vea Avoiding Buffer Overruns(Evitar saturaciones del búfer).

Ejemplo

CWinApp* pApp = AfxGetApp();

const TCHAR* pszKey = _T("My Section");
struct complex {
  double re, im;
} myData = { 1.4142, -0.5 };

// Write the information to the registry.

pApp->WriteProfileBinary(pszKey, _T("ComplexData"), (LPBYTE)&myData, 
   sizeof(myData));

// Read the information from the registry.

complex* pData;
UINT n;
BOOL ret = pApp->GetProfileBinary(pszKey, _T("ComplexData"), (LPBYTE*)&pData, 
   &n);

ASSERT(ret);
ASSERT(n == sizeof(complex));
ASSERT(myData.re == pData->re);
ASSERT(myData.im == pData->im);
delete [] pData; // free the buffer

Para un ejemplo adicional, vea CWinApp::WriteProfileBinary.

CWinApp::GetProfileInt

Llame a esta función miembro para recuperar el valor de un entero de una entrada dentro de una sección especificada del registro o el archivo .INI de la aplicación.

UINT GetProfileInt(
    LPCTSTR lpszSection,
    LPCTSTR lpszEntry,
    int nDefault);

Parámetros

lpszSection
Apunta a una cadena terminada en NULL que especifica la sección que contiene la entrada.

lpszEntry
Apunta a una cadena terminada en NULL que contiene la entrada cuyo valor se va a recuperar.

nDefault
Especifica el valor predeterminado que se devolverá si el marco no puede encontrar la entrada.

Valor devuelto

Valor entero de la cadena que hay a continuación de la entrada especificada si la función se realiza correctamente. El valor devuelto es el valor del parámetro nDefault si la función no encuentra la entrada. El valor devuelto es 0 si el valor correspondiente a la entrada especificada no es un entero.

Esta función miembro admite la notación hexadecimal para el valor del archivo .INI. Cuando se recupera un entero con signo, el valor se debe convertir en int.

Comentarios

Esta función miembro no distingue mayúsculas de minúsculas, por lo que las cadenas de los parámetros lpszSection e lpszEntry pueden diferir en las mayúsculas y minúsculas.

Importante

Los datos devueltos por esta función no están terminados en NULL necesariamente y el llamador debe realizar la validación. Para obtener más información, vea Avoiding Buffer Overruns(Evitar saturaciones del búfer).

Ejemplo

CWinApp *pApp = AfxGetApp();

const TCHAR *pszKey = _T("My Section");
const TCHAR *pszName = _T("Julian");
int iAge = 26;

// Write the information to the registry.

pApp->WriteProfileString(pszKey, _T("Name"), pszName);
pApp->WriteProfileInt(pszKey, _T("Age"), iAge);

// Read the information from the registry.

CString strName = pApp->GetProfileString(pszKey, _T("Name"));
int iAge2 = pApp->GetProfileInt(pszKey, _T("Age"), 0);

ASSERT(strName == pszName);
ASSERT(iAge2 == iAge);

Para un ejemplo adicional, vea CWinApp::WriteProfileInt.

CWinApp::GetProfileString

Llame a esta función miembro para recuperar la cadena asociada a una entrada dentro de la sección especificada del registro o el archivo .INI de la aplicación.

CString GetProfileString(
    LPCTSTR lpszSection,
    LPCTSTR lpszEntry,
    LPCTSTR lpszDefault = NULL);

Parámetros

lpszSection
Apunta a una cadena terminada en NULL que especifica la sección que contiene la entrada.

lpszEntry
Apunta a una cadena terminada en NULL que contiene la entrada cuya cadena se va a recuperar. Este valor no debe ser NULL.

lpszDefault
Apunta al valor de cadena predeterminado de la entrada especificada si no se encuentra la entrada en el archivo de inicialización.

Valor devuelto

El valor devuelto es la cadena del archivo .INI de la aplicación o lpszDefault si no se encuentra la cadena. La longitud máxima de la cadena admitida por el marco es _MAX_PATH. Si lpszDefault es NULL, el valor devuelto es una cadena vacía.

Comentarios

Importante

Los datos devueltos por esta función no están terminados en NULL necesariamente y el llamador debe realizar la validación. Para obtener más información, vea Avoiding Buffer Overruns(Evitar saturaciones del búfer).

Ejemplo

CWinApp *pApp = AfxGetApp();

CString strSection = _T("My Section");
CString strStringItem = _T("My String Item");
CString strIntItem = _T("My Int Item");

pApp->WriteProfileString(strSection, strStringItem, _T("test"));

CString strValue;
strValue = pApp->GetProfileString(strSection, strStringItem);
ASSERT(strValue == _T("test"));

pApp->WriteProfileInt(strSection, strIntItem, 1234);

int nValue;
nValue = pApp->GetProfileInt(strSection, strIntItem, 0);
ASSERT(nValue == 1234);

Para otro ejemplo, vea el de CWinApp::GetProfileInt.

CWinApp::GetSectionKey

Devuelve la clave para HKEY_CURRENT_USER\"Software"\RegistryKey\AppName\lpszSection.

HKEY GetSectionKey(
    LPCTSTR lpszSection,
    CAtlTransactionManager* pTM = NULL);

Parámetros

lpszSection
El nombre de la clave que se va a obtener.

pTM
Un puntero a un objeto CAtlTransactionManager.

Valor devuelto

Clave de sección si la función se realiza correctamente; en caso contrario, NULL.

Comentarios

CWinApp::HideApplication

Llame a esta función miembro para ocultar una aplicación antes de cerrar los documentos abiertos.

void HideApplication();

CWinApp::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. El valor predeterminado es 0x000F que significa HH_HELP_CONTEXT.

nCmd
Especifica el tipo de ayuda solicitado. Para una lista de los valores posibles y cómo afectan al parámetro dwData, consulte el parámetro uCommand descrito en las funciones de API HtmlHelpW o HtmlHelpA en Windows SDK.

Comentarios

El marco también llama a esta función para invocar a la aplicación HTMLHelp.

El marco cerrará automáticamente la aplicación HTMLHelp cuando finalice la aplicación.

CWinApp::InitInstance

Windows permite que varias copias del mismo programa se ejecuten al mismo tiempo.

virtual BOOL InitInstance();

Valor devuelto

Valor distinto de cero si la inicialización se lleva a cabo correctamente; de lo contrario, es 0.

Comentarios

La inicialización de la aplicación se divide conceptualmente en dos secciones: la inicialización de una sola vez de la aplicación, que se realiza la primera vez que se ejecuta el programa, y la inicialización de instancia, que se ejecuta cada vez que se ejecuta una copia del programa, incluida la primera vez. La implementación que hace el marco de WinMain llama a esta función.

Se invalida InitInstance para inicializar cada nueva instancia de la aplicación que se ejecuta en Windows. Normalmente, se invalida InitInstance para construir el objeto de ventana principal y establecer el miembro de datos CWinThread::m_pMainWnd para que apunte a esa ventana. Para más información sobre cómo invalidar esta función miembro, vea CWinApp: clase Application.

Nota:

Las aplicaciones MFC deben inicializarse como contenedor uniproceso (STA). Si llama CoInitializeEx en su invalidación InitInstance, especifique COINIT_APARTMENTTHREADED (rather than COINIT_MULTITHREADED).

Ejemplo

// AppWizard implements the InitInstance overridable function 
// according to options you select.  For example, the multiple document
// interface (MDI) option was chosen for the AppWizard code created
// below. You can add other per-instance initializations to the code
// created by AppWizard.

BOOL CMFCListViewApp::InitInstance()
{
   AfxSetAmbientActCtx(FALSE);
   // Remainder of function definition omitted.

   CWinApp::InitInstance();

   // Initialize OLE libraries
   if (!AfxOleInit())
   {
      AfxMessageBox(_T("OleInit failed."));
      return FALSE;
   }

   // Standard initialization
   // If you are not using these features and wish to reduce the size
   // of your final executable, you should remove from the following
   // the specific initialization routines you do not need
   // Change the registry key under which our settings are stored
   // TODO: You should modify this string to be something appropriate
   // such as the name of your company or organization
   SetRegistryKey(_T("Local AppWizard-Generated Applications"));
   LoadStdProfileSettings(4);  // Load standard INI file options (including MRU)
   // Register the application's document templates.  Document templates
   //  serve as the connection between documents, frame windows and views
   CMultiDocTemplate* pDocTemplate;
   pDocTemplate = new CMultiDocTemplate(IDR_MFCListViewTYPE,
      RUNTIME_CLASS(CMFCListViewDoc),
      RUNTIME_CLASS(CChildFrame), // custom MDI child frame
      RUNTIME_CLASS(CMyListView));
   if (!pDocTemplate)
      return FALSE;
   AddDocTemplate(pDocTemplate);

   // create main MDI Frame window
   CMainFrame* pMainFrame = new CMainFrame;
   if (!pMainFrame || !pMainFrame->LoadFrame(IDR_MAINFRAME))
   {
      delete pMainFrame;
      return FALSE;
   }
   m_pMainWnd = pMainFrame;
   // call DragAcceptFiles only if there's a suffix
   //  In an MDI app, this should occur immediately after setting m_pMainWnd


   // Parse command line for standard shell commands, DDE, file open
   CCommandLineInfo cmdInfo;
   ParseCommandLine(cmdInfo);


   // Dispatch commands specified on the command line.  Will return FALSE if
   // app was launched with /RegServer, /Register, /Unregserver or /Unregister.
   if (!ProcessShellCommand(cmdInfo))
      return FALSE;
   // The main window has been initialized, so show and update it
   pMainFrame->ShowWindow(m_nCmdShow);
   pMainFrame->UpdateWindow();

   return TRUE;
}

CWinApp::IsTaskbarInteractionEnabled

Indica si la interacción de la barra de tareas de Windows 7 está habilitada.

virtual BOOL IsTaskbarInteractionEnabled();

Valor devuelto

Devuelve TRUE si se ha llamado a EnableTaskbarInteraction y el sistema operativo es Windows 7 o superior.

Comentarios

La interacción de la barra de tareas significa que la aplicación MDI muestra el contenido de los elementos secundarios MDI en miniaturas con fichas independientes que aparecen cuando el puntero del mouse está sobre el botón de la barra de tareas de la aplicación.

CWinApp::LoadCursor

Carga el recurso de cursor nombrado por lpszResourceName o especificado por nIDResource desde el archivo ejecutable actual.

HCURSOR LoadCursor(LPCTSTR lpszResourceName) const;  HCURSOR LoadCursor(UINT nIDResource) const;

Parámetros

lpszResourceName
Apunta a una cadena finalizada en null que contiene el nombre del recurso de cursor. Puede usar CString para este argumento.

nIDResource
Id. del recurso de cursor. Para una lista de recursos, consulte LoadCursor en Windows SDK.

Valor devuelto

Identificador de un cursor si se ejecuta correctamente; en caso contrario, NULL.

Comentarios

LoadCursor carga el cursor en la memoria solo si no se ha cargado previamente; de lo contrario, recupera un identificador del recurso existente.

Use la función miembro LoadStandardCursor o LoadOEMCursor para acceder a los cursores predefinidos de Windows.

Ejemplo

HCURSOR hCursor;

// Load a cursor resource that was originally created using
// the Graphics Editor and assigned the i.d. IDC_MYCURSOR.
hCursor = AfxGetApp()->LoadCursor(IDC_MYCURSOR);

CWinApp::LoadIcon

Carga el recurso de icono nombrado por lpszResourceName o especificado por nIDResource desde el archivo ejecutable.

HICON LoadIcon(LPCTSTR lpszResourceName) const;  HICON LoadIcon(UINT nIDResource) const;

Parámetros

lpszResourceName
Apunta a una cadena finalizada en null que contiene el nombre del recurso de icono. También puede usar CString para este argumento.

nIDResource
Número de id. del recurso de icono.

Valor devuelto

Identificador de un icono si se ejecuta correctamente; en caso contrario, NULL.

Comentarios

LoadIcon carga el icono si no se ha cargado previamente; de lo contrario, recupera un identificador del recurso existente.

Puede usar la función miembro LoadStandardIcon o LoadOEMIcon para acceder a los iconos predefinidos de Windows.

Nota:

Esta función miembro llama a la función LoadIcon de la API Win32, que solo puede cargar un icono cuyo tamaño se ajuste a los valores SM_CXICON y SM_CYICON de las métricas del sistema.

CWinApp::LoadOEMCursor

Carga el recurso de cursor predefinido de Windows especificado por nIDCursor.

HCURSOR LoadOEMCursor(UINT nIDCursor) const;

Parámetros

nIDCursor
Identificador de constante de manifiesto OCR_ que especifica un cursor de Windows predefinido. #define OEMRESOURCE debe encontrarse antes de #include \<afxwin.h> para obtener acceso a las constantes OCR_ en WINDOWS.H.

Valor devuelto

Identificador de un cursor si se ejecuta correctamente; en caso contrario, NULL.

Comentarios

Use la función miembro LoadOEMCursor o LoadStandardCursor para acceder a los cursores predefinidos de Windows.

Ejemplo

// In the stdafx.h file, add #define OEMRESOURCE to
// include the windows.h definitions of OCR_ values.
#define OEMRESOURCE
#include <afxwin.h> // MFC core and standard components
#include <afxext.h> // MFC extensions

 

HCURSOR hCursor;
// Load the predefined WIndows "size all" cursor.
hCursor = AfxGetApp()->LoadOEMCursor(OCR_SIZEALL);

CWinApp::LoadOEMIcon

Carga el recurso de icono predefinido de Windows especificado por nIDIcon.

HICON LoadOEMIcon(UINT nIDIcon) const;

Parámetros

nIDIcon
Identificador de constante de manifiesto OIC_ que especifica un icono de Windows predefinido. #define OEMRESOURCE debe encontrarse antes de #include \<afxwin.h> para acceder a las constantes OIC_ en WINDOWS.H.

Valor devuelto

Identificador de un icono si se ejecuta correctamente; en caso contrario, NULL.

Comentarios

Use la función miembro LoadOEMIcon o LoadStandardIcon para acceder a los iconos predefinidos de Windows.

CWinApp::LoadStandardCursor

Carga el recurso de cursor predefinido de Windows que lpszCursorName especifica.

HCURSOR LoadStandardCursor(LPCTSTR lpszCursorName) const;

Parámetros

lpszCursorName
Identificador de constante de manifiesto IDC_ que especifica un cursor de Windows predefinido. Estos identificadores se definen en WINDOWS.H. En la lista siguiente se muestran los posibles valores predefinidos y los significados de lpszCursorName:

  • IDC_ARROW es el cursor de flecha estándar.

  • IDC_IBEAM es el cursor de inserción de texto estándar.

  • IDC_WAIT es el cursor de reloj de arena usado cuando Windows realiza una tarea que consume mucho tiempo.

  • IDC_CROSS es el cursor de cruz para la selección.

  • IDC_UPARROW es la flecha que apunta hacia arriba.

  • IDC_SIZE está obsoleto y no se admite; se debe usar IDC_SIZEALL.

  • IDC_SIZEALL es una flecha de cuatro puntas. Cursor que se va a usar para cambiar el tamaño de una ventana.

  • IDC_ICON está obsoleto y no se admite. Use IDC_ARROW.

  • IDC_SIZENWSE es la flecha de dos puntas con extremos en la parte superior izquierda e inferior derecha.

  • IDC_SIZENESW es la flecha de dos puntas con extremos en la parte superior derecha e inferior izquierda.

  • IDC_SIZEWE es la flecha de dos puntas horizontales.

  • IDC_SIZENS es la flecha vertical de dos puntas.

Valor devuelto

Identificador de un cursor si se ejecuta correctamente; en caso contrario, NULL.

Comentarios

Use la función miembro LoadStandardCursor o LoadOEMCursor para acceder a los cursores predefinidos de Windows.

Ejemplo

HCURSOR hCursor;

// Load the predefined Windows "up arrow" cursor.
hCursor = AfxGetApp()->LoadStandardCursor(IDC_UPARROW);

CWinApp::LoadStandardIcon

Carga el recurso de icono predefinido de Windows que lpszIconName especifica.

HICON LoadStandardIcon(LPCTSTR lpszIconName) const;

Parámetros

lpszIconName
Identificador de constante de manifiesto que especifica un icono de Windows predefinido. Estos identificadores se definen en WINDOWS.H. Para obtener una lista de los posibles valores predefinidos y sus descripciones, consulte el parámetro lpIconName en LoadIcon en Windows SDK.

Valor devuelto

Identificador de un icono si se ejecuta correctamente; en caso contrario, NULL.

Comentarios

Use la función miembro LoadStandardIcon o LoadOEMIcon para acceder a los iconos predefinidos de Windows.

CWinApp::LoadStdProfileSettings

Llame a esta función miembro desde la función miembro InitInstance para habilitar y cargar la lista de archivos usados más recientemente (MRU) y el último estado de vista previa.

void LoadStdProfileSettings(UINT nMaxMRU = _AFX_MRU_COUNT);

Parámetros

nMaxMRU
Número de archivos usados recientemente para realizar el seguimiento.

Comentarios

Si nMaxMRU es 0, no se mantendrá ninguna lista de MRU.

CWinApp::m_bHelpMode

TRUE si la aplicación está en modo de contexto de ayuda (invocada convencionalmente con MAYÚS+F1); en caso contrario, FALSE.

BOOL m_bHelpMode;

Comentarios

En el modo de contexto de ayuda, el cursor se convierte en un signo de interrogación y el usuario puede moverlo sobre la pantalla. Examine esta marca si desea implementar un control especial cuando se encuentra en el modo de ayuda. m_bHelpMode es una variable pública de tipo BOOL.

CWinApp::m_dwRestartManagerSupportFlags

Marcas que determinan cómo se comporta el administrador de reinicio.

DWORD m_dwRestartManagerSupportFlags;

Comentarios

Para habilitar el administrador de reinicio, establezca m_dwRestartManagerSupportFlags en el comportamiento que desee. En la tabla siguiente se muestran las marcas que están disponibles.

Marca Descripción
AFX_RESTART_MANAGER_SUPPORT_RESTART La aplicación se registra mediante CWinApp::RegisterWithRestartManager. El administrador de reinicio es responsable de reiniciar la aplicación si sale inesperadamente.
- AFX_RESTART_MANAGER_SUPPORT_RECOVERY La aplicación se registra con el administrador de reinicio y el administrador de reinicio llama a la función de devolución de llamada de recuperación cuando reinicia la aplicación. La función de devolución de llamada de recuperación predeterminada es CWinApp::ApplicationRecoveryCallback.
- AFX_RESTART_MANAGER_AUTOSAVE_AT_RESTART Se habilita el autoguardado y el administrador de reinicio guarda automáticamente los documentos abiertos cuando se reinicia la aplicación.
- AFX_RESTART_MANAGER_AUTOSAVE_AT_INTERVAL Se habilita el autoguardado y el administrador de reinicio guarda automáticamente los documentos abiertos a intervalos regulares. El intervalo se define mediante CWinApp::m_nAutosaveInterval.
- AFX_RESTART_MANAGER_REOPEN_PREVIOUS_FILES El administrador de reinicio abre los documentos abiertos previamente después de reiniciar la aplicación por una salida inesperada. La clase CDataRecoveryHandler controla el almacenamiento de la lista de documentos abiertos y su restauración.
- AFX_RESTART_MANAGER_RESTORE_AUTOSAVED_FILES El administrador de reinicio solicita al usuario que restaure los archivos guardados automáticamente después de reiniciar la aplicación. La clase CDataRecoveryHandler consulta al usuario.
- AFX_RESTART_MANAGER_SUPPORT_NO_AUTOSAVE Unión de AFX_RESTART_MANAGER_SUPPORT_RESTART, AFX_RESTART_MANAGER_SUPPORT_RECOVER y AFX_RESTART_MANAGER_REOPEN_PREVIOUS_FILES.
- AFX_RESTART_MANAGER_SUPPORT_ALL_ASPECTS Unión de AFX_RESTART_MANAGER_SUPPORT_NO_AUTOSAVE, AFX_RESTART_MANAGER_AUTOSAVE_AT_RESTART, AFX_RESTART_MANAGER_AUTOSAVE_AT_INTERVAL y AFX_RESTART_MANAGER_RESTORE_AUTOSAVED_FILES.
- AFX_RESTART_MANAGER_SUPPORT_RESTART_ASPECTS Unión de AFX_RESTART_MANAGER_SUPPORT_RESTART, AFX_RESTART_MANAGER_AUTOSAVE_AT_RESTART, AFX_RESTART_MANAGER_REOPEN_PREVIOUS_FILES y AFX_RESTART_MANAGER_RESTORE_AUTOSAVED_FILES.
- AFX_RESTART_MANAGER_SUPPORT_RECOVERY_ASPECTS Unión de ofAFX_RESTART_MANAGER_SUPPORT_RECOVERY, AFX_RESTART_MANAGER_AUTOSAVE_AT_INTERVAL, AFX_RESTART_MANAGER_REOPEN_PREVIOUS_FILES y AFX_RESTART_MANAGER_RESTORE_AUTOSAVED_FILES.

CWinApp::m_eHelpType

El tipo de este miembro de datos es el tipo enumerado AFX_HELP_TYPE, que se define dentro de la clase CWinApp.

AFX_HELP_TYPE m_eHelpType;

Comentarios

La enumeración AFX_HELP_TYPE se define de la siguiente manera:

enum AFX_HELP_TYPE {
    afxWinHelp = 0,
    afxHTMLHelp = 1
    };
  • Para establecer la ayuda de la aplicación en la ayuda HTML, llame a SetHelpMode y especifique afxHTMLHelp.

  • Para establecer la ayuda de la aplicación en WinHelp, llame a SetHelpMode y especifique afxWinHelp.

CWinApp::m_hInstance

Corresponde al parámetro hInstance que se pasa por Windows a WinMain.

HINSTANCE m_hInstance;

Comentarios

El miembro de datos m_hInstance es un identificador de la instancia actual de la aplicación que se ejecuta en Windows. Lo devuelve la función global AfxGetInstanceHandle. m_hInstance es una variable pública de tipo HINSTANCE.

Ejemplo

// Typically you do not need to pass the application's hInstance
// to Windows APIs directly because there are equivalent MFC
// member functions that pass the hInstance for you.  The following
// example is not typical:

HCURSOR hCursor;
hCursor = ::LoadCursor(AfxGetApp()->m_hInstance, 
   MAKEINTRESOURCE(IDC_MYCURSOR));

// A more direct way to get the application's hInstance is to
// call AfxGetInstanceHandle:
hCursor = ::LoadCursor(AfxGetInstanceHandle(), 
   MAKEINTRESOURCE(IDC_MYCURSOR));

// If you need the hInstance to load a resource, it is better
// to call AfxGetResourceHandle instead of AfxGetInstanceHandle:
hCursor = ::LoadCursor(AfxGetResourceHandle(), 
   MAKEINTRESOURCE(IDC_MYCURSOR));

// A better way to load the cursor resource is to call
// CWinApp::LoadCursor
hCursor = AfxGetApp()->LoadCursor(IDC_MYCURSOR);

CWinApp::m_lpCmdLine

Corresponde al parámetro lpCmdLine que se pasa por Windows a WinMain.

LPTSTR m_lpCmdLine;

Comentarios

Apunta a una cadena terminada en un valor NULL que especifica la línea de comandos para la aplicación. Use m_lpCmdLine para acceder a los argumentos de la línea de comandos que el usuario escribió al iniciar la aplicación. m_lpCmdLine es una variable pública de tipo LPTSTR.

Ejemplo

if (m_lpCmdLine[0] == _T('\0'))
{
   // Create a new (empty) document.
   OnFileNew();
}
else
{
   // Open a file passed as the first command line parameter.
   OpenDocumentFile(m_lpCmdLine);
}

CWinApp::m_nAutosaveInterval

Tiempo, en milisegundos, entre autoguardados.

int m_nAutosaveInterval;

Comentarios

Puede configurar el administrador de reinicio para guardar automáticamente los documentos abiertos a intervalos establecidos. Si la aplicación no guarda automáticamente los archivos, este parámetro no tiene ningún efecto.

CWinApp::m_nCmdShow

Corresponde al parámetro nCmdShow que se pasa por Windows a WinMain.

int m_nCmdShow;

Comentarios

Debe pasar m_nCmdShow como argumento al llamar a CWnd::ShowWindow para la ventana principal de la aplicación. m_nCmdShow es una variable pública de tipo int.

Ejemplo

// The following code fragment is taken from CMyApp::InitInstance.
// CMyApp is derived from CWinApp.

// The main window has been initialized, so show and update it
// using the nCmdShow parameter passed to the application when it
// was first launched.
// pMainFrame is the main MDI frame window of our app and is derived
// from CMDIFrameWnd.
pMainFrame->ShowWindow(m_nCmdShow);
pMainFrame->UpdateWindow();

CWinApp::m_pActiveWnd

Use este miembro de datos para almacenar un puntero a la ventana principal de la aplicación contenedora OLE que tiene activada en contexto la aplicación de servidor OLE.

Comentarios

Si este miembro de datos es NULL, la aplicación no está activa en contexto.

El marco establece esta variable miembro cuando la ventana de marco está activada en contexto por una aplicación contenedora OLE.

CWinApp::m_pDataRecoveryHandler

Puntero al controlador de recuperación de datos para la aplicación.

CDataRecoveryHandler* m_pDataRecoveryHandler;

Comentarios

El controlador de recuperación de datos de una aplicación supervisa los documentos abiertos y los guarda automáticamente. El marco usa el controlador de recuperación de datos para restaurar los archivos guardados automáticamente cuando una aplicación se reinicia después de salir inesperadamente. Para más información, vea la case CDataRecoveryHandler.

CWinApp::m_pszAppName

Especifica el nombre de la aplicación.

LPCTSTR m_pszAppName;

Comentarios

El nombre de la aplicación puede proceder del parámetro pasado al constructor CWinApp o, si no se ha especificado, a la cadena de recurso con el id. de AFX_IDS_APP_TITLE. Si el nombre de la aplicación no se encuentra en el recurso, procede del nombre de archivo .EXE del programa.

Se devuelve por la función global AfxGetAppName. m_pszAppName es una variable pública de tipo const char*.

Nota:

Si asigna un valor a m_pszAppName, debe asignarse dinámicamente en el montón. El destructor CWinApp llama a free( ) con este puntero. Muchos quieren usar la función de biblioteca en tiempo de ejecución _tcsdup( ) para realizar la asignación. Además, libere la memoria asociada al puntero actual antes de asignar un nuevo valor. Por ejemplo:

//First free the string allocated by MFC at CWinApp startup.
//The string is allocated before InitInstance is called.
free((void*)m_pszAppName);
//Change the name of the application file.
//The CWinApp destructor will free the memory.
m_pszAppName = _tcsdup(_T("c:\\somedir\\myapp.exe"));

Ejemplo

CWnd *pWnd = AfxGetMainWnd();
// Set pWnd to some CWnd object whose window has already
// been created.

// The following call to CWnd::MessageBox uses the application
// title as the message box caption.
pWnd->MessageBox(_T("Some message"), AfxGetApp()->m_pszAppName);

// A more direct way to get the application title is to
// call AfxGetAppName:
pWnd->MessageBox(_T("Some message"), AfxGetAppName());

// An easier way to display a message box using the application
// title as the message box caption is to call AfxMessageBox:
AfxMessageBox(_T("Some message"));

CWinApp::m_pszExeName

Contiene el nombre del archivo ejecutable de la aplicación sin una extensión.

LPCTSTR m_pszExeName;

Comentarios

A diferencia de m_pszAppName, este nombre no puede contener espacios en blanco. m_pszExeName es una variable pública de tipo const char*.

Nota:

Si asigna un valor a m_pszExeName, debe asignarse dinámicamente en el montón. El destructor CWinApp llama a free( ) con este puntero. Muchos quieren usar la función de biblioteca en tiempo de ejecución _tcsdup( ) para realizar la asignación. Además, libere la memoria asociada al puntero actual antes de asignar un nuevo valor. Por ejemplo:

//First free the string allocated by MFC at CWinApp startup.
//The string is allocated before InitInstance is called.
free((void*)m_pszExeName);
//Change the name of the .EXE file.
//The CWinApp destructor will free the memory.
m_pszExeName = _tcsdup(_T("c:\\somedir\\myapp"));

CWinApp::m_pszHelpFilePath

Contiene la ruta de acceso al archivo de ayuda de la aplicación.

LPCTSTR m_pszHelpFilePath;

Comentarios

De forma predeterminada, el marco inicializa m_pszHelpFilePath anexando ".HLP" al nombre de la aplicación. Para cambiar el nombre del archivo de ayuda, establezca m_pszHelpFilePath para que apunte a una cadena que contenga el nombre completo del archivo de ayuda deseado. Un lugar cómodo para hacerlo es en la función InitInstance de la aplicación. m_pszHelpFilePath es una variable pública de tipo const char*.

Nota:

Si asigna un valor a m_pszHelpFilePath, debe asignarse dinámicamente en el montón. El destructor CWinApp llama a free( ) con este puntero. Muchos quieren usar la función de biblioteca en tiempo de ejecución _tcsdup( ) para realizar la asignación. Además, libere la memoria asociada al puntero actual antes de asignar un nuevo valor. Por ejemplo:

//First free the string allocated by MFC at CWinApp startup.
//The string is allocated before InitInstance is called.
free((void*)m_pszHelpFilePath);
//Change the name of the .HLP file.
//The CWinApp destructor will free the memory.
m_pszHelpFilePath = _tcsdup(_T("c:\\somedir\\myhelp.hlp"));

CWinApp::m_pszProfileName

Contiene el nombre del archivo .INI de la aplicación.

LPCTSTR m_pszProfileName;

Comentarios

m_pszProfileName es una variable pública de tipo const char*.

Nota:

Si asigna un valor a m_pszProfileName, debe asignarse dinámicamente en el montón. El destructor CWinApp llama a free( ) con este puntero. Muchos quieren usar la función de biblioteca en tiempo de ejecución _tcsdup( ) para realizar la asignación. Además, libere la memoria asociada al puntero actual antes de asignar un nuevo valor. Por ejemplo:

//First free the string allocated by MFC at CWinApp startup.
//The string is allocated before InitInstance is called.
free((void*)m_pszProfileName);
//Change the name of the .INI file.
//The CWinApp destructor will free the memory.
m_pszProfileName = _tcsdup(_T("c:\\somedir\\myini.ini"));

CWinApp::m_pszRegistryKey

Se usa para determinar dónde se almacena la configuración del perfil de aplicación: en el registro o en el archivo INI.

LPCTSTR m_pszRegistryKey;

Comentarios

Normalmente, este miembro de datos se trata como de solo lectura.

  • El valor se almacena en una clave del Registro. El nombre de la configuración del perfil de aplicación se anexa a la siguiente clave del Registro: HKEY_CURRENT_USER/Software/LocalAppWizard-Generated/.

Si asigna un valor a m_pszRegistryKey, debe asignarse dinámicamente en el montón. El destructor CWinApp llama a free( ) con este puntero. Muchos quieren usar la función de biblioteca en tiempo de ejecución _tcsdup( ) para realizar la asignación. Además, libere la memoria asociada al puntero actual antes de asignar un nuevo valor. Por ejemplo:

//First free the string allocated by MFC at CWinApp startup.
//The string is allocated before InitInstance is called.
free((void*)m_pszRegistryKey);
//Change the name of the registry key.
//The CWinApp destructor will free the memory.
m_pszRegistryKey = _tcsdup(
    _T("HKEY_CURRENT_USER\\Software\\mycompany\\myapp\\thissection\\thisvalue"));

CWinApp::m_pszAppID

Id. de modelo de usuario de aplicación.

LPCTSTR m_pszAppID;

Comentarios

CWinApp::OnContextHelp

Controla la ayuda MAYÚS+F1 dentro de la aplicación.

afx_msg void OnContextHelp();

Comentarios

Debe agregar una instrucción ON_COMMAND( ID_CONTEXT_HELP, OnContextHelp ) al mapa de mensajes de clase CWinApp y agregar también una entrada de tabla de aceleradores, normalmente MAYÚS+F1, para habilitar esta función miembro.

OnContextHelp coloca la aplicación en modo de ayuda. El cursor cambia a una flecha y un signo de interrogación, y el usuario puede mover el puntero del mouse y presionar el botón izquierdo del mouse para seleccionar un cuadro de diálogo, una ventana, un menú o un botón de comando. Esta función miembro recupera el contexto de Ayuda del objeto situado bajo el cursor y llama a la función WinHelp de Windows con ese contexto de ayuda.

CWinApp::OnDDECommand

Lo llama el marco cuando la ventana de marco principal recibe un mensaje de ejecución de DDE.

virtual BOOL OnDDECommand(LPTSTR lpszCommand);

Parámetros

lpszCommand
Apunta a una cadena de comandos DDE recibida por la aplicación.

Valor devuelto

Distinto de cero si se controla el comando; en caso contrario, es 0.

Comentarios

La implementación predeterminada comprueba si el comando es una solicitud para abrir un documento y, si es así, abre el documento especificado. El administrador de archivos de Windows normalmente envía estas cadenas de comandos DDE cuando el usuario hace doble clic en un archivo de datos. Invalide esta función para controlar otros comandos de ejecución de DDE, como el comando de impresión.

Ejemplo

BOOL CMyApp::OnDDECommand(LPTSTR lpszCommand)
{
   if (CWinApp::OnDDECommand(lpszCommand))
      return TRUE;

   // Handle any DDE commands recognized by your application
   // and return TRUE.  See implementation of CWinApp::OnDDEComand
   // for example of parsing the DDE command string.

   // Return FALSE for any DDE commands you do not handle.
   return FALSE;
}

CWinApp::OnFileNew

Implementa el comando ID_FILE_NEW.

afx_msg void OnFileNew();

Comentarios

Debe agregar una instrucción ON_COMMAND( ID_FILE_NEW, OnFileNew ) al mapa de mensajes de clase CWinApp para habilitar esta función miembro. Si está habilitada, esta función controla la ejecución del comando Archivo/Nuevo.

Consulte la nota técnica 22 para información sobre el comportamiento predeterminado e instrucciones sobre cómo invalidar esta función miembro.

Ejemplo

// The following message map, produced by the Application Wizard, binds
// the File New, Open, and Print Setup menu commands to default
// framework implementations of these commands.
BEGIN_MESSAGE_MAP(CStdApp, CWinApp)
// Standard file based document commands
ON_COMMAND(ID_FILE_NEW, &CWinApp::OnFileNew)
ON_COMMAND(ID_FILE_OPEN, &CWinApp::OnFileOpen)
// Standard print setup command
ON_COMMAND(ID_FILE_PRINT_SETUP, &CWinApp::OnFilePrintSetup)
END_MESSAGE_MAP()

 

// The following message map illustrates how to rebind the
// File New, Open and Print Setup menu commands to handlers that
// you implement in your CWinApp-derived class.
// Note, you can name the handler CCustomApp::OnFileNew instead of
// CCustomApp::OnMyFileNew, and likewise for the other handlers, if desired.
BEGIN_MESSAGE_MAP(CCustomApp, CWinApp)
ON_COMMAND(ID_FILE_NEW, &CCustomApp::OnMyFileNew)
ON_COMMAND(ID_FILE_OPEN, &CCustomApp::OnMyFileOpen)
ON_COMMAND(ID_FILE_PRINT_SETUP, &CCustomApp::OnMyFilePrintSetup)
END_MESSAGE_MAP()

CWinApp::OnFileOpen

Implementa el comando ID_FILE_OPEN.

afx_msg void OnFileOpen();

Comentarios

Debe agregar una instrucción ON_COMMAND( ID_FILE_OPEN, OnFileOpen ) al mapa de mensajes de clase CWinApp para habilitar esta función miembro. Si está habilitada, esta función controla la ejecución del comando Archivo/Abrir.

Para información sobre el comportamiento predeterminado e instrucciones sobre cómo invalidar esta función miembro, consulte la nota técnica 22.

Ejemplo

// The following message map, produced by the Application Wizard, binds
// the File New, Open, and Print Setup menu commands to default
// framework implementations of these commands.
BEGIN_MESSAGE_MAP(CStdApp, CWinApp)
// Standard file based document commands
ON_COMMAND(ID_FILE_NEW, &CWinApp::OnFileNew)
ON_COMMAND(ID_FILE_OPEN, &CWinApp::OnFileOpen)
// Standard print setup command
ON_COMMAND(ID_FILE_PRINT_SETUP, &CWinApp::OnFilePrintSetup)
END_MESSAGE_MAP()

 

// The following message map illustrates how to rebind the
// File New, Open and Print Setup menu commands to handlers that
// you implement in your CWinApp-derived class.
// Note, you can name the handler CCustomApp::OnFileNew instead of
// CCustomApp::OnMyFileNew, and likewise for the other handlers, if desired.
BEGIN_MESSAGE_MAP(CCustomApp, CWinApp)
ON_COMMAND(ID_FILE_NEW, &CCustomApp::OnMyFileNew)
ON_COMMAND(ID_FILE_OPEN, &CCustomApp::OnMyFileOpen)
ON_COMMAND(ID_FILE_PRINT_SETUP, &CCustomApp::OnMyFilePrintSetup)
END_MESSAGE_MAP()

CWinApp::OnFilePrintSetup

Implementa el comando ID_FILE_PRINT_SETUP.

afx_msg void OnFilePrintSetup();

Comentarios

Debe agregar una instrucción ON_COMMAND( ID_FILE_PRINT_SETUP, OnFilePrintSetup ) al mapa de mensajes de clase CWinApp para habilitar esta función miembro. Si está habilitada, esta función controla la ejecución del comando Archivo/Imprimir.

Para información sobre el comportamiento predeterminado e instrucciones sobre cómo invalidar esta función miembro, consulte la nota técnica 22.

Ejemplo

// The following message map, produced by the Application Wizard, binds
// the File New, Open, and Print Setup menu commands to default
// framework implementations of these commands.
BEGIN_MESSAGE_MAP(CStdApp, CWinApp)
// Standard file based document commands
ON_COMMAND(ID_FILE_NEW, &CWinApp::OnFileNew)
ON_COMMAND(ID_FILE_OPEN, &CWinApp::OnFileOpen)
// Standard print setup command
ON_COMMAND(ID_FILE_PRINT_SETUP, &CWinApp::OnFilePrintSetup)
END_MESSAGE_MAP()

 

// The following message map illustrates how to rebind the
// File New, Open and Print Setup menu commands to handlers that
// you implement in your CWinApp-derived class.
// Note, you can name the handler CCustomApp::OnFileNew instead of
// CCustomApp::OnMyFileNew, and likewise for the other handlers, if desired.
BEGIN_MESSAGE_MAP(CCustomApp, CWinApp)
ON_COMMAND(ID_FILE_NEW, &CCustomApp::OnMyFileNew)
ON_COMMAND(ID_FILE_OPEN, &CCustomApp::OnMyFileOpen)
ON_COMMAND(ID_FILE_PRINT_SETUP, &CCustomApp::OnMyFilePrintSetup)
END_MESSAGE_MAP()

CWinApp::OnHelp

Controla la Ayuda de F1 de la aplicación (usando el contexto actual).

afx_msg void OnHelp();

Comentarios

Normalmente, también agregará una entrada de tecla de aceleración para la tecla F1. Habilitar la tecla F1 es solo una convención, no un requisito.

Debe agregar una instrucción ON_COMMAND( ID_HELP, OnHelp ) al mapa de mensajes de clase CWinApp para habilitar esta función miembro. Si se habilita, el marco lo llama cuando el usuario presiona la tecla F1.

La implementación predeterminada de esta función de controlador de mensajes determina el contexto de ayuda que corresponde a la ventana, el cuadro de diálogo o el elemento de menú actuales y, a continuación, llama a WINHELP.EXE. Si no hay ningún contexto disponible actualmente, la función usa el contexto predeterminado.

Invalide esta función miembro para establecer el contexto de ayuda en algo distinto de la ventana, el cuadro de diálogo, el elemento de menú o el botón de la barra de herramientas que actualmente tiene el foco. Llame a WinHelp con el id. de contexto de ayuda deseado.

CWinApp::OnHelpFinder

Controla los comandos ID_HELP_FINDER y ID_DEFAULT_HELP.

afx_msg void OnHelpFinder();

Comentarios

Debe agregar una instrucción ON_COMMAND( ID_HELP_FINDER, OnHelpFinder ) al mapa de mensajes de clase CWinApp para habilitar esta función miembro. Si está habilitada, el marco llama a esta función de controlador de mensajes cuando el usuario de la aplicación selecciona el comando Buscador de ayuda para invocar WinHelp con el tema HELP_FINDER estándar.

CWinApp::OnHelpIndex

Controla el comando ID_HELP_INDEX y proporciona un tema de ayuda predeterminado.

afx_msg void OnHelpIndex();

Comentarios

Debe agregar una instrucción ON_COMMAND( ID_HELP_INDEX, OnHelpIndex ) al mapa de mensajes de clase CWinApp para habilitar esta función miembro. Si está habilitada, el marco llama a esta función de controlador de mensajes cuando el usuario de la aplicación selecciona el comando Índice de ayuda para invocar WinHelp con el tema HELP_INDEX estándar.

CWinApp::OnHelpUsing

Controla el comando ID_HELP_USING.

afx_msg void OnHelpUsing();

Comentarios

Debe agregar una instrucción ON_COMMAND( ID_HELP_USING, OnHelpUsing ) al mapa de mensajes de clase CWinApp para habilitar esta función miembro. El marco llama a esta función de controlador de mensajes cuando el usuario de la aplicación selecciona el comando Uso de la ayuda para invocar la aplicación WinHelp con el tema HELP_HELPONHELP estándar.

CWinApp::OnIdle

Invalide esta función miembro para realizar el procesamiento de tiempo de inactividad.

virtual BOOL OnIdle(LONG lCount);

Parámetros

lCount
Se incrementa un contador cada vez que se llama a OnIdle cuando la cola de mensajes de la aplicación está vacía. Este recuento se restablece en 0 cada vez que se procesa un nuevo mensaje. Puede usar el parámetro lCount para determinar el tiempo relativo que la aplicación ha estado inactiva sin procesar un mensaje.

Valor devuelto

Distinto de cero para recibir más tiempo de inactividad de procesamiento; 0 si no se necesita más tiempo de inactividad.

Comentarios

OnIdle se llama en el bucle de mensajes predeterminado cuando la cola de mensajes de la aplicación está vacía. Use su invalidación para llamar a sus propias tareas de controlador de inactividad en segundo plano.

OnIdle debe devolver 0 para indicar que no se requiere ningún tiempo de inactividad de procesamiento adicional. El parámetro lCount se incrementa cada vez que se llama a OnIdle cuando la cola de mensajes está vacía y se restablece en 0 cada vez que se procesa un mensaje nuevo. Puede llamar a las diferentes rutinas inactivas en función de este recuento.

A continuación, se resume el procesamiento de bucles inactivos:

  1. Si el bucle de mensajes de la biblioteca MFC (Microsoft Foundation Class) comprueba la cola de mensajes y no encuentra ningún mensaje pendiente, llama a OnIdle para el objeto de aplicación y proporciona 0 como argumento de lCount.

  2. OnIdle realiza algo de procesamiento y devuelve un valor distinto de cero para indicar que se debe llamar de nuevo para realizar un procesamiento posterior.

  3. El bucle de mensajes vuelve a comprobar la cola de mensajes. Si no hay mensajes pendientes, llama a OnIdle de nuevo, incrementando el argumento de lCount.

  4. Finalmente, OnIdle termina de procesar todas sus tareas inactivas y devuelve 0. Esto indica al bucle de mensajes que deje de llamar a OnIdle hasta que se reciba el siguiente mensaje de la cola de mensajes, momento en el que el ciclo de inactividad se reinicia con el argumento establecido en 0.

No realice tareas largas durante OnIdle porque la aplicación no puede procesar la entrada del usuario hasta se devuelve OnIdle.

Nota:

La implementación predeterminada de OnIdle actualiza los objetos de interfaz de usuario de comandos, como los elementos de menú y los botones de la barra de herramientas, y realiza la limpieza interna de la estructura de datos. Por lo tanto, si invalida OnIdle, debe llamar a CWinApp::OnIdle con lCount en la versión invalidada. En primer lugar, llame a todo el procesamiento de inactividad de clase base (es decir, hasta que la clase base OnIdle devuelve 0). Si necesita realizar tareas antes de que finalice el procesamiento de la clase base, revise la implementación de la clase base para seleccionar el parámetro lCount adecuado durante el cual pueda hacerlo.

Si no quiere llamar a OnIdle cada vez que se recupera un mensaje de la cola de mensajes, puede invalidar CWinThreadIsIdleMessage. Si una aplicación ha establecido un temporizador muy corto o si el sistema envía el mensaje WM_SYSTIMER, se llamará a OnIdle repetidamente y se degradará el rendimiento.

Ejemplo

En los dos ejemplos siguientes se muestra cómo usar OnIdle. En el primer ejemplo se procesan dos tareas inactivas mediante el argumento lCount para priorizar las tareas. La primera tarea es de alta prioridad y debe hacerla siempre que sea posible. La segunda tarea es menos importante y solo debe realizarse cuando se produce una pausa larga en la entrada del usuario. Anote la llamada a la versión de clase base de OnIdle. En el segundo ejemplo se administra un grupo de tareas inactivas con diferentes prioridades.

BOOL CMyApp::OnIdle(LONG lCount)
{
   BOOL bMore = CWinApp::OnIdle(lCount);

   if (lCount == 0)
   {
      TRACE(_T("App idle for short period of time\n"));
      bMore = TRUE;
   }
   else if (lCount == 10)
   {
      TRACE(_T("App idle for longer amount of time\n"));
      bMore = TRUE;
   }
   else if (lCount == 100)
   {
      TRACE(_T("App idle for even longer amount of time\n"));
      bMore = TRUE;
   }
   else if (lCount == 1000)
   {
      TRACE(_T("App idle for quite a long period of time\n"));
      // bMore is not set to TRUE, no longer need idle
      // IMPORTANT: bMore is not set to FALSE since CWinApp::OnIdle may
      // have more idle tasks to complete.
   }

   return bMore;
   // return TRUE as long as there are any more idle tasks
}

CWinApp::OpenDocumentFile

El marco llama a este método para abrir el archivo CDocument con nombre para la aplicación.

virtual CDocument* OpenDocumentFile(
    LPCTSTR lpszFileName
    BOOL bAddToMRU = TRUE);

Parámetros

lpszFileName
[in] Nombre del archivo que se va a abrir.

bAddToMRU
[in] TRUE indica que el documento es uno de los archivos más recientes; FALSE indica que el documento no es uno de los archivos más recientes.

Valor devuelto

Puntero a un objeto CDocument si se realiza correctamente; de lo contrario, NULL.

Comentarios

Si un documento que tiene ese nombre ya está abierto, la primera ventana de marco que contiene ese documento obtendrá el foco. Si una aplicación admite varias plantillas de documento, el marco usa la extensión de nombre de archivo para buscar la plantilla de documento adecuada para intentar cargar el documento. Si se ejecuta correctamente, la plantilla de documento crea una ventana de marco y una vista para el documento.

Ejemplo

if (m_lpCmdLine[0] == _T('\0'))
{
   // Create a new (empty) document.
   OnFileNew();
}
else
{
   // Open a file passed as the first command line parameter.
   OpenDocumentFile(m_lpCmdLine);
}

CWinApp::ParseCommandLine

Llame a esta función miembro para analizar la línea de comandos y enviar los parámetros, de uno en uno, a CCommandLineInfo::ParseParam.

void ParseCommandLine(CCommandLineInfo& rCmdInfo);

Parámetros

rCmdInfo
Referencia a un objeto CCommandLineInfo.

Comentarios

Al iniciar un nuevo proyecto MFC mediante el Asistente para aplicaciones, este creará una instancia local de CCommandLineInfo y, a continuación, llamará a ProcessShellCommand y ParseCommandLine en la función miembro InitInstance. Una línea de comandos sigue la ruta que se describe a continuación:

  1. Después de crearse en InitInstance, el objeto CCommandLineInfo se pasa a ParseCommandLine.

  2. A continuación, ParseCommandLine llama a CCommandLineInfo::ParseParam repetidamente, una vez para cada parámetro.

  3. ParseParam rellena el objeto CCommandLineInfo, que luego se pasa a ProcessShellCommand.

  4. ProcessShellCommand controla los argumentos y las marcas de la línea de comandos.

Tenga en cuenta que puede llamar a ParseCommandLine directamente según sea necesario.

Para una descripción de las marcas de línea de comandos, vea CCommandLineInfo::m_nShellCommand.

CWinApp::PreTranslateMessage

Invalide esta función para filtrar los mensajes de ventana antes de que se envíen a las funciones de Windows TranslateMessage y DispatchMessage. La implementación predeterminada realiza la traducción de teclas de aceleración, por lo que debe llamar a la función miembro CWinApp::PreTranslateMessage en la versión invalidada.

virtual BOOL PreTranslateMessage(MSG* pMsg);

Parámetros

PMSG
Puntero a una estructura MSG que contiene el mensaje que se va a procesar.

Valor devuelto

Distinto de cero si el mensaje se procesó por completo en PreTranslateMessage y no se debe procesar más. Cero si el mensaje se debe procesar de la manera normal.

CWinApp::ProcessMessageFilter

La función de enlace del marco llama a esta función miembro para filtrar y responder a determinados mensajes de Windows.

virtual BOOL ProcessMessageFilter(
    int code,
    LPMSG lpMsg);

Parámetros

code
Especifica un código de enlace. Esta función miembro usa el código para determinar cómo procesar lpMsg.

lpMsg
Puntero a una estructura MSG de Windows.

Valor devuelto

Distinto de cero si se procesa el mensaje; de lo contrario, 0.

Comentarios

Una función de enlace procesa los eventos antes de enviarlos al procesamiento de mensajes normal de la aplicación.

Si invalida esta característica avanzada, asegúrese de llamar a la versión de clase base para mantener el procesamiento del enlace del marco.

CWinApp::ProcessShellCommand

InitInstance llama a esta función miembro para aceptar los parámetros pasados desde el objeto CCommandLineInfo identificado por rCmdInfo y realizar la acción indicada.

BOOL ProcessShellCommand(CCommandLineInfo& rCmdInfo);

Parámetros

rCmdInfo
Referencia a un objeto CCommandLineInfo.

Valor devuelto

Distinto de cero si el comando de shell se procesa correctamente. Si es 0, se devuelve FALSE desde InitInstance.

Comentarios

Al iniciar un nuevo proyecto MFC mediante el Asistente para aplicaciones, este creará una instancia local de CCommandLineInfo y, a continuación, llamará a ProcessShellCommand y ParseCommandLine en la función miembro InitInstance. Una línea de comandos sigue la ruta que se describe a continuación:

  1. Después de crearse en InitInstance, el objeto CCommandLineInfo se pasa a ParseCommandLine.

  2. A continuación, ParseCommandLine llama a CCommandLineInfo::ParseParam repetidamente, una vez para cada parámetro.

  3. ParseParam rellena el objeto CCommandLineInfo, que se pasa a ProcessShellCommand.

  4. ProcessShellCommand controla los argumentos y las marcas de la línea de comandos.

Los miembros de datos del objeto CCommandLineInfo, identificados por CCommandLineInfo::m_nShellCommand, son del siguiente tipo enumerado, que se define dentro de la clase CCommandLineInfo.

enum {
    FileNew,
    FileOpen,
    FilePrint,
    FilePrintTo,
    FileDDE
    };

Para una breve descripción de cada uno de estos valores, vea CCommandLineInfo::m_nShellCommand.

CWinApp::ProcessWndProcException

El marco de trabajo llama a esta función miembro cada vez que el controlador no detecta una excepción iniciada en uno de los controladores de comandos o de mensajes de la aplicación.

virtual LRESULT ProcessWndProcException(
    CException* e,
    const MSG* pMsg);

Parámetros

e
Puntero a una excepción no detectada.

PMSG
Estructura MSG que contiene información sobre el mensaje de Windows que hizo que el marco iniciara una excepción.

Valor devuelto

Valor que se debe devolver a Windows. Normalmente es 0L para los mensajes de Windows, 1L (TRUE) para los mensajes de comando.

Comentarios

No llame a esta función miembro directamente.

La implementación predeterminada de esta función miembro crea un cuadro de mensaje. Si la excepción no detectada se origina con un error de comando de menú, barra de herramientas o acelerador, en el cuadro de mensaje se muestra "Error de comando"; de lo contrario, se muestra "Error interno de la aplicación".

Invalide esta función miembro para proporcionar un control global de las excepciones. Llame solo a la funcionalidad base si desea que se muestre el cuadro de mensaje.

CWinApp::Register

Realiza las tareas de registro no controladas por RegisterShellFileTypes.

virtual BOOL Register();

Valor devuelto

Distinto de cero en caso de éxito; en caso contrario, es 0.

Comentarios

La implementación predeterminada simplemente devuelve TRUE. Invalide esta función para proporcionar pasos de registro personalizados.

CWinApp::RegisterShellFileTypes

Llame a esta función miembro para registrar todos los tipos de documentos de la aplicación con el administrador de archivos de Windows.

void RegisterShellFileTypes(BOOL bCompat = FALSE);

Parámetros

bCompat
[in] TRUE agrega entradas de registro para los comandos de shell Imprimir e Imprimir en, lo que permite a un usuario imprimir archivos directamente desde el shell o arrastrando el archivo a un objeto de impresora. También agrega una clave DefaultIcon. De forma predeterminada, este parámetro es FALSE para la compatibilidad con versiones anteriores.

Comentarios

Esto permite al usuario abrir un archivo de datos creado por la aplicación haciendo doble clic en él desde el administrador de archivos. Llame a RegisterShellFileTypes después de llamar a AddDocTemplate para cada una de las plantillas de documento de la aplicación. Llame también a la función miembro EnableShellOpen cuando llame a RegisterShellFileTypes.

RegisterShellFileTypes itera a través de la lista de objetos CDocTemplate que mantiene la aplicación y, para cada plantilla de documento, agrega entradas a la base de datos de registro que Windows mantiene para las asociaciones de archivos. El administrador de archivos usa estas entradas para abrir un archivo de datos cuando el usuario hace doble clic en él. Esto elimina la necesidad de enviar un objeto .REG con la aplicación.

Nota:

RegisterShellFileTypes solo funciona si el usuario ejecuta el programa con derechos de administrador. Si el programa no tiene derechos de administrador, no puede modificar las claves del Registro.

Si la base de datos del Registro ya asocia una extensión de nombre de archivo determinada con otro tipo de archivo, no se crea ninguna asociación nueva. Vea la clase CDocTemplate para ver el formato de las cadenas necesarias para registrar esta información.

CWinApp::RegisterWithRestartManager

Registra la aplicación con el administrador de reinicio.

virtual HRESULT RegisterWithRestartManager(
    BOOL bRegisterRecoveryCallback,
    const CString& strRestartIdentifier);

virtual HRESULT RegisterWithRestartManager(
    LPCWSTR pwzCommandLineArgs,
    DWORD dwRestartFlags,
    APPLICATION_RECOVERY_CALLBACK pRecoveryCallback,
    LPVOID lpvParam,
    DWORD dwPingInterval,
    DWORD dwCallbackFlags);

Parámetros

bRegisterRecoveryCallback
[in] TRUE indica que esta instancia de la aplicación usa una función de devolución de llamada de recuperación; FALSE indica que no lo hace. El marco llama a la función de devolución de llamada de recuperación cuando la aplicación sale inesperadamente. Para más información, vea CWinApp::ApplicationRecoveryCallback.

strRestartIdentifier
[in] Cadena única que identifica esta instancia del administrador de reinicio. El identificador del administrador de reinicio es único para cada instancia de una aplicación.

pwzCommandLineArgs
[in] Cadena que contiene cualquier argumento adicional de la línea de comandos.

dwRestartFlags
[in] Marcas opcionales para el administrador de reinicio. Para obtener más información, vea la sección Comentarios.

pRecoveryCallback
[in] Función de devolución de llamada de recuperación. Esta función debe tomar un parámetro LPVOID como entrada y devolver un elemento DWORD. La función de devolución de llamada de recuperación predeterminada es CWinApp::ApplicationRecoveryCallback.

lpvParam
[in] Parámetro de entrada para la función de devolución de llamada de recuperación. Para más información, vea CWinApp::ApplicationRecoveryCallback.

dwPingInterval
[in] Período de tiempo que el administrador de reinicio espera a que se devuelva la función de devolución de llamada de recuperación. Este parámetro está en milisegundos.

dwCallbackFlags
[in] Marcas pasadas a la función de devolución de llamada de recuperación. Reservado para uso futuro.

Valor devuelto

S_OK si el método se realiza correctamente; de lo contrario, un código de error.

Comentarios

Si la aplicación usa la implementación predeterminada de MFC para los archivos de guardado automático, debe usar la versión simple de RegisterWithRestartManager. Use la versión compleja de RegisterWithRestartManager si quiere personalizar el comportamiento de autoguardado de la aplicación.

Si llama a este método con una cadena vacía para strRestartIdentifier, RegisterWithRestartManager crea una cadena de identificador único para esta instancia del administrador de reinicio.

Cuando una aplicación sale inesperadamente, el administrador de reinicio reinicia la aplicación desde la línea de comandos y proporciona el identificador de reinicio único como argumento opcional. En este escenario, el marco llama a RegisterWithRestartManager dos veces. La primera llamada procede de CWinApp::InitInstance con una cadena vacía para el identificador de cadena. A continuación, el método CWinApp::ProcessShellCommand llama a RegisterWithRestartManager con el identificador de reinicio único.

Después de registrar una aplicación con el administrador de reinicio, este supervisa la aplicación. Si la aplicación sale inesperadamente, el administrador de reinicio llama a la función de devolución de llamada de recuperación durante el proceso de apagado. El administrador de reinicio espera durante dwPingInterval una respuesta de la función de devolución de llamada de recuperación. Si la función de devolución de llamada de recuperación no responde durante ese tiempo, la aplicación sale sin ejecutar la función de devolución de llamada de recuperación.

De forma predeterminada, no se admiten dwRestartFlags, pero se proporcionan para su uso futuro. Los valores posibles para dwRestartFlags son los siguientes:

  • RESTART_NO_CRASH

  • RESTART_NO_HANG

  • RESTART_NO_PATCH

  • RESTART_NO_REBOOT

CWinApp::ReopenPreviousFilesAtRestart

Determina si el administrador de reinicio vuelve a abrir los archivos que estaban abiertos cuando la aplicación sale inesperadamente.

virtual BOOL ReopenPreviousFilesAtRestart() const;

Valor devuelto

TRUE indica que el administrador de reinicio vuelve a abrir los archivos abiertos anteriormente; FALSE indica que no lo hace.

CWinApp::RestartInstance

Controla un reinicio de la aplicación iniciado por el administrador de reinicio.

virtual BOOL CWinApp::RestartInstance();

Valor devuelto

TRUE si el controlador de recuperación de datos abre los documentos abiertos anteriormente; FALSE si se produce un error en el controlador de recuperación de datos o si no había documentos abiertos previamente.

Comentarios

Cuando el administrador de reinicio reinicia una aplicación, el marco llama a este método. Este método recupera el controlador de recuperación de datos y restaura los archivos guardados automáticamente. Este método llama a CDataRecoveryHandler::RestoreAutosavedDocuments para determinar si el usuario quiere restaurar los archivos guardados automáticamente.

Este método devuelve FALSE si CDataRecoveryHandler determina que no había documentos abiertos. Si no había documentos abiertos, la aplicación se inicia normalmente.

CWinApp::RestoreAutosavedFilesAtRestart

Determina si el administrador de reinicio restaura los archivos guardados automáticamente cuando reinicia la aplicación.

virtual BOOL RestoreAutosavedFilesAtRestart() const;

Valor devuelto

TRUE indica que el administrador de reinicio restaura los archivos autoguardados; FALSE indica que no lo hace.

CWinApp::Run

Proporciona el bucle de mensajes predeterminado.

virtual int Run();

Valor devuelto

Valor int devuelto por WinMain.

Comentarios

Run adquiere y envía mensajes de Windows hasta que la aplicación recibe un mensaje WM_QUIT. Si la cola de mensajes de la aplicación no contiene actualmente ningún mensaje, Run llama a OnIdle para realizar el procesamiento de tiempo de inactividad. Los mensajes entrantes van a la función miembro PreTranslateMessage para su procesamiento especial y, a continuación, a la función TranslateMessage de Windows para la traducción de teclado estándar; por último, se llama a la función DispatchMessage de Windows.

Run rara vez se invalida, pero se puede invalidar para proporcionar un comportamiento especial.

CWinApp::RunAutomated

Llame a esta función para determinar si la opción "/Automation" o "-Automation" está presente, lo que indica si una aplicación cliente inició la aplicación de servidor.

BOOL RunAutomated();

Valor devuelto

Distinto de cero si se encontró la opción; de lo contrario, 0.

Comentarios

Si está presente, la opción se quita de la línea de comandos. Para más información sobre OLE Automation, consulte el artículo Servidores de automatización.

CWinApp::RunEmbedded

Llame a esta función para determinar si la opción "/Embedding" o "-Embedding" está presente, lo que indica si una aplicación cliente inició la aplicación de servidor.

BOOL RunEmbedded();

Valor devuelto

Distinto de cero si se encontró la opción; de lo contrario, 0.

Comentarios

Si está presente, la opción se quita de la línea de comandos. Para más información sobre la inserción, consulte el artículo Servidores: implementación de un servidor.

CWinApp::SaveAllModified

Lo llama el marco para guardar todos los documentos cuando se va a cerrar la ventana de marco principal de la aplicación o a través de un mensaje WM_QUERYENDSESSION.

virtual BOOL SaveAllModified();

Valor devuelto

Distinto de cero si es seguro finalizar la aplicación; 0 si no lo es.

Comentarios

La implementación predeterminada de esta función miembro llama a la función miembro CDocument::SaveModified a su vez para todos los documentos modificados dentro de la aplicación.

CWinApp::SelectPrinter

Llame a esta función miembro para seleccionar una impresora específica y libere la impresora que se seleccionó anteriormente en el cuadro de diálogo Imprimir.

void SelectPrinter(
    HANDLE hDevNames,
    HANDLE hDevMode,
    BOOL bFreeOld = TRUE);

Parámetros

hDevNames
Identificador de una estructura DEVNAMES que identifica los nombres de puerto de salida, dispositivo y controlador de una impresora específica.

hDevMode
Identificador de una estructura DEVMODE que especifica información sobre la inicialización del dispositivo y el entorno de una impresora.

bFreeOld
Libera la impresora seleccionada previamente.

Comentarios

Si hDevMode y hDevNames son NULL, SelectPrinter usa la impresora predeterminada actual.

CWinApp::SetHelpMode

Establece el tipo de ayuda de la aplicación.

void SetHelpMode(AFX_HELP_TYPE eHelpType);

Parámetros

eHelpType
Especifica el tipo de ayuda que se va a usar. Consulte CWinApp::m_eHelpType para más información.

Comentarios

Establece el tipo de ayuda de la aplicación.

Para establecer el tipo de ayuda de la aplicación en HTMLHelp, puede llamar a EnableHTMLHelp. Una vez que llame a EnableHTMLHelp, la aplicación debe usar HTMLHelp como aplicación de ayuda. Si quiere cambiar para usar WinHelp, puede llamar a SetHelpMode y establecer eHelpType en afxWinHelp.

CWinApp::SetRegistryKey

Hace que la configuración de la aplicación se almacene en el registro en lugar de en archivos INI.

void SetRegistryKey(LPCTSTR lpszRegistryKey);
void SetRegistryKey(UINT nIDRegistryKey);

Parámetros

lpszRegistryKey
Puntero a una cadena que contiene el nombre de la clave.

nIDRegistryKey
id. de un recurso de cadena que contiene el nombre de la clave del Registro.

Comentarios

Esta función establece m_pszRegistryKey, que después usa las funciones miembro GetProfileInt, GetProfileString, WriteProfileInt y WriteProfileString de CWinApp. Si se ha llamado a esta función, la lista de archivos usados más recientemente (MRU) también se almacena en el registro. La clave del Registro suele ser el nombre de una empresa. Se almacena en una clave de la forma siguiente: HKEY_CURRENT_USER\Software\<nombre de la empresa>\<nombre de la aplicación>\<nombre de la sección>\<nombre del valor>.

CWinApp::SupportsApplicationRecovery

Determina si el administrador de reinicio recupera una aplicación que sale inesperadamente.

virtual BOOL SupportsApplicationRecovery() const;

Valor devuelto

TRUE indica que el administrador de reinicio recupera la aplicación; FALSE indica que no lo hace.

CWinApp::SupportsAutosaveAtInterval

Determina si el administrador de reinicio guarda automáticamente los documentos abiertos a intervalos regulares.

virtual BOOL SupportsAutosaveAtInterval() const;

Valor devuelto

TRUE indica que el administrador de reinicio guarda automáticamente los documentos abiertos; FALSE indica que no lo hace.

CWinApp::SupportsAutosaveAtRestart

Determina si el administrador de reinicio guarda automáticamente los documentos abiertos cuando se reinicia la aplicación.

virtual BOOL SupportsAutosaveAtRestart() const;

Valor devuelto

TRUE indica que el administrador de reinicio guarda automáticamente los documentos abiertos cuando se reinicia la aplicación; FALSE indica que no lo hace.

CWinApp::SupportsRestartManager

Determina si la aplicación es compatible con el administrador de reinicio.

virtual BOOL SupportsRestartManager() const;

Valor devuelto

TRUE indica que la aplicación admite el administrador de reinicio; FALSE indica que no lo hace.

CWinApp::Unregister

Anula el registro de todos los archivos registrados por el objeto de aplicación.

virtual BOOL Unregister();

Valor devuelto

Distinto de cero en caso de éxito; en caso contrario, es 0.

Comentarios

La función Unregister deshace el registro realizado por el objeto de aplicación y la función Register. Normalmente, MFC llama implícitamente a ambas funciones y, por lo tanto, no aparecerá en el código.

Invalide esta función para realizar pasos personalizados de anulación del registro.

CWinApp::UnregisterShellFileTypes

Llame a esta función miembro para anular el registro de todos los tipos de documentos de la aplicación con el administrador de archivos de Windows.

void UnregisterShellFileTypes();

CWinApp::WinHelp

Llame a esta función miembro para invocar 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 WinHelp de Windows.

Comentarios

El marco también llama a esta función para invocar a la aplicación WinHelp.

El marco cerrará automáticamente la aplicación WinHelp cuando finalice la aplicación.

Ejemplo

// Header File: HELPIDS.H
//
// This example header file is #include'd twice:
// (1) It is #include'd by the .CPP file that passes the DWORD
//     context i.d. to CWinApp::WinHelp.
// (2) It is #include'd in the [MAP] section of the .HPJ file,
//     to associate the help context string "HID_MYTOPIC" with
//     the help context numeric i.d., 101.
// The help context string "HID_MYTOPIC" is what identifies the
// help topic in the help .RTF source file, in the "#" footnote:
//     # HID_MYTOPIC
//
// Note, it is not necessary to manage help context id's this way
// for help topics associated with command id's and user interface
// id's defined in your RESOURCE.H file; you should use the MAKEHM
// tool via the custom build rule on your resource.h file to produce
// a help map (.HM) file for these id's.  It is necessary to manage
// help context id's as illustrated here only for help topics not
// associated with command id's or user interface id's.

#define HID_MYTOPIC 101

// Show the custom help topic that has the context string
// "HID_MYTOPIC" in the help .RTF file, and which is mapped
// to the DWORD i.d. HID_MYTOPIC in the above HELPIDS.H file.
AfxGetApp()->WinHelp(HID_MYTOPIC);

// The following is one line of code in the help map (.HM)
// file produced by the MAKEHM tool, which is called by the custom
// build rule on the resource.h file.  The MAKEHM tool reads the
// following #define in the application's RESOURCE.H file:
#define ID_MYCOMMAND 0x08004
// and adds a help id offset value of 0x10000 to create the
// help context DWORD value 0x18004:
// HID_MYCOMMAND                           0x18004
// See MFC Tech Note 28 for more information on help id offset values.

// Rarely will you need to directly call WinHelp yourself
// with the help context i.d. for a command or user interface
// object. The framework will call WinHelp automatically when
// the user, for example, hits F1 when the focus is on a
// My Command menu item. However, if you do want to directly
// call WinHelp for the help topic associated with the command,
// here is how you would do it:

AfxGetApp()->WinHelp(0x10000 + ID_MYCOMMAND);

CWinApp::WriteProfileBinary

Llame a esta función miembro para escribir datos binarios en la sección especificada del registro de la aplicación o archivo .INI.

BOOL WriteProfileBinary(
    LPCTSTR lpszSection,
    LPCTSTR lpszEntry,
    LPBYTE pData,
    UINT nBytes);

Parámetros

lpszSection
Apunta a una cadena terminada en NULL que especifica la sección que contiene la entrada. Si la sección no existe, se creará. El nombre de la sección es independiente de las mayúsculas y minúsculas; la cadena puede ser cualquier combinación de letras mayúsculas y minúsculas.

lpszEntry
Apunta a una cadena terminada en NULL que contiene la entrada cuyo valor se va a escribir. Si la entrada no existe en la sección especificada, se crea.

pData
Apunta a los datos que se van a escribir.

nBytes
Contiene el número de bytes que se escribirán.

Valor devuelto

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

Ejemplo

En este ejemplo se usa CWinApp* pApp = AfxGetApp(); para obtener la clase CWinApp que ilustra una manera en la que se pueden usar WriteProfileBinary y GetProfileBinary desde cualquier función de una aplicación MFC.

CWinApp *pApp = AfxGetApp();

CString strSection = _T("My Section");
CString strItem = _T("My Binary Item");
double myData = 123.456e12;

pApp->WriteProfileBinary(strSection, strItem, (LPBYTE)&myData, sizeof(myData));
double *pData;
UINT n;
pApp->GetProfileBinary(strSection, strItem, (LPBYTE*)&pData, &n);
ASSERT(n == sizeof(myData));
ASSERT(myData = *pData);
delete[] pData; // free the buffer

Para otro ejemplo, vea el de CWinApp::GetProfileBinary.

CWinApp::WriteProfileInt

Llame a esta función miembro para escribir el valor especificado en la sección especificada del registro de la aplicación o archivo .INI.

BOOL WriteProfileInt(
    LPCTSTR lpszSection,
    LPCTSTR lpszEntry,
    int nValue);

Parámetros

lpszSection
Apunta a una cadena terminada en NULL que especifica la sección que contiene la entrada. Si la sección no existe, se creará. El nombre de la sección es independiente de las mayúsculas y minúsculas; la cadena puede ser cualquier combinación de letras mayúsculas y minúsculas.

lpszEntry
Apunta a una cadena terminada en NULL que contiene la entrada cuyo valor se va a escribir. Si la entrada no existe en la sección especificada, se crea.

nValue
Contiene el valor que se va a escribir.

Valor devuelto

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

Ejemplo

En este ejemplo se usa CWinApp* pApp = AfxGetApp(); para obtener la clase CWinApp que ilustra una manera en la que se pueden usar WriteProfileString, WriteProfileInt, GetProfileString y GetProfileInt desde cualquier función de una aplicación MFC.

CWinApp *pApp = AfxGetApp();

CString strSection = _T("My Section");
CString strStringItem = _T("My String Item");
CString strIntItem = _T("My Int Item");

pApp->WriteProfileString(strSection, strStringItem, _T("test"));

CString strValue;
strValue = pApp->GetProfileString(strSection, strStringItem);
ASSERT(strValue == _T("test"));

pApp->WriteProfileInt(strSection, strIntItem, 1234);

int nValue;
nValue = pApp->GetProfileInt(strSection, strIntItem, 0);
ASSERT(nValue == 1234);

Para otro ejemplo, vea el de CWinApp::GetProfileInt.

CWinApp::WriteProfileString

Llame a esta función miembro para escribir la cadena especificada en la sección especificada del registro de la aplicación o archivo .INI.

BOOL WriteProfileString(
    LPCTSTR lpszSection,
    LPCTSTR lpszEntry,
    LPCTSTR lpszValue);

Parámetros

lpszSection
Apunta a una cadena terminada en NULL que especifica la sección que contiene la entrada. Si la sección no existe, se creará. El nombre de la sección es independiente de las mayúsculas y minúsculas; la cadena puede ser cualquier combinación de letras mayúsculas y minúsculas.

lpszEntry
Apunta a una cadena terminada en NULL que contiene la entrada cuyo valor se va a escribir. Si la entrada no existe en la sección especificada, se crea. Si este parámetro es NULL, se elimina la sección especificada por lpszSection.

lpszValue
Apunta a la cadena que se va a escribir. Si este parámetro es NULL, se elimina la entrada especificada por el parámetro lpszEntry .

Valor devuelto

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

Ejemplo

CWinApp *pApp = AfxGetApp();

CString strSection = _T("My Section");
CString strStringItem = _T("My String Item");
CString strIntItem = _T("My Int Item");

pApp->WriteProfileString(strSection, strStringItem, _T("test"));

CString strValue;
strValue = pApp->GetProfileString(strSection, strStringItem);
ASSERT(strValue == _T("test"));

pApp->WriteProfileInt(strSection, strIntItem, 1234);

int nValue;
nValue = pApp->GetProfileInt(strSection, strIntItem, 0);
ASSERT(nValue == 1234);

Para otro ejemplo, vea el de CWinApp::GetProfileInt.

CWinApp::SetAppID

Establece explícitamente el id. de modelo de usuario de aplicación para la aplicación. Se debe llamar a este método antes de que se presente cualquier interfaz de usuario al usuario (el mejor lugar es el constructor de la aplicación).

void SetAppID(LPCTSTR lpcszAppID);

Parámetros

lpcszAppID
Especifica el id. de modelo del usuario de la aplicación.

Comentarios

Consulte también

CWinThread (clase)
Gráfico de jerarquías
Procedimiento para agregar compatibilidad con el Administrador de reinicio