2009-03-11 19 views
2

C++' da nasıl bir düğme çizileceğini biliyorum ama nasıl bir kaynak oluşturabilirim? SendMessage() veya tarafından sadece birçok dosyaları MFC kullanmak istersek aşağıdaki CButton yöntemi SetIcon kullanmanızı öneriyoruzC++ 'da bir simge düğmesi nasıl yapılır

+0

kullandığınız GUI API belirtiniz zaman BS_BITMAP bayrağını kullanmak gerekir. Win32? MFC? Qt? SendMessage yorumunuzdan win32'yi kabul ediyorum. Ama lütfen açıklığa kavuşturun. –

+0

Kabul ettiğim cevaptan MFC kullandığınızı varsayabiliriz :-) Size teşekkür etmek harika olurdu. –

+0

Yol boyunca kaybolan noktalama işaretleri? – TechNyquist

cevap

2

bir Biti yeni im böylece olmadan daha kolay anwsers ihtiyaç Lütfen yapıştırmak lütfen bu şekilde değil ise:

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)); 

Çok iyi çalışıyor.

6

Yeni olduğunuzdan, MSDN Kitaplığı'na da başvurmak isteyebilirsiniz. Button Styles (özellikle BS ICON ve BS BITMAP stilleri) ve BM_SETIMAGE message ile ilgili bilgileri bulabilirsiniz.

1

BM_SETIMAGE mesajını gönderin ve yüklenen görüntü kolunu lParam'a aktarın.

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.: Eğer CreateWindow'u()