Rebar qui ne s'affiche pas dans DialogBox [API Win32] - API Win32 - Programmation
Marsh Posté le 27-09-2008 à 11:21:37
Bonjour
Désolé du retard, je ne sais pas si la question est toujours d'actualité
Avant d'ajouter les 'band' il faut initialiser la rebar:
REBARINFO rbInfo;
ZeroMemory(&rbInfo, sizeof(REBARINFO));
rbInfo.cbSize = sizeof(REBARINFO);
SendMessage(hwndRebar, RB_SETREBARINFO, (WPARAM)0, (LPARAM)&rbInfo);
voilà
Jean
Marsh Posté le 27-09-2008 à 13:27:35
Je n'ai pas réessayé depuis, merci pour la réponse c'est toujours un élément de plus.
Après de plus amples recherches, le problème semble (aussi ?) venir de la définition de REBARBANDINFO suivant les différents systèmes (XP, Vista).
C'est bien expliqué ici : http://forums.microsoft.com/msdn/ShowPost.aspx?PostID=3020349&SiteID=1
Rq: c'est toujours un problème d'initialisation de structure.
Je devrais bientôt retester, affaire à suivre...
Marsh Posté le 27-09-2008 à 15:09:26
oui, c'est à ça que sert le cbSize.
perso j'ajoute toujours
#define _WIN32_WINNT 0x561
#define _WIN32_IE 0x600
Marsh Posté le 15-12-2007 à 16:06:40
Salut
Je suis en train d'essayer d'utiliser le control Rebar, je souhaite l'inclure dans ma fenetre mais rien ne s'affiche. Tout compile tres bien.
Quelques precisions :
- pas de MFC utilisees ici, tout en win32.
- DialogBox & fichier .rc utilises pour construire la boite de dialogue, pas de CreateWindow donc.
- Application Unicode
- compilation avec Visual C++ 2008 Express edition, Windows XP SP2
Initialisation en regle pour l'utilisation de Rebar (et eventuellement une Toolbar classique aussi), ceci apres le RegisterClass dans le WinMain.
ensuite, appel de la macro DialogBox pour creer et affiche la boite de dialogue :
et enfin creation de la Rebar dans la DialogProc (WM_INITDIALOG) :
ha et puis un extrait du .RC concernant la boite de dialogue
j'ai essaye au debut de creer la rebar comme mes autres controles dans le fichier RC mais vu que rien n'etait rendu a l'ecran j'ai decider de coller un peu plus a la doc et le faire avec un CreateWindowEx... sans grand resultat.
La premiere question qui m'est venue et n'est pas explicitee dans MSDN, est est-ce que le hwnd parent du controle qui sera dans la rebar (hButton ici) doit etre la dialog box (hDlg) ou la rebar (hwndRebar) ?
Le plus logique serait hwndRebar comme parent. Enfin ca ne resoud pas le probleme.
Toujours est-il que strictement rien n'est affiche / peint dans la boite de dialogue.
(InitCommonControlsEx() est appelee avec succes j'ai verifie)
Si quelqu'un a une idee...
merci