Ziman
Messages postés245Date d'inscriptiondimanche 27 avril 2003StatutMembreDernière intervention26 septembre 2008
-
20 août 2006 à 23:48
Ziman
Messages postés245Date d'inscriptiondimanche 27 avril 2003StatutMembreDernière intervention26 septembre 2008
-
21 août 2006 à 03:18
Bonjour, j'ai téléchargé une source ici (de deck_bsd sur les processus) et j'ai donc vu qu'il faisait des DialogBox pour par exemple afficher une boite "a propos de ", j'ai essayé de faire pareil, mais euh, ben ca marche pas. Le problème, c'est que je met un button sur ma DialogBox et ce bouton apparait mais le fond de ma DialogBox est transparent et on dirait que celle-ci prend tout l'écran car quand je clique quelque part, ça ne fait rien ...
Voici mon code (j'ai débuter le GUI hier, c'est donc surement un peu un peu boulet ...) :
Ziman
Messages postés245Date d'inscriptiondimanche 27 avril 2003StatutMembreDernière intervention26 septembre 2008 21 août 2006 à 01:14
Oui d'accord, il est bien fait et je pense que la source de Deck était basé dessus vu les commentaires qu'il a laissé mais regarde mon code, je le pense identique à part les noms de variables mais rien n'y fait ...
Ziman
Messages postés245Date d'inscriptiondimanche 27 avril 2003StatutMembreDernière intervention26 septembre 2008 21 août 2006 à 01:30
Erf, ben ce sera pas utile de mettre le code, c'est bien le return 0 qui fait que ca foirait ... Merci beaucoup, mais j'ai une autre question. Je comprend assez bien les lignes de codes sauf 2 :
lpwWord = (LPWORD) (lpDlgBox+1);
lpwsWindowName = (LPWSTR) (lpwWord +2);
Je ne comprend pas bien ce que l'on fait en faisant cela. Merci si tu peux m'éclairer (plus que les commentaires :p)
racpp
Messages postés1909Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 201417 21 août 2006 à 01:48
lpwWord = (LPWORD) (lpDlgBox+1); permet d'obtenir un pointeur sur la zone juste après la fin de la structure DLGTEMPLATE.
lpwsWindowName = (LPWSTR) (lpwWord +2); permet d'obtenir un pointeur sur la zone qui contiendra le titre de la boite de dialogue. Ce pointeur sera utilisé dans la fonction MultiByteToWideChar().
On peut enlever ces trois lignes de code et donner le titre qu'on veut à la boite de dialogue avec SetwindowText() pendant le traitement de WM_INITDIALOG.
case WM_INITDIALOG:
SetWindowText(hwDlg,"Titre de la boite de dialogue");
Ziman
Messages postés245Date d'inscriptiondimanche 27 avril 2003StatutMembreDernière intervention26 septembre 2008 21 août 2006 à 02:14
Oki je comprend pour lpsWindowName car on s'en sert comme tu le dis dans MultiByteToWideChar mais lpwWord n'est utilisé nul part alors quel est son interet ?
racpp
Messages postés1909Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 201417 21 août 2006 à 03:15
Je l'avais mis dans mon code source juste pour que les choses soient un peu claires. Pour montrer qu'on est au delà de la zone allouée à la structure DLGTEMPLATE.