Cómo llamar a la solución tipo camarón de BCG en VC
Hay muchos controles en BCG, entre los cuales el cuadro de diálogo de configuración de propiedades es muy poderoso. Para utilizar únicamente el cuadro de diálogo de configuración de propiedades de BCG, se requieren algunas modificaciones en el código. Los siguientes son los pasos específicos:
1. Después de agregar el archivo de encabezado BCG en Stdafx.h, cualquier parte de BCG utilizada en el proyecto no necesita agregar el archivo de encabezado. El código es el siguiente:
# include ltBCGCBProInc.h gt
2 Modificar la relación de herencia del proyecto desde CWinApp y agregar herencia desde CBCGPWorkspace. Si no se aumenta, se producirán algunos problemas durante el uso de la vacuna BCG. El código es el siguiente:
Clase CTestControlConfigApp: CWinApp pública,
CBCGPWorkspace pública
3 Agregue la siguiente declaración a la función InitInstance de la subclase CWinApp:
AfxOleInit(); //Inicializa el control utilizado por BCG.
4. Finalmente, para evitar la fuga de recursos BCG, debe agregar la siguiente declaración a la función ExitInstance en la subclase CWinApp:
BCGCBProCleanUp()
;5. Finalmente, puede configurar la clase usando propiedades.
Paso 1, declarar una variable cbcgppolistm_wndproplist
Paso 2: Inicializar en la función OnCreate u OnInitDialog. El código de muestra es el siguiente:
CRect rect(159, 29, 468, 376);
If (!m_wndPropList. Create (WS_VISIBLE | WS_CHILD, rect, this, 2) ) p>
{
TRACE0("Error al crear la cuadrícula de atributos\n ");
return-1 //La creación falló
}
m_wndPropList. EnableHeaderCtrl(FALSO);
m_wndPropList. enableescriptionarea();
m_wndPropList. SetVSDotNetLook();
m_wndPropList.
MarkModifiedProperties();
CBCGPProp * pgroup 1 = new CBCGPProp(_ T(" Apariencia "));
pgroup 1->; agregar subítem(new CBCGPProp(_ T(" Aspecto 3D "), (_variant_t) false,
_T("La fuente del cuadro de diálogo especificado no estará en negrita y el control tendrá un borde tridimensional"));
CBCGPProp * pProp = new CBCGPProp(_T("Borde"), _T("Marco de diálogo"),
_T("Uno de Ninguno, Delgado, Redimensionable o Marco de diálogo"));
pProp- gt; agregar opción(_ T(" Ninguno "));
pProp- gt; agregar opción(_ T(" Delgada ")); p>pProp - gt; agregar opción(_ T(" Redimensionable "));
pProp- gt; ; lo permitió (FALSO);
pgroup 1->;add subitem(pProp);
pgroup 1->;add subitem(new CBCGPProp(_ T(" Caption ") , ( _variant_t) _T("Acerca de BCGProTest "),
_T("Especifique el texto que se mostrará en la barra de título del cuadro de diálogo"))); 1. );
CBCGPProp * pSize = new CBCGPProp(_ T("Tamaño de ventana"), 0, TRUE);
pProp = new CBCGPProp (_T("Altura ") , ( _variant_t) 250l,
_T("Especifique la altura del cuadro de diálogo"));
pProp- gt; >
pSize->;add subitem(pProp);
pProp = new CBCGPProp (_T("Ancho"), (_variant_t) 150l,
_T("Especifique el ancho del cuadro de diálogo" ));
pProp- gt; EnableSpinControl();
pSize->; add subitem(pProp);
m_wndPropList.
agregar propiedad(pSize);
CBCGPProp * pgroup 2 = new CBCGPProp(_ T(" Font "));
LOGFONT lf
CFont * FONT = CFont:: from handle((HFONT)GetStockObject(DEFAULT_GUI_FONT));
Fuente - gt;GetLogFont(amp;lf);
lstrcpy (lf.lfFaceName, _ T(" Arial "));
pgroup 2- gt; add subitem(new CBCGPFontProp(_T(" Font "), lf, CF_EFFECTS | CF_SCREENFONTS, _ T("Especifique la fuente predeterminada del cuadro de diálogo ") );
pgroup 2- gt; AddSubItem (new CBCGPProp (_T("Usar fuente del sistema"), (_variant_t) true, _T("Especifique el cuadro de diálogo para usar la fuente MS Shell Dlg"));
m_wndPropList.add property(pgroup 2);
CBCGPProp * pgroup 3 = new CBCGPProp(_ T(" Misc ")); CBCGPProp (_T("(Nombre)"), _T(" IDD _ ABOUT _ BOX(diálogo)");
pProp- gt; habilitado (falso);
pGroup3 - >añadir subitem(pProp);
CBCGPColorProp * pColorProp = new CBCGPColorProp(_T("Color de ventana"), RGB (210, 192, 254), NULL, _ T("Especificar el color de diálogo predeterminado " ));
pColorProp- gt; EnableOtherButton (_T("Otro..."));
pColorProp- gt; EnableAutomaticButton(_ T(" Predeterminado "),: : GetSysColor(COLOR _ cara 3d));
pGroup3->add subitem(pColorProp);
Basado en el filtro estático TCHAR _ CODE SZ[]= _ T(" Icon Files( *. ico)|*. ico | Todos los archivos (*.
*)|*.*||");
pGroup3->añadir subelemento(new CBCGPFileProp(_T(" Icon "), TRUE, _T(" "), _T("ico "), 0 , szFilter, _ T("Especificar icono del cuadro de diálogo"));
pGroup3->añadir subelemento(new CBCGPFileProp(_ T(" Carpeta "), _ T(" c:\ \ ")) ;
cole datetime date = cole datetime::obtener hora actual();
pGroup3->añadir subelemento(new CBCGPDateTimeProp(_ T(" Fecha "), Fecha, p>
pGroup3->añadir subelemento(new CBCGPDateTimeProp(_ T("Fecha"),Fecha,
p>
_T("Establecer fecha"), 0, CBCGPDateTimeCtrl:: DTM _Fecha));
pGroup3->add subitem(new CBCGPDateTimeProp(_ T(" Hora "), fecha,
_T("Establecer una hora"), 0, CBCGPDateTimeCtrl: :DTM_time));
m_wndPropList add property(pgroup 3);
CBCGPProp * pgroup 4 = new CBCGPProp(_ T(" Jerarquía "));
CBCGPProp * pgroup 41 = new CBCGPProp(_ T("Primer subnivel"));
pgroup 4- gt; agregar subítem(pgroup 41);
CBCGPProp * pgroup 411 = new CBCGPProp(_ T("Segundo subnivel"));
pgroup 41->;add subitem(pgroup 411);
pgroup 411->;add subitem(new CBCGPProp(_T("Elemento 1"), (_variant_t) _T("Valor 1"),
_T("Esta es la descripción")));
pgroup 411- >;add subitem(new CBCGPProp(_ T(" Elemento 2 "), (_variant_t) _T(" Valor 2 "),
_T("Esta es la descripción"))
pgroup 411->; agregar subítem(new CBCGPProp(_ T(" Elemento 3 "), (_variant_t) _T("Valor 3 "),
_T("Esta es la descripción" )));
pgroup 4- gt; expand(false);
m_wndPropList. agregar propiedad(pgroup 4);
m_wndPropList. MOSTRAR ventana(SW _ SHOW);