如何在关闭tab页后刷新窗口

bobohallie 2010-03-31 10:22:42
vs2005/C++ 单文档
我在tab控件上绘制了一个bmp背景图片,关闭每个tab页时如何刷新窗口,显示背景图片,
目前窗口最小化之后,图片会显示出来。
在void CChildView::OnPaint()函数中:
if (m_tabListCtrl->GetSSLPageCount()==0)
{
m_tabListCtrl->ShowWindow(SW_HIDE);
m_pic->ShowWindow(SW_SHOW);
}
请教高手如何实现我的功能。谢谢
...全文
437 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2010-04-09
  • 打赏
  • 举报
回复
您好
我是本版版主
此帖以多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接

见此回复三日内无回应
我们将强制结帖
相关规定详见界面界面版关于版主结帖工作的具体办法
向立天 2010-04-02
  • 打赏
  • 举报
回复
设置一个控制变量m_bIsDraw
if(m_bIsDraw)
{
//相关的绘制代码
}
bobohallie 2010-04-02
  • 打赏
  • 举报
回复
谢谢xianglitian的回复,那如果在onPaint函数里直接画,
怎么显示和隐藏呢?
m_pic=new (?)
向立天 2010-04-01
  • 打赏
  • 举报
回复
你的静态控件就是为了显示图片么?
那我建议不要用静态控件处理
静态控件的刷新机制是有问题的
你可以直接将图片在OnPaint里画出来
对于控件的显示和隐藏最好也不要放到OnPaint中
bobohallie 2010-04-01
  • 打赏
  • 举报
回复
不好意思,描述的不清楚。
是这样的,在view初始化的时候:
void CChildView::InitView()
{
..........
m_tabListCtrl = new CTabCtrlSSL;
..........
m_pic=new CStatic;
m_pic->Create((CString)"",WS_CHILD|SS_RIGHT|WS_TABSTOP ,rc,this);
...
m_pic->SetBitmap(hBitmap);
}
动态生成tab控件和static控件
然后在void CChildView::OnPaint()函数中判断:
if (m_tabListCtrl->GetSSLPageCount()==0)
{
m_tabListCtrl->ShowWindow(SW_HIDE);
m_pic->ShowWindow(SW_SHOW);
}
当程序启动的时候默认显示的是背景图片,点击按钮,显示tab页,图片隐藏。
问题是,当关闭tab页时,图片不能刷新。
向立天 2010-03-31
  • 打赏
  • 举报
回复
没太明白你意思
你的tab页还能关闭?
如果是tab的背景图为什么在CChildView::OnPaint()函数中画
应该重载CTabCtrl画呀
bobohallie 2010-03-31
  • 打赏
  • 举报
回复
bmp图片的实现是:
m_pic=new CStatic;
m_pic->Create((CString)"",WS_CHILD|SS_RIGHT|WS_TABSTOP,rc,this);

15,980

社区成员

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

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