2010-08-09 83 views
2

我想获得图标和文字,所以我没有在我的按钮上设置BM_ICON。在 WM_INITDIALOG(是的,按钮在一个对话框)我说:如何在win 32 C++中的按钮上显示文本和d图标?

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

我相信你想要的就是所谓的“OwnerDraw”按钮。你可以混合文本和图形。您提供了3个按钮状态,并绘制了您所说的内容。

的OwnerDraw控制示例:http://www.codeguru.com/cpp/controls/buttonctrl/advancedbuttons/article.php/c5161

上面的链接可能有点极端,但你现在有一个搜索词找到很多例子。我记得Petzolds的“Programming Windows”也有一个例子。

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

搜索示例:Win32 ownerdraw按钮。

相关问题