none
vc.net中 子窗体如何调用父窗体中的控件 RRS feed

  • 问题

  • vc.net中 子窗体如何调用父窗体中的控件 如 我有个Button1、Button2在From1中,另外有个Button3在Form2中 现在我在button1_Click中加入Form2^ Form2Dlg=gcnew Form2(); Form2Dlg->ShowDialog(this); 现在我想显示Form2后我按Button3后能响应Button2的Click事件怎么搞了?
    2009年4月23日 13:47

答案

全部回复

  • 在子窗口调用GetParentWindow(GetWindow GW_PARENT)获取父窗口的窗口句柄,然后在你按下Btn3时调用SendMessage发送一个Btn2的消息给父窗口即可.


    Hello world
    2009年4月24日 1:11
    版主
  • 向父窗体中发消息。在父窗体中实现消息响应来调用Button2的Click事件。
    2009年4月24日 1:13
  • 在子窗口调用GetParentWindow(GetWindow GW_PARENT)获取父窗口的窗口句柄,然后在你按下Btn3时调用SendMessage发送一个Btn2的消息给父窗口即可.


    Hello world

    朋友能不能详细点 我被这问题困了两天了~拜托了
    2009年4月24日 7:21
  • 大大、版主们帮帮忙啊,小弟先感谢大家了,今天都第三天了~~~~急啊
    2009年4月24日 13:58
  • 在.NET一般问题的论坛回复你的帖子了。

    解决的方法是需要把Form1的定义和实现分开来。即,你需要有Form1.h和Form1.cpp,以及Form2.h和Form2.cpp文件的存在。在头文件里面只定义函数和成员,在cpp文件里面写实现代码。



    MCPD (Windows & Web)
    2009年4月25日 1:41
  • 在子窗口调用GetParentWindow(GetWindow GW_PARENT)获取父窗口的窗口句柄,然后在你按下Btn3时调用SendMessage发送一个Btn2的消息给父窗口即可.


    Hello world

    朋友能不能详细点 我被这问题困了两天了~拜托了
    楼主问的是MC++的问题,不是MFC或者win32。。
    MCPD (Windows & Web)
    2009年4月25日 1:43
  • 详细点......
    VC++是这样的......C#我不懂:'(
    在Button3的Click中调用::GetParent(当前窗口的句柄)获取其父窗口句柄,但我不知道是不是你在Form1中new一个Form2出来Form2就自动成其子窗口了。若Form2是Form1的子窗口,调用API, ::SendMessage(父窗口句柄, WM_COMMAND, 窗口的ID号, 0)就可以了。
    C#应该也有对应的函数。


    Hello world
    2009年4月25日 15:57
    版主