CreateDialog et resources

cs_anthraxx Messages postés 47 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 9 juin 2004 - 24 août 2003 à 18:32
magicalbubble Messages postés 1 Date d'inscription mercredi 7 janvier 2004 Statut Membre Dernière intervention 7 janvier 2004 - 7 janv. 2004 à 15:31
C simple, je veux que mon application Win32, affiche comme fenetre principale une boite de dialogue que j'ai fait avec le 'resource editor' et qui est inclue en ressource dans l'executable.

J'ai essayé CreateDialog, mais c'etait trop beau (et facile) pour marcher, car cette fonction, et toutes les autres semblables (CreateDialogParam, CreateDialogIndirect, etc) veulent une fenetre 'owner'. Or moi je veux que ce soit la fenetre principale de mon programme. et mettre hwndOwner=NULL sa marche pas non plus.

Donc voili voila, c tout simple la question, et si possible la reponse aussi (le but en fesant sa fenetre avec l'editeur de ressources c'est, entre autres, la simplicité non?)

--anthraxx

7 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
24 août 2003 à 19:07
Les sources publiees servent a quoi ?
Tu regardes sur les miennes par exemple, tu auras ce que tu demandes ici a tout coup.
DialogBoxParam(...);
BruNews, ciao...
0
cs_anthraxx Messages postés 47 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 9 juin 2004
25 août 2003 à 16:07
t'imagine bien que j'y avais pensé... j'ai vu ton code d'ailleurs
Mais voila, DialogBoxParam me renvoie -1...
Et GetLastError renvoie 1407, soit "Cannot find window class"

Une autre idée?

--anthraxx
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
25 août 2003 à 16:12
et bien donne ce que tu mets dans WinMain, je n'ai jamais vu le systeme refuser de creer une dialogbox. On va trouver le probleme.
BruNews, ciao...
0
cs_anthraxx Messages postés 47 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 9 juin 2004
25 août 2003 à 16:15
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, PSTR, int)
{
DialogBoxParam(hInstance, (LPCTSTR)IDD_CLIENTWND, 0, DlgProc, 0);
return 0;
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_anthraxx Messages postés 47 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 9 juin 2004
25 août 2003 à 16:18
je voulais dire:
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow)
{
DialogBoxParam(hInstance, (LPCTSTR)IDD_CLIENTWND, 0, DlgProc, 0);
return 0;
}
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
25 août 2003 à 16:26
l'une ou l'autre c'est idem, encore que je prefere la mienne pour la clarte.
IDD_CLIENTWND tu es sur que valide ?
DlgProc correctement declare ?
Si prob persiste, envoie ton truc, on ira + vite et je te le retourne (VC++ j'espere).
bnutiles@wanadoo.fr
BruNews, ciao...
0
magicalbubble Messages postés 1 Date d'inscription mercredi 7 janvier 2004 Statut Membre Dernière intervention 7 janvier 2004
7 janv. 2004 à 15:31
C'est un peu vieux comme post; mais pour que tu puisses utiliser, createdialogboxparam comme fenetre principale tu dois enregistrer une classe via RegisterClass comme s'il s'agissait d'une fenetre normale puis tu la cree via Createdialogboxparama.
En ce qui concerne DialogBoxParamA, tu t'y prends mal, car
IDD_CLIENTWND est un nombre entier, et justement il y a un macro qui tombe a point nomme MAKEINTRESOURCE (cf msdn), donc :

DialogBoxParam(hInstance, MAKEINTRESOURCE(IDD_CLIENTWND), NULL, (DLGPROC) TaProc, NULL);

Voila A+
0
Rejoignez-nous