descargate el proyecto... nosotros ya estuvimos hablando, la idea es simple, se tiene que saber c++ (herencia/sobrecarga/polimorfismo/encapsulamiento), todo se base en clases que se van heredando y van simplificando las cosas, la base es (por ahora) xgSystem que contiene los métodos fundamentales del sistema junto con xgApp que es la clase de las aplicaciones, la idea es la siguiente:
se define una clase programa como se detalla:
class MyApp: public xgApp {
public:
MyApp(){
MyWindow=xgNull;
}
xgBool OnInit();
xgInt OnExit();
private:
MyWnd *MyWindow;
};
class ProyWnd: public xgFrame {
public:
ProyWnd(xgWindow *parent,const xgPChar& title);
~ProyWnd();
public:
DECLARE_EVENT_TABLE()
};
en un fichero .h y:
// Declaramos la Clase principal, es la primera en crearce y define
// la continuidad de la ejecución (es un objeto global)
IMPLEMENT_APP(MyApp)
//si retorna true continua, sino termina...
xgBool MyApp::OnInit(){
//Creamos una Ventanta del tipo FRAME (ventana por defecto)
MyWindow=new ProyWnd(xgNull,"hola");//,xgDefaultPos,xgDefaultSize,xgDEFAULT_WINDOW_STYLE,);
//Si se creó correctamente el objeto...
if(MyWindow){
//si se creó correctamente la ventana...
if(MyWindow->xgCreateSuccess()){
//la mostramos...
MyWindow->xgShow();
return true;//empieza el programa...
}else{
delete MyWindow;
return false;//finaliza el programa...
}
}
return false;//finaliza el programa...
}
xgInt MyApp::OnExit(){//al finalizar el programa...
//eliminamos el objeto ventana si fue creado correctamente...
if(MyWindow)
delete MyWindow;
system("pause");
return 0;
}
/* Window Object */
ProyWnd::ProyWnd(xgWindow *parent,const xgPChar& title):xgFrame(parent,title){
//código del programa
}
Las clases definidas hasta ahora son:
D:\DevCpp\include\xg\xgCoolBar.h(122): class xgCoolBar: public xgWindow
D:\DevCpp\include\xg\xgcore.h(13): class xgApp {
D:\DevCpp\include\xg\xgdefs.h(248): class xgPoint
D:\DevCpp\include\xg\xgdefs.h(368): class xgRect
D:\DevCpp\include\xg\xgdefs.h(715): class xgRgn
D:\DevCpp\include\xg\xgDockMan.h(16): class xgDockManager
D:\DevCpp\include\xg\xgDockMan.h(18): class xgDockArea
D:\DevCpp\include\xg\xgDockMan.h(47): class xgDockManager
D:\DevCpp\include\xg\xgDockRow.h(15): class xgRow
D:\DevCpp\include\xg\xgDockWnd.h(66): class xgDockWnd:public xgWindow,public
D:\DevCpp\include\xg\xgEvent.h(249): class xgEventTable
D:\DevCpp\include\xg\xgFrame.h(19): class xgFrame:public xgWindow
D:\DevCpp\include\xg\xgGDI.h(28): class xgColor
D:\DevCpp\include\xg\xgGDI.h(117): class xgGDI
D:\DevCpp\include\xg\xgGDI.h(374): class xgBitmap
D:\DevCpp\include\xg\xgGDI.h(541): class xgBrush
D:\DevCpp\include\xg\xgGDI.h(619): class xgPen
D:\DevCpp\include\xg\xgHook.h(41): class xgHook
D:\DevCpp\include\xg\xgHookManager.h(24): class xgHookManager
D:\DevCpp\include\xg\xgIDLIST.h(22): class xgPIDL: public xgSystem
D:\DevCpp\include\xg\xgImageList.h(16): class xgImageList:public xgSystem
D:\DevCpp\include\xg\xgList.h(15): template <class T> class xgList;
D:\DevCpp\include\xg\xgListView.h(146): class xgListView: public xgWindow
D:\DevCpp\include\xg\xgMenu.h(73): class xgMenuMng:public xgSystem
D:\DevCpp\include\xg\xgMenu.h(265): class xgMenu:public xgMenuMng
D:\DevCpp\include\xg\xgMenuBar.h(19): class xgMenuBar:public xgToolBar
D:\DevCpp\include\xg\xgStatusBar.h(45): class xgStatusBar : public xgWindow
D:\DevCpp\include\xg\xgSystem.h(30): class xgSystem
D:\DevCpp\include\xg\xgTheme.h(69): class xgTheme
D:\DevCpp\include\xg\xgToolbar.h(107): class xgToolBarButton
D:\DevCpp\include\xg\xgToolbar.h(169): class xgToolBar: public xgWindow
D:\DevCpp\include\xg\xgTreeView.h(85): class xgTreeView: public xgWindow
D:\DevCpp\include\xg\xgWindow.h(39): class xgWindow:public xgSystem
y algunas otras más...
si alguien más está interesado mi email es
inexinferis@hotmail.com, por ahí podemos coordinar...
S2