• 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

  • 相关阅读:
    中值滤波与图像锐化
    空间域图像增强
    图像的几何变换
    Fourier分析应用
    Gale-Shapley算法
    有理数与无限循环小数
    线性可分支持向量机
    拉格朗日乘子法+KKT条件
    点到平面的距离
    BP神经网络
  • 原文地址:https://www.cnblogs.com/IAMSailorMoon/p/14831448.html
Copyright © 2020-2023  润新知