有两个程序,A程序和B程序,在允许A程序的时候按某一个按键会由A程序启动B程序,启动后A自己最小化。我是用
HINSTANCE ShellExecute(
    HWND hwnd, 
    LPCTSTR lpVerb,
    LPCTSTR lpFile, 
    LPCTSTR lpParameters, 
    LPCTSTR lpDirectory,
    INT nShowCmd
)
函数启动B程序的,并且也把A的窗口句柄传出去了,可是B里面又不知要怎么得到这个句柄,我想要在B程序里回到A程序就每办法了,因为B程序没法获得A程序的窗口句柄,怎么解决啊?VC6,MFC。

解决方案 »

  1.   

    B中通过FindWindow得到进程A的窗口句柄
      

  2.   

    http://www.pcdog.com/p/html/2004117/71120043300_1.htm
      

  3.   

    VC++环境下利用管道和线程实现进程间通信
         摘要:Windows95作为一个优先多任务操作系统,其重要特征之一是引入了多进程和多线程机制。其中每个进程都有私有的虚拟地址空间,可以创建多个线程,每个线程被分配一个时间片,且当前执行的线程在其时间片耗尽时挂起,让其他线程运行。由于各时间片很小,所以这时看起来就象是多个线程在同时工作。我们这里将会在子进程Child中产生一个工作线程,它只在后台处理任务,而不会影响程序的使用。
        ----有时用户运行的进程之间毫无关系,但是进程之间信息的交换则能产生协作效果,这样就可以完成某些单个进程所不能完成的任务。 Windows95可以使用多种通信手段,包括剪贴板、DDE、OLE,而且还增加了一些新的手段,其中管道是用来在不同程序之间交换信息的另一个新的简便的通信机制。与其它手段不同,管道没有正式的标准或协议来控制信息传递,所以与DDE会话这样的机制相比,管道更易于使用、更加灵活。管道实际上是一段共享内存区,进程把共享消息放在那里。因为管道专用于进程间的通信,所以Win32API提供了一组函数以方便信息交换。
        ----本文我们将在VC++4.1环境下介绍一个父进程和其子进程的通信实例。在父进程Parent窗口中按一下鼠标左键,就会产生一个Pipe和启动子进程Child,并从Pipe一端发送信息,同时Child启动后会创建一个工作线程,专门用来从管道的另一端读入数据。通过父进程菜单项的控制来改变图形形状参数,并传给Child使之在自己的窗口中绘出响应的图形。下面分别就父进程Parent和子进程Child来进行说明。
        链接:http://www2.ccw.com.cn/tips/9901/01304_03.asp
      

  4.   

    HWND FindWindow(  lpClassName,  lpWindowName );
      

  5.   

    那么FindWindow的两个参数是什么,应该怎么填?
      

  6.   

    FindWindow(0,"另一个窗口的标题")
      

  7.   

    FindWindow(  lpClassName,  lpWindowName );
    第一个为窗口类名,第二个为窗口标题名
      

  8.   

    我在B程序里添加了
    HWND ShowHandle;
    ShowHandle=FindWindow("CDdraw2Wnd","ddraw2");//B窗口的类名,B窗口标题
    可是编译错误,提示
    error C2440: '=' : cannot convert from 'class CWnd *' to 'struct HWND__ *'
    这是什么意思?为什么?