Aplikacje wielookienkowe - jak je robić?
Stwórz sobie nową klasę odpowiedzialną za formatki (nie wiem jak się ona w wxWidgets nazywa, ale w Qt jest to QWidget)
Prosiłbym o dokładniejszy opis, bo nie za bardzo wiem, jak się za to zabrać w wxWidgets.
Ale konkretnie, to co masz na myśli? Podaj przykład jakiejś znanej aplikacji, która jest twoim zdaniem "wielookienkowa". Bo ja tu widzę pewną nieścisłość.
chodnik: chodzi mu po prostu o aplikację składającą się z wielu form ;)
edek X: tak jak tworzysz klasę odpowiedzialną za formę główną, tak stwórz sobie nową klasę odpowiedzialną za jakieś inne okienko.
Jeżeli chodzi Ci o MDI to tworzysz klasy pochodne od wxMDIParentFrame i wxMDIChildFrame.
Chodzi o to, że wx Dev-C++ robi mi wiele plików gdy tworzę projekt.
Między innymi jest tam plik NazwaProjektuApp.h :
#ifndef __textApp_h__
#define __textApp_h__
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WX_PRECOMP
#include <wx/wx.h>
#else
#include <wx/wxprec.h>
#endif
class textFrmApp : public wxApp
{
public:
bool OnInit();
int OnExit();
};
#endif
i plik NazwaProjektuApp.h :
#include "textApp.h"
#include "textFrm.h"
IMPLEMENT_APP(textFrmApp)
bool textFrmApp::OnInit()
{
textFrm* frame = new textFrm(NULL);
SetTopWindow(frame);
frame->Show(true);
return true;
}
int textFrmApp::OnExit()
{
return 0;
}
I nie wiem co robić z tymi plikami :( Czy wystarczy taki jeden na wszystkie okna, czy jak...
textFrmApp to jest główna klasa programu - tu tworzysz okno główne:
textFrm* frame = new textFrm(NULL);
// itd.
Resztę funkcji programu implementujesz w textFrm.
PS. proponuję poczytać trochę dokumentację wxWidgets, tam wszystko jest ładnie opisane ;)
w dokumentacji nic o tym znaleźć nie mogłem...
czyli gdzie i co mam dopisać żeby było 2 okno?
W linkach które podałeś nie ma nic o wielu oknach...
Oczywiście, że nie ma - tam są podstawy (pierwszy link). Bez znajomości podstaw i tego jak wxWidgets jest zorganizowana zapomnij o wielu oknach.
Podstawy to ja znam, umiem już trochę, ale nie umiem robić wielu okien. Pomocy...
Eee tam, ja nie zagladalem nawet do dokumentacji i zrobilem dwa okna (wxDevCpp).
Ale jak zobaczylem ze exek zajmuje 5 MB i biorac pod uwage, ze do kompilacji i liknowania potrzeba 200 MB pamieci, a trwa to prawie minute (Celeron 2 GhZ) dla prosiutkiego proagramu wyswiatlaacego tylko okna, to dalem juz spokoj z tym czyms .. :-P
No to ciekawe bo u mnie exec w wersji debug ma 3MB (UPX ~800kB), dodatkowo ~18tyś linii (własnego) kodu. Rekompilacja całości trwa ~8 min (Duron 950) z czego 70% plików nie ma nic wspólnego z wxWidgets. Kompilator VC7.1 (dość wolny).
wxDevCpp jest razem z kompilatorem MinGW i to on jest odpowiedzialny za to, że pliki wynikowe mają taki, a nie inny rozmiar. Być może coś się da ustawić w opcjach kompilatora, ale ja nie wiem co.
Dla mnie jest ważniejsza wieloplatformowość niż rozmiar :P
No wlasnie, korzystajac z okazji spytam: czy kod napisany pod wxDev c++ mozna bez zmian skompilowac pod linuksem? Oczywiscie zakladam, ze nie uzywam zadnych funkcji WinApi.
Cos czytalem o WxGTK i WxX11 - moze mi ktos przyblizyc troche ten temat?