一個dialog的程序﹐窗口標題為"aaa", 它上面有個文本框和一個按鈕﹐我如何在另一程序中往它文本框中輸入文字后按下按鈕?具體請寫下簡短代碼﹐不要簡單說地說用FindWindow(NULL,"aaa");得到窗口句柄不勝感謝﹗

解决方案 »

  1.   

    BOOL COneT32App::FirstInstance()
        {
          CWnd *pWndPrev, *pWndChild;      // Determine if a window with the class name exists...
          if (pWndPrev = CWnd::FindWindow(_T("MyNewClass"),NULL))
          {
            // If so, does it have any popups?
            pWndChild = pWndPrev->GetLastActivePopup();        // If iconic, restore the main window.
            if (pWndPrev->IsIconic())
              pWndPrev->ShowWindow(SW_RESTORE);        // Bring the main window or its popup to the foreground
            pWndChild->SetForegroundWindow();        // and you are done activating the other application.
            return FALSE;
          }
        }
      

  2.   

    SendMessage(DisplayWnd,WM_SETTEXT,0,(LPARAM)(LPCTSTR)szCaption);
    按下按钮模拟鼠标操作或捕获一下按钮按下的消息
      

  3.   

    CWnd * m_hDlg=FindWindow(NULL,"aaa");
    ASSERT ( m_hDlg ) ;
    CWnd * m_hBtn=CWnd::FromHandle(FindWindowEx(m_hDlg->GetSafeHwnd(),NULL,"BUTTON","按钮上的文本"));
    ASSERT ( m_hBtn ) ;
    CWnd * m_hEdit=CWnd::FromHandle(FindWindowEx(m_hDlg->GetSafeHwnd(),NULL,"EDIT",NULL));
    ASSERT ( m_hEdit ) ;

    TCHAR szText [MAX_PATH];
    _stprintf ( szText , TEXT ( "%s" ) , "给文本框中输入的文字" ) ;
    ::SendMessage(m_hEdit->GetSafeHwnd(), WM_SETTEXT,MAX_PATH ,(LPARAM)szText); ::SendMessage ( m_hBtn->GetSafeHwnd () , WM_LBUTTONDOWN  , 0 , 0 ) ; keybd_event(VK_RETURN,0x45,KEYEVENTF_EXTENDEDKEY,0); 
    keybd_event(VK_RETURN,0x45,KEYEVENTF_KEYUP,0);
      

  4.   

    HWND a_window,b_window,f_window; 
    CFileException e; 
    char* pFileName ; 
    char pbuf[100]; 
    memset(pbuf,0,100); 
    LPTSTR lpString; 
    CString filename="c:\\louhong";
    CString title="aaa";
    f_window=::FindWindow((LPCSTR)(DWORD)WC_DIALOG,title);//找到要输入文件名的对话框的窗口,获得它的句柄。 
    memset(pbuf,0,100); 
    ::GetWindowText(f_window,pbuf,15); 
    lpString=title.GetBuffer(15); 
    if(*lpString==*pbuf) 


    pFileName=filename.GetBuffer(20); 
    filename.ReleaseBuffer(); 

    //注意: CEdit和CButton 都是CWnd 的子类,所以都是窗口,也可以用::FindWindowEx查找得到。 

    a_window=::FindWindowEx(f_window,NULL,"Edit",NULL);//找到要输入文件名的编辑框。 

    lpString=filename.GetBuffer(15); 


    ::SendMessage(a_window, WM_SETTEXT,NULL,(LPARAM)lpString);//模拟键盘输入文件名 

    b_window=::FindWindowEx(f_window,NULL,"Button",NULL);// 找到”确定”按扭 


    ::SendNotifyMessage(b_window, WM_LBUTTONDOWN,MK_LBUTTON,NULL);//给”确定”按扭发送一个按下鼠标左键的消息 

    ::SendNotifyMessage(b_window, WM_LBUTTONUP, NULL,NULL);// 再给”确定”按扭发送一个弹起鼠标左键的消息,第三个参数一定要是NULL,否则不成功。 

    title.ReleaseBuffer();
      

  5.   

    CString filename="c:\\louhong";
    是要填写的内容!