如何在win32 c ++中的按钮上显示文本和图标?

时间:2010-08-09 11:39:11

标签: c++ winapi

我想获得图标和文字,所以我没有在我的按钮上设置BM_ICON。在 WM_INITDIALOG(是的,按钮在对话框中)我说:

SendDlgItemMessage(hwndDlg, IDC_CREATE, BM_SETIMAGE, IMAGE_ICON, reinterpret_cast<LPARAM>(create_image));

它不起作用。该按钮仅显示文本。现在,如果我确实设置了BS_ICON 风格,它的工作原理,但没有文字,如文件所述。 以防万一,create_image实例化如下:

create_image = LoadImage(g_current_instance, MAKEINTRESOURCE(IDI_ICONCREATE), IMAGE_ICON, 32, 32, LR_SHARED);

那我该如何让它发挥作用呢?

1 个答案:

答案 0 :(得分:1)

我相信你想要的东西叫做“OwnerDraw”按钮。您可以在它们上混合文本和图形。您提供了3个按钮状态,它绘制了您所说的内容。

Ownerdraw控件示例:http://www.codeguru.com/cpp/controls/buttonctrl/advancedbuttons/article.php/c5161

上面的链接可能有点极端,但您现在有一个搜索词来查找大量示例。我记得Petzolds“Programming Windows”也有一个例子。

请注意,您可以使用这些按钮制作非矩形按钮。通常,当您在Windows上看到一个奇怪的形状按钮时,就是这样做的。

搜索示例:Win32 ownerdraw按钮。