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

首頁 > 學院 > 開發(fā)設計 > 正文

MFC中picture控件,將bitmap根據(jù)控件大小縮放

2019-11-11 01:01:23
字體:
來源:轉載
供稿:網(wǎng)友
直接在OnInitDialog()函數(shù)中添加即可;
	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%:

......

}


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 宁德市| 宜章县| 大渡口区| 潢川县| 仙桃市| 高淳县| 五寨县| 咸阳市| 潢川县| 澄迈县| 边坝县| 浦东新区| 鲁甸县| 安康市| 纳雍县| 河西区| 浙江省| 武清区| 遂溪县| 鄂托克前旗| 屏山县| 乌拉特后旗| 西和县| 梓潼县| 阿拉善右旗| 元谋县| 海安县| 内黄县| 南乐县| 万年县| 电白县| 霍林郭勒市| 台江县| 惠州市| 南澳县| 北海市| 湖口县| 郁南县| 外汇| 册亨县| 库车县|