怎么在一个对话框A类中对另一个对话框B的“Cancel按钮”操作(点击Cancel按钮关闭对话框B)?

解决方案 »

  1.   

    通过B对象使用GetDlgItem就可以获得按钮的指针,有了指针就可以任意的操作。
    如果你是想在A中控制点击B中的按钮,可以使用SendMessage发送消息来控制。
      

  2.   

    A 要关闭 B?  那就在A 中  HWND tmp_hWnd = FindWindow(NULL, "b's caption");
    SendMessage(tmp_hWnd, WM_CLOSE, 0, 0);
      

  3.   

    象 hxh76ahei(ah hei) ( ) 信誉:100  所说的
      

  4.   

    但是被关闭的对话框B是一个无模式对话框,用WM_CLOSE不行吧?用WM_DESTROY吗?我就是想在A中直接调用对话框B中OnCancel()里的DestroyWindow()。
      

  5.   

    不能得到对象就不对调用对象的函数.只能用消息方式.除非你在A中包含B的定义.并得到B的实例对象.
      

  6.   

    如果已经获得了窗口的指针为p
    p->SendMessage(WM_COMMAND,MAKELONG(IDCANCEL,BN_CLICKED),(LPARAM)p->GetDlgItem(IDCANCEL)->m_hWnd);
    如果已经获得了窗口的句柄为hWnd
    ::SendMessage(hWnd,WM_COMMAND,MAKELONG(IDCANCEL,BNCLICKED),GetDlgItem(hWnd,IDCANCEL));
      

  7.   

    弄错了一点细节:下面的应该为:
    ::SendMessage(hWnd,WM_COMMAND,MAKELONG(IDCANCEL,BNCLICKED),(LPARAM)GetDlgItem(hWnd,IDCANCEL));