2010-04-15 4 views
1

J'ai créé une barre d'outils avec des contrôles à l'aide de ReBar dans une fenêtre. Quelqu'un peut-il me dire s'il vous plaît,Comment changer le bitmap du bouton de la barre d'outils dans win32?

  1. Comment obtenir le HWND d'un boutons/combobox/etc (pas de boutons normaux dans une fenêtre) si je sais (seulement) le numéro de celui-ci?
  2. Comment obtenir le HBITMAP si je connais l'identifiant de la ressource?
  3. Comment définir le bitmap sur le contrôleur?

    SendDlgItemMessageW (hWnd, nId, BM_SETIMAGE, IMAGE_BITMAP, (LPARAM) hBitmap);

Cela ne fonctionne pas pour les barres d'outils, n'est-ce pas? Je ne pouvais pas trouver un moyen de le faire, s'il vous plaît aidez-moi. Merci ...

Cordialement

EDIT: Tout le monde s'il vous plaît? :(

EDIT:..? Ok, il semble tout le monde est occupé ces jours :(BTW, est-ce une mauvaise question

+0

Que voulez-vous dire par contrôleur? un groupe de barres d'armature? –

+0

Hey! Tout dans une barre d'armature comme Button, Combobox, etc. (Je n'avais aucun autre mot pour le décrire). Merci. – Morpheus

+0

Je pensais qu'un contrôle d'armature contient une ou plusieurs bandes d'armature, et qu'une bande d'armature ne pouvait contenir qu'un seul contrôle. Voir http://msdn.microsoft.com/en-us/library/bb774373(VS.85).aspx. Pourriez-vous préciser ce que vous voulez dire dans la langue de cet article MSDN? –

Répondre

1

Vous pouvez télécharger ControlSpy et essayer là-bas pour obtenir une sensation pour elle.
J'ai vérifié le Rebar et j'ai vu que RB_SETBANDINFO (sous Messages) pourrait être ce que vous cherchez.

+0

Hey! C'est très utile. Je vous remercie.... . – Morpheus

0

GetDlgItem fonctionnera tout aussi bien avec un Rebar comme il le fait avec une boîte de dialogue

.

Vous pouvez utiliser la fonction GetDlgItem avec n'importe quelle paire de fenêtre parent-enfant, pas seulement avec les boîtes de dialogue, tant que le paramètre hDlg spécifie une fenêtre parente et la fenêtre enfant un identifiant unique (spécifié par le paramètre hMenu dans la fonction CreateWindow ou CreateWindowEx qui a créé la fenêtre enfant), GetDlgItem renvoie un handle valide à la fenêtre enfant.

Vous pouvez utiliser LoadImage pour charger un bitmap à partir d'une ressource et retourner le HBITMAP.

Enfin, SendMessage(hWndButton, BM_SETIMAGE, (WPARAM) IMAGE_BITMAP, (LPARAM) hBitmap);

+0

Hey! Merci beaucoup. Je vais l'essayer. – Morpheus

Questions connexes