diseño de interfaz vc
El control de página de propiedades de pestaña puede agregar diferentes páginas a una ventana y luego recibir una notificación cuando cambie la selección de página. La clase CTabCtrl se usa en MFC para encapsular varias operaciones del control de la página de propiedades. Al llamar a BOOL Create(DWORD dwStyle, const RECTamp; rect, CWnd* pParentWnd, UINT nID); para crear una ventana, se pueden usar los siguientes estilos especiales de controles de página de propiedades en dwStyle:
Se representa TCS_BUTTONS. por botones Posición de selección de página
TCS_MULTILINE Mostrar la posición de selección de página en filas separadas
TCS_SINGLELINE Utilice solo una fila para mostrar la posición de selección de página
Después de crear el control, debes agregarle páginas antes de poder usarla, la función para agregar una página es:
BOOL InsertItem(int nItem, LPCTSTR lpszItem es la posición, comenzando desde cero, lpszItem es el texto); mostrado en la posición de selección de página. Si desea mostrar un icono en la posición de selección de página, puede llamar a BOOL InsertItem(int nItem, LPCTSTR lpszItem, int nImage especifica la ubicación de la imagen utilizada); (CImageList * SetImageList(CImageList * pImageList) debe llamarse antes de esto; establezca la ImageList correcta)
Además, CTabCtrl también proporciona algunas funciones para obtener/modificar el estado del control.
int GetCurSel( )/int SetCurSel( int nItem ); se utiliza para obtener/establecer la posición de la página seleccionada actualmente.
BOOL DeleteItem( int nItem )/BOOL DeleteAllItems( ); se utiliza para eliminar todas las páginas especificadas.
void RemoveImage( int nImage ); se utiliza para eliminar el icono en la posición seleccionada en una página.
El mapeo de mensajes del control de la página de propiedades también utiliza la macro ON_NOTIFY, en la forma: ON_NOTIFY(wNotifyCode, id, memberFxn), wNotifyCode es el código de notificación, id es el ID de la ventana que generó el mensaje, memberFxn es la función de procesamiento, function El prototipo es como void OnXXXTab (NMHDR* pNMHDR, LRESULT* pResult), donde pNMHDR es una estructura de datos y debe convertirse en otros tipos de estructuras durante un uso específico. Los valores posibles y las estructuras de datos correspondientes para los controles de lista son:
TCN_SELCHANGE se envía después de que cambia la página actual, la estructura utilizada: NMHDR
TCN_SELCHANGING se envía cuando la página actual cambia y se puede enviar devolviendo TRUE Para prohibir cambios de página, la estructura utilizada es: NMHDR
En términos generales, cuando la página actual cambia, es necesario ocultar algunas subventanas actuales y mostrar otras subventanas.
El siguiente pseudocódigo demuestra cómo utilizar el control de la página de propiedades:
CParentWnd::OnCreate(...)
{
m_tab.Create(... ) );
m_tab.InsertItem(0, "Opción 1");
m_tab.InsertItem(1, "Opción 2"); cuadro de edición como hijo de m_tab
Crear un cuadro estático como hijo de m_tab
edit_box.ShowWindow(SW_SHOW); // El cuadro de edición está en la primera página de la página de propiedades
static_box.ShowWindow(SW_HIDE); // el cuadro estático está en la segunda página de la página de propiedades
}
void CParentWnd::OnSelectChangeTab(NMHDR* pNMHDR , LRESULT* pResult)
{//Procesar el mensaje después de que cambie la selección de página
if(m_tab.GetCurSel()==0)
{/ /Mostrar/ocultar según la página actual Diferentes subventanas
edit_box.ShowWindow(SW_SHOW);
static_box.ShowWindow(SW_HIDE
}
else
p>
{//
edit_box.ShowWindow(SW_HIDE
static_box.ShowWindow(SW_SHOW);
}
}