2009-03-11 14 views
2

Je sais comment dessiner un bouton en C++ mais comment est-ce que je pourrais faire une icône dessus quelqu'un peut-il post source ou donner des références s'il vous plaît? par SendMessage() ou si pas de cette façon juste s'il vous plaît coller S'il vous plaît besoin plus facile anwsers sans tant de fichiers im nouveau un peuComment faire un bouton d'icône en C++

+0

s'il vous plaît spécifier l'API graphique que vous utilisez. Win32? MFC? Qt? Je suppose win32 de votre commentaire SendMessage. Mais s'il vous plaît clarifier. –

+0

Je suppose que nous pouvons supposer que vous utilisez MFC de votre réponse acceptée :-) Ce serait génial de dire merci. –

+0

La ponctuation perdue en cours de route? – TechNyquist

Répondre

2

Si vous utilisez MFC alors je vous recommande d'utiliser la méthode CButton suivante SetIcon:

CButton myButton; 

// Create an icon button. 
myButton.Create(_T("My button"), WS_CHILD|WS_VISIBLE|BS_ICON, 
    CRect(10,10,60,50), pParentWnd, 1); 

// Set the icon of the button to be the system question mark icon. 
myButton.SetIcon(::LoadIcon(NULL, IDI_QUESTION)); 

Cela fonctionne très bien.

6

Depuis que vous êtes nouveau, vous pouvez également consulter la bibliothèque MSDN. Vous pouvez trouver des informations sur Button Styles (voir, en particulier, les styles BS ICON et BS BITMAP) et le BM_SETIMAGE message.

1

Envoyer un message BM_SETIMAGE et transmettre le handle d'image chargé à lParam.

button1 = CreateWindowW(L"BUTTON", L"&Button", WS_VISIBLE | WS_CHILD | WS_TABSTOP | BS_BITMAP, 20, 50, 80, 25, hwnd, (HMENU) 600, NULL, NULL); 

hImg = LoadImageW(NULL, L"test123.bmp", IMAGE_BITMAP, 0, 0, LR_DEFAULTCOLOR | LR_DEFAULTSIZE | LR_LOADFROMFILE); 
SendMessageW(button1, BM_SETIMAGE, IMAGE_BITMAP, (LPARAM) hImg); 

P.S: vous devez utiliser l'indicateur de BS_BITMAP quand CreateWindow()

Questions connexes