国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

MFC中picture控件,將bitmap根據控件大小縮放

2019-11-11 01:43:34
字體:
來源:轉載
供稿:網友
直接在OnInitDialog()函數中添加即可;
	CRect rc;	m_ctrlPic.GetClientRect(&rc);	CDC* pdcpic = m_ctrlPic.GetDC();  //m_ctrlPic是Picture控件的變量  	CBitmap bitmap1;	bitmap1.LoadBitmap(IDB_BITMAP_PROTOCOL_3);   //IDB_BITMAP_PROTOCOL_3是要加載的位圖的ID  	BITMAP bmp1;	bitmap1.GetBitmap(&bmp1);	CDC memdc;	memdc.CreateCompatibleDC(pdcpic);	memdc.SelectObject(&bitmap1);	CDC ppdc;	ppdc.CreateCompatibleDC(pdcpic);	CBitmap bmpbuf;                    //bmpbuf是要放入控件中的位圖  	bmpbuf.CreateCompatibleBitmap(pdcpic, rc.right, rc.bottom);	ppdc.SelectObject(&bmpbuf);	ppdc.StretchBlt(rc.left, rc.top, rc.Width(), rc.Height(), &memdc, 0, 0, bmp1.bmWidth, bmp1.bmHeight, SRCCOPY);  //將IDB_BITMAP_PROTOCOL_3復制到bmpbuf位圖中,并按指定的大小轉換  	m_ctrlPic.SetBitmap((HBITMAP)bmpbuf.Detach());	m_ctrlPic.ReleaseDC(pdcpic);	memdc.DeleteDC();	ppdc.DeleteDC();

這是在做MFC程序DPI適配中遇到的問題,dpi改變后picture控件不會跟著變化,需要將picture控件的Center Image屬性設置為TRUE,控件才會自動拉伸。然后再添加上面代碼

但是這樣做的弊端是圖片被縮放后不如原來的清晰,圖片上文字虛化并有毛刺,最后沒有采用該方案;

直接做了幾張不同分辨率下的圖,代碼中判斷dpi進行加載

switch(dpi)

{

case 100%:

setbitmap(100%);

break;

case 120%:

......

}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 且末县| 吉安县| 阜平县| 平罗县| 桂阳县| 江西省| 宁波市| 千阳县| 固始县| 隆尧县| 青浦区| 峡江县| 中卫市| 安陆市| 海原县| 江阴市| 邯郸市| 峨边| 平定县| 桑日县| 河源市| 凤山县| 宜阳县| 明星| 鄄城县| 阳曲县| 云梦县| 通城县| 嘉荫县| 宜都市| 乌拉特中旗| 广宁县| 吴旗县| 延安市| 玉环县| 涞水县| 尼勒克县| 高淳县| 鹤峰县| 贞丰县| 绍兴县|