从win32按钮中删除边框

7

我有一个按钮,它是在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,但似乎有点过度设计。或者这是唯一的解决方案吗?
最后,当鼠标悬停在按钮上时,如何将光标更改为手形?
2个回答

4
没有适合您所需视觉效果的按钮样式可用。在此处,您需要选择BS_OWNERDRAW
作为替代方案,您可以使用带有静态控件SS_NOTIFY样式的控件。静态控件允许您获得所需的视觉效果,而SS_NOTIFY样式允许您对鼠标输入做出响应。但是,您将无法实现键盘界面。
虽然我自己没有尝试过,但也可能通过使用命令链接BS_COMMANDLINK)并将标题设置为空字符串来实现所需效果。

0

为了消除按钮的背景和边框,只需使按钮小于位图。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接