社区
ATL
帖子详情
如何使用WTL中的CToolTipCtrl类?
Semigod
2002-10-20 01:36:04
请问如何在ATL对话框中使用WTL中的CToolTipCtrl类?要使用它应该有哪些步骤
...全文
585
3
打赏
收藏
如何使用WTL中的CToolTipCtrl类?
请问如何在ATL对话框中使用WTL中的CToolTipCtrl类?要使用它应该有哪些步骤
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Semigod
2002-10-24
打赏
举报
回复
呵呵,虽然楼上的说得不是很完整,而且在我的程序中无法使用,但是基本方法是正确的(这种方法只适合对一个自定义控件加tooltip)
问题我自己用另外的方法解决了,结贴
microran2000
2002-10-21
打赏
举报
回复
创建一个新类,定义如下:
#pragma once
class CMyTip : public CWindowImpl<CMyTip>
{
public:
DECLARE_WND_CLASS_EX(NULL, 0, COLOR_3DFACE)
LPCTSTR m_lpstrInfo;
enum { m_nToolTipID = 1313 };
CToolTipCtrl m_tooltip;
CMyTip() : m_lpstrInfo(NULL)
{ }
void Init(HWND hWnd, LPCTSTR lpstrName)
{
ATLASSERT(::IsWindow(hWnd));
SubclassWindow(hWnd);
// Set tooltip
m_tooltip.Create(m_hWnd);
ATLASSERT(m_tooltip.IsWindow());
RECT rect;
GetClientRect(&rect);
CToolInfo ti(0, m_hWnd, m_nToolTipID, &rect, NULL);
m_tooltip.AddTool(&ti);
// set text
m_lpstrInfo = lpstrName;
if(m_lpstrInfo == NULL)
return;
// CClientDC dc(m_hWnd); // will not really paint
// HFONT hFontOld = dc.SelectFont(AtlGetStockFont(DEFAULT_GUI_FONT));
// RECT rcText = rect;
// dc.DrawText(m_lpstrInfo, -1, &rcText, DT_SINGLELINE | DT_LEFT | DT_VCENTER | DT_NOPREFIX | DT_CALCRECT);
// BOOL bTooLong = (rcText.right > rect.right);
// if(bTooLong)
m_tooltip.UpdateTipText(m_lpstrInfo, m_hWnd, m_nToolTipID);
m_tooltip.Activate(true);
// dc.SelectFont(hFontOld);
// Invalidate();
// UpdateWindow();
}
BEGIN_MSG_MAP(CMyTip)
MESSAGE_RANGE_HANDLER(WM_MOUSEFIRST, WM_MOUSELAST, OnMouseMessage)
END_MSG_MAP()
LRESULT OnMouseMessage(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
if(m_tooltip.IsWindow())
{
MSG msg = { m_hWnd, uMsg, wParam, lParam };
m_tooltip.RelayEvent(&msg);
}
bHandled = FALSE;
return 1;
}
};
使用时包含上面的文件
#include "InfoTip.h"
在类代码中定义成员变量:
CMyTip m_InfoTipEdit;
LRESULT OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
{
m_InfoTipEdit.Init( GetDlgItem( IDC_PASSWORD ), "输入密码" );
...
}
其中IDC_PASSWORD为对话框中的控件标识。
rivershan
2002-10-20
打赏
举报
回复
GZ~
[ATL/
WTL
]_[初级]_[在ListView指定的单元格显示
ToolTip
]
关于在ListView指定的单元格显示
ToolTip
配套的项目代码,博客里也有关键代码,我这里设置1积分,系统自动更改积分和我无关。https://blog.csdn.net/infoworld/article/details/110185088
C
ToolTip
Ctrl
使用
详细解说
这样就完成了基本的
ToolTip
控件的
使用
和设置。需要注意的是,上述代码
中
的控件ID和文本需要根据实际情况进行替换。另外,如果需要动态改变
ToolTip
的显示内容,可以参考步骤
中
的说明进行相应的修改。2、在OnInitDialog函数
中
调用C
ToolTip
Ctrl
的Create函数,指定其父窗口为当前对话框。上面所讲的3步骤,在增加
ToolTip
时不指定显示的字串,而是
使用
LPSTR_TEXTCALLBACK。下面的代码可以根据传入的参数判定应该显示的内容。
WTL
使用
tooltip
详解
wtl
已经提供
tooltip
的控件,我们只需要在自己需要的地方加入即可。下面简单的介绍了
wtl
中
tooltip
的
使用
。1、声明一个C
Tooltip
Ctrl
的对象:C
Tooltip
Ctrl
m_
toolTip
; 2、在相应的地方创建C
Tooltip
Ctrl
对象,一般是在OnCreate里面: m_
ctrl
Tip.Create(m_hWnd); //将自己的窗口创建为
ToolTip
的父窗口 m_
ctrl
Tip.Activate(FALSE); //隐藏
ToolTip
m_
ctrl
Tip.AddTo
WTL
入门(四) 基本控件
介绍 MFC 的对话框和控件的封装真得可以节省你很多时间和功夫。没有MFC对控件的封装,你要操作控件就得耐着性子填写各种结构并写很多的SendMessage调用。MFC还提供了对话框数据交换(DDX),它可以在控件和变量之间传输数据。
WTL
当然也提供了这些功能,并对控件的封装做了很多改进。本文将着眼于一个基于对话框的程序演示你以前用MFC实现的功能,除此之外还有
WTL
消息处理的增强功能。
WTL
一个很好用的
ToolTip
找到了一个老外写的很好用的
ToolTip
, 但是有两个小问题,终于解决了,拿出来和大家分享下。问题1: 有时候出现这样的情况,鼠标划上去后立马弹出提示,然后消失,最后又弹出一次;问题2: 提示框弹出后默认只显示5秒钟就消失了, 这样时间太短了,提示的内容还没看完就消失了。解决方法:问题1:m_TT.SetDelayTime(TTDT_RESHOW, 1000);//鼠标划上过1秒后弹出提示;问题2:m_TT.SetDelayTime(TTDT_AUTOPOP, 1
ATL
3,245
社区成员
48,539
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章