提示信息窗口tooltip hint
来源:互联网 发布:mac os登陆界面是英文 编辑:程序博客网 时间:2024/05/21 17:02
创建定制的提示信息窗口不复杂,首先要创建一个窗口。
function CreateTooltipWindow (hWndParent, hInstance :HWND) :HWND;
begin
DoInitCommonControls( ICC_WIN95_CLASSES );
//创建窗口TTS_BALLOON就是泡状窗口
Result := CreateWindowEx(WS_EX_TOPMOST, TOOLTIPS_CLASS, nil,
WS_POPUP or TTS_NOPREFIX or TTS_ALWAYSTIP or TTS_BALLOON,
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
hWndParent, 0, hInstance, nil );
SetWindowPos(Result, HWND_TOPMOST, 0, 0, 0, 0,
SWP_NOMOVE or SWP_NOSIZE or SWP_NOACTIVATE);
//延迟时间可以当参数
SendMessage (Result,TTM_SETDELAYTIME,TTDT_INITIAL,100);
SendMessage (Result,TTM_SETDELAYTIME,TTDT_RESHOW, 100 div 5);
//停留显示时间
SendMessage (Result,TTM_SETDELAYTIME,TTDT_AUTOPOP,60000);
end;
返回一个句柄要保留好,在Destory的时候释放掉。
procedure DestroyTooltipWindow(TThwnd :HWND);
begin
DestroyWindow(TThwnd);
end;
加到需要显示提示信息的控件上。
function TooltipAddTool(fTThwnd, hwndTool :HWND; const Hint :string;const title:string='’) :boolean;
var
ti :TTOOLINFO ; //提示命令的结构
begin
Result:=(fTThwnd 0) and (hwndTool 0);
if not Result then EXIT;
//初始化
ti.cbSize := sizeof(TTOOLINFO);
ti.uFlags := TTF_SUBCLASS or TTF_IDISHWND;
ti.hwnd := hwndTool;ti.uId := hwndTool;
ti.hinst := 0;ti.lpszText := PChar(Hint);
if (Hint ‘’) then
begin
Result:=BOOL(SendMessage(fTThwnd, TTM_ADDTOOL, 0, LPARAM(@ti)));
//再加info图标
SendMessage(fTThwnd, TTM_SETTITLE, Integer(itInfoIcon), Integer(PChar(title)));
end
else //如果为空则删除
SendMessage(fTThwnd, TTM_DELTOOL, 0, LPARAM(@ti));
end;
调用方法:
TooltipAddTool(fTThwnd,c.GetWindowHandle,hint,title);
这样就把提示窗口与控件关联在一起了。可以自动显示提示。但是有些情况下提示可能会无效,比如分隔条移动之后。
再加到MouseEnter事件里去关联就确保提示会显示。
procedure TMainForm.ToolTipMouseEnter(Sender: PObj);
var
n,t:string;
i:integer;
begin
t:='’;n:='’;
if(Assigned(fHintList))then
begin
i:=fHintList.IndexOfObj(Sender);
if(i>=0)then
begin
n:=fHintList.Items[i];
end;
i:=fTitleList.IndexOfObj(Sender);
if(i>=0)then
begin
t:=fTitleList.Items[i];
end;
end;
TooltipAddTool(fTThwnd, pcontrol(Sender).GetWindowHandle, n,t);
end;
fHintList是事先建立的对象提示关联列表,fTitleList是事先建立的对象标题关联列表。
这是纯用API建立的提示窗口,适用于KOL和VCL,以及其他纯API的应用程序。
使用代码可在www.kicoy.com里下载,需要KOL库支持。
—
www.kicoy.com
- 提示信息窗口tooltip hint
- 封装TOOLTIP, 打造不同Delphi自身提供hint的提示信息
- 数据窗口单元格添加光标进入的提示信息tooltip
- 【Delphi】Hint提示信息
- 添加提示信息 tooltip
- 信息提示控件ToolTip
- /*+ 提示信息*/ 常用hint oracle
- /*+ 提示信息*/ 常用hint oracle
- js通用提示信息(tooltip)
- oracle常用的hint /*+ 提示信息*/
- ToolTip信息提示框的作用
- MFC CTooLBar 工具栏显示提示信息ToolTip
- dede 提示信息窗口
- 视图中根据不同位置,响应提示窗口(Tooltip)
- C# GridView中鼠标指向行ToolTip提示相关信息
- 流行的jQuery信息提示插件(jQuery Tooltip Plugin)
- Tooltip:利用javascript模拟实现Tooltip,以便提供友好的提示信息
- java弹出窗口提示信息
- 异常处理的常见问题
- D7中编写NT服务操作数据库的简单方法
- ASP.NET设计中的性能优化问题
- Technology: SIMD / MMX / SSE / SSE2 / 3DNow!
- Software Speed Optimization
- 提示信息窗口tooltip hint
- 使用JIRA搭建企业问题跟踪系统(转)
- 解决内存泄漏的检查方法
- 流媒体服务器
- delhpi中使用DLL文件
- XP状态下编辑框的问题
- 一页纸多一点的博士论文拿到诺奖
- 走在学习和生活的路上
- kol’s toolbar的操作