窗体在最小化与最大化的时候,都做了些什么操作? ( 积分: 200 )

  • 主题发起人 主题发起人 wangergulei
  • 开始时间 开始时间
W

wangergulei

Unregistered / Unconfirmed
GUEST, unregistred user!
是这样的,我的一个界面上放了一个pagecontrol,然后在程序运行时,
自动创建tabsheet,但是在运行的时候,经常会出现一个问题,就是:
当点击tabsheet的页头的时候,页头上可以看见,是把我点击的tabsheet
设成了activepage,而且如果调用也可以发现确实是我点击的tabsheet为
当前激活的tabsheet,可是显示出来的,却还是之前那个tabsheet的页面
上的东西。如果这时直接点击页面里,会提示点击的是不可见的控件。
但是,如果我把程序最小化再最大化一遍(我的程序上放有托盘组件,
该托盘组件的最小化最大化代码如下:
procedure ReShowMainForm;
begin
if Application.MainForm <> nil then
begin
// Show application's TASKBAR icon (not the traybar icon)
ShowWindow(Application.Handle, SW_RESTORE);
//ShowWindow(Application.Handle, SW_SHOWNORMAL);
//Application.Restore;
// Show the form itself
Application.MainForm.Visible := True;
//ShowWindow((Owner as TWinControl).Handle, SW_RESTORE);
end;
end;


procedure MinimizeMainForm;
begin
if Application.MainForm <> nil then
begin
// Hide the form itself (and thus any child windows)
Application.MainForm.Visible := False;
{ Hide application's TASKBAR icon (not the traybar icon).
Do this AFTER the mainform is hidden, or any child windows
will redisplay the taskbar icon if they are visible. }
ShowWindow(Application.Handle, SW_HIDE);
end;
end;)
在做过这么一遍操作后,显示在我眼前的,就是真实的tabsheet页面上的东西了。

所以疑问来了,到底窗体在ShowWindow的时候做了哪些操作呢?

各位富翁,请问谁知道,教导我一下吧,我已经被这个问题给难了好长时间了。
多谢。
 
换句话说,在窗体最小化最大化的时候刷新了哪些资源?
 
你再把TabVisible再设为true,试试,
 
不成的,话说不是tab的visible设错了,而是tab没刷新出来。从理论上来说,应该是显示新的tabsheet,但是界面上浮现的还是旧的tabsheet
 
d6,form show时创建tabsheet,并在上面创建控件,没发现你说的这个现象,把关键代码贴出来。
 
后退
顶部