void CChatRoomDlg::SendChatMsg() { CWinCtrl* pCtrl = FindChildInPane( IID_PANE_BOTTOM, IID_CHAT_EDIT ); if( pCtrl->GetControlType() != CTRL_EDITBOX ) return; CTEditBox* pEditBox = (CTEditBox*)pCtrl; if( pEditBox->IsFocus() ) { if( CChatRoom::GetInstance().GetState() == CChatRoom::STATE_ACTIVATED ) { char* pszMsg = pEditBox->get_text(); if( pszMsg && strlen( pszMsg ) >= 1 ) g_pNet->Send_cli_CHATROOM_MSG( pszMsg ); } else { AddChatMsg(pEditBox->get_text(), g_dwWHITE ); } pEditBox->clear_text(); ///내가 채팅 메세지를 보내면 항상 리스트는 맨밑으로 이동 CWinCtrl* pCtrl = FindChildInPane( IID_PANE_BOTTOM, IID_CHAT_LIST); if( pCtrl ) { if( pCtrl->GetControlType() == CTRL_ZLISTBOX) { CZListBox* pListBox = (CZListBox*)pCtrl; pCtrl = FindChildInPane( IID_PANE_BOTTOM, IID_CHAT_SCROLLBAR ); if( pCtrl && pCtrl->GetControlType() == CTRL_SCROLLBAR ) { CTScrollBar* pScrollBar = (CTScrollBar*)pCtrl; pScrollBar->SetValue( pListBox->GetMaximum() ); } } else { CTListBox* pListBox = (CTListBox*)pCtrl; pCtrl = FindChildInPane( IID_PANE_BOTTOM, IID_CHAT_SCROLLBAR ); if( pCtrl && pCtrl->GetControlType() == CTRL_SCROLLBAR ) { CTScrollBar* pScrollBar = (CTScrollBar*)pCtrl; pScrollBar->SetValue( pListBox->GetMaximum() ); } } } } }
unsigned CChatRoomDlg::Process( unsigned uiMsg, WPARAM wParam, LPARAM lParam ) { if( !IsVision()) return 0; #ifdef __PRIVATECHAT2 CWinCtrl * pCtrl = NULL; switch(uiMsg) { case WM_LBUTTONDBLCLK: { if( m_iTab == TAB_MEMBER && !m_bMinimize) { int i=0; std::list< CChatMember >::iterator iter; for( iter = m_Members.begin(); iter != m_Members.end(); ++iter, i++ ) { if( pCtrl = Find( CStr::Printf("NAME_%02d", i) ) ) { if( pCtrl->IsInside( lParam ) && strcmp((*iter).GetName(), g_pAVATAR->Get_NAME()) ) { g_itMGR.OpenPrivateChatDlg( (*iter).GetUserTag(), FRIEND_STATUS_NORMAL, (*iter).GetName() ); } } } } } break; case WM_KEYDOWN: { switch( wParam ) { case VK_TAB: { CTEditBox* pEditBoxID = NULL; CTEditBox* pEditBoxPwd = NULL; pCtrl = Find( IID_EDITBOX_TITLE ); if( pCtrl && pCtrl->GetControlType() == CTRL_EDITBOX ) pEditBoxID = (CTEditBox*)pCtrl; pCtrl = Find( IID_EDITBOX_PWD ); if( pCtrl && pCtrl->GetControlType() == CTRL_EDITBOX ) pEditBoxPwd = ( CTEditBox*) pCtrl; if( pEditBoxID && pEditBoxPwd ) { if( pEditBoxID->IsFocus() ) pEditBoxPwd->SetFocus(true); else pEditBoxID->SetFocus(true); } return uiMsg; } break; } } } #endif //__PRIVATECHAT2 if( unsigned uiProcID = CTDialog::Process( uiMsg, wParam,lParam ) ) { switch( uiMsg ) { #ifdef __PRIVATECHAT2 case WM_KEYDOWN: #endif case WM_LBUTTONUP: OnLButtonUp( uiProcID, wParam, lParam ); break; case WM_LBUTTONDOWN: OnLButtonDown( uiProcID, wParam, lParam ); default: break; } return uiMsg; } return 0; }