我有一个在Win32应用程序的WM_CREATE函数中创建的按钮,代码如下:
hChangeWorldButton = CreateWindowEx(NULL,
"BUTTON",
"OK",
WS_CHILD | WS_VISIBLE | BS_FLAT | BS_BITMAP,
2,
2,
25,
25,
hWnd,
(HMENU)CHANGEWORLD_BUTTON,
GetModuleHandle(NULL),
NULL);
SendMessage(hChangeWorldButton, BM_SETIMAGE, (WPARAM)IMAGE_BITMAP, (LPARAM)worldBmp);
我希望按钮只显示图像。不是背景和边界。
我该怎么做?我尝试了MSDN的许多不同的按钮样式,但似乎没有任何东西适合我的需要。我在考虑使用BS_OWNERDRAW,但似乎有点矫枉过正。或者它是唯一的解决方案?
最后,如果将光标悬停在按钮上,如何将光标更改为手?
答案 0 :(得分:3)
没有可用的按钮样式,导致您追求的视觉表现形式。你必须在这里使用BS_OWNERDRAW
。
作为替代方案,您可以使用Static Control代替SS_NOTIFY
样式。静态控件允许您获得所需的可视化表示,SS_NOTIFY
样式允许您响应鼠标输入。但是,您将无法实现键盘界面。
虽然我自己没有尝试过,但也可以使用Command Link(BS_COMMANDLINK
)并将标题设置为空字符串来获得所需的效果。
答案 1 :(得分:-1)
要消除按钮的背景和边框,只需使按钮小于位图。