cchatserverdlg对话框

上传人:xiao****1972 文档编号:84144864 上传时间:2019-03-02 格式:DOC 页数:9 大小:42.14KB
返回 下载 相关 举报
cchatserverdlg对话框_第1页
第1页 / 共9页
cchatserverdlg对话框_第2页
第2页 / 共9页
cchatserverdlg对话框_第3页
第3页 / 共9页
cchatserverdlg对话框_第4页
第4页 / 共9页
cchatserverdlg对话框_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《cchatserverdlg对话框》由会员分享,可在线阅读,更多相关《cchatserverdlg对话框(9页珍藏版)》请在金锄头文库上搜索。

1、/ CChatServerDlg 对话框CChatServerDlg:CChatServerDlg(CWnd* pParent /*=NULL*/): CDialog(CChatServerDlg:IDD, pParent), m_nSocketType(SOCK_TCP) /默认为TCP socket, m_nStrPort(_T(5000) /默认端口为 5000m_hIcon = AfxGetApp()-LoadIcon(IDR_MAINFRAME);void CChatServerDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataE

2、xchange(pDX);DDX_Control(pDX, IDC_EDIT_MSGRER, m_ctrlMsgRecord);DDX_Control(pDX, IDC_EDIT_MSG, m_ctrlMsg);DDX_Control(pDX, IDC_SPINPORT, m_ctrlSpinPort);DDX_Text(pDX, IDC_EDITPORT, m_nStrPort);BEGIN_MESSAGE_MAP(CChatServerDlg, CDialog)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()/AFX_MSG_MAPO

3、N_BN_CLICKED(IDSTART, OnBnClickedStart)ON_BN_CLICKED(IDSTOP, OnBnClickedStop)ON_BN_CLICKED(IDSEND, OnBnClickedSend)ON_BN_CLICKED(IDEXIT, OnBnClickedExit)ON_BN_CLICKED(IDC_RADIOTCP, OnBnClickedRadiotcp)ON_BN_CLICKED(IDC_RADIOUDP, OnBnClickedRadioudp)ON_WM_DESTROY()ON_BN_CLICKED(IDC_BUTTON1, OnBnClick

4、edButton1)END_MESSAGE_MAP()/ CChatServerDlg 消息处理程序BOOL CChatServerDlg:OnInitDialog()CDialog:OnInitDialog();/ 将“关于.”菜单项添加到系统菜单中。/ IDM_ABOUTBOX 必须在系统命令范围内。ASSERT(IDM_ABOUTBOX & 0xFFF0) = IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX AppendMenu(MF_SEPARATOR);pSysMenu-AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMen

5、u);/ 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动/ 执行此操作SetIcon(m_hIcon, TRUE);/ 设置大图标SetIcon(m_hIcon, FALSE);/ 设置小图标/增加其他的初始化工作m_ctrlSpinPort.SetRange32( 2000, 6000);/默认变化范围为2000-6000GetDlgItem(IDSEND)-EnableWindow( FALSE );GetDlgItem(IDSTOP)-EnableWindow( FALSE );/设定最大连接的属性for(int i=0; iSetCheck(BST_CHECKED);re

6、turn TRUE; / 除非设置了控件的焦点,否则返回 TRUEvoid CChatServerDlg:OnSysCommand(UINT nID, LPARAM lParam)if (nID & 0xFFF0) = IDM_ABOUTBOX)CAboutDlg dlgAbout;dlgAbout.DoModal();elseCDialog:OnSysCommand(nID, lParam);/ 如果向对话框添加最小化按钮,则需要下面的代码/ 来绘制该图标。对于使用文档/视图模型的 MFC 应用程序,/ 这将由框架自动完成。void CChatServerDlg:OnPaint() if (

7、IsIconic()CPaintDC dc(this); / 用于绘制的设备上下文SendMessage(WM_ICONERASEBKGND, reinterpret_cast(dc.GetSafeHdc(), 0);/ 使图标在工作矩形中居中int cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect rect;GetClientRect(&rect);int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() -

8、 cyIcon + 1) / 2;/ 绘制图标dc.DrawIcon(x, y, m_hIcon);elseCDialog:OnPaint();/ OnUpdateConnection/ This message is sent by server manager to indicate connection status/事件处理LRESULT CChatServerDlg:OnUpdateConnection(WPARAM wParam, LPARAM lParam)UINT uEvent = (UINT) wParam;CSocketManager* pManager = reinter

9、pret_cast( lParam );/ 如果不是TCP,则返回if (m_nSocketType != SOCK_TCP)return 0L;if ( pManager != NULL)/ 服务器socket已经连接上if (uEvent = EVT_CONSUCCESS)PickNextAvailable();StartServer();else if (uEvent = EVT_CONFAILURE | uEvent = EVT_CONDROP)pManager-StopComm();if (m_pCurServer = NULL)PickNextAvailable();StartSe

10、rver();return 1L;/当用户拖动最小化窗口时系统调用此函数取得光标显示。HCURSOR CChatServerDlg:OnQueryDragIcon()return static_cast(m_hIcon);void CChatServerDlg:OnBnClickedStart()/数据更新UpdateData();StartServer();void CChatServerDlg:OnBnClickedStop()/ 断开服务器m_pCurServer-StopComm();if (!m_pCurServer-IsOpen()GetDlgItem(IDSTART)-Enabl

11、eWindow( TRUE );PrevDlgCtrl();GetDlgItem(IDSTOP)-EnableWindow( FALSE );GetDlgItem(IDC_RADIOTCP)-EnableWindow( TRUE );GetDlgItem(IDC_RADIOUDP)-EnableWindow( TRUE );void CChatServerDlg:OnBnClickedSend()/ TODO: 在此添加控件通知处理程序代码/定义缓冲区BYTE byBuffer256 = 0 ;CString strText;CString strSpace = 说: ; CString st

12、r_add= 服务器 ;/ 更新数据UpdateData();/获得要发送的信息m_ctrlMsg.GetWindowText( strText );int nLen = strText.GetLength();if (nLen 0)/在消息前加消息发送人身份标识TCHAR strHostHOSTNAME_SIZE = 0 ;if (false = CSocketComm:GetLocalName( strHost, sizeof(strHost)/sizeof(TCHAR)AfxMessageBox(获取消息发送人身份标识失败!);return;/在要发送信息的后面加上回车strText += _T(rn);nLen = strText.GetLength() + strlen(strHost) + strSpace.GetLength()+str_add.GetLength();/如果是UDP协议if (m_nSocketType = SOC

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号