SendDlg.cpp
上传用户:hysujiao87
上传日期:2007-12-02
资源大小:156k
文件大小:3k
源码类别:

ICQ/即时通讯

开发平台:

C/C++

  1. // SendDlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "QQClient.h"
  5. #include "SendDlg.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. /////////////////////////////////////////////////////////////////////////////
  12. // CSendDlg dialog
  13. CSendDlg::CSendDlg(CWnd *mainWnd, CWnd* pParent /*=NULL*/)
  14. : CDialog(CSendDlg::IDD, pParent)
  15. , _message(_T(""))
  16. {
  17. //{{AFX_DATA_INIT(CSendDlg)
  18. _sendMsg = _T("");
  19. //}}AFX_DATA_INIT
  20. _mainWnd = mainWnd;
  21. ::ZeroMemory(&_friendAddr, sizeof(sockaddr_in));
  22. }
  23. void CSendDlg::DoDataExchange(CDataExchange* pDX)
  24. {
  25. CDialog::DoDataExchange(pDX);
  26. //{{AFX_DATA_MAP(CSendDlg)
  27. DDX_Text(pDX, IDC_EDIT_SEND, _sendMsg);
  28. DDX_Text(pDX, IDC_EDIT_MSG, _message);
  29. DDV_MaxChars(pDX, _message, 256);
  30. //}}AFX_DATA_MAP
  31. }
  32. BEGIN_MESSAGE_MAP(CSendDlg, CDialog)
  33. //{{AFX_MSG_MAP(CSendDlg)
  34. ON_BN_CLICKED(IDC_SEND_BTN, OnSendBtn)
  35. ON_WM_CLOSE()
  36. //}}AFX_MSG_MAP
  37. END_MESSAGE_MAP()
  38. /////////////////////////////////////////////////////////////////////////////
  39. // CSendDlg message handlers
  40. void CSendDlg::OnSendBtn() 
  41. {
  42. // TODO: Add your control notification handler code here
  43. UpdateData(TRUE);
  44. if (_sendMsg.IsEmpty())
  45. {
  46. AfxMessageBox(_T("不可以发送空的消息"));
  47. return ;
  48. }
  49. if (_comm.sendMsgToFriend(_sendMsg, _friendAddr, _userID) != S_OK)
  50. return ;
  51. insertMessage(_userName, _sendMsg);
  52. _sendMsg.Empty();
  53. UpdateData(FALSE);
  54. }
  55. BOOL CSendDlg::OnInitDialog()
  56. {
  57. CDialog::OnInitDialog();
  58. // TODO:  Add extra initialization here
  59. SetWindowText(_friendName);
  60. return TRUE;  // return TRUE unless you set the focus to a control
  61. // EXCEPTION: OCX Property Pages should return FALSE
  62. }
  63. void CSendDlg::insertMessage(CString nickname, CString message)
  64. {
  65. UpdateData(TRUE);
  66. _message += nickname + _T(":rn");
  67. _message += message + _T("rn");
  68. _message += _T("rn");
  69. UpdateData(FALSE);
  70. CEdit *edit = (CEdit*)GetDlgItem(IDC_EDIT_MSG);
  71. edit->LineScroll(edit->GetLineCount());
  72. }
  73. void CSendDlg::OnClose()
  74. {
  75. // TODO: Add your message handler code here
  76. if (_mainWnd != NULL)
  77. {
  78. TCHAR *friendID = new TCHAR[_friendID.GetLength() + 1];
  79. _tcscpy(friendID, _friendID);
  80. _mainWnd->PostMessage(WM_SENDDLG_CLOSED, (WPARAM)friendID, 0);
  81. }
  82. DestroyWindow();
  83. }
  84. void CSendDlg::OnCancel()
  85. {
  86. // TODO: Add your specialized code here and/or call the base class
  87. }
  88. void CSendDlg::OnOK()
  89. {
  90. // TODO: Add your specialized code here and/or call the base class
  91. }