zoukankan      html  css  js  c++  java
  • MFC中给对话框添加ToolBar,并显示提示信息

    参考:MFC CTooLBar 工具栏显示提示信息ToolTip

    在CxxxDlg.h中添加
        CImageList m_imagelist;
        CToolBar m_toolbar;
        afx_msg BOOL OnToolTipNotify(UINT id, NMHDR * pNMHDR, LRESULT * pResult); //for 信息提示

    在CxxxDlg.cpp文件:
    在OnInitDialog()中添加

    // TODO:  在此添加额外的初始化代码
        m_imagelist.Create(32, 32, ILC_COLOR24 | ILC_MASK, 1, 1);
        m_imagelist.Add(theApp.LoadIcon(IDI_ICON_BOOK_INFO));
        m_imagelist.Add(theApp.LoadIcon(IDI_ICON_BOOK_IN));
        m_imagelist.Add(theApp.LoadIcon(IDI_ICON_QUERY));
        m_imagelist.Add(theApp.LoadIcon(IDI_ICON_SYS_CONF));
        m_imagelist.Add(theApp.LoadIcon(IDI_ICON_EXIT));
    
        //工具栏按钮ID数组
        UINT arrBtnID[5] = { 7001, 7002, 7003, 7004, 7005 };
        //创建工具栏
        m_toolbar.Create(this);
        m_toolbar.SetButtons(arrBtnID, 5);
        //m_toolbar.SetButtonText(0, _T("图书信息"));
        //m_toolbar.SetButtonText(1, _T("图书入库"));
        //m_toolbar.SetButtonText(2, _T("销售查询"));
        //m_toolbar.SetButtonText(3, _T("系统配置"));
        //m_toolbar.SetButtonText(4, _T("系统退出"));
        m_toolbar.GetToolBarCtrl().SetButtonWidth(60, 120);
        m_toolbar.GetToolBarCtrl().SetImageList(&m_imagelist);
        m_toolbar.SetSizes(CSize(60, 60), CSize(32, 32));
        RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);
        m_toolbar.EnableToolTips(TRUE);//激活Tip
    View Code

    添加提示消息的步骤

    //// 信息提示 /////
    //1. 头文件
    afx_msg BOOL OnToolTipNotify(UINT id, NMHDR * pNMHDR, LRESULT * pResult);//for 信息提示
    // 2. 消息映射宏
    BEGIN_MESSAGE_MAP(CLibraryManagerDlg, CDialogEx)
        ON_WM_SYSCOMMAND()
        ON_WM_PAINT()
        ON_WM_QUERYDRAGICON()
        ON_BN_CLICKED(IDOK, &CLibraryManagerDlg::OnOk)
        //这些是自定义的工具栏按钮的ID,对应的映射函数
        ON_COMMAND(7001, OnBookInfo)
        ON_COMMAND(7002, OnBookIn)
        ON_COMMAND(7003, OnSellQuery)
        ON_COMMAND(7004, OnSysConf)
        ON_COMMAND(7005, OnSysExit)
        ON_NOTIFY_EX(TTN_NEEDTEXT, 0, OnToolTipNotify) // for 消息提示
    END_MESSAGE_MAP()
    
    // 3. 映射函数
    BOOL CLibraryManagerDlg::OnToolTipNotify(UINT id, NMHDR *pNMHDR, LRESULT *pResult)
    {
        TOOLTIPTEXT *pTTT = (TOOLTIPTEXT *)pNMHDR;
        CString str;
        UINT nID = pNMHDR->idFrom; //获取工具栏按钮ID
        if (nID)
        {
            int index = m_toolbar.CommandToIndex(nID); //根据ID获取按钮索引
            if (index != -1)
            {
                switch (index)
                {
                case 0:
                    pTTT->lpszText = L"图书信息";
                    break;
                case 1:
                    pTTT->lpszText = L"图书入库";
                    break;
                case 2:
                    pTTT->lpszText = L"销售查询";
                    break;
                case 3:
                    pTTT->lpszText = L"系统配置";
                    break;
                case 4:
                    pTTT->lpszText = L"系统退出";
                    break;
                default:
                    pTTT->lpszText = L" ";
                    break;
    
                }
    
                //获取工具栏文本            
                pTTT->hinst = AfxGetResourceHandle();
                return(TRUE);
            }
        }
        return(FALSE);
    }
    View Code

    ****************

    常记溪亭日暮,沉醉不知归路。兴尽晚回舟,误入藕花深处。争渡,争渡,惊起一滩鸥鹭。

    昨夜雨疏风骤,浓睡不消残酒。试问卷帘人,却道海棠依旧。知否?知否?应是绿肥红瘦。
  • 相关阅读:
    android入门之三【应用程序组成】
    Palm应用开发之一开发环境搭建
    android 入门之一【开发环境搭建】
    在DataGridView中的CheckBox值变更后立即获取值。
    根据字符串返回类型
    CSS模拟不同的拐角效果
    SQL查询生成交叉列表
    LinkButton 的 OnClick 事件 可以是一个方法
    代替marquee的滚动字幕效果代码
    JavaScript实现DataGrid中添加CheckBox列(全选与否)
  • 原文地址:https://www.cnblogs.com/htj10/p/12385991.html
Copyright © 2011-2022 走看看