• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > ATL开发控件问题

ATL开发控件问题

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了atl控件,atl开发指南,atl开发,atl34砂轮,atl方形动力电池等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: ATL开发控件问题
描述:

在ATL控件中创建一个WMP控件,怎样获取这个WMP控件的事件,并将一些状态信息显示在开发的ATL控件界面上?
有人做过类似的控件的话给些提示,谢谢


解决方案1:

这是我开发的一个ie工具条中,截取IE程序中浏览器控件事件的方法,对你应该有所启发
HRESULT CBeeToolBar::Connect(void) 
{ 
 HRESULT hr; 
 // 为 WebBrowser 事件查找连接点 
 hr = m_spCPC->FindConnectionPoint(DIID_DWebBrowserEvents2, &m_spCP); 
 if (FAILED(hr)) 
return hr; 
 // 将我们的事件处理器传递给容器。事件发生时容器将调用我们实现的 
 // IDispatch 接口函数 
 hr = m_spCP->Advise( reinterpret_cast<IDispatch*>(this), &m_dwCookie); 
 return hr; 
} 
HRESULT CBeeToolBar::Invoke(DISPID dispIdMember, REFIID riid, 
LCID lcid, WORD wFlags, DISPPARAMS* pDispParams, 
VARIANT* pvarResult, EXCEPINFO* pExcepInfo, UINT* puArgErr) 
{ 
switch (dispIdMember) {
    case DISPID_NEWWINDOW2 :
{
if(AntiPopWindow())
{
*(pDispParams->rgvarg[0].pboolVal) =true;
}else
{
// *(pDispParams->rgvarg[1].pdispVal)=this;
*(pDispParams->rgvarg[0].pboolVal) =false;
}
}
break;
    case DISPID_ONQUIT :
if(m_spCP)
{
m_spCP->Unadvise(m_dwCookie);
m_spCP=NULL;
m_dwCookie=0;
};
break;
}
return NOERROR;
}

解决方案2:

现在能获取静态的控件事件,怎么处理在ATL下动态创建的WMP控件的EVENT呢?
--------
ConnectionPoint
从sohu网页上看到的。
unction play() {
try {
if( !isItself ) {
playorpause.innerHTML = pausebtnstr;
wmplayer.style.display = "block";
vmask.style.display = "none";
if( isAfterPause ) {
wmplayer.play();
} else {
wmplayer.FileName = playurl;
        setPosition( 0 );
wmplayer.play();
}
isAfterPause = false;
isPlaying = true;
isItself = true;
setVolume( volumeNum );
openTime();
} 
} catch( e ) {
setTimeout( "play()", 1000 );
}
return false;
}
--------------
wmp player?
除了自己写控件,用wmp控件外,也可以用flash播放。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 关于cabarc打包atl控件的问题,郁闷中~~~
  • ATL控件2问
  • 关于ATL做复合控件的问题
  • 大家一般都怎么打包Atl开发的ActiveX控件?
  • 使用ATL编写控件的接收器时,怎样在事件处理方法中得到事件源接口?
  • 请教,ATL写的ActiveX控件在IE中加载时接口的调用顺序
  • 在一个atl的复合控件项目中,如果调用其它ocx控件的方法??
  • 如何使用ATL编写的COM控件来播放AVI文件,需要在IE上使用的
  • 如何得到用ATL作的控件的窗口句柄,试了几个都无效,怎么回事?
  • 想用ATL做个控件,但这是怎么回事?

相关文章

  • 2017-06-04 请bobobCOM中……不要污蔑人,请解释清楚
  • 2017-06-05 如何使我做的DLL在delphi中可以调用
  • 2017-06-04 初学COM一个很不能理解的问题请大侠客指路~~~
  • 2017-06-04 怎么能把matlab程序在脱离MATLAB环境下运行
  • 2017-06-04 关于COM编写的Dll没有使用MFC和ATL的代码谁有呀
  • 2017-06-05 怎样才能回调PreTranslateMessage方法?(在线等)
  • 2017-06-04 请帮帮忙!急!
  • 2017-06-04 对windowsAPI之SendMessage)熟悉的朋友帮个忙!谢谢!
  • 2017-06-04 DisableWordApplicationerrormessageinVC
  • 2017-06-05 各位老大,程序结束时谈出对话框RuntimeError,abnormalprogramtermination是什么原因啊?

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 如何封装Win32DLL?
    • 页面怎么判断控件控件已经安装
    • 急问:一个多线程的问题!!!
    • 难倒俺的问题:一个进程启动后,如何来监控它
    • 如何不通过属性页设置组件属性?这个组件只有一个属性页。
    • IMultiLanguage2::ConvertStringInIStream的问题
    • 我想学习关于线程\进程方面的信息,谁能告诉我有什么文章或网页?
    • 请教下VC中的HUGEP是什么
    • teechart如何设置折线点的形状或颜色?
    • IMediaSeek::GetCurrentPosition导致程序挂起

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有