我自做一个程序,里面就放一个Edit控件用另一个程序取到了这个控件的HWND,但我用SetWindowText来给里面写值,发现并没有显示在控件里面,用spy++查看这个控件,倒是把我写的值传到了它的caption里去了请问要如何来改变这个值呢?急,在线等

解决方案 »

  1.   

    你取得不是控件的句柄,而是控件父窗口的句柄
    SetWindowText(GetDlgItem(hWnd, 1001), "AAAAAA");就可以
      

  2.   

    :SendMessage(hEdit, WM_SETTEXT, (LPARAM)"1234");
      

  3.   

    倒是把我写的值传到了它的caption里去了那说明你没有找到edit控件的句柄,而是找到了edit的父窗口的句柄,你需要用findwindowex在找到的父窗口基础上再找到edit的句柄
      

  4.   

    我说的CAPTION不是主窗口的CAPTION,我是用spy++查看的EDIT控件,它的CAPTION属性就是我设的什,应没有找错HWND吧
      

  5.   

    SendMessage(hEdit, WM_SETTEXT, (LPARAM)"1234");
      

  6.   

    关键是找hWnd,如果目标位置固定可以用WindowFromPoint
      

  7.   

    void CTest015Dlg::OnOK() 
    {
    // TODO: Add extra validation here

    CWnd *p =  FindWindow(NULL,"Test014");
    CWnd *pEdit = p->GetDlgItem(1000);
    ::SendMessage(pEdit->m_hWnd, WM_SETTEXT, 0, (LPARAM)"1234");}其中, Test014是一个基于对话框的程序,上有一个EDIT,ID为1000
      

  8.   

    http://community.csdn.net/Expert/topic/4437/4437327.xml?temp=.2892877
      

  9.   

    WriteProcessMemory + SetWindowText
      

  10.   

    WriteProcessMemory + SetWindowText/////////////////////阿可以具体点?