Visual Studio 2022 MFC Dialog 添加Toolbar及Tips提示

主要步骤:

  1. 在主框架类中添加消息处理函数声明
  2. 在 OnCreate 函数中启用工具栏提示
  3. 在消息映射中注册 TTN_NEEDTEXT 消息
  4. 使用 OnToolTipText 函数实现自定义提示文本

1.在主程序的.h文件中加入

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

2.在主程序int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)中加入

m_wndToolBar.EnableToolTips(TRUE);

3.在消息映射中

BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)

END_MESSAGE_MAP()

加入

ON_NOTIFY_EX_RANGE(TTN_NEEDTEXT, 0, 0xffff, OnToolTipText)

4.实现OnToolTipText

BOOL CMainFrame::OnToolTipText(UINT id, NMHDR* pNMHDR, LRESULT* pResult)

{

ASSERT(pNMHDR->code == TTN_NEEDTEXTA || pNMHDR->code == TTN_NEEDTEXTW);

// 获取实际的控件ID

UINT nID = pNMHDR->idFrom;

if ((pNMHDR->code == TTN_NEEDTEXTA && ((TOOLTIPTEXTA*)pNMHDR)->uFlags & TTF_IDISHWND) ||

(pNMHDR->code == TTN_NEEDTEXTW && ((TOOLTIPTEXTW*)pNMHDR)->uFlags & TTF_IDISHWND))

{

nID = ::GetDlgCtrlID((HWND)nID);

}

// 使用正确的Unicode结构体

NMTTDISPINFOW* pTTT = (NMTTDISPINFOW*)pNMHDR;

// 初始化文本为空

pTTT->lpszText[0] = L'\0';

// 使用switch语句处理不同ID

switch (nID)

{

case ID_VIEW_CONTROLBAR:

_tcscpy(pTTT->lpszText, L"操作面板");

break;

case ID_VIEW_LOGBAR:

_tcscpy(pTTT->lpszText, L"日志");

break;

default:

// 尝试从资源加载默认文本

CString strTip;

if (strTip.LoadString(nID) && !strTip.IsEmpty())

{

_tcscpy(pTTT->lpszText, strTip);

}

else

{

// 没有找到匹配的ID,使用基类处理

return CFrameWnd::OnToolTipText(id, pNMHDR, pResult);

}

break;

}

*pResult = 0;

return TRUE;

}

相关推荐
-SGlow-18 分钟前
MySQL相关概念和易错知识点(3)(表内容的CURD、内置函数)
linux·运维·服务器·数据库·mysql
飞翔的佩奇21 分钟前
基于SpringBoot+MyBatis+MySQL+VUE实现的经方药食两用服务平台管理系统(附源码+数据库+毕业论文+部署教程+配套软件)
数据库·vue.js·spring boot·mysql·毕业设计·mybatis·经方药食两用平台
bing_1581 小时前
在多租户或多服务共享 Redis 时,如何做逻辑隔离或权限控制?
数据库·redis·缓存
程序员编程指南1 小时前
Qt 嵌入式界面优化技术
c语言·开发语言·c++·qt
编程社区管理员1 小时前
Vue项目使用ssh2-sftp-client实现打包自动上传到服务器(完整教程)
运维·服务器·vue
不搞学术柒柒2 小时前
vscode、cursor无密码ssh远程连接服务器(配置密钥)
服务器·ssh·github
ChaITSimpleLove2 小时前
PostgreSQL 中删除指定数据库下的所有表结构
数据库·postgresql·bash·sql 脚本·.net npgsql
程序员Xu2 小时前
【OD机试题解法笔记】查找接口成功率最优时间段
笔记·算法
cpsvps2 小时前
文件系统完整性校验工具在美服安全审计中的关键作用与实施步骤
服务器·网络·架构