奇怪的问题。快来个人解决啊
郁闷死了,三态我已实现,只剩2个问题了。
1.在窗体被激活或非激活的状态改变的时候,标题栏仍然重新绘制了。我自己绘制的再覆盖上去
。我用WINSNIGTH看了下
激活与非激活间的消息 ACTIVATEAPP ACTIVE FORM
DEACTIVE FORM
WM_USER +0xAC00
+0xAC01
但就这些消息却引起了标题栏重新绘制,连我在
procedure wmncpaint(var msg:TWMNCPAint);message WM_NCPaint
procedure wmpaint(var msg:TWMPAint);message WM_Paint
procedure wmerasebkgnd(var msg:TWMEraseBkgnd);message WM_EraeBkgnd;
procedure tform1.wmncpaint(var msg:TWMNCPAint);
begin
if msg.msg=WM_NCPaint then exit;
...
end;
procedure tform1.wmpaint(var msg:TWMPAint);
begin
if (msg.msg=WM_NCPaint) And (msg.msg=WM_Paint) then exit;
..
end;
procedure tform1.wmerasebkgnd(var msg:TWMEraseBkgnd);
begin
inherited;
msg.resule:=1;
end;
都无法阻止这两种状态切换之下引发的标题栏重绘。虽然只是一闪而过,很快被我的绘制覆盖,但我真的
不想让它出现。应该如何做,才能截获这些引发重绘的消息。
2.如何将标题栏由24改为31。因为,我的MENUBAR被图片盖住了7个象素。呵呵