社区
界面
帖子详情
如何使位图透明,不使用MFC,使用PICTURE控件的。重分感谢!!!
zhxhaixing
2005-10-09 01:56:06
我使用VC导入一张位置(有背景),然后用VC的PICTURE控件显示,背景不透明,请问大家如何处理?记住不使用MFC的。谢谢大家!!!
...全文
393
23
打赏
收藏
如何使位图透明,不使用MFC,使用PICTURE控件的。重分感谢!!!
我使用VC导入一张位置(有背景),然后用VC的PICTURE控件显示,背景不透明,请问大家如何处理?记住不使用MFC的。谢谢大家!!!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
23 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
MyGrid
2005-12-10
打赏
举报
回复
作个记号,学习。。。
huwei001982
2005-10-10
打赏
举报
回复
晕, 别人已经解释的非常详细了!
goodboyws
2005-10-10
打赏
举报
回复
晕,你在资源编辑器里Picture好歹也要放个地方吧,效果是一样的。用Picture也解决不了分辨率的问题
zhxhaixing
2005-10-09
打赏
举报
回复
怎么计算啊?用PICTURE根本不用管位置啊
goodboyws
2005-10-09
打赏
举报
回复
你自己可以计算位置,跟你用Picture是一样的
zhxhaixing
2005-10-09
打赏
举报
回复
效果是出来了,刚才我的正好有m_hImageList这个变量所以没报错。
不过这样直接指定坐标画可能存在这样的问题:当机器分辨器不一样的时候,会不会出现位置不好看的情况(因为在我机器上画出来刚好位置合适,换台不同分辨器的机子会不会出现位置不好看的情况)
goodboyws
2005-10-09
打赏
举报
回复
ImageList_Add(hImageList, hBitmap, NULL);换为
ImageList_AddMasked(hImageList, hBitmap, RGB(0, 128, 128));//这是背景颜色
假定你的背景色是RGB(0, 128, 128);
不好意思,注意力不集中,总是敲错
原先是ImageList_AddMasked(m_hImageList, hBitmap, RGB(0, 128, 128));
zhxhaixing
2005-10-09
打赏
举报
回复
PAINTSTRUCT ps;
HDC hdc = BeginPaint(&ps);
HBITMAP hBitmap= LoadBitmap(_Module.GetResourceInstance(), MAKEINTRESOURCE(IDB_BITMAP1));
BITMAP bm;
GetObject(hBitmap, sizeof(bm), &bm);
SIZE size;
size.cx = bm.bmWidth;
size.cy = bm.bmHeight;
HIMAGELIST hImageList = ImageList_Create(size.cx, size.cy, ILC_MASK | ILC_COLOR8, 0, 1);
ImageList_Add(hImageList, hBitmap, NULL);
ImageList_AddMasked(m_hImageList, hBitmap, RGB(0, 128, 128));//这是背景颜色
ImageList_Draw(hImageList, 0, hdc, 8, 8, ILD_TRANSPARENT);
EndPaint(&ps);
return 0;
这是我搬过来的代码,但是ImageList_Add(hImageList, hBitmap, NULL);去掉
则不管透明色设多少,图片都看不到,加上这句就行了。但是背景颜色没去掉。
goodboyws
2005-10-09
打赏
举报
回复
HBITMAP hBitmap= LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_BITMAP1));
BITMAP bm;
GetObject(hBitmap, sizeof(bm), &bm);
SIZE size;
size.cx = bm.bmWidth;
size.cy = bm.bmHeight;
zhxhaixing
2005-10-09
打赏
举报
回复
就是图片背景透明,
BITMAP bm;
GetObject((HBITMAP)myBitmap.GetSafeHandle(), sizeof(bm), &bm);
SIZE size;
我是在ATL工程中用的,这些有错误
goodboyws
2005-10-09
打赏
举报
回复
什么叫背景透明
zhxhaixing
2005-10-09
打赏
举报
回复
goodboyws(深夜不眠者) ,你没有去除背景吧,背景要透明的
goodboyws
2005-10-09
打赏
举报
回复
ImageList_Add(hImageList, hBitmap, NULL);去掉
goodboyws
2005-10-09
打赏
举报
回复
呵呵,是我的代码有问题
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hWnd, &ps);
HBITMAP hBitmap= LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_BITMAP1));
BITMAP bm;
GetObject((HBITMAP)myBitmap.GetSafeHandle(), sizeof(bm), &bm);
SIZE size;
size.cx = bm.bmWidth;
size.cy = bm.bmHeight;
HIMAGELIST hImageList = ImageList_Create(size.cx, size.cy, ILC_MASK | ILC_COLOR24, 0, 1);
ImageList_Add(hImageList, hBitmap, NULL);
ImageList_AddMasked(m_hImageList, hBitmap, RGB(0, 128, 128));//这是背景颜色
ImageList_Draw(hImageList, 0, hdc, 20, 20, ILD_TRANSPARENT);
......
EndPaint(hdc, &ps);
zhxhaixing
2005-10-09
打赏
举报
回复
100大洋全给你啦,你在哪里指定透明色的?
goodboyws
2005-10-09
打赏
举报
回复
晕,你给我多少钱啊
zhxhaixing
2005-10-09
打赏
举报
回复
能不能加点注释啊?看不太懂啊。
goodboyws
2005-10-09
打赏
举报
回复
一样
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hWnd, &ps);
HBITMAP hBitmap= LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_BITMAP1));
BITMAP bm;
GetObject((HBITMAP)myBitmap.GetSafeHandle(), sizeof(bm), &bm);
SIZE size;
size.cx = bm.bmWidth;
size.cy = bm.bmHeight;
HIMAGELIST hImageList = ImageList_Create(size.cx, size.cy, ILC_MASK | ILC_COLOR24, 0, 1);
ImageList_Add(hImageList, hBitmap, NULL);
ImageList_Draw(hImageList, 0, hdc, 20, 20, ILD_TRANSPARENT);
......
EndPaint(hdc, &ps);
zhxhaixing
2005-10-09
打赏
举报
回复
我不能使用MFC的啊。
goodboyws
2005-10-09
打赏
举报
回复
你可以直接在对话框的OnPaint里画,
用ImageList
CPaintDC dc(this);
CBitmap myBitmap;
myBitmap.LoadBitmap(IDB_BITMAP1);
BITMAP bm;
GetObject((HBITMAP)myBitmap.GetSafeHandle(), sizeof(bm), &bm);
SIZE size;
size.cx = bm.bmWidth;
size.cy = bm.bmHeight;
CImageList imageList;
imageList.Create(size.cx, size.cy, ILC_MASK | ILC_COLOR24, 0, 1);//ILC_COLOR24指24位位图
imageList.Add(&bmGamePos, RGB(0, 128, 128));//这是背景颜色
CPoint pt(20, 20);
imageList.Draw(&dc, 0, pt, ILD_TRANSPARENT);
加载更多回复(2)
MFC
pic
tu
re
控件
上画图
展示如何在
pic
tu
re
控件
上进行
MFC
绘图
MFC
pic
tu
re
控件
使用
通过按钮选择一张图片,然后再
pic
tu
re
控件
进行显示
MFC
中关于
pic
tu
re
控件
的
使用
技巧
这是自己在用的时候总结的一些小的技巧,希望能帮到大家
MFC
中在
pic
tu
re
控件
上实现截屏。
MFC
中在
pic
tu
re
控件
上实现截屏类似于QQ、WeChat pc的截图功能。
MFC
单文档 对话框
pic
tu
re
控件
的背景用图片填充
压缩包中一共有三个源代码,分别用图片填充单文档、对话框和对话框
pic
tu
re
控件
的背景,只要在onpaint或ondraw中加一段代码即可。
界面
15,978
社区成员
115,866
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章