码迷,mamicode.com
首页 > 其他好文 > 详细

ToolBar使用-WTL篇

时间:2015-12-29 17:43:16      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:

新建一个WTL exe应用工程,工程名为WTL_ToolBar

技术分享

2、类型选对话框即可

技术分享

3、点击Finish。工程建好后,直接编译执行:

技术分享

4、资源编辑器里,将OK Cancel按钮位置移动下,防止与工具条位置冲突。

5、下面正式开始toolbar的使用:

6、资源视图下WTL_ToolBar.rc右键插入资源,弹出的对话框里选择ToolBar,然后点击新建。

然后IDR_TOOLBAR1里画3个位图,属性里分别修改ID为IDR_TBUTTON1 IDR_TBUTTON2 IDR_TBUTTON3

技术分享

7、对话框所属文件是自动生成的MainDlg.h,类为class CMainDlg

添加成员: CToolBarCtrl m_toolbar; 

OnInitDlg里添加InitToolBar();调用,因为我们用InitToolbar函数来初始化toolbar

新建InitToolBar成员函数,这样:

    void InitToolBar()
    {
        m_toolbar.Create(this->m_hWnd, 0, 0, WS_CHILD | WS_VISIBLE);
        m_toolbar.SetStyle(CCS_TOP | CCS_NODIVIDER);    

        m_toolbar.AddBitmap(3, IDR_TOOLBAR1);

        m_toolbar.AutoSize();
    }

编译执行,发现根本没有工具条。当然,将对话框背景若改为别的颜色后:

技术分享
BEGIN_MSG_MAP(CMainDlg)
    //添加
    MESSAGE_HANDLER(WM_ERASEBKGND, OnEraseBkgnd)
END_MSG_MAP()

    LRESULT OnEraseBkgnd(UINT, WPARAM, LPARAM, BOOL& /*bHandled*/)
    {
        RECT rc;
        GetClientRect(&rc);

        HDC dc = GetDC();
        HBRUSH br = CreateSolidBrush(RGB(255, 0, 0));

        FillRect(dc, &rc, br);

        DeleteObject(br);
        ReleaseDC(dc);

        return 0;
    }
改背景

技术分享

8、AddBitmap函数里面发送了TB_ADDBITMAP消息,查看MSDN,TB_ADDBITMAP消息作用:Adds one or more images to the list of button images available for a toolbar。它仅是添加一个或多个图像到按钮的图像列表里,它并不会自动生成3个按钮并分别分配图像。

ToolBar使用-WTL篇

标签:

原文地址:http://www.cnblogs.com/sfqh/p/5086467.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!