DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: sy1012
今日帖子: 16
在线用户: 11
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 easykey (悠游) ★☆☆☆☆ -
盒子活跃会员
2004/3/30 18:35:35
标题:
请教一个窗口坐标的问题。(已经解决) 浏览:1008
加入我的收藏
楼主: 请教一个窗口只有部分显示屏幕中时,如何取得窗口的刷新区域的坐标(LeftTop和RightBottom)。
我知道应该是用Api,具体函数和使用步骤不清楚。
----------------------------------------------
按此在新窗口浏览图片
男儿贵展平生志,为国输忠合天地。甲穿虽则失黄金,剑缺犹能生紫气。塞草萋萋兵士苦,胡虏如今勿胡虏。封侯十万始无心,玉关生入君看取。

敬请光临 学海Delphi站
  http://delphi.studysea.net
学海无涯,让我们共同成长!
作者:
男 restboy (枫☆白水煮大虾) ★☆☆☆☆ -
盒子活跃会员
2004/3/30 19:00:35
1楼: 你的意思是找到被其他程序窗口所遮挡的位置么。。。。
应该还是可以办到的吧~
----------------------------------------------
夫君子之行,静以修身,俭以养德.非澹泊无以明志, 
非宁静无以致远.夫学须静也,才须学也,非学无以广才,
非志无以成学,淫漫则不能励精,险躁则不能治性,年与时驰, 
意与日去,遂成枯落,多不接世,悲守穷庐,将复何及!
作者:
男 easykey (悠游) ★☆☆☆☆ -
盒子活跃会员
2004/3/30 19:22:29
2楼: 不是被其他窗口所遮挡的位置,是一个窗口只有部分在屏幕内,windows刷新这个窗口时就会只刷新在屏幕内显示的部分,我是要取这部分的坐标。
----------------------------------------------
按此在新窗口浏览图片
男儿贵展平生志,为国输忠合天地。甲穿虽则失黄金,剑缺犹能生紫气。塞草萋萋兵士苦,胡虏如今勿胡虏。封侯十万始无心,玉关生入君看取。

敬请光临 学海Delphi站
  http://delphi.studysea.net
学海无涯,让我们共同成长!
作者:
男 restboy (枫☆白水煮大虾) ★☆☆☆☆ -
盒子活跃会员
2004/3/30 19:37:00
3楼: 部分在屏幕内的话,用0,0,screen.width,screen.height 分别对应form的四个属性判断一下可以么~
----------------------------------------------
夫君子之行,静以修身,俭以养德.非澹泊无以明志, 
非宁静无以致远.夫学须静也,才须学也,非学无以广才,
非志无以成学,淫漫则不能励精,险躁则不能治性,年与时驰, 
意与日去,遂成枯落,多不接世,悲守穷庐,将复何及!
作者:
男 easykey (悠游) ★☆☆☆☆ -
盒子活跃会员
2004/3/30 21:40:36
4楼: 自己搞定;
使用Canvas的ClipRect属性,通过和窗体的坐标相计算得到。
unit  Unit1;

interface

uses
 Windows,  Messages,  SysUtils,  Variants,  Classes,  Graphics,  Controls,  Forms,
 Dialogs,  StdCtrls;

type
 TForm1  = class(TForm)

 Button1:  TButton;
 procedure  FormCreate(Sender:  TObject);
 private
 { Private declarations }
 procedure  rePaint(var  Msg:  TWMPAINT);message  WM_PAINT;
 public
 { Public declarations }
 end;

var
 Form1:  TForm1;
 DC:  HDC;
 lpPaint:  TPaintStruct;
implementation

uses  Unit2;

{$R dfm}
procedure  TForm1.rePaint(var  Msg:  TWMPAINT);
begin
 BeginPaint(DC,  lpPaint);
 with  form2  do
 begin
 edtTop.Text  :=  IntToStr(self.Top  +  self.Canvas.ClipRect.Top);
 edtLeft.Text  :=  IntToStr(self.Left  +  self.Canvas.ClipRect.Left);
 edtBottom.Text  :=  IntToStr(self.Top  +  self.Canvas.ClipRect.bottom);
 edtRight.Text  :=  IntToStr(self.Left  +  self.Canvas.ClipRect.Right);
 end;
 EndPaint(DC,  lpPaint);
end;


procedure  TForm1.FormCreate(Sender:  TObject);
begin
 DC  :=  GetWindowDC(self.Handle);
end;

end.


----------------------------------------------
按此在新窗口浏览图片
男儿贵展平生志,为国输忠合天地。甲穿虽则失黄金,剑缺犹能生紫气。塞草萋萋兵士苦,胡虏如今勿胡虏。封侯十万始无心,玉关生入君看取。

敬请光临 学海Delphi站
  http://delphi.studysea.net
学海无涯,让我们共同成长!
作者:
男 bios (阿贡) ★☆☆☆☆ -
盒子中级会员
2004/3/30 21:52:56
5楼: 表扬!
----------------------------------------------
按此在新窗口浏览图片
按此在新窗口浏览图片
作者:
男 easykey (悠游) ★☆☆☆☆ -
盒子活跃会员
2004/3/30 21:57:51
6楼: 惭愧啊,自己还是不够努力。有依赖性啊。
----------------------------------------------
按此在新窗口浏览图片
男儿贵展平生志,为国输忠合天地。甲穿虽则失黄金,剑缺犹能生紫气。塞草萋萋兵士苦,胡虏如今勿胡虏。封侯十万始无心,玉关生入君看取。

敬请光临 学海Delphi站
  http://delphi.studysea.net
学海无涯,让我们共同成长!
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行70.3125毫秒 RSS