关于保存CDC状态,帮小弟我看下 为什么无效阿。
关于保存CDC状态,帮我看下 为什么无效阿。。。
CPaintDC dc(this); // device context for painting
//初始化或恢复设备描述表
if( m_iDCSave != 0)
{
dc.RestoreDC(m_iDCSave);
MessageBox(_T("恢复设备描述表"),NULL,NULL);
}
else
{
MessageBox(_T("初始化设备描述表"),NULL,NULL);
CPen pen(PS_SOLID,11,RGB(0,255,0));
dc.SelectObject(pen);
m_iDCSave = dc.SaveDC();
}
dc.Ellipse(CRect(0,0,500,500));
运行程序后
弹出一个 "初始化设备描述表" 消息框, 以后每次都是 弹出"恢复设备描述表"消息框
但 就第一次用绿色画笔 画出的圆,
后面都是用黑色的画笔画出圆
------解决方案--------------------
你把MessageBox放在OnPaint里,那还不烦死你啊
------解决方案--------------------
dc.RestoreDC(m_iDCSave);
m_iDCSave=0;
CPaintDC dc(this); // device context for painting
//初始化或恢复设备描述表
if( m_iDCSave != 0)
{
dc.RestoreDC(m_iDCSave);
MessageBox(_T("恢复设备描述表"),NULL,NULL);
}
else
{
MessageBox(_T("初始化设备描述表"),NULL,NULL);
CPen pen(PS_SOLID,11,RGB(0,255,0));
dc.SelectObject(pen);
m_iDCSave = dc.SaveDC();
}
dc.Ellipse(CRect(0,0,500,500));
运行程序后
弹出一个 "初始化设备描述表" 消息框, 以后每次都是 弹出"恢复设备描述表"消息框
但 就第一次用绿色画笔 画出的圆,
后面都是用黑色的画笔画出圆
------解决方案--------------------
你把MessageBox放在OnPaint里,那还不烦死你啊
------解决方案--------------------
dc.RestoreDC(m_iDCSave);
m_iDCSave=0;