zoukankan      html  css  js  c++  java
  • VC++ 类CMFECToolTip类实现窗口的浮动提示效果

    参考文章:http://www.codefans.net/articles/1863.shtml

    源码下载:http://pan.baidu.com/s/1sjt0jEH

    VC++制作浮动的鼠标提示,当鼠标光标放在程序的某个控件上时,要想知道该控件的功能,最好的办法就是弹出一个提示框来显示这些信息。本例就是要介绍如何做浮动的鼠标提示。编译并运行本例程序,如下图所示。当鼠标光标放到某一个控件上时,就会显示如图的提示框,而且背景颜色可以在程序中设定。

    浮动的鼠标提示

    有一个类CMFECToolTip 可以实现浮动的鼠标提示功能。该类捕捉鼠标信息,如果当前鼠标光标位置有需要显示提示的控件,则在合适的位置显示提示窗口。使用该类很简单。先创建该类的一个对象,然后将需要显示提示条的控件的ID,要显示的文字和提示窗口的颜色等信息一一传递给它,最后只需在鼠标移动时显示它即可。程序代码为:
    (1)通过AppWizard生成基于对话框的应用程序InfoTip。
    (2)给对话框随便增加几个控件,本例增加的是静态文本框、编辑框、CComboBox控件和按钮,其ID分别为IDC_TEXT1、IDC_EDIT1、IDC_COMBO1、IDC_BUTTON1。
    (3)给对话框增加CMFECToolTip类型的成员变量m_toolTip。
    (4)将所有需要显示提示信息的控件信息告诉CMFECToolTip对象,在对话框的OnInitDialog()函数中完成。其代码如下:

    m_toolTip.Create( this );
    CStringArray straInfo;

    straInfo.RemoveAll();
    straInfo.Add( "Test Control" );
    straInfo.Add( "Test Control2" );
    m_toolTip.AddControlInfo( IDC_STATIC, straInfo, RGB(255,255,0) );

    (5) 重载消息响应: 1.在DLG文件中重载消息

    //{{AFX_VIRTUAL(CInfoTipDlg)
    public:
    virtual BOOL PreTranslateMessage(MSG* pMsg);
    protected:
    virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
    //}}AFX_VIRTUAL

      2. 添加然后在对话框的PreTranslateMessage( MSG *pMsg )函数中捕捉WM_MOUSEMOVE消息,其代码如下:

    BOOL CTestDlg::PreTranslateMessage(MSG* pMsg)
    {
        if( pMsg->message == WM_MOUSEMOVE )
        {
            POINT pt = pMsg->pt;   
            ScreenToClient( &pt );
            m_toolTip.ShowToolTip( (CPoint)pt );
        }
        return CDialog::PreTranslateMessage(pMsg);
    }

  • 相关阅读:
    Vue单元测试Karma+Mocha
    Vue将px转化为rem适配移动端
    vscode格式化代码插件Beautify
    vue项目初始化时npm run dev报错webpack-dev-server解决方法
    在vue项目中引入jquery
    vue全局使用axios插件请求ajax
    vue项目中postcss-pxtorem的使用及webpack中的配置 css中单位px和em,rem的区别
    快速搭建Vue项目
    vue mand-mobile按2.0文档默认安装的是1.6.8版本
    vue mandmobile ui实现三列列表的方法
  • 原文地址:https://www.cnblogs.com/yuqilihualuo/p/4096820.html
Copyright © 2011-2022 走看看