MFC 调用 C#, 按健的委托命令

问题描述

我在winform中放一按健:buttonGo,编成库,供MFC调对此对话框(面板),现在按下winform中按健:buttonGo,会执行MFC中的CMFCDlg::OnClickButtonGo了。。。但我想也执行buttonGo_MouseUp,要如何做委托??我试了很多都不行。(即是我想要捕捉buttonGo的按下后的松开)谢谢!以下是我用MFC调用C#winform的做法://C#winform中,做成库供MFC调用1.建C#winform库的项目:WinFormB,面板中放一按健:buttonGo2.Designer.cs中:publicSystem.Windows.Forms.ButtonbuttonGo;(此句改成:public)//--------------------------------------------------------//MFCDlg项目属性中:1.(配置属性->常规->公共语言运行支持:)选:公共语言运行时支持(/clr)2.(通用属性->引用)添加浏览新引用WinFormB.dll//MFCDlg对话框设计中:工具箱拉入一个控件statiText:IDC_STATIC_BOTTOM//MFCDlg对话框.H中:BEGIN_DELEGATE_MAP(CPipeVideoDlg)EVENT_DELEGATE_ENTRY(OnClickButtonGo,System::Object^,System::EventArgs^)END_DELEGATE_MAP()CWinFormsControl<WinFormB::UserControl1>m_CtrlStaticBottom;//声明自建public:voidOnClickButtonGo(System::Object^sender,System::EventArgs^e);//MFCDlg对话框.cpp中:加入:voidCMFCDlg::DoDataExchange(CDataExchange*pDX)//记住不是About的{CDialog::DoDataExchange(pDX);DDX_ManagedControl(pDX,IDC_STATIC_BOTTOM,m_CtrlStaticBottom);}在OnInitDialog()中加入:m_CtrlStaticBottom.GetControl()->buttonGo->Click+=MAKE_DELEGATE(System::EventHandler,OnClickButtonGo);//自建:voidCMFCDlg::OnClickButtonGo(System::Object^sender,System::EventArgs^e){AfxMessageBox("Go");}

解决方案

本帖最后由 keith_cheung 于 2015-08-27 11:24:48 编辑
解决方案二:
m_CtrlStaticBottom.GetControl()->buttonGo->Click+=MAKE_DELEGATE(System::EventHandler,OnClickButtonGo);楼主你要绑定MouseUp也稍微开动下脑筋啊
解决方案三:
引用1楼shingoscar的回复:

m_CtrlStaticBottom.GetControl()->buttonGo->Click+=MAKE_DELEGATE(System::EventHandler,OnClickButtonGo);楼主你要绑定MouseUp也稍微开动下脑筋啊

这个只是Click的,我改过了,成mouse_up,key_up之类,后面的都有改动,但就不成功,才来问。(key_up也能成功)
解决方案四:
我这样做好了:
解决方案五:
m_CtrlStaticLeft.GetControl()->buttonPower->Click+=MAKE_DELEGATE(System::EventHandler,OnClickButton);m_CtrlStaticLeft.GetControl()->buttonZoomWide->MouseDown+=MAKE_DELEGATE(System::Windows::Forms::MouseEventHandler,OnMouseDownButton);m_CtrlStaticLeft.GetControl()->buttonZoomWide->MouseUp+=MAKE_DELEGATE(System::Windows::Forms::MouseEventHandler,OnMouseUpButton);来人可以结贴了。。。

时间: 2024-09-30 17:02:41

MFC 调用 C#, 按健的委托命令的相关文章

c++-C++/MFC调用动态链接库DLL

问题描述 C++/MFC调用动态链接库DLL 我用MFC制作了一个DLL动态链接库,然后用另外一个MFC程序区调用它,但是没有效果.其程序如下: 制作一个MFC生成DLL程序,改DLL内部封装了一个函数.如下(.cpp文件): int sum(int a,int b) { char temp[200]; itoa((a+b),temp,10); CString c; c=temp; MessageBox(NULL,c,"提示",0); return a+b; } 调用DLL的代码为:

方法-MFC调用多个动态库无法正常运行

问题描述 MFC调用多个动态库无法正常运行 VS2010写的MFC程序调用多个动态库,可以在F5下正常运行,直接打开.exe文件可以启动但是无法正常的调用动态库,(就是界面能打开,但是跑步起来数据)程序不报错.其中有些库同时加载一个动态库,修改后还是无法解决.求解决方法. 程序构成详细说明:如果最终生成程序是:a.exea.exe加载:b.dll/c.dll/d.dllc.dll/d.dll修改后通过回调函数使用b.dll中方法. 解决方案 动态库要放在项目的目录或者系统目录中. 解决方案二:

编程-c++、MFC调用labview生成的DLL

问题描述 c++.MFC调用labview生成的DLL 我用labview这个软件生成了一个前面板,labview主要用于显示仪表,现在整个面板生成为一个DLL.我想用vs C++来调用该dll,比如在MFC中一个指定的窗口中显示前面板.请熟悉这方面的大神指点一下或者和我一起讨论下vs和labview的混合编程.不甚感激! 解决方案 参考这篇文章:http://wenku.baidu.com/link?url=EOQA4viGBoEX_0ztvAa0RjYUX1lohMqvtfV3vtswGkB

mfc求助-MFC调用外部exe文件,显示错误,大家帮研究下,急用,谢谢

问题描述 MFC调用外部exe文件,显示错误,大家帮研究下,急用,谢谢 外部exe单独运行正常,但是一用mfc调用,就显示为外部exe文件内的一个idx文件初始化失败,大家帮看下,求解决,急用,谢谢大家啦, 解决方案 报什么错误,用shellexecute执行,指定下程序的工作路径看看. 解决方案二: 用绝对路径执行启动exe试试

编程-调用SQL部分字段组成命令并执行,求方法,求思路

问题描述 调用SQL部分字段组成命令并执行,求方法,求思路 目标是想在窗口登录的时候,调用数据库中的表,实现某些窗体不可见. 请看数据库表和语句,求大神指出我错误的地方和正确思路,谢谢. mycn.ConnectionString = "Data Source=192.168.0.175;Initial Catalog=blle;uid=wks;pwd=123" mycomm.CommandText = "select puRID,puPriNM + '.visible',p

oracle-Dephi开发程序调用bat 运行Oracle sqlldr 命令问题

问题描述 Dephi开发程序调用bat 运行Oracle sqlldr 命令问题 用Delphi XE8做个程序 调用bat文件运行Oracle sqlldr 命令.一直不能成功.但在 程序外运行bat文件是成功.在Delphi中不知该调用.高手指点指点. 程序中运行bat是提示: Message 2100 not found; No message file for product=RDBMS, facility=ULMessage 21 00 not found; No message fi

使用securecrt.exe 调用vbs 登陆系统 执行命令

问题描述 使用securecrt.exe 调用vbs 登陆系统 执行命令 在cmd上使用securecrt.exe命令如何调用vbs能够ssh到一个设备执行命令但不用跳到另一个界面执行,在cmd界面直接执行 解决方案 http://jingyan.baidu.com/article/93f9803fed4efbe0e46f559f.html 解决方案二: 是start吗?我不太会用securecrt 但是在批处理中,执行一个命令就是用start 解决方案三: 是start吗?我不太会用secur

C#中利用process类调用外部程序以及执行dos命令

程序|执行 c#中的Process类可方便的调用外部程序,所以我们可以通过调用cmd.exe程序 加入参数 "/c " + 要执行的命令来执行一个dos命令(/c代表执行参数指定的命令后关闭cmd.exe /k参数则不关闭cmd.exe)  1         private string RunCmd(string command)     2         { 3             //實例一個Process類,啟動一個獨立進程 4             Process

01_JNI是什么,为什么使用,怎么用JNI,Cygwin环境变量配置,NDK案例(使用Java调用C代码),javah命令使用

1 什么是JNI JNI Java本地开发接口 JNI是一个协议,这个协议用来沟通java代码和外部的本地代码(C/C++) 通过这个协议,java代码就可以调用外部的C/C++代码,外部的C/C++代码也可以调用Java代码. 2 为什么用JNI 1  JNI扩展了java虚拟机的能力,驱动开发(wifi-hotspot)2.3无线热点共享 2  Native code效率高,数学运算,实时渲染的游戏上,音视频处理(极品飞车),opengl,ffmpeg 3  复用代码(文件压缩,人脸识别)