首页 > 其他 > 详细

MFC之CToolTipCtrl按钮提示

时间:2014-03-07 12:18:04      阅读:676      评论:0      收藏:0      [点我收藏+]

记得以前写对话框时,按钮直接有一个tips属性,可以添加默认值,不记得是C#还是啥了,今天忽然想给几个按钮添加提示信息,就捣鼓了一下。

头文件中创建CToolTipCtrl变量,然后在初始化时激活使用:

CToolTipCtrl m_iToolTips;
bubuko.com,布布扣
BOOL CTestDXFDlg::OnInitDialog()
{
    CDialog::OnInitDialog();

    // 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
    //  执行此操作
    SetIcon(m_hIcon, TRUE);            // 设置大图标
    SetIcon(m_hIcon, FALSE);        // 设置小图标

    // TODO: 在此添加额外的初始化代码
    EnableToolTips(TRUE);
    m_iToolTips.Create(this);
    m_iToolTips.Activate(TRUE);
    m_iToolTips.SetTipTextColor(RGB(0,255,0));
    m_iToolTips.SetTipBkColor(RGB(255,0,0));
    m_iToolTips.SetDelayTime(150);
    m_iToolTips.AddTool(GetDlgItem(IDC_BTN_ZOOM_IN), "放大");
    m_iToolTips.AddTool(GetDlgItem(IDC_BTN_ZOOM_OUT), "缩小");
    m_iToolTips.AddTool(GetDlgItem(IDC_BTN_ZOOM_EXTENT), "适应");

    return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
}
bubuko.com,布布扣

重载PreTranslateMessage系统消息函数

bubuko.com,布布扣
BOOL CTestDXFDlg::PreTranslateMessage(MSG* pMsg)
{
    switch(pMsg->message)
    {
    case WM_MOUSEMOVE:
        m_iToolTips.RelayEvent(pMsg);
        break;
    default:
        break;
    }
    return CDialog::PreTranslateMessage(pMsg);
}
bubuko.com,布布扣

手动和自动添加该函数均可(vs2008自动添加PreTranslateMessage函数

然后遇到问题:不能设置tip的背景颜色和字体颜色,查询后发现,在xp系统下是正常的,在xp之后的系统均出现这个问题,注释掉stdafx.h中相关代码又出现界面其他显示问题。(注释代码详情

晚了,明天继续吧!

MFC之CToolTipCtrl按钮提示,布布扣,bubuko.com

MFC之CToolTipCtrl按钮提示

原文:http://www.cnblogs.com/skywatcher/p/3585449.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!