PDA

View Full Version : [C++] MFC CDialog possibile senza resource file?


Black imp
10-01-2008, 18:06
E' la prima volta che uso le MFC. vorrei creare delle dialogbox senza ricorrere agli script e ai file rc facendo tutto a mano. E' possibile? in rete tutta la documentazione che ho trovato descrive solo come farlo tramite wizard.

grazie

tomminno
11-01-2008, 09:59
Si può fare, solo che diventi scemo a posizionare a mano tutti i controlli e chiaramente in caso di ridimensionamento della finestra ottieni una bella schifezza.
Siccome alla M$ non ritengono opportuno usare i sizer...
Oltretutto dovresti conoscere bene i meccanismi di funzionamento delle MFC perchè ti devi scrivere a mano tutto: eventi, parametri che ricevono, macro da usare...

Forse ti conviene iniziare usando l'editor... e continuare ad usarlo anche in seguito.

Io ho dovuto realizzare delle interfacce completamente a mano con le MFC solo perchè l'editor non rapresenta i pixel reali e io avevo a che fare con risoluzioni fisse, per cui non tornava mai niente.
Ma non lo consiglierei assolutamente.

Piuttosto consiglierei di passare alle wxWidgets, molto più pratiche delle MFC, hanno il look & feel nativo e ti ritrovi gratis un software che compila anche sotto Linux e WinCE (con le dovute limitazioni di CE).

Black imp
13-01-2008, 03:26
Si può fare, solo che diventi scemo a posizionare a mano tutti i controlli e chiaramente in caso di ridimensionamento della finestra ottieni una bella schifezza.
Siccome alla M$ non ritengono opportuno usare i sizer...
Oltretutto dovresti conoscere bene i meccanismi di funzionamento delle MFC perchè ti devi scrivere a mano tutto: eventi, parametri che ricevono, macro da usare...

Forse ti conviene iniziare usando l'editor... e continuare ad usarlo anche in seguito.

Io ho dovuto realizzare delle interfacce completamente a mano con le MFC solo perchè l'editor non rapresenta i pixel reali e io avevo a che fare con risoluzioni fisse, per cui non tornava mai niente.
Ma non lo consiglierei assolutamente.

Piuttosto consiglierei di passare alle wxWidgets, molto più pratiche delle MFC, hanno il look & feel nativo e ti ritrovi gratis un software che compila anche sotto Linux e WinCE (con le dovute limitazioni di CE).

NO MAI! :D scusa ti ringrazio delle info. alla fine penso che contuinuerò con l'editor mettendo le mani sui suoi script solo per modificarli. effettivamente non mi aggiunge niente gestire tutto. I meccanismi di base degli eventi, messaggi ecc. delle finestre li conosco anche perchè è la stessa roba che si usa esplicitamente con le win32 però quelli delle dialog sono un filo più incasinati per via dello scambio dati.

avevo iniziato proprio con le wxwidgets ma personalmente le ho ritenute una scelta peggiore. avrei fatto tutto sotto linux ma già che devo programmare sotto winzoz voglio sfruttare al meglio le sue librerie invece che usarne altre che costituiscono un ulteriore layer e mi obbligano a salti mortali per impostare ogni volta che reinstallo il compilatore.

se posso permettermi a hai voglia ho un'altra domanda:

ho una finestra principale nella quale, dopo aver caricato un file, parte il rendering open gl e quindi dichiaro fin dall'inizio, nella message map, la ON_WM_PAINT. il rendering opengl e la creazione del suo contesto avviene solo dopo aver caricato il file. se apro una dialog non me la fa vedere perchè si sovrappone alla client area, questa lancia un messaggio di paint e viene ridipinta. non c'è modo di sospendere la chiamata o registrare dopo la ON_WM_PAINT, solo quando faccio partire il rendering?


[EDIT]

risolto: nella mia OnPaint, quando uscivo prima perchè non era attivo il rendering non chiamavo la CFrameWnd::OnPaint. ora è a posto!