国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 呈贡县| 珲春市| 顺平县| 民丰县| 高州市| 临洮县| 尼勒克县| 平顺县| 浦县| 晋中市| 灵石县| 抚宁县| 塘沽区| 金湖县| 独山县| 天峨县| 石家庄市| 义乌市| 苗栗县| 红河县| 泸西县| 玉田县| 富裕县| 崇明县| 高州市| 怀化市| 清苑县| 海城市| 海安县| 库尔勒市| 新沂市| 庆城县| 梁平县| 桦南县| 石嘴山市| 鹤庆县| 盐边县| 蕲春县| 建水县| 义马市| 烟台市|