Cómo utilizar chtmlview en el programa de diálogo vc
Figura 1, cuadro de diálogo que muestra el archivo HTML
Implementación
Para mostrarlo. el archivo HTML del cuadro de diálogo, debemos asociar la clase CHtmlCtrl con un control estático (u otro control) en el cuadro de diálogo para proporcionar una ventana para mostrar el archivo HTML.
Para proporcionar una ventana, definimos la función CreateFromStatic () en la clase CHtmlCtrl. El código específico es el siguiente:
BOOL CHtmlCtrl::CreateFromStatic(UINT nID, CWnd* pParent)
.{
p>
CStatic wndStatic; // Objeto de control estático
if (!wndStatic.SubclassDlgItem(nID, pParent))
return FALSE;
// Obtenga el área rectangular del control estático y conviértala a las coordenadas del área del cliente de la ventana principal
CRect rc
wndStatic.SubclassDlgItem(nID, pParent))
return FALSE;
// Obtenga el área rectangular del control estático y conviértala a las coordenadas del área del cliente de la ventana principal p>
CRect rc;
wndStatic.GetWindowRect(amp; rc);
pParent-gt; .DestroyWindow();
// Crear control HTML (CHtmlView)
return (Create(NULL, // nombre de clase;
NULL , // título;
(WS_CHILD | WS_VISIBLE ), // estilo;
rc, // área rectangular
pParent, // ventana principal;
nID, // número de identificación del control ;
NULL)); // Eliminar soporte de marco de documento
}
Para evitar que el programa principal trate el objeto CHtmlView como un documento/marco de vista, es necesario anular CView:.OnMouseActivate(). Funciones OnMouseActivate() y CView::OnDestroy(). Además, OnMouseActivate se encarga de responder cuando el usuario hace clic en el control (WM_MOUSEACTIVATE).
int CHtmlCtrl::OnMouseActivate(CWnd* pDesktopWnd, UINT nHitTest, UINT msg)
{
// Omitir la documentación de CView /Frame
return CWnd: .OnMouseActivate(pDesktopWnd, nHitTest, msg
}
void CHtmlCtrl::OnDestroy()
{
if (m_pBrowserApp)
{
m_pBrowserApp-gt; Release()
m_pBrowserApp = NULL; >
}