有关HINT的问题 ( 积分: 100 )

  • 主题发起人 主题发起人 pangzhenguang
  • 开始时间 开始时间
但是,我这里一切正常啊,
要不,发个程序给你看看?

unit xForms;

interface

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

type
TCustFrm = class(TForm)
private
FInitPos: TPosition;
{ Private declarations }
protected
procedure CreateParams(var Params: TCreateParams); override;
public
{ Public declarations }
property InitPos: TPosition read FInitPos write FInitPos;
constructor Create(AOwner: TComponent); override;
end;

var
CustFrm: TCustFrm;

implementation

{ TAboutFrm }

constructor TCustFrm.Create(AOwner: TComponent);
begin
// 不能用这个类直接创建窗口,只能使用其基类
if not ClassParent.InheritsFrom(TCustFrm) then
begin
CreateNew(AOwner);
end
else
begin
inherited;
FInitPos := Position;
end;
end;

procedure TCustFrm.CreateParams(var Params: TCreateParams);
const
Bds: array[TFormBorderStyle] of Integer = (
0, 0, 0, WS_BORDER or WS_CAPTION,
WS_BORDER or WS_CAPTION, WS_BORDER or WS_CAPTION);
Mins: array[Boolean] of Integer = (0, WS_MINIMIZEBOX);
Maxs: array[Boolean] of Integer = (0, WS_MAXIMIZEBOX);
Mnus: array[Boolean] of Integer = (0, WS_SYSMENU);
begin
inherited;
if Params.Style and WS_CHILD <> 0 then
begin
Params.Style := WS_CHILD or Bds[BorderStyle] or
Mnus[biSystemMenu in BorderIcons] or
Mins[biMinimize in BorderIcons] or
Maxs[biMaximize in BorderIcons];
end;
end;

end.
 
我的系统是Xp+Delphi7,有两个Form, 窗体上只有楼主说的那几个控件
我的Mail: biout@126.com
你也给个mail,麻烦看看我的是怎么回事。
 
m a s t e r cn @ 163 . c o m
 
to Lich: 已经发过去了。
 
把子窗口设置为无边框的就可以了, 有边框和标题栏就不行了
 
总算得到结果了,不过有点遗憾,BordeyStyle要设置为bsNone,没有边框。。。
唉,我怎么没想到这样去试一试呢?看来人聪明跟笨的区别真的只是一念之隔啊。。。
谢谢lich,楼主应该可以结贴了。。。
 
的确比较奇怪,如果真的需要边框,就没有办法了
 
我的FORM2确实没有得到焦点呀,虽然是得到焦点,但FORM2的标题条没有变蓝,有没有办法解决,当FORM2得到焦点后,让FORM2的标题条变蓝,先给你分,希望能帮我解决这个问题,谢谢你的热心,
 
子窗口是不会变蓝的,除非自己作个假的
 
后退
顶部