社区
界面
帖子详情
如何使位图透明,不使用MFC,使用PICTURE控件的。重分感谢!!!
zhxhaixing
2005-10-09 01:56:06
我使用VC导入一张位置(有背景),然后用VC的PICTURE控件显示,背景不透明,请问大家如何处理?记住不使用MFC的。谢谢大家!!!
...全文
415
23
打赏
收藏
如何使位图透明,不使用MFC,使用PICTURE控件的。重分感谢!!!
我使用VC导入一张位置(有背景),然后用VC的PICTURE控件显示,背景不透明,请问大家如何处理?记住不使用MFC的。谢谢大家!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
控件
中展示OpenCV处理的图像
OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库。自2000年由IntelLEC构建以来,OpenCV已经成为了计算机视觉领域中最为广泛
使用
的库之一。它的出现极大地推动了计算机视觉算法的研究与开发,并在学术界和工业界得到了广泛应用。OpenCV最初的开发目的是为了实现实时计算机视觉的算法,包括视频捕捉、图像处理、特征提取、物体识别等方面的应用。
MFC
中,怎样在一个特定的
控件
里画图,比如
pic
tu
re control
基于CFormView的应用程序: 拖入了一个长方形的
Pic
tu
re类型
控件
,
控件
的ID为IDC_
PIC
1,type为Frame,(Type还有Rectange、BitMap等类型) Sunken、Border为选中状态, 现在想在该
控件
中画图, 实现方法为,在OnDraw函数中加入以下代码: CRect rect; CWnd *pWin = GetDlgItem(IDC_
PIC
1);...
MFC
Pic
tu
re
控件
图像显示全解析:静态与动态加载的四种实现方案
在Windows桌面应用开发中,图形设备接口(GDI)是图形显示的核心基础,它定义了应用程序与图形硬件之间的通信协议。其原理在于通过设备上下文(DC)抽象层,管理绘图表面与资源对象(如
位图
、画刷),实现图形输出的标准化。这一机制的技术价值在于提供了跨设备的图形编程接口,使得界面渲染、数据可视化等需求得以高效实现。在
MFC
框架的工程实践中,对话框
Pic
tu
re
控件
作为GDI的典型应用场景,常被用于仪器面板、数据监控等嵌入式上位机软件的图像展示。针对静态资源嵌入与动态文件加载两种常见需求,开发者可通过
控件
属性绑
bitmap
mfc
加载图片_
MFC
Pic
tu
re
控件
加载图片
CStatic *p
Pic
= (CStatic*)GetDlgItem(IDC_
PIC
TU
RE);CBitmap bitmap;bitmap.LoadBitmapW(IDB_BITMAP2);p
Pic
->SetBitmap((HBITMAP)bitmap.GetSafeHandle());//在
Pic
tu
re的Type调为Bitmap像素修改:CStatic *p
Pic
= (CStati...
MFC
中各种
控件
透明
的实现方法总结
MFC
中各种
控件
透明
的实现方法总结Button:
资料来源:
http://www.cnblogs.com/songsu/articles/1370665.html
关键是其中的OnEraseBkgnd。OnDrawItem只是在原来BUTTON的位置上画了一个椭圆显示BUTTON的位置。
/*
* 画项
*/
void CImageButton::OnDrawItem(int nIDCtl, LPDRAWIT
界面
15,976
社区成员
115,866
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章