关于图像重绘的问题,怎么让窗体上的Tshape控件在窗体重绘时,保留图像(100分)

  • 主题发起人 主题发起人 tjj
  • 开始时间 开始时间
T

tjj

Unregistered / Unconfirmed
GUEST, unregistred user!
我在窗体上放了一个Tshape控件,并在Tshape上手画了一些图形,
但当窗体最小化后再恢复时,shape上的图形就没了,我怎么让它保留?
 
这个问题不难吧?
怎么没人回答呢!
 
你的画图形的代码放在什么位置的?
 
放在SHAPE的ONMOUSEMOVE里面,
就是那种最简单的用鼠标画线。
 
是这样,那你得用一个Bitmap保存图形,当窗体最小化后再恢复时
也同时恢复这个保存的图形。
 
我应该把重绘放在那个事件里
 
type
TForm1 = class(TForm)
private
procedure WMSysCommand(var Message: TWMSysCommand); message WM_SYSCOMMAND;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

{ TForm1 }

procedure TForm1.WMSysCommand(var Message: TWMSysCommand);
begin
inherited;
with Message do
begin
if (CmdType and $FFF0 = SC_MAXIMIZE) then
//执行重绘;
end;

end;

end.
 
SC_MAXIMIZE处应该是SC_RESTORE。
 
问题是不只是最小化,当别的窗体挡住它的时候也需要重绘,
那应该放在哪个事件里?
 
进行强制重绘.
Invalidate(); //强迫重新绘图
 
用WM_ACTIVATEAPP消息处理;

或者放一个TApplicationEvents在窗体上,
在它的OnActivate事件中处理。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部