在对话框程序上放了一个TabCtrl,tab控件用的是vckbase上的CCoolTabControl。在Tab控件内再放了一个子对话框。在子对话框的OnPaint事件中写了一段GDI+的代码,实现子对话框上一个PictureControl内画横、竖几条线。现在问题是画完后没有刷新!要移动一下程序主窗口或被其它程序窗口覆盖一下才会刷新。我试了:
1、画完后,我弹出自已的About窗口盖住picturecontrol再移开,Picture没有刷新。我又在代码中移了旁边一Static控件盖住再移开也没有刷新,但是用其它程序的窗体盖住移开就会刷新!
2、搜了很多关于GDI+、窗体刷新的贴子,并尝试其中提到的Invalidate(),InvalidateRect(),UpdateWindow,RedrawWindow,OnEreaseBkgnd{return 0;}等等方法也无效!
3、应该也不是资源释放引起的没法子了,请大家指点一下,谢谢!
1、画完后,我弹出自已的About窗口盖住picturecontrol再移开,Picture没有刷新。我又在代码中移了旁边一Static控件盖住再移开也没有刷新,但是用其它程序的窗体盖住移开就会刷新!
2、搜了很多关于GDI+、窗体刷新的贴子,并尝试其中提到的Invalidate(),InvalidateRect(),UpdateWindow,RedrawWindow,OnEreaseBkgnd{return 0;}等等方法也无效!
3、应该也不是资源释放引起的没法子了,请大家指点一下,谢谢!
2、刚设置了WS_CLIPCHILDREN,但其它窗口移过后只有控件刷新,子对话框不刷新了,要最小化/最大化再能恢复
3、用的是:Graphics gPic(this->GetDlgItem(IDC_PIC)->GetDC()->m_hDC);获得名柄,也试过CDC * pDC(this->GetDlgItem(IDC_PIC)->GetDC());gPic=pDC->GetSafeHDC();也是不行
GetDC仅仅获得DC句柄。