找到一种给vs2012对话框插入背景图片不会失真的方法
2013-08-12 18:42
246 查看
关键就是下面这一句可以避免失真
SetStretchBltMode(dc,STRETCH_HALFTONE);//能减少失真
下面是具体代码:
SetStretchBltMode(dc,STRETCH_HALFTONE);//能减少失真
下面是具体代码:
void CMySendToDlg::OnPaint() { if (IsIconic()) { CPaintDC dc(this); // 用于绘制的设备上下文 SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0); // 使图标在工作区矩形中居中 int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect(&rect); int x = (rect.Width() - cxIcon + 1) / 2; int y = (rect.Height() - cyIcon + 1) / 2; // 绘制图标 dc.DrawIcon(x, y, m_hIcon); } else { CPaintDC dc(this); CRect rect; GetClientRect(&rect);//获取客户的的大小 CDC memDC; CBitmap cBitmap; CBitmap* pOldMemBmp=NULL; cBitmap.LoadBitmap(IDB_BITMAP1); memDC.CreateCompatibleDC(&dc);//创建一个设备对象上下文 pOldMemBmp=memDC.SelectObject(& cBitmap); BITMAP bmp; cBitmap.GetBitmap(&bmp); SetStretchBltMode(dc,STRETCH_HALFTONE);//能减少失真 dc.StretchBlt(0,0,rect.Width(),rect.Height(),&memDC,0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY); memDC.SelectObject(pOldMemBmp); CDialogEx::OnPaint(); } }
相关文章推荐
- MFC在对话框中添加背景图片导入位图出错的解决方法
- QT 对话框添加背景图片的方法
- MFC对话框使用JPG图片做背景最简单方法
- QT 对话框添加背景图片的方法
- qt中常用的一种设置背景图片方法
- MFC中设置对话框颜色、添加背景图片、添加音乐的方法
- MFC中设置对话框颜色、添加背景图片、添加音乐的方法
- 用Qt Designer 给对话框控件添加背景图片和颜色或者插入图片
- WTL对话框添加背景图片的方法(C++)
- 【原创】关于更改桌面背景图片不见效的一种解决方法
- Java中插入背景图片的方法
- MFC中设置对话框颜色、添加背景图片、添加音乐的方法
- 如何给对话框插入背景图片 VC++ MFC
- 对话框添加背景图片,显示全力不失真
- MFC中设置对话框颜色、添加背景图片、添加音乐的方法
- MFC中设置对话框颜色、添加背景图片、添加音乐的方法
- VC添加背景图片 的一种方法
- 【Latex】中插入图片(Excel和Visio绘制)不失真的方法
- 对话框找不到WM_ERASEBKGND消息的解决方法与对话框背景图片的载入方法
- beamer中插入透明背景图片的方法(转)