3

我知道如何在 C++ 中绘制一个按钮,但我将如何在其上制作一个图标,有人可以发布源代码或提供参考吗?通过 SendMessage() 或者如果不是这样,请粘贴

4

3 回答 3

6

由于您是新手,您可能还希望查阅 MSDN 库。您可以找到有关按钮样式的信息(具体参见 BS ICON 和 BS BITMAP 样式)和BM_SETIMAGE 消息

于 2009-03-11T02:53:11.823 回答
3

如果您使用 MFC,那么我建议您使用以下CButton方法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) ); 

这很好用。

于 2009-03-11T02:40:41.370 回答
1

发送 BM_SETIMAGE 消息,并将加载的图像句柄传递给 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);

PS: CreateWindow() 时需要使用 BS_BITMAP 标志

于 2014-01-16T16:59:28.030 回答