MFC对话框的事件处理
问题描述:
这是我今天的第二个问题,请原谅我。MFC对话框的事件处理
我正在写一个包装库来与扫描仪设备进行通信。源代码在C++ MFC中。我将它转换为一个普通的Dll,它将从C#中调用。所以,我在C#中使用DllImport来调用包装器库。
现在我提供了MFC代码,库是一个ActiveX对象,至少我认为是这样。
class CDpocx : public CWnd
{
}
所以在我的包装库中,我将有一个CDpocx的实例,并将通过C#P/Invoke调用它。但问题是CDpocx也抛出一些事件,我需要赶上。在传统的应用程序中,我只是附加一个函数。但是,我将如何附加非MFC类的事件。
我所看到的是这样的:
BEGIN_EVENTSINK_MAP(CVC60Dlg, CDialog)
//{{AFX_EVENTSINK_MAP(CVC60Dlg)
ON_EVENT(CVC60Dlg, IDC_DPOCXCTRL1, 1 , OnReadyDpocxctrl1, VTS_NONE)
//}}AFX_EVENTSINK_MAP
END_EVENTSINK_MAP()
OnReadyDpocxctrl1是处理(就绪)事件的功能。
如何在非MFC类中获得类似函数?
问候, Maksud
答
我不知道这是否是你想要的,但如果你想打电话从C#的ActiveX组件,您应该使用Windows Forms ActiveX Control Importer (Aximp.exe)将类型定义转换COM类型将ActiveX控件的库导入Windows窗体控件中。
谢谢。会试试这个。其实问题是,我有用于C++和VisualBasic的驱动程序和示例代码。 C++版本(最初是在VC6中转换为VC++ .NET 2008)完美工作,而Visual Basic版本(VB6转换为VB.NET并再次转换为VC#.NET)无法按预期工作。所以我很想创建一个C++ Wrapper,它将从C#中再次调用。我会尝试你的解决方案。 – max 2009-12-27 13:35:55