gpt4 book ai didi

c++ - 如何在c++ win32中制作一个可点击的按钮

转载 作者:行者123 更新时间:2023-11-30 03:50:18 24 4
gpt4 key购买 nike

任何人都可以告诉我如何将位图用作按钮,实际上我可以创建一个静态控件并为其设置图片,但问题是我不知道如何将它用作按钮,我是使用 C++ win32。这就是我创建位图的方式

代码:

HWND Profile_Stuff(HWND hWnd, HINSTANCE hInst)
{
HWND Profile_Pic;

Profile_Pic = CreateWindow("STATIC", NULL, SS_BITMAP|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER, 5,5,33,33, hWnd, NULL, hInst, NULL);
HBITMAP hBmp = (HBITMAP)LoadImage(NULL, "camera1.jpg", IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
if(hBmp == NULL){
MessageBox(NULL, "Error while loading image", "Error", MB_OK|MB_ICONERROR);
}
SendMessage(Profile_Pic, STM_SETIMAGE, (WPARAM)IMAGE_BITMAP, (LPARAM)hBmp);
return 0;
}

然后我调用主窗口中的函数 wm_create 消息处理程序成功创建它,现在我不知道将它用作按钮,就像我们在 bit torrent 应用程序底部有一张广告图片一样。我正在使用带有 win32 api 的 visual studio c++。

最佳答案

如果你想要一个按钮控件,你应该创建一个按钮控件。视觉表示可以由应用程序控制。为此,请指定 BS_OWNERDRAW Button Style .具有这种样式的按钮控件发送一个 WM_DRAWITEM每当视觉方面发生变化时,向控件父级发送消息。然后,控件父级可以呈现它认为合适的控件。

关于自绘控件的介绍可在 Custom Controls 找到。 .如果您希望保留按钮控件的某些部分(例如它的边框),请参阅 Using Visual Styles with Custom and Owner-Drawn Controls有关详细信息(或 DrawFrameControl,如果您不使用视觉样式)。


可以在 this answer 中找到所有者绘制的按钮控件的完整示例代码。 .

关于c++ - 如何在c++ win32中制作一个可点击的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31876948/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com