如何在c++ win32中制作一个可点击的按钮
how to make a clickable button in c++ win32
任何人都可以告诉我如何使用位图作为按钮,实际上我可以创建一个静态控件,并可以将图片设置为它,但问题是我不知道如何使用它作为按钮,我使用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应用程序的底部有一个广告的图片一样。我正在使用visual studio c++与win32 api。
如果你想要一个按钮控件,你应该创建一个按钮控件。可视化表示可以由应用程序控制。为此,指定BS_OWNERDRAW
按钮样式。这种样式的按钮控件在视觉方面发生变化时向控件父控件发送一个wm_drawwitem消息。然后,控件父控件可以呈现它认为合适的控件。
有关自定义控件的介绍,请参阅自定义控件。如果你想保留按钮控件的某些部分(例如它的边框),请参阅使用自定义和所有者绘制控件的视觉样式(或DrawFrameControl,如果你不使用视觉样式)。
可以在这个答案中找到一个所有者绘制的按钮控件的完整工作示例代码
在Windows中,窗口属于一个类,这个类定义了该类的所有窗口的Windows过程,这意味着它们如何对事件做出反应。
如果你创建一个STATIC
窗口,它不会对任何点击做出反应,也不会作为按钮使用。
您可以创建一个自定义类,将其与能够模拟BUTTON的自定义窗口过程一起注册。但是,除非你有非常特殊的要求,只需创建一个所有者绘制按钮,如@IInspectable的答案
相关文章:
- 单击一个按钮后创建一个按钮
- 一个按钮有两个或多个快捷方式
- 我动态添加一个按钮,如何在Qt的另一个空白中使用此按钮
- 禁用QT安装程序框架中的本机下一个按钮
- 当在C#中的WPF应用程序中单击一个按钮时,如何调用C 代码
- 在Qt Gui中,如何使每次点击都随机出现一个按钮
- MFC-停用除一个按钮外的所有按钮
- WinAPI 创建窗口 + 子窗口,处理一个按钮按下
- C++/MFC 有没有办法在单击另一个按钮的同时单击另一个按钮
- SDL2 运行得太快 -- 为什么当我只按一个按钮时它会读取多个输入
- 如何在屏幕底部的栏上为Qt诺基亚添加一个按钮
- 我可以用visual c++创建一个按钮矩阵吗
- 如何禁用QWizard中的下一个按钮
- 我想从GUI上的一个按钮打开Msconfig
- 在桌面上创建一个按钮
- 创建一个按钮,通过该按钮可以终止或终止正在运行的进程
- Qt如何添加一个组框,其中包含一些动态的小部件与一个按钮
- 在MFC,我怎么能有一个按钮来创建几个对话框实例连续不关闭它们
- Qt如何使一个按钮响应时,插槽连接到它的click()信号正在运行
- Qt快速如何创建一个按钮,将看起来原生的每个操作系统的应用程序中使用