设置单文档窗体黑色背景色,并输出红色的文字

╄→гoц情女王★ 提交于 2019-11-30 18:39:45

本文使用两种方法来实现。

方法:重载 OnPaint() 函数:

void C***View::OnPaint()
{
	try{
		CPaintDC dc(this); // device context for painting

		CRect rt;
		GetClientRect(&rt);

		int nWidth = rt.Width();
		int nHeight = rt.Height();

		CDC MemDC; 
		CBitmap MemBitmap;

		MemDC.CreateCompatibleDC(NULL);	
		MemBitmap.CreateCompatibleBitmap(&dc,nWidth,nHeight);

		CBitmap *pOldBit=MemDC.SelectObject(&MemBitmap);

		MemDC.FillSolidRect(0,0,nWidth,nHeight,RGB(0,0,0));

		/*CPen pen(PS_SOLID,2,RGB(0,0,128));
		CPen *pOldPen = MemDC.SelectObject(&pen);
		
		MemDC.SelectObject(pOldPen);*/

		CFont font;
		VERIFY(font.CreateFont(
			48,                      
			0,                        
			0,                       
			0,                        
			700,               
			FALSE,                    
			FALSE,                     
			0,                         
			GB2312_CHARSET,              
			OUT_DEFAULT_PRECIS,       
			CLIP_DEFAULT_PRECIS,       
			DEFAULT_QUALITY,           
			DEFAULT_PITCH | FF_SWISS,  
			"幼圆"));                 

		CFont* def_font = MemDC.SelectObject(&font);

		MemDC.SetTextColor(RGB(255,0,0));

		MemDC.TextOut(nWidth/2-250,nHeight/2,"服务器接口程序,请勿关闭!");

		MemDC.SelectObject(def_font);

		// Done with the font.  Delete the font object.
		font.DeleteObject(); 

		dc.BitBlt(0,0,nWidth,nHeight,&MemDC,0,0,SRCCOPY);

		MemBitmap.DeleteObject();
		MemDC.DeleteDC();

	}catch (...){

	}
}


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!