void QQSendMsg(CString strMsg,BOOL bCloseWindow){AFX_MANAGE_STATE(AfxGetStaticModuleState( ));//切换回调用程序CString str;CWnd* pMainWnd = AfxGetMainWnd()->GetWindow(GW_HWNDFIRST);while (pMainWnd){ HWND hWnd,hNext; CWnd* pChildWnd = NULL;
CWnd *pDlgWnd = NULL; hWnd = pMainWnd->m_hWnd; pMainWnd->GetWindowText(str); if(str.Find (L"交谈")>-1 || str.Find (L"群")>-1)//找到聊天主窗口Begin { hWnd=::FindWindowEx(pMainWnd->m_hWnd,NULL,L"#32770",NULL); pDlgWnd = CWnd::FromHandle(hWnd); hWnd=::FindWindowEx(pDlgWnd->m_hWnd,NULL,L"AfxWnd42",NULL); while(hWnd)//找消息填写控件 {
pChildWnd=CWnd::FromHandle(hWnd); hNext = ::FindWindowEx(pChildWnd->m_hWnd,NULL,L"RICHEDIT20A",NULL); if(hNext) { break; } else { hWnd=::FindWindowEx(pDlgWnd->m_hWnd,hWnd,L"AfxWnd42",NULL); } } if(hNext){//找到消息填写控件 CRichEditCtrl* pRich=(CRichEditCtrl*)(CWnd::FromHandle(hNext)); pRich->ReplaceSel (strMsg);//填上将要发送的内容 }else return; //找消息发送按钮 hWnd=::FindWindowEx(pDlgWnd->m_hWnd,NULL,NULL,NULL); while (hWnd) { pChildWnd=CWnd::FromHandle(hWnd); //CWnd *pChildWnd=CWnd::FromHandle(hWnd); pChildWnd->GetWindowText(str); if(str.Find (L"发送")>-1) { pChildWnd->SendMessage (BM_CLICK);//发送 //return;//退出 break; } hWnd=::FindWindowEx(pDlgWnd->m_hWnd,hWnd,NULL,NULL); }
if(TRUE == bCloseWindow) { hWnd=::FindWindowEx(pDlgWnd->m_hWnd,NULL,NULL,NULL); while (hWnd) { pChildWnd=CWnd::FromHandle(hWnd); //CWnd *pChildWnd=CWnd::FromHandle(hWnd); pChildWnd->GetWindowText(str); if(str.Find (L"关闭")>-1) { pChildWnd->SendMessage (BM_CLICK);//关闭 //return;//退出 break; } hWnd=::FindWindowEx(pDlgWnd->m_hWnd,hWnd,NULL,NULL); } } //return; }//找到聊天主窗口End pMainWnd = pMainWnd->GetWindow(GW_HWNDNEXT); //继续找}//While
}void QQSendMessage(CWnd * pDlgMainWnd ,CString strMsg,BOOL bCloseWindow){CString str;CWnd* pMainWnd = pDlgMainWnd->GetWindow(GW_HWNDFIRST);while (pMainWnd){ HWND hWnd,hNext; CWnd* pChildWnd = NULL;
CWnd *pDlgWnd = NULL; hWnd = pMainWnd->m_hWnd; pMainWnd->GetWindowText(str); if(str.Find (L"交谈")>-1 || str.Find (L"群")>-1)//找到聊天主窗口Begin { hWnd=::FindWindowEx(pMainWnd->m_hWnd,NULL,L"#32770",NULL); pDlgWnd = CWnd::FromHandle(hWnd); hWnd=::FindWindowEx(pDlgWnd->m_hWnd,NULL,L"AfxWnd42",NULL); while(hWnd)//找消息填写控件 {
pChildWnd=CWnd::FromHandle(hWnd); hNext = ::FindWindowEx(pChildWnd->m_hWnd,NULL,L"RICHEDIT20A",NULL); if(hNext) { break; } else { hWnd=::FindWindowEx(pDlgWnd->m_hWnd,hWnd,L"AfxWnd42",NULL); } } if(hNext){//找到消息填写控件 CRichEditCtrl* pRich=(CRichEditCtrl*)(CWnd::FromHandle(hNext)); pRich->ReplaceSel (strMsg);//填上将要发送的内容 }else return; //找消息发送按钮 hWnd=::FindWindowEx(pDlgWnd->m_hWnd,NULL,NULL,NULL); while (hWnd) { pChildWnd=CWnd::FromHandle(hWnd); //CWnd *pChildWnd=CWnd::FromHandle(hWnd); pChildWnd->GetWindowText(str); if(str.Find (L"发送")>-1) { pChildWnd->SendMessage (BM_CLICK);//发送 //return;//退出 break; } hWnd=::FindWindowEx(pDlgWnd->m_hWnd,hWnd,NULL,NULL); }
if(TRUE == bCloseWindow) { hWnd=::FindWindowEx(pDlgWnd->m_hWnd,NULL,NULL,NULL); while (hWnd) { pChildWnd=CWnd::FromHandle(hWnd); //CWnd *pChildWnd=CWnd::FromHandle(hWnd); pChildWnd->GetWindowText(str); if(str.Find (L"关闭")>-1) { pChildWnd->SendMessage (BM_CLICK);//关闭 //return;//退出 break; } hWnd=::FindWindowEx(pDlgWnd->m_hWnd,hWnd,NULL,NULL); } } //return; }//找到聊天主窗口End pMainWnd = pMainWnd->GetWindow(GW_HWNDNEXT); //继续找}//While
