• MFC中控件显示提示信息tooltip


    方法一:利用CWnd自身支持的tooptip来实现

    1、在窗口中增加消息映射ON_NOTIFY_EX(TTN_NEEDTEXT, 0, SetTipText)  // SetTipText是回调函数

    2、EnableToolTips(TRUE)  // 使用这个方法调用这个函数是必不可少的,建议在CDialog::OnInitDialog调用

    3、在窗口中增加一个函数用于动态提供显示内容,其原型为 BOOL SetTipText(UINT id, NMHDR *pTTTStruct, LRESULT *pResult)

    BOOL CCTestTooltipCtrlDlg::SetTipText(UINT id, NMHDR *pTTTStruct, LRESULT *pResult)
    {
    	TOOLTIPTEXT *pTTT = (TOOLTIPTEXT *)pTTTStruct;
    	UINT nID = pTTTStruct->idFrom;  // 得到相应窗口ID,有可能是HWND  
    
    	// 表明nID是否为HWND
    	if (pTTT->uFlags & TTF_IDISHWND)
    	{
    		// 从HWND得到ID值,当然你也可以通过HWND值来判断
    		nID = ::GetDlgCtrlID((HWND)nID);
    		if (NULL == nID)	return FALSE;
    
    		switch (nID)
    		{
    		case IDC_Button:
    			strcpy(pTTT->lpszText, "This is a Button Ctrl");
    			break;
    		case IDC_Text:
    			strcpy(pTTT->lpszText, "This is a Text Ctrl");
    			break;
    		default:
    			break;
    		}
    
    		return TRUE;
    	}
    
    	return FALSE;
    }

    4、很重要的一点,要显示的控件必须设置notify属性,否则收不到notify消息,自然也就显示不了tooltip

  • 相关阅读:
    windows 配置免密登录 centos7
    早盘消息 2月16日 周三
    早报 3月1日 周二
    早报 2月23日 周三
    早报 3月4日 周五
    早报 2月21日 周一
    早盘消息 2月17日 周四
    早报 2月22日 周二
    如何在远程机器上运行多个 SSH 命令并安全退出
    早报 2月28日 周一
  • 原文地址:https://www.cnblogs.com/IAMSailorMoon/p/14831448.html
Copyright © 2020-2023  润新知