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->lpszText0 = 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;

}

相关推荐
Q26433650231 小时前
【有源码】基于机器学习的电信网络诈骗话术语义识别与可视化分析系统 XGBoost算法+Hadoop+Spark
大数据·hadoop·算法·机器学习·spark·毕业设计·课程设计
不会就选b1 小时前
算法日常・每日刷题--贪心<11>
算法·leetcode·职场和发展
多弗朗皮卡丘1 小时前
数据结构6:队列
c语言·数据结构
千里码aicood1 小时前
面向电商冷启动与数据稀疏性的协同过滤算法优化研究
大数据·算法·协同过滤
xxxiugou1231 小时前
双指针解题秘籍:从入门到精通
c语言·数据结构·c++·算法
代码中介商1 小时前
C++ 预约系统实战(一):项目总览与 C/S 架构设计
c语言·开发语言·c++
能源革命1 小时前
TimesFM(Time Series Foundation Model)介绍
算法·能源
youyou-06061 小时前
AUTOSAR‑COM 常见问题 QA (1)
java·linux·服务器·单片机·汽车
猎嘤一号1 小时前
学术训练(一)文献检索与阅读
人工智能·算法·机器学习·科研入门
承渊政道1 小时前
PostgreSQL 鸿蒙 PC 适配全记录:从原生交叉编译到 HNP 数据库服务闭环
数据库·postgresql·harmonyos·鸿蒙系统·pc端