社区
ATL
帖子详情
各位高手请指点一下,控件事件传出图片的问题
huazaimh
2009-12-31 09:00:54
现在有一个控件,我想通过事件把图片作为参数传出去,可是不管如何实验,都有问题
事件的原型,void OutBayEvent(BSTR Pic, long lPicLen, BSTR szEventInfo);
不管我如何来传,感觉数据是传出去了,可是在处理的时候,收到的数据老是不对
我在应用程序写文件的时候,里面的数据不对,写的文件也不能显示
请各位高手,指点一下,急!急!急!
另外:分不够可以另开贴给分,只要能解决问题!
...全文
90
6
打赏
收藏
各位高手请指点一下,控件事件传出图片的问题
现在有一个控件,我想通过事件把图片作为参数传出去,可是不管如何实验,都有问题 事件的原型,void OutBayEvent(BSTR Pic, long lPicLen, BSTR szEventInfo); 不管我如何来传,感觉数据是传出去了,可是在处理的时候,收到的数据老是不对 我在应用程序写文件的时候,里面的数据不对,写的文件也不能显示 请各位高手,指点一下,急!急!急! 另外:分不够可以另开贴给分,只要能解决问题!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
huazaimh
2009-12-31
打赏
举报
回复
在控件中,没有图片类型,不知道是不是我选的数据类型有问题
因为涉及到转换
这个是控件外的调用程序里面的代码:
void CTestRVDlg::OnTEventCamrvctrl1(BSTR FAR* Pic, long lPicLength)
{
CString strPic(*Pic);
BYTE *p = new BYTE[lPicLength];
memcpy(p,strPic.GetBuffer(0),strPic.GetLength());
CFile PicFile;
if(PicFile.Open("Test.jpg",CFile::modeCreate|CFile::modeWrite))
{
PicFile.Write(p,lPicLength);
PicFile.Close();
}
}
void CTestRVDlg::OnButton1()
{
m_ctrlRV.AddDev("");
}
void CTestRVDlg::OnOutBayEventCamrvctrl1(LPCTSTR Pic, long lPicLen, LPCTSTR szEventInfo)
{
char *str = new char[lPicLen];
wsprintfA(str, "%S ",Pic);
CFile PicFile;
if(PicFile.Open("TestX.jpg",CFile::modeCreate|CFile::modeWrite))
{
PicFile.Write(str,lPicLen);
PicFile.Close();
}
}
下面这一段是控件里面的代码(传出部分):
char tmpbuf[200];
sprintf(tmpbuf,"%s",szCameraIP);
adddev(inet_addr(tmpbuf),512,680,150);//可以增加多个IP地址
ResetDll(this->m_hWnd);
CFile PictureFile;
CFileException e;
if(PictureFile.Open("ITS31.jpg",CFile::modeRead|CFile::typeBinary,&e))
{
long lPicLen = PictureFile.GetLength();
char *Pic = new char[lPicLen];
memset(Pic,0,lPicLen);
if(PictureFile.Read(Pic,lPicLen)<=0)
AfxMessageBox("Read Pic File ERR!");
FireOutBayEvent(LPCTSTR(Pic),lPicLen,"图片文件");
// CComBSTR str(Pic);
BSTR bstrTmp;
//char str[]="ABCDE";
bstrTmp = _com_util::ConvertStringToBSTR(Pic);
FireTEvent(&bstrTmp,lPicLen);
delete Pic;
}
实际中的应用不是这样的,这个是我为了测试来做一个事件,请各位指点一下!谢谢!
oyljerry
2009-12-31
打赏
举报
回复
FireOutBayEvent的Pic中存放图片地址,传递过去
huazaimh
2009-12-31
打赏
举报
回复
可是事件中,没有一个void类型
事件的原型啊,
void FireOutBayEvent(LPCTSTR Pic, long lPicLen, LPCTSTR szEventInfo)
{FireEvent(eventidOutBayEvent,EVENT_PARAM(VTS_BSTR VTS_I4 VTS_BSTR), Pic, lPicLen, szEventInfo);}
我的QQ:44190484,请各位高手指导一下,谢谢!
yxwsbobo
2009-12-31
打赏
举报
回复
最简单弄全局变量。。
OutBayEvent是什么函数的原型? 相应事件的原型好像不是这样
可以只传一个VOID 类型的地址,然后在这个地址中转换为存放图片的地址,WINDOWS自己很多也是这样做的
oyljerry
2009-12-31
打赏
举报
回复
[Quote=引用 5 楼 huazaimh 的回复:]
已经解决,用VARIANT类型
void OutBayEvent(VARIANT varPic, long lPicLen, BSTR szBayInfo);
具体的实现如下:
VARIANT varPic;
varPic.pbVal = new BYTE[pinfo.piclen];
memset(varPic.pbVal,0,pinfo.piclen);
memcpy(varPic.pbVal,pinfo.pic,pinfo.piclen);
FireOutBayEvent(varPic,pinfo.piclen,strMsg);
[/Quote]
varPic.pbVal = new BYTE[pinfo.piclen];
记得用完了,delete释放
huazaimh
2009-12-31
打赏
举报
回复
已经解决,用VARIANT类型
void OutBayEvent(VARIANT varPic, long lPicLen, BSTR szBayInfo);
具体的实现如下:
VARIANT varPic;
varPic.pbVal = new BYTE[pinfo.piclen];
memset(varPic.pbVal,0,pinfo.piclen);
memcpy(varPic.pbVal,pinfo.pic,pinfo.piclen);
FireOutBayEvent(varPic,pinfo.piclen,strMsg);
C#自定义
控件
库
C#自定义
控件
库
利用MFC的Picture
控件
显示图像和视频/摄像头画面(VS2008+OpenCV2.0)
利用MFC的Picture
控件
显示和处理图像,后面又添加了播放视频和捕获摄像头画面的功能,其中播放视频的功能只有 'Play' 和 'Stop',不能实现暂停
winform实现360、QQ窗体与
控件
利用winform的gdi+
控件
实现的QQ窗体与
控件
android 通过GridView
控件
获取本地
图片
并动态显示 程序源码
文章是参考博客http://blog.csdn.net/eastmount/article/details/41808179完成,主要讲述通过GridView
控件
点击加号
图片
动态添加本地相册
图片
,点击
图片
可以删除已添加
图片
。同时界面比较美观。 免费资源,希望对大家有所帮助。
漂亮的.Net
控件
一个为RadioButton
控件
,(带源程序)可以定制漂亮的图形界面,提供成组功能。
并实现了极酷的Alpha Blending渐变及变换效果。用的是Vs.net Beta2,使用时必须把Checked,UnChecked,Disabled三张
图片
Copy 到你的
win2000 System32目录中去,可在设计期间选择其他
图片
,带演示程序,须装有.net beta2.
我才发现VS.net正式版也适用,.net beta2下编写的
控件
,vs.net 正式版下重新编译
一下
即可,注意测试时多放几个此
控件
。
ATL
3,248
社区成员
48,529
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章