以下是子窗体中截获最大化消息的过程,在Form2这个子窗体最大化时确实执行了此段代码,但是窗体没有受下面代码的控制而是直接最大化了,不知道为什么,当Form2是普通窗体的时候下列代码就会工作正常,Form1是父窗体,其中没有代码,所以没有列出,Form2也只有下列这一段代码。
procedure TForm2.WndProc(var Message: TMessage);
var
Msg:TWMGetMinMaxInfo;
begin
if Message.Msg=WM_GETMINMAXINFO then
begin
with TWMGetMinMaxInfo(Message).MinMaxInfo^ do
begin
ptMaxSize.X := 200;
ptMaxSize.Y := 200;
ptMaxPosition.X := 99;
ptMaxPosition.Y := 99;
end;
Message.Result := 0;
end; inherited WndProc(Message);
end;
解决方案 »
- 用delphi 求1+2+3+...+N的和
- 被迫要向客户提供源码,请问有没有delphi的代码干扰器存在?
- 当数据库有新的信息的时候,如何马上显示出来?
- Installshield Express的使用
- delphi7运行时出现奇怪的错误。
- 请问如何关闭IIS的服务?
- !!delphi+paradox系统想解决双机录入 !
- window2000系统下如何格掉2000系统
- ?我想找一个树列表控件同时要有checkbox,就要安装office时选择哪些安装组件时看到的那种,有人知道吗?
- WINNT装上ORACLE后,DELPHI如何使用?
- 求:delphi深度历险电子版
- delphi6.0下套打的问题,急需
var
Msg:TWMGetMinMaxInfo;
begin
inherited WndProc(Message); //把这条语句调到前面试试 if Message.Msg=WM_GETMINMAXINFO then
begin
with TWMGetMinMaxInfo(Message).MinMaxInfo^ do
begin
ptMaxSize.X := 200;
ptMaxSize.Y := 200;
ptMaxPosition.X := 99;
ptMaxPosition.Y := 99;
end;
Message.Result := 0;
end;end;
MaxSize.Y := 200;
限制了你的form最大化(窗体里的属性,你自个找找吧)
你的方法虽然可以控制窗体的大小,但是最大化后 最小化、最大化、关闭平三个系统按钮就会到菜单栏里,由于我是用toolbar做的菜单栏所以那样最大化后是看不到这三个系统按钮的,我也就是因为这个才想控制子窗体的最大化,让不最大化,只放大窗体。不知道还有没有什么好方法可以解决toolbar做菜单栏里可以显示系统按钮?
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
private
procedure WMGetMinMaxInfo(var Message: TWMGetMinMaxInfo); message WM_GetMinMaxInfo;
public
{ Public declarations }
end;var
Form1: TForm1;implementation
{$J+}
{$R *.dfm}procedure TForm1.WMGetMinMaxInfo(var Message: TWMGetMinMaxInfo);
begin
inherited;
with message.MinMaxInfo^ do
begin
ptMinTrackSize.X := 200;
ptMinTrackSize.Y := 200;
ptMaxTrackSize.X := 200;
ptMaxTrackSize.Y := 200;
end;
Message.Result := 0;
end;end.
我最初找到的原码就是你给我的这个,试了不行,我才改成了用wndProc来处理。
这段代码其实并不是无效,它只是当是MDI窗体的子窗体时无效,当窗体是普通的单窗体这做代码就是有效的!!