MFC 开发界面增加控件提示 的方法

一直在开发一个软件,最近对软件进行升级,想给各个控件增加一些提示,这样方便新手用户熟悉功能。以前没有接触过这方便的知识,于是百度了一下。


对控件添加提示时非常方便的,因为我的软件时给予VC6.0 Dialog的,现在将IDE改成VS2008,基本都是一些很容易就改掉的编译错误。


对于每一个基于CDialog的类,

我们在其头文件中<*.h> 的类定义中,添加声明函数

BOOL OnToolTipNotify(UINT id, NMHDR * pNMHDR, LRESULT * pResult );

然后添加系统消息TTN_NEEDTEXT

BEGIN_MESSAGE_MAP(CMyDlg, CDialog)
	ON_NOTIFY_EX(TTN_NEEDTEXT, 0, OnToolTipNotify )
END_MESSAGE_MAP()


然后再OnInitDialog()中,开启这个功能

BOOL CMyDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	EnableToolTips();
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}


最后就是添加消息函数的实现

BOOL CMyDlg::OnToolTipNotify(UINT id, NMHDR * pNMHDR, LRESULT * pResult )
{
	TOOLTIPTEXT *pTTT = (TOOLTIPTEXT *)pNMHDR;
	UINT nID =pNMHDR->idFrom;
	if (pTTT->uFlags & TTF_IDISHWND)
	{
		nID = ::GetDlgCtrlID((HWND)nID);
		switch (nID)
		{
		default:
			return(FALSE);
			break;
		case IDC_BUTTON_TEST:
			pTTT->lpszText = "123456";//要显示的Tip
			break;
		}

		pTTT->hinst = AfxGetResourceHandle();
		return(TRUE);
	}
	return(FALSE);
}

对于其它的控件,只需要继续添加case项就可以了实现了各种各样的提示了。


缺点:如果一个较大的控件,提示会出现在控件的下方中奖,提示效果不明显。

优点:只需很小的修改量就能满足要求,对于简单的应用非常简单。


PS:很久没有写文章了,没手感。

本文首发于CSDN,转贴请标明来源!



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值