if Caption<>'' then
begin
Rect:=GetClientRect;
FontHeight:=Canvas.TextHeight('W');
Rect.Top = ((Rect.Bottom+Rect.Top)-FontHeight) div 2;
Rect.Bottom = Rect.Top+FontHeight;
Flags:=DT_EXPANDTABS or DT_VCENTER or Alignments[Alignment];
Flags:=DrawTextBiDiModeFlags(Flags);
DrawText(Canvas.Handle,PAnsiChar(Caption),-1,Rect,Flags);
end; 这个是VCL给panel控件添加标题的代码,我怎么看都不懂,那位高手能帮我解释下,
这些函数都是什么意思!!! 感激不尽
begin
Rect:=GetClientRect;
FontHeight:=Canvas.TextHeight('W');
Rect.Top = ((Rect.Bottom+Rect.Top)-FontHeight) div 2;
Rect.Bottom = Rect.Top+FontHeight;
Flags:=DT_EXPANDTABS or DT_VCENTER or Alignments[Alignment];
Flags:=DrawTextBiDiModeFlags(Flags);
DrawText(Canvas.Handle,PAnsiChar(Caption),-1,Rect,Flags);
end; 这个是VCL给panel控件添加标题的代码,我怎么看都不懂,那位高手能帮我解释下,
这些函数都是什么意思!!! 感激不尽
解决方案 »
- dbisam 怎么建内存表啊?
- ????简单问题,DBGridEh光标焦点移动问题????
- 100分送给天亮前最后一位!
- 请问有测出文件大小的api函数吗?
- Drate(小虫)请来接1000分__6) 原贴:http://expert.csdn.net/Expert/topic/2227/2227167.xml?temp=.3559534
- 求教图像缩小问题。
- 如何改变自己写的VCL(组件)加到Delphi中的图标(现在是红、黄、蓝 三个点)?
- Delhi 语法求助 $R barcode.d32
- 大虾们帮个忙:TDBLookupComboBox问题
- 大家来说说在你编程生涯中,你印象最深刻,使你受用最多的一本书!!!!
- 怎样监视IE浏览器和下载工具下载文件呢?
- [致命错误] Required package 'YeXinLibrary' not found
if Caption<>'' then
begin
Rect:=GetClientRect; // 获取工作区(Panle)的坐标值
FontHeight:=Canvas.TextHeight('W'); //获取像'W'一样的字高
Rect.Top = ((Rect.Bottom+Rect.Top)-FontHeight) div 2; //设置字体顶部值
Rect.Bottom = Rect.Top+FontHeight; //设置字体底部值
Flags:=DT_EXPANDTABS or DT_VCENTER or Alignments[Alignment];//设置参数
Flags:=DrawTextBiDiModeFlags(Flags); //设置参数
DrawText(Canvas.Handle,PAnsiChar(Caption),-1,Rect,Flags);//写标题
end;
还不明白就查Delphi Help
得到可视区域FontHeight:=Canvas.TextHeight('W');
Rect.Top = ((Rect.Bottom+Rect.Top)-FontHeight) div 2;
Rect.Bottom = Rect.Top+FontHeight;
重新定义区域,使区域可以容纳文字的高度并垂直居中Flags:=DT_EXPANDTABS or DT_VCENTER or Alignments[Alignment];
Flags:=DrawTextBiDiModeFlags(Flags);
设置DrawText函数的标志,也就是设定DrawText绘制方式
DrawText(Canvas.Handle,PAnsiChar(Caption),-1,Rect,Flags);
在指定的设备上下文中以指定的标志和区域绘制文字,标志和函数本身可参考windows sdk帮助
这句是什么意思呢?