适用于对话框和属性页的原始工具栏,具有许多漂亮的样式(版本 1.01)






2.27/5 (6投票s)
适用于对话框和属性页的原始工具栏,具有许多精美样式
下载 源代码(版本 1.01)
更新信息
以下仅显示新增功能和错误修复。
请访问 先前版本 1.00 以获取更多信息。
- 函数Create() 函数已更改为
BOOL Create(CWnd*pMum,int iBmpID,int cx,int iBarID=-1,COLORREF clrBkgnd=RGB(192,192,192));
在版本 1.00 中,该函数为
BOOL Create(CWnd*pMum,int iBmpID,int cx,int iBarID=-1);
clrBkgnd:位图资源的透明颜色,类似于 CImageList 中的颜色
我在 Win98 上开发了 1.00,但在 XP 上测试时,发现问题:位图背景不透明到 COLOR_BTNFACE,此参数允许将其拟合到 COLOR_BTNFACE - 由 CImageList 自动完成。
- 消息向工具栏添加了一条新消息:
如果用户右键单击按钮,则将新消息分发到父窗口。
为了在父窗口中处理多个消息,必须使用消息类。
消息签名是
message:WM_COMMAND,wParam:工具栏的 ID(与版本 1.00 相同)。
lParam:指向类 ToolbarMine::Message 的指针。
内部消息类包含以下成员
class Message
{
publicUINT uMessage; //见下文 int iIndex; //单击按钮的索引 CRect rcButton //单击按钮的矩形
uMessage 有 2 种情况
- WM_LBUTTONDOWN
它与 版本 1.00 中的唯一消息相同。
请注意:
对于独立的按钮,消息实际上是在 WM_LBUTTONUP 时分发的。
几乎不需要定义新的消息常量,所以我只是简单地使用这个现有的 Windows 常量。
这类似于 Windows 的常用按钮,它告诉我们单击了按钮,而不是按下或释放了按钮。
- WM_RBUTTONDOWN
当用户使用鼠标的右键单击按钮时,会分发消息。
右键单击按钮不会以任何方式更改按钮状态(选中或按下)。
该消息允许我们用它来做一些有趣的事情。
在我的应用程序(不是示例程序)中,我显示一个与消息关联的弹出菜单,其中包含“帮助”、“编辑”、“提交”和“关闭”菜单项,因此我的应用程序可以为按钮提供更多选项。
- WM_LBUTTONDOWN
XP 上具有不同工具栏样式的 7 个界面
(每个界面显示 14 个工具栏,代表 14 种按钮样式)。1. 工具栏样式:无