小弟我通过findwindow找到一个窗口后,向那个窗口发送回车消息,这样发送对不对

我通过findwindow找到一个窗口后,向那个窗口发送回车消息,这样发送对不对
下面的代码无法触发带二段代码执行,但是成功的把第二个窗口设置成活动窗口,并且放在了顶层
CWnd *pMainWnd,*pSubWnd; 
pMainWnd=CWnd::FindWindow(NULL,_T("testwindow")); 
if(pMainWnd) 
{  
pSubWnd=pMainWnd-> GetLastActivePopup(); 
pMainWnd-> ShowWindow(SW_SHOW); 
pSubWnd-> SetForegroundWindow(); 


pMainWnd->ShowWindow(SW_SHOW);
CRect rc;
pMainWnd->GetClientRect(&rc);
TRACE("\r\n%d %d %d %d\r\n",rc.left,rc.top,rc.right,rc.bottom);

ClientToScreen(&rc);
TRACE("\r\n%d %d %d %d \r\n",rc.left,rc.top,rc.right,rc.bottom);

pMainWnd->ShowWindow(SW_SHOW);

::SendMessage(pMainWnd->m_hWnd,WM_KEYDOWN,VK_RETURN,VK_RETURN);
::SendMessage(pMainWnd->m_hWnd,WM_KEYUP,VK_RETURN,VK_RETURN);
pMainWnd->SetActiveWindow();



发送出去的是不是成功呢,

我在testwindow那里做了下面的代码,手动回车可以触发


BOOL CtestwindowDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if(pMsg->message == WM_KEYDOWN)
{
if(int(pMsg->wParam) == VK_ESCAPE || int(pMsg->wParam) == VK_RETURN )
{
if(MessageBox(_T("要退出吗?"),_T(""),MB_YESNO)==IDYES)
{
CDialog::OnClose();
}
else
{
return TRUE;
}
}

}
return CDialog::PreTranslateMessage(pMsg);
}


------解决方案--------------------
因为SendMessage发的不会由GetMessage返回,因此不会经过PreTranslateMessage
------解决方案--------------------
探讨
谁能顶一下啊