1.在ResourceView里加入Toolbar资源,命名IDR_TOOLBAR1
2、在主程序的.h文件中加入变量:
          CToolBar m_toolbar;CImageList img;
3、在主程序中.h文件中的BEGIN_MESSAGE_MAP(CDetectorDlg,CDialog)函数中加入:
        ON_NOTIFY_EX( TTN_NEEDTEXT,0,OnToolTipText)

3、在主程序中.h文件中添加消息函数:
afx_msg BOOL OnToolTipText(UINT, NMHDR *pTTTStruct, LRESULT *pResult);

4、创建一个Toolbar工具   详见《MFC 学习之 工具栏》

5.在主程序的.cpp文件中编译函数OnToolTipText//使工具栏显示提示信息

 

BOOL CDormDlg::OnToolTipText(UINT, NMHDR *pTTTStruct, LRESULT *pResult)

{

    ASSERT(pTTTStruct->code == TTN_NEEDTEXTA || pTTTStruct->code == TTN_NEEDTEXTW);

    

    //UNICODE消息

    TOOLTIPTEXTA *pTTA=(TOOLTIPTEXT*)pTTTStruct;

    TOOLTIPTEXTW *pTTW=(TOOLTIPTEXTW*)pTTTStruct;

 

    CString strTipText,strStatus;

    UINT nID = pTTTStruct->idFrom;     

    

    if(pTTTStruct->code == TTN_NEEDTEXTA &&(pTTA->uFlags & TTF_IDISHWND) ||

        pTTTStruct->code ==TTN_NEEDTEXTW &&(pTTW->uFlags & TTF_IDISHWND))

    {

        //strStatus.Format("%d",1);

        nID = ::GetDlgCtrlID((HWND)nID);

        

    }

 

    if(nID != 0)//不为分隔符

    {

    //    AfxMessageBox("1111111111");

        strTipText.LoadString(nID);

        strTipText = strTipText.Mid(strTipText.Find(_T('\n'),0)+1);

        

#ifndef _UNICODE

        if (pTTTStruct->code == TTN_NEEDTEXTA)

        {

            lstrcpyn(pTTA->szText,strTipText,sizeof(pTTA->szText));    

            //AfxMessageBox(pTTA->szText);

            m_bar.SetPaneText(0,pTTA->szText);

        } 

        else

        {            

            _mbstowcsz(pTTW->szText,strTipText,sizeof(pTTW->szText));

            //m_bar.SetPaneText(0,"就绪");

        }

#else

        if(pTTTStruct->code == TTN_NEEDTEXTA)

        {

            _wcstombsz(pTTA->szText,strTipText,sizeof(pTTA->szText))    ;

            m_bar.SetPaneText(0,pTTA->szText);

        }

        else

        {

            lstrcpyn(pTTW->szText,strTipText,sizeof(pTTW->szText));

            m_bar.SetPaneText(0,"就绪");

        }

 

#endif

        *pResult = 0;

        ::SetWindowPos(pTTTStruct->hwndFrom,HWND_TOP,0,0,0,0,SWP_NOACTIVATE |

            SWP_NOSIZE |SWP_NOMOVE |SWP_NOOWNERZORDER);

        //m_bar.SetPaneText(0,"就绪");

        return TRUE;

    }

    

    return TRUE;

}

6.在ResourceView的String资源里,将工具栏中每个按钮的ID都对应上希望显示的提示信息即可


7、效果图

MFC 学习之 鼠标移动到Toolbar按钮上显示提示信息(tooltip),状态栏也随之改变的更多相关文章

  1. Python3 tkinter基础 Button text,fg 按钮上显示的文字 文字的颜色

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  2. MFC学习篇(一):用OpenCV显示视频

    首先是一些基础的步骤,如建立MFC应用,添加按钮等,博主主要参考了下面这篇文章,其中的前32步都是用OpenCV显示图片和视频所必须的,即通用的.由于LZ原来有配置OpenCV的基础,所以配制还是比较 ...

  3. 孙鑫MFC学习笔记7:对话框编程(上)

    1.DoModal创建模态对话框 2.Create创建非模态对话框(需要用ShowWindow显示出来) 模态:对话框显示,程序会暂停,直到对话框关闭 非模态:对话框显示,程序继续执行 3.对于模态对 ...

  4. 实用的 鼠标滑上显示提示信息的jq插件

    使用非常简单, 引用 css js文件, 将需要显示提示信息的元素 添加class="tooltip"类名, 在title属性填写提示信息就好了title="啊啊啊啊&q ...

  5. VC/MFC 当鼠标移到控件上时显示提示信息

    VC/MFC 当鼠标移到控件上时显示提示信息 ToolTip是Win32中一个通用控件,MFC中为其生成了一个类CToolTipCtrl,总的说来其使用方法是较简单的,下面讲一下它的一般用法和高级用法 ...

  6. Python pyQt4/pyQt5 学习笔记1(空白窗口,按钮,控件事件,控件提示,窗体显示到屏幕中间,messagebox)

    PyQt4是用来编写有图形界面程序(GUI applications)的一个工具包.PyQt4作为一个Python模块来使用,它有440个类和超过6000种函数和方法.同时它也是一个可以在几乎所有主流 ...

  7. 学习OpenSeadragon之五(工具条toolbar与自定义按钮)

    OpenSeadragon简介:学习OpenSeadragon之一(一个显示多层图片的开源JS库) 一.工具条toolbar设置 OpenSeadragon为我们提供了现成的工具条toolBar,工具 ...

  8. MFC 学习笔记

    MFC 学习笔记 一.MFC编程基础: 概述: 常用头文件: MFC控制台程序: MFC库程序: 规则库可以被各种程序所调用,扩展库只能被MFC程序调用. MFC窗口程序: 示例: MFC库中类的简介 ...

  9. MFC 如何改变对话框按钮上的文字

    原文地址:http://blog.163.com/wenxianliang08@126/blog/static/8358326320110300643282/ 什么是标记菜单  如何标记菜单   如何 ...

随机推荐

  1. Android开发经验记录

    一.    代码规范 定一个规范的主要目的,是为了让不同的开发人员写的代码能保持一致性,方便别人看自己的代码.另外,对个人来说,也能起到让自己看着舒服的作用. 1.      基本 * 使用UTF-8 ...

  2. WinAPI—— CallNextHookEx调用下一个钩子

    CallNextHookEx(   hhk: HHOOK;    {当前钩子的句柄}   nCode: Integer; {钩子代码; 就是给下一个钩子要交待的}   wParam: WPARAM; ...

  3. cisco vpn client for win10 x64 setup package

    win10 x64安装cisco vpn client报错,解决方法如下: 1.卸载以前安装的所有cisco vpn client,并重启电脑. 2.运行winfix.exe 3.安装Global V ...

  4. Android开发之动画(转)

    activity跳转的过渡效果,很漂亮,很全 注意,切换方法overridePendingTransition只能在startActivity和finish方法之后调用. 第一个参数为第一个Activ ...

  5. 大四实习准备6_android服务

    2015-5-9 1.服务是什么 android四大组件之一,有一些特点: 1)服务的运行不依赖于用户界面,即使程序被切换到后台.或者用户打开了另外一个应用程序,服务仍然能够保持正常运行.(当对应的程 ...

  6. 排序算法(C#)

    1.插入排序 1.1直接插入排序 算法介绍: 直接插入排序(straight insertion sort)的做法是:   每次从无序表中取出第一个元素,把它插入到有序表的合适位置,使有序表仍然有序. ...

  7. POJ 1067 取石子游戏

    题意:有两堆个数分别为a和b的石子,两个人轮流取石子,一次可以取一堆中任意个数的石子,或者在两堆中取相同个数的石子,最先没有石子可以取的人输,你先取,赢为1输为0. 解法:威佐夫博弈.看完题先找规律, ...

  8. codeforces 629D 树状数组+LIS

    题意:n个圆柱形蛋糕,给你半径 r 和高度 h,一个蛋糕只能放在一个体积比它小而且序号小于它的蛋糕上面,问你这样形成的上升序列中,体积和最大是多少 分析:根据他们的体积进行离散化,然后建树状数组,按照 ...

  9. RhinoMocks简单范例

    using System; namespace MockTest { public interface IBBB { int Number { get; } int Compute(int j); i ...

  10. [GRYZ2015]阿Q的停车场

    题目描述 刚拿到驾照的KJ 总喜欢开着车到处兜风,玩完了再把车停到阿Q的停车场里,虽然她对自己停车的水平很有信心,但她还是不放心其他人的停车水平,尤其是Kelukin.于是,她每次都把自己的爱车停在距 ...