建了一个对话框。
然后重载onpaint函数
CDialog::OnPaint();
CWnd* pWnd = GetDlgItem(IDC_STATIC1);//IDC_STATIC1是按扭的ID
CDC* pDC = pWnd->GetDC();
pWnd->Invalidate(); //??????????
pWnd->UpdateWindow(); //????????????
pDC->SelectStockObject(BLACK_BRUSH);
pDC->Rectangle(0,0,10,10);
pWnd->ReleaseDC(pDC);
如果把CDialog::OnPaint()函数去了运行。就会看到不停的闪烁。不知道为什么?
然后小弟在OnPaint前声明一个全局变量:
int xTime = 0;
OnPaint里边
xTime ++;
然后重载OnCancel,加入下面代码:
CString str;
str.Format("OnPaint ran %d times!", xTime);
AfxMessageBox(str);
CDialog::OnCancel();发现如果CDialog::OnPaint()不去掉的话。就运行一次xTime就是1
如果去了。xTime就不是1。
我不知道其中的道理是什么。。郁闷。。
大家集思广益。。来想想。如果哪个高手知道的话请指点迷精。。
然后重载onpaint函数
CDialog::OnPaint();
CWnd* pWnd = GetDlgItem(IDC_STATIC1);//IDC_STATIC1是按扭的ID
CDC* pDC = pWnd->GetDC();
pWnd->Invalidate(); //??????????
pWnd->UpdateWindow(); //????????????
pDC->SelectStockObject(BLACK_BRUSH);
pDC->Rectangle(0,0,10,10);
pWnd->ReleaseDC(pDC);
如果把CDialog::OnPaint()函数去了运行。就会看到不停的闪烁。不知道为什么?
然后小弟在OnPaint前声明一个全局变量:
int xTime = 0;
OnPaint里边
xTime ++;
然后重载OnCancel,加入下面代码:
CString str;
str.Format("OnPaint ran %d times!", xTime);
AfxMessageBox(str);
CDialog::OnCancel();发现如果CDialog::OnPaint()不去掉的话。就运行一次xTime就是1
如果去了。xTime就不是1。
我不知道其中的道理是什么。。郁闷。。
大家集思广益。。来想想。如果哪个高手知道的话请指点迷精。。
解决方案 »
- ADO相关的二个问题
- socket传送文件,每个tcp数据包都会重发
- 请帮我看一个使用CxImage出现的问题啊
- 问下在非MFC类的DLL中如何得到hinstance
- 如何将自己写的类添加于工程中???
- *** 心动:100元人民币 ->>> 行动:用<winamp的解码器插件>做一个简单的播放器***
- 100分求解!!如何将位图存到odbc数据库(ASSECC或sql server)中请个位大侠指点!!小第深表感谢!!
- ListCtrl的中有关颜色设置问题
- ◆->谁买了和看了《程序员大本营》,怎么样?内容充实吗?水分多吗?
- 新软件发布:<汇编数据编译器>,<文件加密器>免费版本----
- 有关用户界面线程方面的问题
- 关于.rc文件的信息读取
问题关键是加了CDialog::OnPaint()后就不闪了。