自绘窗口时的问题

jamesclarke 2005-07-10 07:46:00
我在利用OnNCPaint来自己绘制窗口边框以及标题栏时发现,有的时候当我把鼠标移到窗口原来的标题栏的位置时,原来windows默认样式的标题栏会出现,再拖动窗口,才会消失显示出我的自绘标题栏。这是为什么呢?还有,如果我在创建窗口时,把Close按钮的属性去掉后,整个窗口最大化时就和平常最大化的情况不一样了,窗口的下边会叠在任务栏后面,而平常的最大化应该是紧贴任务栏的阿。这有时怎么一回事呢?希望高手能指点一下迷津!万分感谢!
...全文
356 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
goodboyws 2005-07-11
  • 打赏
  • 举报
回复
重载几个消息
WM_INITMENU
WM_NCHITTEST
WM_SETCURSOR
WM_NCLBUTTONDOWN
WM_NCLBUTTONDBLCLK
这些消息都会对标题栏进行更新
CodeKey 2005-07-11
  • 打赏
  • 举报
回复
可以得到任务条的高度的
RECT rect;
HWND hWnd = ::FindWindow("Shell_TrayWnd", 0);
::GetWindowRect(hWnd,&rect);
jamesclarke 2005-07-10
  • 打赏
  • 举报
回复
呵呵,这样啊。在不同分辨率下任务栏是不是一样高呢
artmouse 2005-07-10
  • 打赏
  • 举报
回复
任务栏的高度,估计一下可以了吧,不用那么准吧,我当时就是差不多就算了,没用程序取
jamesclarke 2005-07-10
  • 打赏
  • 举报
回复
那么如何得到任务栏的高度呢?我想movewindow之后窗口能紧贴任务栏
artmouse 2005-07-10
  • 打赏
  • 举报
回复
2,这个问题我也遇到过,这个好像是windows内部的问题,如果问题不大就不要管它了,如果实在不行,好像截了那个最大化 的消息,然后用movewindow来搞是可以的,以前我做过,但是找不到代码了
CodeKey 2005-07-10
  • 打赏
  • 举报
回复
1.估计
OnNcActivate(BOOL bActive)
{
return TRUE;
}

2.
使用movewindow来制作最大化

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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