怎么样将窗口固定在屏幕中间? 把窗口设置成无标题栏的,然后再自己做一个标题栏和关闭按钮.个人觉得用 panel 就能做出很好的效果 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 呵呵,截获windows消息,当点击标题栏时,给windows消息点击的是内容区信息,很多书上都有这样的小例子 sigh,知道有这样的小程序,但是因为东西都做好了所以现在如果编程就很麻烦了,要不然,当初可以编号一个做继承就可以了 设定form属性none;from position 屏幕中心 没有标题栏,可以用panel来做一个position设为screen center. 即可实现 form: none;position: ScreenCenter;象Delphi的启动窗口。再想个办法可以关闭就行了。 我用了twmwindowposchanging来做,但是糟糕的是,我只能用固定x,y,来确定在屏幕中间了怎么样才能确定在屏幕中间呢?因为用了msg后,原来摄制的screencenter的属性就不认了 屏蔽 WM_HITTEST消息,就可以了!=======================================unit Unit1;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Button1: TButton; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } procedure SubClassWndProc(var Message: TMessage); public { Public declarations } end;var Form1: TForm1;implementation{$R *.DFM}procedure Tform1.SubClassWndProc(var Message: TMessage);begin if (message.Msg = WM_NCHITTEST) then MESSAGE.Result := 1 else form1.WndProc(Message);end;procedure TForm1.FormCreate(Sender: TObject);begin WindowProc := SubClassWndProc;end;procedure TForm1.Button1Click(Sender: TObject);begin application.Terminate;end;end. unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); private bwinstat:boolean; procedure WMwindowposchanging(var msg:twmwindowposchanging); message wm_windowposchanging; { Private declarations } public { Public declarations } end;var Form1: TForm1;const uflag = SWP_NOMOVE ;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);begin bwinstat:=true; end;procedure TForm1.WMwindowposchanging(var msg:twmwindowposchanging); begin inherited; msg.WindowPos.x:=188; msg.WindowPos.y:=122; if bwinstat then msg.windowpos^.flags:=msg.windowpos.flags or SWP_NOMOVE; end;end.我用的是一上的程序后果就是msg.WindowPos.x:=188; msg.WindowPos.y:=122;这两个值不知道怎么取好,就是保证在屏幕中间hjd_cw() 你的程序只能固定死了,无法最大最小,也无法关闭阿 application.creatform(TfrmTest,frmTest);frmTest.position := poScreenCenter;frmTest.showmodal; 现在delphi的新东家是哪个呢??知道了吗 delphi线程怎么做到 求字符串中某一字符的ASCII值--在线急等。。。 百分比怎样搞出来的? 让RadioButton被选中的问题 怎么把TreeView行之间的那个高度调高点? dbgrideh 可以不调整行宽,自动折行显示吗? 能否可以介绍WEBSNAP的书籍 局域网中聊天程序怎么来看用户是否在线?谢谢 紧急? 关于dbgrid 和 SQL语句?????? 关于ADO的问题!!OnLine (调查)现在程序多少人用五笔输入法
所以现在如果编程就很麻烦了,要不然,当初可以编号一个做继承就可以了
from position 屏幕中心
position设为screen center. 即可实现
position: ScreenCenter;
象Delphi的启动窗口。
再想个办法可以关闭就行了。
但是糟糕的是,我只能用固定x,y,来确定在屏幕中间了
怎么样才能确定在屏幕中间呢?
因为用了msg后,原来摄制的screencenter的属性就不认了
=======================================
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
procedure SubClassWndProc(var Message: TMessage);
public
{ Public declarations }
end;var
Form1: TForm1;
implementation{$R *.DFM}
procedure Tform1.SubClassWndProc(var Message: TMessage);begin
if (message.Msg = WM_NCHITTEST) then
MESSAGE.Result := 1 else
form1.WndProc(Message);end;procedure TForm1.FormCreate(Sender: TObject);
begin
WindowProc := SubClassWndProc;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
application.Terminate;
end;end.
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
bwinstat:boolean;
procedure WMwindowposchanging(var msg:twmwindowposchanging);
message wm_windowposchanging;
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
const
uflag = SWP_NOMOVE ;
implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
bwinstat:=true;
end;
procedure TForm1.WMwindowposchanging(var msg:twmwindowposchanging);
begin
inherited;
msg.WindowPos.x:=188;
msg.WindowPos.y:=122;
if bwinstat then
msg.windowpos^.flags:=msg.windowpos.flags or SWP_NOMOVE;
end;end.
我用的是一上的程序
后果就是msg.WindowPos.x:=188;
msg.WindowPos.y:=122;
这两个值不知道怎么取好,就是保证在屏幕中间
hjd_cw() 你的程序只能固定死了,无法最大最小,也无法关闭阿
frmTest.position := poScreenCenter;
frmTest.showmodal;