65.9K
CodeProject 正在变化。 阅读更多。
Home

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

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.27/5 (6投票s)

2006年8月23日

CPOL

2分钟阅读

viewsIcon

27188

downloadIcon

273

适用于对话框和属性页的原始工具栏,具有许多精美样式

下载 源代码(版本 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
    {
    public
    UINT uMessage; //见下文
    int iIndex; //单击按钮的索引
    CRect rcButton //单击按钮的矩形
    };
     
    uMessage 有 2 种情况
     
    1. WM_LBUTTONDOWN
      它与 版本 1.00 中的唯一消息相同。
      请注意:
      对于独立的按钮,消息实际上是在 WM_LBUTTONUP 时分发的。
      几乎不需要定义新的消息常量,所以我只是简单地使用这个现有的 Windows 常量。
      这类似于 Windows 的常用按钮,它告诉我们单击了按钮,而不是按下或释放了按钮。
       
    2. WM_RBUTTONDOWN
      当用户使用鼠标的右键单击按钮时,会分发消息。
      右键单击按钮不会以任何方式更改按钮状态(选中或按下)。
       
      该消息允许我们用它来做一些有趣的事情。
      在我的应用程序(不是示例程序)中,我显示一个与消息关联的弹出菜单,其中包含“帮助”、“编辑”、“提交”和“关闭”菜单项,因此我的应用程序可以为按钮提供更多选项。
       
    请查看源代码以获取更多信息。

XP 上具有不同工具栏样式的 7 个界面

(每个界面显示 14 个工具栏,代表 14 种按钮样式)。

1. 工具栏样式:无

2. 工具栏样式:凸起

3. 工具栏样式:强烈凸起

4. 工具栏样式:凹陷

5. 工具栏样式:强烈凹陷

6. 工具栏样式:彩色

7. 工具栏样式:强烈彩色

© . All rights reserved.