HWND cWnd;  
cWnd=::FindWindow(NULL,"发送消息");  
cWnd=::FindWindowEx(cWnd,NULL,"RICHEDIT",NULL);  
::SetWindowText(cWnd,"文本");  
我的意识的向QQ的输入框里输入文本,为什么这样不行啊?  
我检测了返回植的,窗口能找到,RICHEDIT控件也能找到!但是为什么SET却不行呢?  
要是删除cWnd=::FindWindowEx(cWnd,NULL,"RICHEDIT",NULL);就可以修改发送消息窗口的标题成“文本”!请网友门帮帮我!  
还问个问题,要是一个程序里有很多的EDIT或者是RICHEDIT,我怎么样才能准确的取的的要的哪个RICH的句柄呢?

解决方案 »

  1.   

    HWND cWnd,cWnd2;  
    cWnd=::FindWindow(NULL,"发送消息");  
    为什么又是cWnd=::FindWindowEx(cWnd,NULL,"RICHEDIT",NULL);  
    cWnd改成cWnd2试试。
      

  2.   

    你的代码经过测试是可以成功的!!!看你再显示之前有没有调用过AfxInitRichEdit();这个函数,因为你是要对richedit控件进行操作!!详情请参阅MSDN
      

  3.   

    我用这段代码,就算是对EDIT控件操作也不对呀!为什么会这样呢?
    我个人认为我的代码没有错呀,为什么就是不行呢?我试过用上面的代码改程序的标题,按键的文字都可以成功,就是不能改EDIT等文本控件的文字!请大家帮帮忙啊!
      

  4.   

    如果方便的话,可否发给我你的代码,让我see [email protected]
      

  5.   

    代码?就是上面那些啊!
    其他的代码都是MFC生成呀,不会什么错把!
      

  6.   

    那你留个mail,我把我可以运行的程序发给你!!ok??
      

  7.   

    [email protected]
    (feiniaoliang)飞鸟良,给我也发一份吧
      

  8.   

    [email protected]
    给我看看,学习一下。
      

  9.   

    HWND cWnd;  
    cWnd=::FindWindow(NULL,"发送消息");  //cWnd=::FindWindowEx(cWnd,NULL,"RICHEDIT",NULL);  ::SetWindowText(cWnd,"文本");  
    为什么我不要那一句也不行?
      

  10.   

    ::SetWindowText(cWnd,"文本");  
    只能将RichEdit的caption改成"文本"
      

  11.   

    已经明白问题之所在了,其实MSDN上有的:
    To set the text of a control in another process, send the WM_SETTEXT message directly instead of calling SetWindowText. 所以只要把::SetWindowText(cWnd,"文本"); 改为:
              ::SendMessage(cWnd,WM_SETTEXT,(WPARAM)0,(LPARAM)(LPCTSTR)("文本")); 
    就可以了!!楼主试一下吧!!有兴趣的朋友也可以试一下~~~~~~