国产探花免费观看_亚洲丰满少妇自慰呻吟_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%:

......

}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 霸州市| 保康县| 天峨县| 呼和浩特市| 清丰县| 黄陵县| 同心县| 阳朔县| 淮北市| 阿拉尔市| 阳谷县| 措勤县| 社会| 北宁市| 缙云县| 遂昌县| 汽车| 谢通门县| 子长县| 胶南市| 大城县| 湘乡市| 多伦县| 苗栗县| 连平县| 山东省| 桃源县| 宁津县| 都匀市| 依兰县| 张家界市| 固阳县| 保德县| 海晏县| 边坝县| 临安市| 芦山县| 广灵县| 密云县| 含山县| 南召县|