在VC++6.0中給對話框設置背景色或者背景圖片

/***********************************************************
*說明: 在VC++6.0中給對話框設置背景色或者背景圖片
*備註:測試代碼的對話框程序的工程名爲:BJ
*原理:在OnPaint()中加入代碼
*做者:袁培榮 yuanpeirong@vip.qq.com
*修改時間:2011年09月26日
***********************************************************/

// 注意:去掉相應以  /* */ 註釋的註釋符號後代碼生效

void CBJDlg::OnPaint() 
{
	if (IsIconic())
	{
		CPaintDC dc(this); // device context for painting

		SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

		// Center icon in client rectangle
		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;

		// Draw the icon
		dc.DrawIcon(x, y, m_hIcon);
	}
	else
	{
		//CDialog::OnPaint();//這行是原有代碼

		/*設置背景色:
		CRect rc;
        GetClientRect( &rc );// 獲取客戶區
        CPaintDC dc(this);
        dc.FillSolidRect(&rc, RGB(0,160,0));   // 填充客戶區顏色
        CDialog::OnPaint(); 
		*/
		
	    /*設置背景圖片:
		//CDialog::OnPaint();//要禁止這個調用   
		CPaintDC  dc(this);   
		CRect  rect;   
		GetClientRect(&rect);   
		CDC  dcMem;   
		dcMem.CreateCompatibleDC(&dc);   
		CBitmap  bmpBackground;   
		bmpBackground.LoadBitmap(IDB_BITMAP3);  //IDB_BITMAP3是位圖資源
		BITMAP  bitmap;   
		bmpBackground.GetBitmap(&bitmap);   
		CBitmap  *pbmpOld=dcMem.SelectObject(&bmpBackground); 
		dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,
					   bitmap.bmWidth,bitmap.bmHeight,SRCCOPY);   
		*/
		
	}


}
相關文章
相關標籤/搜索