本人的一些实现如下(这段代码大部分都是copy来的只在中间加了一些我想要的实现语句,没想到一直没有成功):
CWnd* pWnd=AfxGetMainWnd () ->GetWindow (GW_HWNDFIRST);  while (pWnd)  {  //  window visible, has a caption, and does not have an owner?  if (pWnd ->IsWindowVisible () &&  pWnd ->GetWindowTextLength () &&! pWnd ->GetOwner ())  {  pWnd ->GetWindowText (strCaption); 
                  //与我想要的IE浏览器窗口TITLE匹配
if(strCaption.Find("CSDN")>=0)
{
// pWnd->SetActiveWindow();
// pWnd->BringWindowToTop();
// pWnd->SetFocus();
pWnd->SendMessage(WM_KEYDOWN,VK_F5,1);
pWnd->SendMessage(WM_HOTKEY,IDHOT_SNAPWINDOW,VK_F5);
// pWnd->UpdateWindow();


}
}  //Get next window in window list.  pWnd=pWnd->GetWindow (GW_HWNDNEXT);  } 
结果我发送的消息没有反应。忙了几天没有结果!头都大了!

解决方案 »

  1.   

    你先用spy++检查在浏览中按F5,浏览器收到了什么消息...
    再在程序里模拟这个消息....
    pWnd->SendMessage(WM_KEYDOWN,VK_F5,1);
    很可能参数不对,也很可能IE中不是这个窗口接收按键消息,
    也有可能是WM_KEYUP才能响应等等
      

  2.   

    第一次用SPY++.看到的消息是message:0x0591[User_definded:WM_USER+401]wParam:00000000 lParam:000000
    于是我加了条语句:
       pWnd->SendMessage(WM_USER+401,0,0);结果还是不行。
      

  3.   

    from IE window you can get IWebBrowser2 point first, then call 
    IWebBrowser2::Refresh
      

  4.   

    to: kingzai(kingzai) 
    可是我不知道如何得到IWebBrowser2 pointer,麻烦你再详细点,好吗?(我不会com)
      

  5.   

    How can I get IWebBrowser2 interface if I know only HWND for running IE
    process.
    I found some MS information
    HOWTO: Connect to a Running Instance of Internet Explorer
    (http://support.microsoft.com/support/kb/articles/Q176/7/92.ASP)
      

  6.   

    http://www.vckbase.com/document/viewdoc.asp?id=282
    有源代码.好用给分.谢谢