有一个对话框程序,界面中就几个text控件,实现功能为:在text1、text2中输入值后点击按钮后text3中就有值了,我现在想用另一个程序自动控制该过程(输入值 点击按钮 再取得结果),能实现吗?该如何实现?FindWindow能实现吗?还是用钩子?

解决方案 »

  1.   

    得到窗口句柄, SetWindowText. GetWindowText
      

  2.   

    首先用 FindWindow 得到对话框窗口,然后用GetDlgItem得到那个几个Edit控件,然后用SetWindowText设置,最后发送点击按钮消息。
      

  3.   

    取得和设置文本如楼上所说
    模拟按钮按下,可以用SendMessage,先用spy++取得那个按钮的id
      

  4.   

    //----------开始------------
    char szText[256];
    HWND hWnd=FindWindow(NULL,"对话框标题");

    HWND hEdit1 =  GetDlgItem(hWnd,text1的ID);
    HWND hEdit2 =  GetDlgItem(hWnd,text2的ID);
    HWND hEdit3 =  GetDlgItem(hWnd,text3的ID); SendMessage(hEdit1,WM_SETTEXT,0,((LPARAM)"hello")); //设置text1
    SendMessage(hEdit2,WM_SETTEXT,0,((LPARAM)"world")); //设置text2 HWND hButton = GetDlgItem(hWnd,Button的ID);  
    SendMessage(hButton,BM_CLICK,0,0); memset(szText,0,256);
    SendMessage(hEdit3 ,WM_GETTEXT,(WPARAM)256,(LPARAM)szText);//取text3//---------结束-----------
    //以上控件ID不知道可用spy++查
      

  5.   

    取控件句柄可以用EnumChildWindows()
      

  6.   

    窗口A类名是A
    A的按钮单击事件
    ButtonClick()
    {GetDlgItem(text3的ID)->SetWindowText(GetDlgItem(text1的ID)->GetWindowText());}
    简单使text3的值等于text1的值
    楼主可以自己定义改方法在B中控制A中显示
    例如A作为B的子窗口
    在B的OnInitDialog中建立A
    A test=new A();
    test.ButtonClick();
    就可以了因为A中按钮单击事件是protected类型
    如果在B中调用那么B就要继承A类
    或者修改为public
      

  7.   

    是 WM_SETTEXT, SetWindowText 对
      

  8.   

    seu07201213(【卐】〖︻╋█████████◤ 〗≈^︵^≈) ( ) 信誉:100    Blog 
    //----------开始------------
    char szText[256];
    HWND hWnd=FindWindow(NULL,"对话框标题");

    HWND hEdit1 =  GetDlgItem(hWnd,text1的ID);
    HWND hEdit2 =  GetDlgItem(hWnd,text2的ID);
    HWND hEdit3 =  GetDlgItem(hWnd,text3的ID); SendMessage(hEdit1,WM_SETTEXT,0,((LPARAM)"hello")); //设置text1
    SendMessage(hEdit2,WM_SETTEXT,0,((LPARAM)"world")); //设置text2 HWND hButton = GetDlgItem(hWnd,Button的ID);  
    SendMessage(hButton,BM_CLICK,0,0); memset(szText,0,256);
    SendMessage(hEdit3 ,WM_GETTEXT,(WPARAM)256,(LPARAM)szText);//取text3//---------结束-----------
    //以上控件ID不知道可用spy++查
    =====================================================
    试试此兄的方法。
    PS:你的“刀”很酷嘛