主题:[讨论]对话框的重绘
			
 奇人天狼
				 [专家分:0]  发布于 2008-02-17 13:01:00							
			我在对话框上用TextOut打印了一句话,但当我改变对话框尺寸时,那句话还在!按理说尺寸改变了,就应该要重绘嘛,怎么那句话还在呢?
还有,我用SetClassLong去设置对话框的背景,怎么没有任何改变哦?
哪位高手知道,指点一下....
谢谢!
						
					 
		
			
回复列表 (共3个回复)
		
								
				沙发
				
					
shuukaki [专家分:850]  发布于 2008-02-17 13:49:00				
				当你移动对话框,不会进行重绘的,但你改变对话框尺寸,大小时会重绘,如:你最大化对话框,这时上面的文字就不会存在了。
当然TextOut你不能放在OnPaint函数下实现,否则就不会消失了。
改变对话框背景颜色可以添加WM_CTLCOLOR消息响应实现。
例如:红色背景
HBRUSH CTextoutDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
    HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
    if (CTLCOLOR_DLG == nCtlColor)
    {
       return  CreateSolidBrush(RGB(255, 0, 0));
    }
    return hbr;
}
							 
						
				板凳
				
					
奇人天狼 [专家分:0]  发布于 2008-02-17 14:48:00				
				我把打印放在了OnPaint()了,还是不行啊!
							 
						
				3 楼
				
					
shuukaki [专家分:850]  发布于 2008-02-18 08:51:00				
				[quote]我把打印放在了OnPaint()了,还是不行啊!
[/quote]
TextOut 放在OnPaint(),那输出文字就不会消失了,因为每次重绘都会响应OnPaint()函数。
							 
									
			
我来回复