MFC picture无法显示 HBITMAP

gonglaopi 2018-12-31 12:25:44
GDI屏幕截取需要的图后 ,拿到HBITMAP然后想在对话框内使用 picture控件显示出来,将控件type改为BITMAP后调用CStatic内的SetBitmap方法,对话框无法显示,请大佬指点迷津
...全文
518 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
CT8100 2019-01-24
  • 打赏
  • 举报
回复
ModifyStyle(0xF,SS_BITMAP|SS_CENTERIMAGE);
woshi_hujunjun 2019-01-19
  • 打赏
  • 举报
回复
我只想说,VS2013中,如果在属性中选择bitmap,一编译就报错,资源文件无法打开,坑的一逼,不知道你们有没有出现相同的问题
zgl7903 2019-01-01
  • 打赏
  • 举报
回复
HBITMAP 的作用域是否对?
是否有用 Invalid UpdateWindow 等引发绘制?

gonglaopi 2018-12-31
  • 打赏
  • 举报
回复
引用 3 楼 schlafenhamster的回复:
picture控件 派生 至 CStatic
为什么 控件 type 要改为 BITMAP ?(只有 CBitmap)
在属性内选择,有BITMAP
schlafenhamster 2018-12-31
  • 打赏
  • 举报
回复
picture控件 派生 至 CStatic
为什么 控件 type 要改为 BITMAP ?(只有 CBitmap)
gonglaopi 2018-12-31
  • 打赏
  • 举报
回复
引用 1 楼 schlafenhamster的回复:
"用 picture控件显示出来,将控件type改为BITMAP后" ?
是的,难道说只有拿到数据才可以??
schlafenhamster 2018-12-31
  • 打赏
  • 举报
回复
"用 picture控件显示出来,将控件type改为BITMAP后" ?
schlafenhamster 2018-12-31
  • 打赏
  • 举报
回复

HBITMAP CopyScreenToBitmap(CRect &Rect,HWND hwnd)
{
HDC hScrDC, hMemDC;
HBITMAP hOldBitmap,hBitmap;
int xScrn, yScrn;
// to screen coordinates.
MapWindowPoints(hwnd,NULL,(POINT *)&Rect,2);
hScrDC = CreateDC("DISPLAY", NULL, NULL, NULL);
hMemDC = CreateCompatibleDC(hScrDC);
//
xScrn = GetDeviceCaps(hScrDC, HORZRES);
yScrn = GetDeviceCaps(hScrDC, VERTRES);
//
if (Rect.left < 0) Rect.left = 0;
if (Rect.top < 0) Rect.top = 0;
if (Rect.right > xScrn) Rect.right = xScrn;
if (Rect.bottom > yScrn) Rect.bottom = yScrn;
//
hBitmap = CreateCompatibleBitmap(hScrDC, Rect.Width(),Rect.Height());
hOldBitmap = (HBITMAP)SelectObject(hMemDC, hBitmap);
BitBlt(hMemDC,0,0,Rect.Width(),Rect.Height(),hScrDC,Rect.left,Rect.top,SRCCOPY);
hBitmap =(HBITMAP)SelectObject(hMemDC,hOldBitmap);
//
DeleteDC(hScrDC);
DeleteDC(hMemDC);
//
return hBitmap;
}
schlafenhamster 2018-12-31
  • 打赏
  • 举报
回复
"在属性内选择,有BITMAP"
picture控件 派生 至 CStatic , class type 没变
GDI屏幕截取需要的图后, 作出 BITMAP 有可以 了。

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧