调用VC写的dll,显示非模态对话框,总是要双击才能激活c#的主界面。 我的主程序是c# winform,调用自己写的一个dll(VC编写),这个函数显示一个非模态对话框,显示和功能都没有问题。现在的问题是打开这个对话框后,总要点击2次才能激活后面的c#主窗口的菜单。点第一次只是相当于激活后面的窗口,百思不得其解。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果主窗口是button,就可以一次点击激活,如果是菜单或者工具栏,就不行,非得2次。 还是不行,我用vc测试程序调用,传或不传父窗口的handle都正常,但是c#程序偏偏不行。 vc的代码:extern "C" __declspec(dllexport) void Opendlg(HWND hWnd) { AFX_MANAGE_STATE(AfxGetStaticModuleState()); CAAA *dlg=new CAAA(CWnd::FromHandle(hWnd)); dlg->Create(IDD_DIALOG1,CWnd::FromHandle(hWnd)); dlg->ShowWindow(SW_SHOW); return ; } c#代码:[DllImport("testku.dll")]public static extern void Opendlg(IntPtr hwnd);private void button3_Click(object sender, EventArgs e) { Opendlg(this.Handle); } 现在最奇怪的是为什么button可以一次激活,menu和toolbutton却不可以 晕了,用vs2003调用就没有问题,vs2005和2008都有问题,难道是菜单控件的问题?vs2003程序升级为2005也没有问题。 我在vs2005加载mainmenu,可以,toolbar也可以。看来是05的menustrip和toolstrip的问题。 求助 C#通过IP访问远程SQL数据库,与Dundas chart交互连接显示图像(在线等!) 弱智问题:怎样实现文件浏览窗口? google等是如何工作的,他的工作流程是什么?大家能简单明了的说一下 吗? 初学C#问个简单的问题 用WebRequest访问页面,中文参数乱码问题(急啊) C# WinForm 标题栏重绘问题 象vs.net那种“最近的文件”,“最近的项目”这种菜单是如何实现的。 请问可以设置数组的DataType的值吗? 资源文件 用C#程序实现 检测硬盘坏道?? textbox不识别html标签的问题
extern "C" __declspec(dllexport) void Opendlg(HWND hWnd)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
CAAA *dlg=new CAAA(CWnd::FromHandle(hWnd));
dlg->Create(IDD_DIALOG1,CWnd::FromHandle(hWnd));
dlg->ShowWindow(SW_SHOW);
return ;
} c#代码:
[DllImport("testku.dll")]
public static extern void Opendlg(IntPtr hwnd);private void button3_Click(object sender, EventArgs e)
{
Opendlg(this.Handle);
}