利用 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实现对话框上信息的显示相关推荐

  1. QT学习笔记(六)——QT弹出对话框并在主窗口调用对话框的信息

    QT弹出对话框并在主窗口调用对话框的信息,显示影像 最近封控,大部分时间都在自己学习写代码,有点feel 了哈,自己摸出来一个简单的qt 界面,也实现了自己想要的功能.本篇博客主要记录一下,如何弹出对 ...

  2. vc++ 6.0对话框上无法显示中文(乱码)

    是英文版的vc++,建立mfc向导时无法选择中文,到对话框里面改成中文还是乱码,怎么版啊 问题补充: 一般对话框是可以的,就是那个CPropertyPage 不可以对话框资源选成中文以后要ReBuil ...

  3. C语言用句柄显示bmp图片,VC编程之VC MFC界面上显示BMP图片

    本文主要向大家介绍了VC编程之VC MFC界面上显示BMP图片,通过具体的内容向大家展示,希望对大家学习VC编程有所帮助. 1.通过点击界面浏览按钮选择BMP图像文件. 点击浏览按钮打开文件对话框选择 ...

  4. 如何在对话框上显示一张图片

    如何在对话框上显示一张图片 在对话框上显示一张图片,可能是一个比较常用的功能,在MFC中提供了OnPaint()绘图函数,下面结合这个函数,提供 几种在对话框上显示一张图片的代码.首先假设你有一张24 ...

  5. js ajax获得对象怎么放到td上,jquery通过AJAX从后台获取信息并显示在表格上,并支持行选中...

    不想用Easyui的样式,但是想要他的表格功能,本来一开始是要到网上找相关插件的,但是没找到就开始自己写,没想到这么简单. 后台代码:(这个不重要) public ActionResult GetDi ...

  6. VC++ MFC获取对话框上控件的位置

    CRect rect;GetDlgItem(控件ID)->GetWindowRect(&rect);//获取控件的屏幕坐标 ScreenToClient(&rect);//转换为 ...

  7. mfc 获得服务器文件信息,VC编程之VC 读取服务器上的文件(HTTP方式)

    本文主要向大家介绍了VC编程之VC 读取服务器上的文件(HTTP方式),通过具体的内容向大家展示,希望对大家学习VC编程有所帮助. CString GetStringFromUrl(LPCTSTR p ...

  8. 在你的对话框上查看Revit模型的各个视图

    转载请复制以下信息: 原文链接: http://blog.csdn.net/joexiongjin/article/details/8123505 作者:  叶雄进 , Autodesk ADN 接到 ...

  9. VS2019/MFC编程入门之对话框:向导对话框的创建及显示

    上一讲讲了属性页对话框和相关的两个类CPropertyPage类和CPropertySheet类,对使用属性页对话框做准备.本节将为大家演示如何创建向导对话框. 仍然以前面的"加法计算器&q ...

最新文章

  1. 皮一皮:千万别得罪一个文科生...
  2. sourceInsight4 破解笔记(完美破解)
  3. ICLR 2020 | “同步平均教学”框架为无监督学习提供更鲁棒的伪标签
  4. web学习2--理解MVC及快速入门
  5. 清华大学迎来外籍院长!
  6. 服务器实际显示内存,服务器实际显示内存
  7. 5 SD配置-企业结构-定义-定义销售组
  8. 数据库名、实例名、数据库域名、全局数据库名、服务名 我也迷糊了
  9. telephone 为空 唯一索引_数据库基础及应用试题题库
  10. 流量卡之家:物联网资产跟踪可以实现绿色包装并关闭物流系统循环
  11. easyui数据表格批量删除(datagrid 的deleteRow方法)
  12. 方舟创建专用服务器显示黑框,方舟创建非专用游戏服务器
  13. 一个出生偏远山区挨个饿90后的触景生情
  14. 平面设计入门新手需看技巧
  15. 一周技术学习笔记(第81期)-《愿生命从容》
  16. GSM劫持+短信嗅探是什么,如何防范指南
  17. IDEA创建Maven工程Servlet
  18. R语言patchwork包将多个可视化结果组合起来、使用plot_annotation函数以及tag_level参数将组合图用大写字母进行顺序编码、为组合图的标签添加自定义前缀信息
  19. 分享几个好看的Bootstrap后台管理响应式模板
  20. 索尼65X91J 评测

热门文章

  1. 2020年灵活用工行业研究报告
  2. LeetCode MySQL刷题——day1
  3. android studio python_android studio的安装信息
  4. 2021年客户需求的新变化,带来了对程序员能力要求的新高度
  5. 专题:数据自治开放(上)
  6. 【2016年第4期】欧盟数据可携权评析
  7. 【软件质量】代码评审“亮红灯”的情况
  8. 【HTML5】HTML5支持的通用属性
  9. linux下重新启动oracle
  10. Spring MVC源码分析(一) 说明