奇怪的问题。快来个人解决啊

bob008 2004-11-11 04:27:53
郁闷死了,三态我已实现,只剩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个象素。呵呵
...全文
168 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
bob008 2004-12-02
  • 打赏
  • 举报
回复
同志们,这个问题已经改决鸟,并写了心得体会,哈哈哈哈,爽啊,另外写了个BuTFORM,不过只能COPY的,你要改也可以,不过看你会不会改了,还做了1套VCLSKIN用的SKN,恩,还不错。谁要啊
alphax 2004-12-02
  • 打赏
  • 举报
回复
独乐乐不如众乐乐,贴出主要代码来看看啊
alphax 2004-11-16
  • 打赏
  • 举报
回复
我以前也弄过这个问题,后来始终是搞不定,不了了之
ehom 2004-11-16
  • 打赏
  • 举报
回复
WM_NCPAINT,WM_NCACTIVATE,WM_SETEXT中写上如下代码

inherited;
DrawCaptionBar; //重绘标题栏

fj218 2004-11-16
  • 打赏
  • 举报
回复
我说错了,只当我没说
blue999star 2004-11-14
  • 打赏
  • 举报
回复
Delphi
fj218 2004-11-14
  • 打赏
  • 举报
回复
因为这些wm_ncpaint、WM_Paint、wm_earsebkgnd消息VCL都会传给了窗口的默认的回调函数,你Exit没用,所以总会有一个原始的绘制过程。
在TWinControl.DefaultHandler中的
Result := CallWindowProc(FDefWndProc, FHandle, Msg, WParam, LParam);
就是调用原始的窗口回调函数
你如果想阻止这些消息传给默认的窗口回调函数,程序就会出错,所以只能绘制两次。
有另一种方法就是使用OwnerDraw,就只需绘制一次了
ly_liuyang 2004-11-14
  • 打赏
  • 举报
回复
又是这个问题
恐怕是思路本来就是错误的
喜欢钻牛角尖是好的,但得看看是否可行呀
Windows机制是这样的都没什么奇怪的

http://lysoft.7u7.net
kmzs 2004-11-14
  • 打赏
  • 举报
回复
还是不容易
jishiping 2004-11-12
  • 打赏
  • 举报
回复
没有完全看明白楼主的意思,楼主是要自己重画标题兰吧。这样的话,不如将BorderStyle设为bsNone,然后自己在客户区腾出一块,用来自画标题栏与边框,这样还比较简单,而且比较彻底。
Eastunfail 2004-11-12
  • 打赏
  • 举报
回复
寒~~~~这几天我寝室的电脑就可以上网了,现在还在网吧,过几天在看这个问题
bob008 2004-11-11
  • 打赏
  • 举报
回复
------------------
自己顶先

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧