已有一对话框程序(A)里面有两个edit控件
想自己写一程序B,去控制程序A中的两个edit控件
在一个edit控件上写上一字符串/数字
得到第二个edit控件上字符串/数字已知两个edit控件的ID分别是1000和1001B程序的代码如下:AAA代表程序A(基于对话框的工程)
CDialog *pWnd1 = (CDialog *)FindWindow(NULL, "AAA");下面不太清楚应该如何应用
SetWindowText 
GetWindowText 
和SendMessage函数
请教各位前辈

解决方案 »

  1.   

    这样使用,没有报错,但是也没有执行pWnd1->GetDlgItem(1000)->SetWindowTextA("302a");
      

  2.   

    发消息试试!对了pWnd1->GetDlgItem(1000)->sendmessage()
      

  3.   

    FindWindow后,SendMessage WM_SETTEXT过去
      

  4.   

    使用完上面的语句后
    edit控件1上变成兰色的了
    表示是有动作过,但是显示的字符还是原来的字符
    后面再
    UpdateData(true);或
    UpdateData(FALSE);
    结果是一样的
      

  5.   

    HWND hWnd    = FindWindow(NULL, "AAA"); 
    HWND hSubWnd = GetDlgItem(hWnd, 1000);
    ::SendMessage(hSubWnd , WM_SETTEXT, 0, (LPARAM)"new name"); 
      

  6.   


    多谢您的回答
    但是CDialog *pWnd1 = (CDialog *)FindWindow(NULL, "AAA");
    是不能换成
    HWND hWnd    = FindWindow(NULL, "AAA"); 

    因为后面还有这个被控制的程序中还有下来列表控件需要去控制(这个控制已经实现了)CComboBox *pCombo = (CComboBox *)pWnd->GetDlgItem(1018);
    pCombo->SetCurSel(nList);如果换成了HWND hWnd将不支持(CComboBox *)pWnd->GetDlgItem(1018);
      

  7.   

    在一个edit控件上写上一字符串/数字 
    得到第二个edit控件上字符串/数字 
    不太明白。。获取第二个edit的内容和是否在第一个edit里输入没什么关系的。。直接获取不就可以么。。CString str = GetDlgItem(IDC_EDIT1)->GetWindowText();
      

  8.   

    HWND hWnd    = ::FindWindow(NULL, "hello"); 
    HWND hSubWnd = ::GetDlgItem(hWnd, 1000); 
    ::SendMessage(hSubWnd , WM_SETTEXT, 0, (LPARAM)"new name"); 7楼正解。