MFC 添加tooltip

在消息映射中:

BEGIN_MESSAGE_MAP(CPaperEditorDlg, CDialogEx)
    ON_NOTIFY_EX(TTN_NEEDTEXT,0, SetToopTipText)
END_MESSAGE_MAP()

SetToopTipText 是消息回调函数。
头文件中:

    //tooltip
    BOOL SetToopTipText(UINT id, NMHDR *pTTTStruct, LRESULT *pResult);

在 OnInitDialog() 函数中:

EnableToolTips(TRUE);

实现,得到控件ID后根据ID复制tooltip字符串到结构中:

BOOL CPaperEditorDlg::SetToopTipText(UINT id, NMHDR *pTTTStruct, LRESULT *pResult)
{
    TOOLTIPTEXT * pTTT = (TOOLTIPTEXT *)pTTTStruct;
    UINT nID = pTTTStruct->idFrom;                  //得到相应窗口ID,有可能是HWND  
    nID = ::GetDlgCtrlID((HWND)nID);              //从HWND得到ID值
    if (nID && (pTTT->uFlags & TTF_IDISHWND))    //表明nID是否为HWND
    {
        switch (nID)
        {
        case IDC_CHECKA:
            strcpy_s(pTTT->lpszText, 80, _T("选项A"));
            break;
        case IDC_CHECKB:
            strcpy_s(pTTT->lpszText, 80, _T("选项B"));
            break;
        case IDC_ANS:
            strcpy_s(pTTT->lpszText, 80, _T("输入问题答案"));
            break;
        case IDC_ANSA:
            strcpy_s(pTTT->lpszText, 80, _T("输入答案A的内容"));
            break;
        case IDC_ANSB:
            strcpy_s(pTTT->lpszText, 80, _T("输入答案B的内容"));
            break;
        default:
            break;
        }
        return TRUE;
    }
    return FALSE;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值