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

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

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

2019-11-11 01:43:50
字體:
來源:轉載
供稿:網友
直接在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%:

......

}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阿拉善左旗| 繁峙县| 和龙市| 象山县| 安吉县| 赤水市| 韩城市| 隆安县| 西盟| 定安县| 商河县| 阜阳市| 同德县| 新津县| 兴化市| 桑日县| 江山市| 平安县| 普陀区| 永宁县| 南京市| 门头沟区| 邢台县| 秭归县| 内江市| 水城县| 重庆市| 彰化市| 凌海市| 河津市| 香格里拉县| 剑川县| 田林县| 南通市| 梁平县| 澄江县| 景泰县| 黎城县| 阿拉善左旗| 宁波市| 丰台区|