VC实现对话框上信息的显示
利用 VC的AppWizard,可以很容易地实现工具条和菜单项的ToolTip,或在状态条上显示帮助信息,但要在对话框的控件上显示ToolTip和在状态条上显示控件信息并不容易实现。现在,我们用VC中的WM_SETCURSOR 与TTN_NEEDTEXT消息就可达到目的。具体操作如下:
一、利用 VC的 MFC AppWizard 生成一个 SDI 或 MDI 的应用程序
二、编辑对话框控件的字符串资源
例如:IDC_DBBUTTON1 = “This is 肖天鹏的第一自制按钮天鹏",
其中字符串“This is肖天鹏的第一自制按钮“将在鼠标移到控件上时显示在状态条上,字符串“天鹏"将作为 ToolTip 显示。
三、建立消息映射
在对话框的头文件 (*.H) 中
加入以下代码:
protected:
void SetStatusText(UINT nID=0);
//{{AFX_MSG(CFileOp1)
afx_msg void OnDestroy();
afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
//}}AFX_MSG
afx_msg BOOL OnTipNotify( UINT id, NMHDR * pNMHDR, LRESULT * pResult );
DECLARE_MESSAGE_MAP()
在对话框的实现文件 (*.CPP) 中加入以下代码:
BEGIN_MESSAGE_MAP(CFileOp1, CDialog)
//{{AFX_MSG_MAP(CFileOp1)
ON_WM_DESTROY()
ON_WM_SETCURSOR()
//}}AFX_MSG_MAP
ON_NOTIFY_EX(TTN_NEEDTEXT,0,OnTipNotvify)
END_MESSAGE_MAP()
四、编辑消息处理函数
BOOL CFileOp1::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{// TODO: Add your message handler code here and/or call default
if(pWnd==this)
SetStatusText();
else
{TOOLTIPTEXT m_psttt;
m_psttt.hdr.hwndFrom=m_hWnd;
m_psttt.hdr.idFrom=pWnd->GetDlgCtrlID();
m_psttt.hdr.code=TTN_NEEDTEXT;
m_psttt.uFlags= TTF_IDISHWND;
SetStatusText(pWnd->GetDlgCtrlID());
this->SendMessage(WM_NOTIFY,m_psttt.hdr.idFrom,(LPARAM)&m_psttt); }
return CDialog::OnSetCursor(pWnd, nHitTest, message);}
void CFileOp1::OnDestroy()
{SetStatusText();
CDialog::OnDestroy();}
void CFileOp1::SetStatusText(UINT nID)
{if(nID==0)
nID=AFX_IDS_IDLEMESSAGE;
CWnd *pWnd=AfxGetMainWnd()->GetDescendantWindow(AFX_IDW_STATUS_BAR);
if(pWnd)
{AfxGetMainWnd()->SendMessage(WM_SETMESS??
AGESTRING ,nID);
pWnd->SendMessage(WM_IDLEUPDATECMDUI);
pWnd->UpdateWindow();}}
BOOL CFileOp1::OnTipNotify( UINT id, NMHDR * pNMHDR, LRESULT * pResult )
{ TOOLTIPTEXT *pTTT = (TOOLTIPTEXT *)pNMHDR;
UINT nID =pNMHDR->idFrom;
if (pTTT->uFlags & TTF_IDISHWND)
{ nID = ::GetDlgCtrlID((HWND)nID);
if (nID)
{ TCHAR szFullText[256];
CString StrTipText;
AfxLoadString(nID,szFullText);
AfxExtractSubString(StrTipText,szFullText,1,′ ′);
if(!StrTipText.IsEmpty())
strcpy(pTTT->lpszText,StrTipText);
pTTT->hinst = AfxGetResourceHandle();
return(TRUE); } }
return(FALSE);}
五、将该对话框作为一个 SDI 或 MDI应用程序的主框架的子窗口,生成这样一个对话框后,当你把鼠标移到某个控件 ( 必须有相应的字符串资源 )上时,就会出现该控件的 ToolTip和状态条信息。
VC实现对话框上信息的显示相关推荐
- QT学习笔记(六)——QT弹出对话框并在主窗口调用对话框的信息
QT弹出对话框并在主窗口调用对话框的信息,显示影像 最近封控,大部分时间都在自己学习写代码,有点feel 了哈,自己摸出来一个简单的qt 界面,也实现了自己想要的功能.本篇博客主要记录一下,如何弹出对 ...
- vc++ 6.0对话框上无法显示中文(乱码)
是英文版的vc++,建立mfc向导时无法选择中文,到对话框里面改成中文还是乱码,怎么版啊 问题补充: 一般对话框是可以的,就是那个CPropertyPage 不可以对话框资源选成中文以后要ReBuil ...
- C语言用句柄显示bmp图片,VC编程之VC MFC界面上显示BMP图片
本文主要向大家介绍了VC编程之VC MFC界面上显示BMP图片,通过具体的内容向大家展示,希望对大家学习VC编程有所帮助. 1.通过点击界面浏览按钮选择BMP图像文件. 点击浏览按钮打开文件对话框选择 ...
- 如何在对话框上显示一张图片
如何在对话框上显示一张图片 在对话框上显示一张图片,可能是一个比较常用的功能,在MFC中提供了OnPaint()绘图函数,下面结合这个函数,提供 几种在对话框上显示一张图片的代码.首先假设你有一张24 ...
- js ajax获得对象怎么放到td上,jquery通过AJAX从后台获取信息并显示在表格上,并支持行选中...
不想用Easyui的样式,但是想要他的表格功能,本来一开始是要到网上找相关插件的,但是没找到就开始自己写,没想到这么简单. 后台代码:(这个不重要) public ActionResult GetDi ...
- VC++ MFC获取对话框上控件的位置
CRect rect;GetDlgItem(控件ID)->GetWindowRect(&rect);//获取控件的屏幕坐标 ScreenToClient(&rect);//转换为 ...
- mfc 获得服务器文件信息,VC编程之VC 读取服务器上的文件(HTTP方式)
本文主要向大家介绍了VC编程之VC 读取服务器上的文件(HTTP方式),通过具体的内容向大家展示,希望对大家学习VC编程有所帮助. CString GetStringFromUrl(LPCTSTR p ...
- 在你的对话框上查看Revit模型的各个视图
转载请复制以下信息: 原文链接: http://blog.csdn.net/joexiongjin/article/details/8123505 作者: 叶雄进 , Autodesk ADN 接到 ...
- VS2019/MFC编程入门之对话框:向导对话框的创建及显示
上一讲讲了属性页对话框和相关的两个类CPropertyPage类和CPropertySheet类,对使用属性页对话框做准备.本节将为大家演示如何创建向导对话框. 仍然以前面的"加法计算器&q ...
最新文章
- 皮一皮:千万别得罪一个文科生...
- sourceInsight4 破解笔记(完美破解)
- ICLR 2020 | “同步平均教学”框架为无监督学习提供更鲁棒的伪标签
- web学习2--理解MVC及快速入门
- 清华大学迎来外籍院长!
- 服务器实际显示内存,服务器实际显示内存
- 5 SD配置-企业结构-定义-定义销售组
- 数据库名、实例名、数据库域名、全局数据库名、服务名 我也迷糊了
- telephone 为空 唯一索引_数据库基础及应用试题题库
- 流量卡之家:物联网资产跟踪可以实现绿色包装并关闭物流系统循环
- easyui数据表格批量删除(datagrid 的deleteRow方法)
- 方舟创建专用服务器显示黑框,方舟创建非专用游戏服务器
- 一个出生偏远山区挨个饿90后的触景生情
- 平面设计入门新手需看技巧
- 一周技术学习笔记(第81期)-《愿生命从容》
- GSM劫持+短信嗅探是什么,如何防范指南
- IDEA创建Maven工程Servlet
- R语言patchwork包将多个可视化结果组合起来、使用plot_annotation函数以及tag_level参数将组合图用大写字母进行顺序编码、为组合图的标签添加自定义前缀信息
- 分享几个好看的Bootstrap后台管理响应式模板
- 索尼65X91J 评测