MFC de diálogo ventana de segmentación / resolución

  • Este entornos de prueba de papel vs2013!
  • Por último, los resultados operativos son los siguientes:


En primer lugar, los nuevos proyectos: Nombre del proyecto: MySplitterDlg, otra a mantener la opción por defecto.
En segundo lugar, crear una clase de diálogo
Cada tipo de registro CMyFormView0 y CMyFormView1 , grupo de la categoría seleccionada de la CDialog , debe elegir el CFormView .
Asistente de clase -> Añadir (categoría MFC) Clase:


En tercer lugar, la
función de aumento WM_CREATE respuesta del mensaje OnCreate

Por "Guía de Clase" "CMySpliterDlgDlg (no seleccionar una clase diferente) agregar la clase función de mensaje de respuesta WM_CREATE:


En cuarto lugar, editar OnCreate

Después de añadir una función de mensajes OnCreate, editar su contenido de la siguiente manera:

int CMySplitterDlgDlg :: OnCreate (LPCREATESTRUCT lpCreateStruct)
{
    si (CDialogEx :: OnCreate (lpCreateStruct) == -1)
        return -1;

    // TODO:在此添加您专用的创建代码
    // Debido a que el CframeWnd necesita una clase de ventana, vamos a crear una nueva. He copiado la muestra de Ayuda de MSDN.
    // Cuando se utiliza en su proyecto, es posible mantener CS_VREDRAW y CS_HREDRAW y luego tirar los otros tres parámetros.
    //需要注册窗口类
    CString strMyClass = AfxRegisterWndClass (CS_VREDRAW | CS_HREDRAW, 
                   :: LoadCursor (NULL, IDC_ARROW), (HBRUSH) :: GetStockObject (WHITE_BRUSH),  
                  :: LoadIcon (NULL, IDI_APPLICATION));

    La ventana con la Crear Frame // "el presente" la matriz, como
    m_pMyFrame nueva nueva = la CFrameWnd;
    m_pMyFrame-> Crear (strMyClass, _T ( ""), el WS_CHILD, CRect (0,0,300,300), el presente);
    m_pMyFrame-> el ShowWindow (SW_SHOW) ;

    // y el último, con el divisor de crear el marco la matriz, como
    m_cSplitter.CreateStatic (m_pMyFrame ,. 1, 2); // segmentación de la ventana de vista en el fotograma 1 × 2, la segunda fila es
    m_cSplitter.CreateView (0, 0, RUNTIME_CLASS (CMyFormView0), CSIZE (100100), NULL); // una primera fila
    m_cSplitter.CreateView (0,1, RUNTIME_CLASS (CMyFormView1) , CSIZE (100100), NULL); // primera fila dos

    de retorno 0;
}

En quinto lugar, añadir la variable CFrameWnd    

Las variables utilizadas en el anterior m_pMyFrame procedimiento, es necesario añadir la clase CMySplitterDlgDlg

pública:
         CFrameWnd * m_pMyFrame;

Seis, con el fin de evitar pérdidas de memoria, añadir OnDestroy () en

si (m_pMyFrame) m_pMyFrame borrado;

Siete, añadir cabeceras de diálogo 

Además, el procedimiento anterior también se utiliza la clase CMyFormView0 3.3 Resumen y creado CMyFormView1, es necesario añadir que en el MySplitterDlgDlg.cpp archivo de cabecera.

# include "MyFormView0.h"
# include "MyFormView1.h"

Ocho, añadir CSplitterWnd variables

Cuando el uso de la ventana se divide en clases CSplitterWnd (véase más arriba la función OnCreate), es necesario añadir la clase CMySplitterDlgDlg

CSplitterWnd m_cSplitter;

Nueve, editor de noticias OnSize

función de mensaje añadido después OnSize, la edición de su contenido de la siguiente manera:

:: CMySplitterDlgDlg el vacío OnSize (UINT nTipo, int CX, CY int)
{
    CDialogEx la OnSize :: (nTipo, CX, CY);

    // el TODO: código del controlador de mensaje añadir aquí
    CRect CRect;
    la GetWindowRect (y CRect);
    mientras que ScreenToClient ( CRect y);
    m_pMyFrame-> el MoveWindow (y CRect);
    m_pMyFrame-> el ShowWindow (SW_SHOW);
}

Diez, ejecute el programa



Publicados 117 artículos originales · ganado elogios 4 · Vistas a 80000 +

Supongo que te gusta

Origin blog.csdn.net/qq_36266449/article/details/78194665
Recomendado
Clasificación