MFC 单文档自定义标题问题

jianghan1021 2011-08-25 05:34:47
基于单文档的程序,想自己做漂亮的标题栏,做法如下:
1、去掉单文档默认的标题栏,工具栏等,使用如下代码:
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;

//去掉菜单栏
if(cs.hMenu!=NULL)
{
::DestroyMenu(cs.hMenu);
cs.hMenu = NULL;
}

//改变初始位置
cs.x=0;
cs.y=0;

//改变初始大小,最大化弹出窗口
cs.cx=GetSystemMetrics(SM_CXSCREEN);
cs.cy=GetSystemMetrics(SM_CYSCREEN);

//改变弹出风格,无标题栏
cs.style=WS_POPUP;
return TRUE;
}

2、然后插入自己设计好的背景图片,在窗口的最上方(即模拟的标题栏位置上)添加窗口标题,最小化、关闭等按钮;

以上方法可以实现,现在的问题是,我自己的电脑显示挺好的,同事的电脑上显示不正常,在自定义的标题栏上的按钮背景会看到蓝色,可以隐约看到原先单文档的蓝色标题栏。

有谁碰到这样的问题吗?焦急等待中!。。。。。
...全文
213 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jianghan1021 2011-09-02
  • 打赏
  • 举报
回复
已解决,在窗口弹出函数ShowWindow前加上下面语句:
m_pDlgRealtimeDisplay->SetWindowPos(&wndTopMost,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE);

其中m_pDlgRealtimeDisplay为弹出的主窗口句柄指针
buyong 2011-08-26
  • 打赏
  • 举报
回复
jianghan1021 2011-08-26
  • 打赏
  • 举报
回复
如果想改变单文档的标题栏样式,有其它方法吗?
坏男孩 2011-08-26
  • 打赏
  • 举报
回复
没有具体做过,这个确实和操作系统的风格有关
jianghan1021 2011-08-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 heksn 的回复:]
和操作系统的主题有关
[/Quote]

请问有什么解决方案吗?适应各种操作系统主题
我才是心翼 2011-08-26
  • 打赏
  • 举报
回复
你试试把两者的主题都换为经典模式,再看看效果
  • 打赏
  • 举报
回复
和操作系统的主题有关

15,979

社区成员

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

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