有谁能看懂这段代码?帮我解释一下。

procedureCreateToolTips(hWnd:Cardinal);beginhToolTip:=CreateWindowEx(0,'Tooltips_Clas... procedure CreateToolTips(hWnd: Cardinal);
begin
hToolTip := CreateWindowEx(0, 'Tooltips_Class32', nil,
TTS_ALWAYSTIP or TTS_BALLOON,
Integer(CW_USEDEFAULT),
Integer(CW_USEDEFAULT),
Integer(CW_USEDEFAULT),
Integer(CW_USEDEFAULT),
hWnd, 0, hInstance, nil);
if hToolTip <> 0 then
begin
SetWindowPos(hToolTip, HWND_TOPMOST, 0, 0, 0, 0,
SWP_NOMOVE or SWP_NOSIZE or SWP_NOACTIVATE);
ti.cbSize := SizeOf(TToolInfo);
ti.uFlags := TTF_SUBCLASS;
ti.hInst := hInstance;
end;
end;
还有这段
procedure AddToolTip(hwnd: dword; lpti: PToolInfo; IconType: Integer; Text, Title: Pchar;BackColor,TextColor:TColor);
var
Item: THandle;
Rect: TRect;
begin
Item := hWnd;
if (Item <> 0) and (GetClientRect(Item, Rect)) then
begin
lpti.hwnd := Item;
lpti.Rect := Rect;
lpti.lpszText := Text;
SendMessage(hToolTip, TTM_ADDTOOL, 0, Integer(lpti));
FillChar(buffer, SizeOf(buffer), #0);
lstrcpy(buffer, Title);
if (IconType > 3) or (IconType < 0) then IconType := 0;
if BackColor<>0 then
SendMessage(hToolTip, TTM_SETTIPBKCOLOR, BackColor, 0);
if TextColor<>0 then
SendMessage(hToolTip, TTM_SETTIPTEXTCOLOR, TextColor, 0);
SendMessage(hToolTip, TTM_SETTITLE, IconType, Integer(@buffer));
end;
end;
展开
 我来答
swx1995
2010-08-13 · TA获得超过2696个赞
知道大有可为答主
回答量:1477
采纳率:0%
帮助的人:2358万
展开全部
procedure CreateToolTips(hWnd: Cardinal);
'这个过程用于创建一个提示窗口[初始化](气泡提示)
begin
hToolTip := CreateWindowEx(0, 'Tooltips_Class32', nil,
TTS_ALWAYSTIP or TTS_BALLOON,
Integer(CW_USEDEFAULT),
Integer(CW_USEDEFAULT),
Integer(CW_USEDEFAULT),
Integer(CW_USEDEFAULT),
hWnd, 0, hInstance, nil);
'以上为调用CreateWindowEx创建一个气泡窗口(气泡的类名就是Tooltips_Class32)。关于这个函数更详细的信息你可以搜索“MSDN CreateWindowEx”

if hToolTip <> 0 then
begin
'如果创建成功了
SetWindowPos(hToolTip, HWND_TOPMOST, 0, 0, 0, 0,
SWP_NOMOVE or SWP_NOSIZE or SWP_NOACTIVATE);
'将它设置为置顶的窗口

'ti为ToolInfo结构,用于专门处理气泡提示
'以下为初始化这个结构。气泡虽然窗口已创建但是什么都没设置 故要下面语句
ti.cbSize := SizeOf(TToolInfo);
'cbSize用于描述这个结构体大小多少 这个是固定的
ti.uFlags := TTF_SUBCLASS;
ti.hInst := hInstance;
end;
end;

'这个过程用于建立一个气泡提示
procedure AddToolTip(hwnd: dword; lpti: PToolInfo; IconType: Integer; Text, Title: Pchar;BackColor,TextColor:TColor);
var
Item: THandle;
Rect: TRect;
begin
Item := hWnd;
if (Item <> 0) and (GetClientRect(Item, Rect)) then
begin
lpti.hwnd := Item;
lpti.Rect := Rect;
lpti.lpszText := Text;
SendMessage(hToolTip, TTM_ADDTOOL, 0, Integer(lpti));
'向一个控件增加Tooltip
FillChar(buffer, SizeOf(buffer), #0);
'缓冲区清空
lstrcpy(buffer, Title);
'复制标题到缓冲区

if (IconType > 3) or (IconType < 0) then IconType := 0;
'如果IconType(气泡提示中的图标)是无效的则设置为0(无图标)
'IconType是为最后一句话做准备的。

if BackColor<>0 then
'如果指定了背景色 则下面语句用于设置气泡的背景颜色
SendMessage(hToolTip, TTM_SETTIPBKCOLOR, BackColor, 0);
if TextColor<>0 then
'类似地 指定了前景色则设置前景色
SendMessage(hToolTip, TTM_SETTIPTEXTCOLOR, TextColor, 0);

'这一句用于真正设定气泡的标题还有气泡的图标
SendMessage(hToolTip, TTM_SETTITLE, IconType, Integer(@buffer));
end;
end;
上海巴鲁图工程机械科技有限公司_
2022-05-15 广告
光电编码器,是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器。光电编码器每转输出60(我们用老板没有说)个脉冲,五线制。其中两根为电源线,三根为脉冲线(A相、B相、Z)。电源的工作电压为 (+5~+24V)直流电源。光... 点击进入详情页
本回答由上海巴鲁图工程机械科技有限公司_提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式