VC实现对话框上信息的显示

VC6.0中在CSliderCtrl控件移动滑块动态的显示tooltip 最近做的一个项目中需要播放一个文件,需要在拖动“进度条”(用滑块控件模拟的)的过程中动态悬浮显示当前位置处播放文件内的特定内容。下面是使用CToolTipCtl类简单模拟该过程。 1、使用ClassWizard给CSliderCtrl控件关联一个CSliderCtrl类型的成员变量m_ctlSlider,在包含该滑块的对话框类中添加一个CToolTipCtl类型的成员变量m_objToolTip 阅读详情
利用 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++如何弹出对话框Dialog 这是作何自己编写的VC++如何弹出对话框的代码,希望能帮助VC++的初学者。 立即下载

相关推荐

VC弹出对话框

本文例子是一个典型的C++/MFC对话框程序,设置了 EX_WM_TOOLWINDOW 扩展式样,因此在标题栏左上角看不到系统菜单图标,但通过 Ctrl+Space 或者在标题栏单击鼠标右键可以调出系统菜单

VC/MFC设置窗口、对话框标题的几种方法

// MFC设置窗口、对话框标题的几种方法 // 一、OnInitDialog()中设置(修改)对话框标题 // 1、theApp.m_pszAppName = L"标题文字"; // 2、SetWindowsText(L"标题文字") // 二、通过字串表内置ID设置标题 //ID: AFX_IDS_APP_TITLE (内置ID) //标题: 标题文字 // 三、假如工程名为“test”,App类名为“CtestApp”, // 可在App构造器实现处调用基类来设置...

Kim的博客 6006

VC++源代码 Dialog详解,各种对话框详解

VC++源代码 Dialog详解,各种对话框详解。 不错的参考,也可拿来直接饮用。

VC对话框控件基本操作1

本文以一个简单的例子实现对话框控件的基本操作。 新建对话框应用程序,然后添加相关变量 首先我们来看看效果,然后再看看如何实现的 点击报时按钮 下拉框选择 进度条开始 进度条完成 实现如上功能的源码 头文件 // dialogDlg.h : header file // #if !define

冰点蓝欣的专栏 1114

ARM CoreSight架构

CoreSight架构是现代复杂SoC的“飞行数据记录仪”(黑匣子)和“精密诊断仪”的结合体。它彻底改变了嵌入式系统的调试方式,从传统的“盲人摸象”变成了拥有“上帝视角”,是ARM生态系统能够支撑起从微控制器到高性能服务器芯片如此广泛产品线的重要基石技术之一。

guigenyi的专栏 1425

Streamlit(九) widgets-input

st.text_input / st.number_input / st.date_input / st.time_input 源码路径:${python}\Lib\site-packages\streamlit\elements\text_widgets.py(number_input.py, time_widgets.py) st.text_input st.text_input(label, value="", max_chars=None, key=None,\

heianduck的博客 3354

就绪随即

AFX_IDS_IDLEMESSAGE 就绪,可以修改文档程序左下角的内容 右下角的内容可以通过这几个来更改: ID_INDICATOR_CAPS, ID_INDICATOR_NUM, ID_INDICATOR_SCRL,

whysnlc的专栏 617

别再只用STM32了!手把手教你用STM32F4+FPGA EP2C8搭建低成本多轴运动控制器(附S形加减速算法避坑)

本文详细介绍了如何利用STM32F4与FPGA EP2C8搭建低成本多轴运动控制器,解决传统方案在脉冲输出频率、多轴同步性和实时响应方面的瓶颈。通过硬件设计、软件架构和S形加减速算法的优化,实现商用级性能,成本控制在500元以内,适合创客和小型自动化设备开发。

weixin_28693683的博客 302

MFC 状态栏梳理

MFC的状态栏两个使用要点

架构师之路,举步维艰。 1068

SolidWorks草图绘制实战:如何用图片参考快速搞定智能小车底板设计

本文详细介绍了在SolidWorks中利用图片参考进行草图绘制的实战方法,以智能小车底板设计为例,帮助设计师快速将概念转化为精准三维模型。通过插入、对齐参考图片并高效描图,结合参数化约束与尺寸驱动,大幅提升设计效率和准确性,尤其适合新手入门与老手优化工作流。

rust6ferris的博客 219

复现YOLOv8语义分割和目标检测训练自己的数据集

训练过程首先会显示你所使用的训练的硬件设备信息,然后下一段话则是你的参数配置,紧接着是backbone信息,最后是加载信息,并告知你训练的结果会保存在runs\segment\trainxx。(1)修改数据加载配置文件,在E:\project\MODEL\YOLO\yolov8-8.2.76\ultralytics-8.2.76\ultralytics\cfg\datasets。三、训练自己的数据集,segment数据集是json格式的。如果想使用多卡训练,device='\0,1,2,xxx\'

m0_56182552的博客 2766

VC实现对话框上信息的显示 (转)

VC实现对话框上信息的显示 (转)[@more@]VC实现对话框上信息的显示   利用 VC的AppWizard,可以很容易地实现工具条和菜单项的ToolTip,或在状态条上显示帮助信息,但要在对话框的控件上显示ToolTip和...

cuiji1279的博客 97

WinCC与施耐德PLC的Modbus TCP通信实战指南

本文详细解析了西门子WinCC与施耐德PLC通过Modbus TCP协议实现通信的完整实战流程。内容涵盖硬件网络配置、Modbus地址映射核心规则、WinCC驱动连接建立、变量创建及高级数据访问技巧,并提供了常见故障排查思路,帮助工程师高效解决跨品牌设备通信难题。

weixin_29194693的博客 1007

VC应用程序中初始化界面的一种实现方法

VC应用程序中初始化界面的一种实现方法KEY WORDS: Spash Screen 非模式对话框级别:PrimerPHOTOSHOP在启动时,欢迎屏幕[Spash Screen]上会动态显示一些程序初始化时的信息,然后才进入工作界面,如果我们自己开发的程序能实现这个功能,一定能给软件增色不少。VC给我们开发者提供了一个小东东:Visual C++ Components-> Spl

3659

新手必看:LiteRadio 2c SE遥控器从开箱到飞行的完整指南(附常见问题解答)

本文为新手提供LiteRadio 2c SE遥控器的完整使用指南,涵盖从开箱到首飞的20个关键步骤。详细介绍了遥控器的功能设置、与无人机的对频技巧以及首飞注意事项,帮助用户快速掌握飞行控制,避免常见错误。特别适合无人机初学者阅读。

weixin_29209801的博客 381

泰凌微8258入门教程——导读

基于泰凌微TLSR8258 Bluetooth® SIG Mesh 的入门系列教程

2万+

VC6.0实现鼠标显示按钮功能提示文本

http://www.cppblog.com/Lee7/archive/2009/07/16/90229.html 本文以VC6.0对话框应用程序为例,当鼠标在按钮上移动、按下或者弹起时显示按钮功能提示文本,本文将在按钮上显示功能提示文本:“IT知道网”。 在CXXXDlg.h文件中定义: public:   CToolTipCtrl m_openToolTip;    在CX

cswhit的博客 1052

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

[原创]让对话框的控件支持tooltips

让对话框的控件支持tooltips absolute8511(别名cool8511)于2008-11-7 环境:VC6 参考了网上的一些资料和自己的总结,简单实现了对话框控件的tooltips显示功能。 具体实现如下: 在VC6中对任意一个对话框资源都有一个对话框类相对应。假设类名叫COperPanel。 1. 为要显示tooltips的控件添加字符串资源。 比如有个按钮叫IDC_B...

weixin_30540691的博客 112

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

在对话框里面加入工具条CMFCToolBar

VC 2010 + MFC : 在对话框里面加入工具条CMFCToolBar By:章永辉             VC 2010 + MFC 新库的资料很少,以下给出本人的实现方法。          (1)古典的工具条    (a)对话框中加入CMFCToolBar的成员变量。 CMFCToolBar m_wndToolBar;    (b)创建工具条并显示之

Stone_Sky 3580

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

c语言编程工具栏,为对话框设计美观的工具栏 (Add toolbar for CDialog)

本文介绍,在CDialog下工具栏的实现和优化 1. 为CDialog添加工具栏2. 使toolbar以多行显示3. 为toolbar添加提示信息(TipText)4. VC6下显示包含多彩色图片的工具栏一. 为CDialog添加工具栏首先需要建立相应的TOOLBAR资源将工具栏按钮摆放好,将相应的提示信息(TipText)写入,最好也将相应事件先生成好在OnInitDialog()函数内添加代码...

weixin_28893221的博客 870

VC中属性表单和向导的创建

<br />本文是在看孙鑫的《VC++深入详解》过程中摘录下来的,作为一份学习笔记。<br />首先举例说一下属性表单和向导<br />    属性表单:在VC6下,打开Tools-Options,弹出的Options对话框就是一个属性表单,其中的每一个选项卡对应一个属性页。属性表单解决了大量信息无法在一个对话框上显示的问题,并提供了对信息的分类和组织管理的功能。<br />    向导:利用VC6创建一个新工程时使用的AppWizard工具通过一般般引导用户设置一下信息,从而生成相应的应用程序框架,这就是

Jerome's Blog 2419

VC++对话框的任意扩展

VC++对话框的任意扩展   我们在信息输入的时候,可能有很大的信息量,而这些信息又不是必须的,这时我们就需要给信息输入人员一个选择的接口。例如一个人事部门的职工信息录入系统就有这样的问题,其中的姓名、性别、年龄、政治面目、职务、学历、部门和联系电话是必须输入的信息,而婚姻

特权份子的专栏 423
上一篇: VC小技巧15个
下一篇: VC实现动画应用两则
普通网友
博客等级 码龄22年 1万+粉丝 3156原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值