MFC:如何設置背景

1.利用位圖
1)如何載入位圖

  • 提前準備好.bmp格式的文件,將它放置到工程文件夾同名目錄的res目錄下(大多數保存的圖片都爲.jpg格式,只需要另存爲.bmp格式就行,也有相應的代碼可以修改)
    在這裏插入圖片描述

  • 在VC界面選擇資源視圖,下拉工程名,右擊.rc文件,選擇“添加資源”,在彈出的對話框當中選擇Bitmap,然後“導入”事先存好的.bmp文件
    在這裏插入圖片描述
    在這裏插入圖片描述

  • 如何獲得位圖的ID
    仙人掌旁邊的就是位圖的ID
    在這裏插入圖片描述
    2)代碼

我把它放置到OnPaint裏了,但同學說可以放在OnInitDialog裏,我嘗試了,但是沒成功原因還沒找(操作差不多一樣的,可能就是位圖ID的變化,裏邊函數原型都在筆記裏,也可以MSDN上查找)

       //加載位圖
		CBitmap bitmap;
		bitmap.LoadBitmap(IDB_BITMAP1);
 
		//選入DC
		CClientDC cdc(this); 
		CDC comdc;
		comdc.CreateCompatibleDC(&cdc);
		comdc.SelectObject(&bitmap);
 
		//生成BITMAP
		BITMAP bit;
		bitmap.GetBitmap(&bit);
 
		//客戶區域
		CRect rect;
		GetClientRect(rect);
		
		cdc.SetStretchBltMode(HALFTONE);   //解決圖形失真問題
		//用客戶區的DC繪製所生成的BITMAP,並適應爲窗口大小
		cdc.StretchBlt(0,0,rect.Width(),rect.Height(),&comdc,0,0,bit.bmWidth,bit.bmHeight,SRCCOPY);

2.直接加載圖片(失真,而且沒找到解決的辦法)
直接上代碼

CRect rc;
		GetWindowRect(&rc);
		CImage mImage;
		if(mImage.Load(_T("F:/test.jpg")) == S_OK)//圖片的路徑
		{
			//這裏讓圖片繪製區域和窗口大小一致
			mImage.Draw(GetDC()->GetSafeHdc(), CRect(0,0,rc.Width(),rc.Height()));
		}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章