Dialog中加入一个工具栏如果让它有提示信息
来源:互联网 发布:大数据专业哪些大学有 编辑:程序博客网 时间:2024/06/10 15:05
工具栏一般使用在SDI或是MDI里。
如果我们在一个Dialog里新建了一个工具栏,它的提示信息可能就没有办法出来了。
主要的原因是由于我们没有为这个工具栏写提示信息的消息映射函数。
如果要增加的话。就可以这样。
1.增加一个这样的函数处理函数
afx_msg BOOL OnToolTipText( UINT id, NMHDR * pNMHDR, LRESULT * pResult );
BOOL MyDialog::OnToolTipText( UINT id, NMHDR * pNMHDR, LRESULT * pResult )
{
ASSERT(pNMHDR->code == TTN_NEEDTEXTA || pNMHDR->code == TTN_NEEDTEXTW);
// allow top level routing frame to handle the message
if (GetRoutingFrame() != NULL)
return FALSE;
// need to handle both ANSI and UNICODE versions of the message
TOOLTIPTEXTA* pTTTA = (TOOLTIPTEXTA*)pNMHDR;
TOOLTIPTEXTW* pTTTW = (TOOLTIPTEXTW*)pNMHDR;
TCHAR szFullText[256];
CString strTipText;
UINT_PTR nID = (UINT_PTR)pNMHDR->idFrom;
if (pNMHDR->code == TTN_NEEDTEXTA && (pTTTA->uFlags & TTF_IDISHWND) ||
pNMHDR->code == TTN_NEEDTEXTW && (pTTTW->uFlags & TTF_IDISHWND))
{
// idFrom is actually the HWND of the tool
nID = ((UINT_PTR)(WORD)::GetDlgCtrlID((HWND)nID));
}
if (nID != 0) // will be zero on a separator
{
AfxLoadString((UINT)nID, szFullText);
// this is the command id, not the button index
AfxExtractSubString(strTipText, szFullText, 1, '/n');
}
#ifndef _UNICODE
if (pNMHDR->code == TTN_NEEDTEXTA)
lstrcpyn(pTTTA->szText, strTipText,
(sizeof(pTTTA->szText)/sizeof(pTTTA->szText[0])));
else
{
int n = MultiByteToWideChar(CP_ACP, 0, strTipText, -1, pTTTW->szText,
sizeof(pTTTW->szText)/sizeof(pTTTW->szText[0]));
if (n > 0)
pTTTW->szText[n-1] = 0;
}
#else
if (pNMHDR->code == TTN_NEEDTEXTA)
{
int n = WideCharToMultiByte(CP_ACP, 0, strTipText, -1,
pTTTA->szText, sizeof(pTTTA->szText)/sizeof(pTTTA->szText[0]),
NULL, NULL);
if (n > 0)
pTTTA->szText[n-1] = 0;
}
else
lstrcpyn(pTTTW->szText, strTipText,
(sizeof(pTTTW->szText)/sizeof(pTTTW->szText[0])));
#endif
*pResult = 0;
// bring the tooltip window above other popup windows
::SetWindowPos(pNMHDR->hwndFrom, HWND_TOP, 0, 0, 0, 0,
SWP_NOACTIVATE|SWP_NOSIZE|SWP_NOMOVE);
return TRUE; // message was handled
}
2.增加一个头文件
#include <afxpriv.h>
3.创建消息映射
ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTW, 0, 0xFFFF, OnToolTipText)
ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTA, 0, 0xFFFF, OnToolTipText)
这样就行了。
- Dialog中加入一个工具栏如果让它有提示信息
- eclipse中怎么让它有提示
- 如果在Finish Dialog 中 加入 Launch
- web页面中如果想让用户复制页面内容粘贴时加入一些自定义信息
- 在MFC程序中,加入一个cpp文件,如果想要打印输出信息的话,用这个语句最便捷
- 如果一个函数中有局部对象的存在, 那么它就一定会存在 C++ 的异常处理机制
- GridView 加入提示信息
- service中加入dialog
- 在对话框中加入工具栏
- 在对话框中加入工具栏
- 为对话框中加入工具栏
- SolidWorks 如果装配体里面的的装配体有动态关节,如何让它活动
- 在jsp页面判断如果有信息就提示,否则不提示
- 一个数组dataArr,我现在拿到一个对象A,想判断在数组中有没有这个对象A,如果存在则从数组dataArr中删除A,如果不存在则将A加入到数组dataArr中
- 如果移动一个精灵,让它也到你手指移动到的位置
- 自定义Dialog之信息提示
- 如果把 HTML5 看作做一个开放平台,那它的构建模块有哪些?
- 一个数组先按值排序,如果它的值有相同,就再按键排序
- 系统管理员设置了系统策略,禁止进行此安装
- 受到了严重刺激!
- 【分析】非安全编程演示之高级篇
- Cadence 安装之路
- 【分析】如何写远程自动精确定位的format string exploit
- Dialog中加入一个工具栏如果让它有提示信息
- 3389如何擦除日志
- Delphi程序访问数据库自动登陆解决办法
- 承诺
- oracle常用函数
- 网页开发备忘
- 哼哼,又是怎样的一个开始。
- java调用oracle存储过程
- 创业者应具备的素质和条件