Beginpaint的使用(80分)
继承CDialog类
CMyDialog::OnPaint()
{
if(...)
{
}
else
{
CPaintDC dc(this); // 用于绘制的设备上下文
CDialog::OnPaint();
}
而CDialog::OnPaint的代码为:
void CDialog::OnPaint()
{
CPaintDC dc(this);
if (PaintWindowlessControls(&dc))
return;
Default();
}
我听人说,红色的那句必须去掉,为什么啊?
CPaintDC的构造函数就是调用BeginPaint......
是不是因为不能多次调用啊?
[解决办法]
PaintWindowlessControls? 貌似是DirectUI
系统提供的对话框类本来就没在WM_PAINT画出什么来;背景是在WM_ERASEBKGND刷出来的
[解决办法]
else
{
CPaintDC dc(this); // 如果要自绘,就不要 下句
CDialog::OnPaint();// 如果要 这句,就不要 上句
}
[解决办法]
else
{
CPaintDC dc(this); // 用于绘制的设备上下文
//CDialog::OnPaint();
}
能够绘制对话框?
如果可以的话,我猜测也是 某个消息绘制的,而不是wm_paint
-----------------------
标准对话框WM_PAINT处理一般的BeginPaint,EndPaint就完了,中间没有其他代码,因为对话框一般通过其上的控件来体现功能的,而控件的绘制那是控件自己的事儿了,不在对话框的WM_PAINT消息处理中