zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    shell脚本基础
    rtsp冷门解释
    C++基础之动态内存
    树莓派3安装ros
    Trie树
    [LeetCode]The Skyline Problem
    [LeetCode]Implement Trie (Prefix Tree)
    C++基础之适配器
    配置树莓派3的openwrt中的网络
    [LeetCode]Self Crossing
  • 原文地址:https://www.cnblogs.com/IAMSailorMoon/p/14831448.html
Copyright © 2011-2022 走看看