窗口(100分)

  • 主题发起人 主题发起人 lxl4
  • 开始时间 开始时间
L

lxl4

Unregistered / Unconfirmed
GUEST, unregistred user!
如何让form保持最大?
我在它的OnResize中代码如下
form1.windostate:=wsMaxMixed
 
但是,当最小化的时候,还能最小化,为什么?
 
这个容易,把窗口的的菜单的除关闭以外的按钮去掉,设置窗体的哪个事件,
 
怎样才能把窗口的最小化事件去掉
 
xixi
在最小化事件里也写
form1.windostate:=wsMaxMixed
 
最小化事件是什么?
我在events里面怎么找不到
 
是重载Windows消息。
具体消息名忘记了。[:)]
 
玩玩看:
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
FOldProc : TWndMethod;
procedure MyProc(var message : TMessage);
public
{ Public declarations }
end;

var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
FOldProc := Form1.WindowProc;
FOrm1.WindowProc := MyProc;
Form1.WindowState := wsMaximized;
end;

procedure TForm1.MyProc(var message: TMessage);
begin
if (message.Msg = WM_SYSCOMMAND) and ((message.WParam = SC_MINIMIZE)
or (message.WParam = SC_RESTORE)) then
exit;
FOldProc(message);
end;

end.
 
bluerain老兄,我太感谢你了,我在窗体用Image1用了一幅图片,怎样让图片也同窗口一样,保持最大
 
Image1 的Align属性设为alClient,Image1的stretch设为True.
不过你最好选简单一些地图片,一是不要太耗内存,二是因为stretch设为True后
会把图片放大,如果图片选择的不好的话,会很难看.
 
另: 我的那段代码还应该屏蔽一个消息,就是WM_NCLBUTTONDBLCLK,
因为我后来无意中双击窗体标题栏,窗口状态还是会改变,所以上面
那段代码的procedure TForm1.MyProc(var message: TMessage);应该将
双击标题栏的消息也屏蔽掉.
procedure TForm1.MyProc(var message: TMessage);
begin
if ((message.Msg = WM_SYSCOMMAND) and ((message.WParam = SC_MINIMIZE)
or (message.WParam = SC_RESTORE))) or (message.Msg = WM_NCLBUTTONDBLCLK) then
exit;
FOldProc(message);
end;
 
BlueRain老兄,太感谢你了。为了表达我对你的爱意,我把我的全部给了你
 
后退
顶部