ActiveX控件写在C#中使用MFC的对话框

 

 

ActiveX控件写在C#中使用MFC的对话框用户: 密码: 记住我 找回密码
首页
课程
文章
快速解答
论坛
OrCode
帮助
| 文章 >> 编程通用 >> 未分类的问答
ActiveX控件写在C#中使用MFC的对话框
2012/02/06 | 迈克尔Schegg:迈克尔Schegg:我发现了一个解决方案也许是别人的兴趣。我用NETFRAMWORK2.0的,并在此与属性ComRegisterFunctionmust的方法有签名无效methodName的(类型)。签名无效methodName的(String)是在以后的框架还允许 | 86 | 100 | 未分类的问答 评论

你好

我已经写在C#中的ActiveX控件。见下面的代码:

namespace ActiveXCSharp

{

[ComVisible(true)]

[ProgId("ActiveXCSharp.ButtonAx2")]

[ComSourceInterfaces(typeof(IButtonAx2))]

[ClassInterface(ClassInterfaceType.AutoDual)]

public class ButtonAx2 : Button, IButtonAxInterface

{

// ptr to dll adapter

private IntPtr _adapterDllPtr;

private const uint DotNetButtonPressed = 0x0400;



public ButtonAx2()

{

Application.EnableVisualStyles();



InitComEvents();

Click += ButtonAx2Click;

}



#region eventhandling



private void InitComEvents()

{

ButtonClicked = ComEventButtonClicked;

}



public delegate void ButtonClickedEventHandler();

public event ButtonClickedEventHandler ButtonClicked;

// Dummy Method to use when firing the event

private void ComEventButtonClicked() { }



private void FireButtonClickedEvent()

{

if (ButtonClicked != null)

{

ButtonClicked();

}

}



private void ButtonAx2Click(object sender, EventArgs e)

{

SendMessage(_adapterDllPtr.ToInt32(),

DotNetButtonPressed, IntPtr.Zero, IntPtr.Zero);

FireButtonClickedEvent();

}



#endregion eventhandling



#region IButtonAxInterface Member



public void SetButtonCaption(String strNewCaption)

{

Text = strNewCaption;

}



public void SetAdapterDllPtr(IntPtr iAdapterDllPtr)

{

_adapterDllPtr = iAdapterDllPtr;

}



#endregion IButtonAxInterface Member



[ComRegisterFunction]

public static void RegisterClass(string key)

{

...

}



[ComUnregisterFunction]

public static void UnregisterClass(string key)

{

...

}



#region MAPPING_OF_USER32_DLL_SECTION



...



#endregion



}



}


我想用它在一个MFC对话框。我可以放弃对设计师的控制,将适当的设计和运行中。但是却不是能够创造出它的一个实例。

当,我rightclick设计师的控制,并选择"创建变量一个MessageBox出现说:"ActiveX控件的类型库的访问是不可能的。"

控制注册,并在同一个地方的。dll也有。TLB。

我的问题是如何创建我的ActiveX的一个实例,在C代码中使用?

最佳问候迈克尔

关于作者:迈克尔Schegg:迈克尔Schegg:我发现了一个解决方案也许是别人的兴趣。我用NETFRAMWORK2.0的,并在此与属性ComRegisterFunctionmust的方法有签名无效methodName的(类型)。签名无效methodName的(String)是在以后的框架还允许


中国
我是一名编程爱好者,
谢谢www.orcode.com为我们提供一个学习和分享的平台。
有什么问题。可以就本内容回复,我看到时。会尽量回复的。
文章分类
桌面
网页开发
移动开发
数据库
多媒体
编程语言
平台,框架和库
编程通用
算法
Bugs和处理办法
集合
加密与安全
日期和时间
DLLs&组合
异常处理
本地化
宏和加载项
编程技巧
字符串处理
互联网/网络
线程,进程及IPC
WinHelp / HTMLHELP
未分类的问答
并行编程
未分类的提示和技巧
工具和IDE
图形/设计
开发周期
一般阅读
第三方产品
作者资源
其他

快速解答标签
c x 6850
VC x 7405

发表最多

bienvenu

zhaoxushi

6gouqu

博乐娃

verydogs

容贵

松下男人

px1624

bocconi

价值作最多

67638980

方方kiki

xyl123tb

飞翔的焰火

雪军

mianwife

伟城

irisappliance

xueyl00

最新登陆

mianwife

wlq1204

启孟

心海

天芳

kapu

功人

唯C

killerXP

电话:0755-26744265 手机:15013718018
QQ在线服务:1014551930 邮箱1014551930#qq.com (把#换成@)
地址:深圳市南山区西丽镇桃源街道办事处长源社区5栋602
CopyRight 2006-2012,Sitemap www.orcode.com Inc.All Rights Reserved 

 

TAG:

评论加载中...
内容:
评论者: 验证码:
  

 

技术支持
点击这里给我发消息
业务咨询
点击这里给我发消息