请问如何进行BMP缩放(望高手不吝赐教) 将BMP按窗口比例显示在窗口中,窗口大小固定 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 /*先捕获前一窗口*/ hWnd = ::GetForegroundWindow(); // Get the foreground window. hdc = GetDC(hWnd); GetClientRect(hWnd, &rect); if(!hdc) return NULL; HDC hMemDC = CreateCompatibleDC(hdc); if(hMemDC == NULL) return NULL; SIZE size; size.cx = rect.right - rect.left; size.cy = rect.bottom - rect.top; HBITMAP hDDBmp = CreateCompatibleBitmap(hdc, size.cx, size.cy); if(hDDBmp == NULL) { DeleteDC(hMemDC); ReleaseDC(hWnd, hdc); return NULL; } HBITMAP hOldBmp = static_cast<HBITMAP>(SelectObject(hMemDC, hDDBmp));/*缩放为适应后一窗口大小*/ StretchBlt(hMemDC,0, 0 , iWidth //这里是你后一窗口的宽度 , iHeigh, //这里是你后一窗口的高度 hdc, rect->left, rect->top, rect->right, rect->bottom, SRCCOPY); SelectObject(hMemDC, hOldBmp); DeleteDC(hMemDC); ReleaseDC(hWnd, hdc); return hDDBmp;/*通过以上方法就得到了抓取前一窗口成图片并缩放成后一窗口大小然后将得到的HBITMAP在后一窗口显示就行罗!*/ ~~~多谢楼上的,结贴后一定给分!不过我又忘了说了,“后面的窗口的显示是在前面的窗口关闭以后的啊!”我本来是想建一个全局的DC用来保存前面窗口的数据,在关闭后再在后面的窗口显示,但不知道怎么申明这个DC,还有怎么实现啊!急!忘高手指教,小第一定给分!!!先谢了。 socket 系统接收缓冲区的问题 如何获得scintilla控件中的变量列表 一个对话框在运行完后老是非正常关闭 想做个MFC项目,没主题,请教 关于数据类型转换的问题,该怎么做,用什么函数?谢谢了! 如何使用rpc? 关于命名方式的问题。 如何能作出一个高效的服务器 求高效率的字符串遍历算法 edd()来领分,非常感谢! 高分求救!关于多应用的程序问题 Visual C++ 和 Borland C++ 有什么区别阿
hWnd = ::GetForegroundWindow(); // Get the foreground window. hdc = GetDC(hWnd);
GetClientRect(hWnd, &rect); if(!hdc)
return NULL; HDC hMemDC = CreateCompatibleDC(hdc);
if(hMemDC == NULL)
return NULL; SIZE size;
size.cx = rect.right - rect.left;
size.cy = rect.bottom - rect.top; HBITMAP hDDBmp = CreateCompatibleBitmap(hdc, size.cx, size.cy);
if(hDDBmp == NULL)
{
DeleteDC(hMemDC);
ReleaseDC(hWnd, hdc);
return NULL;
} HBITMAP hOldBmp = static_cast<HBITMAP>(SelectObject(hMemDC, hDDBmp));/*缩放为适应后一窗口大小*/
StretchBlt(hMemDC,0, 0
, iWidth //这里是你后一窗口的宽度
, iHeigh, //这里是你后一窗口的高度
hdc, rect->left, rect->top, rect->right, rect->bottom, SRCCOPY); SelectObject(hMemDC, hOldBmp);
DeleteDC(hMemDC);
ReleaseDC(hWnd, hdc);
return hDDBmp;
/*通过以上方法就得到了抓取前一窗口成图片并缩放成后一窗口大小
然后将得到的HBITMAP在后一窗口显示就行罗!*/