资源简介

由服务器源码和客户端源码组成,基于TCP/UDP的网络通讯,实现了用户上线下线管理,好友管理,基于HTML的聊天室,基本功能和2000年代的OICQ类似,是学习C++网络编程极好的示例代码。

资源截图

代码片段和文件信息

// Copyright (c) Iuri Apollonio 1998
// Use & modify as you want & need and leave those 4 lines.
// Strongly based on article “Inplace edit control“ of Mario Contestabile and “Editable subitems“ of Zafir
// http://www.codeguru.com

// GfxGroupEdit.cpp : implementation file
//

#include “stdafx.h“

#include “GfxGroupEdit.h“
#include “GfxOutBarCtrl.h“

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CGfxGroupEdit

CGfxGroupEdit::CGfxGroupEdit()
{
bEscapeKey = FALSE;
iIndex = -1;
msgSend = NM_OB_ONGROUPENDEDIT;
bNoDown = false;
}

CGfxGroupEdit::~CGfxGroupEdit()
{
}


BEGIN_MESSAGE_MAP(CGfxGroupEdit CEdit)
//{{AFX_MSG_MAP(CGfxGroupEdit)
ON_WM_KILLFOCUS()
ON_WM_CREATE()
ON_WM_CHAR()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CGfxGroupEdit message handlers

void CGfxGroupEdit::OnKillFocus(CWnd* pNewWnd) 
{
PostMessage(WM_CLOSE 0 0);
if (!bEscapeKey)
{
GetWindowText(text);
if (text != ““) GetOwner()->SendMessage(WM_OUTBAR_NOTIFY msgSend (LPARAM) this);
}
}

BOOL CGfxGroupEdit::PreTranslateMessage(MSG* pMsg) 
{
if (pMsg->wParam == VK_RETURN)
{
PostMessage(WM_CLOSE 0 0);
return TRUE;
}
else if (pMsg->wParam == VK_ESCAPE)
{
PostMessage(WM_CLOSE 0 0);
return bEscapeKey = TRUE;
}

return CEdit::PreTranslateMessage(pMsg);
}

void CGfxGroupEdit::PostNcDestroy() 
{
CEdit::PostNcDestroy();
delete this;
}

int CGfxGroupEdit::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
if (CEdit::OnCreate(lpCreateStruct) == -1)
return -1;

SendMessage(WM_SETFONT(WPARAM) GetStockobject(DEFAULT_GUI_FONT)MAKELPARAM(TRUE0));
return 0;
}

void CGfxGroupEdit::OnChar(UINT nChar UINT nRepCnt UINT nFlags) 
{
if (msgSend == NM_OB_ONGROUPENDEDIT)
{
CEdit::OnChar(nChar nRepCnt nFlags);
return;
}

if (nChar == VK_ESCAPE || nChar == VK_RETURN)
{
if (nChar == VK_ESCAPE) bEscapeKey = TRUE;
GetParent()->SetFocus();
return;
}
CEdit::OnChar(nChar nRepCnt nFlags);
CString str;
CRect rect parentrect;
GetClientRect(&rect);
GetParent()->GetClientRect(&parentrect);
ClientToScreen(&rect);
GetParent()->ScreenToClient(&rect);
GetWindowText(str);
CWindowDC dc(this);
CFont *pFont = GetParent()->GetFont();
CFont *pFontDC = dc.Selectobject(pFont);
CRect szrc(rect);
szrc.bottom = szrc.top;

if (bNoDown == true)
{
dc.DrawText(str szrc DT_CALCRECT);
if (szrc.right >= parentrect.right - 1) rect.right = parentrect.right - 1;
else rect.right = szrc.right;
MoveWindow(&rect);
return;
}

dc.DrawText(str szrc DT_WORDBREAK|DT_CENTER|DT_CALCRECT);
dc.Selectobject(pFontDC);
CSize size = szrc.Size();

if (size.cx > rect.Width())
{
if (size.cx + rect.left < parentrect.right) rect.right =

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      25353  2000-04-05 09:08  QICQ\Img_ListView1\10000.DAT

     文件      25353  2014-01-02 18:48  QICQ\Img_ListView1\10001.DAT

     文件      25353  2000-04-26 08:40  QICQ\Img_ListView1\10002.DAT

     文件      25353  2000-04-26 08:41  QICQ\Img_ListView1\10003.DAT

     文件      25353  2000-04-26 08:41  QICQ\Img_ListView1\10004.DAT

     文件      25353  2000-04-06 11:53  QICQ\Img_ListView1\10005.DAT

     文件      25353  2000-04-05 10:39  QICQ\Img_ListView1\10006.DAT

     文件      25353  2000-04-04 19:17  QICQ\Img_ListView1\10007.DAT

     文件      25353  2000-04-04 16:19  QICQ\Img_ListView1\10008.DAT

     文件      25353  2000-04-04 16:19  QICQ\Img_ListView1\34477.DAT

     文件        126  1998-07-21 18:00  QICQ\Img_ListView1\AutoBuildCount.h

     文件       2098  2000-04-05 08:16  QICQ\Img_ListView1\FONT.CPP

     文件       1461  2000-04-05 08:16  QICQ\Img_ListView1\FONT.H

     文件       3282  2000-04-03 08:09  QICQ\Img_ListView1\GfxGroupEdit.cpp

     文件       1699  1998-07-05 20:06  QICQ\Img_ListView1\GfxGroupEdit.h

     文件      61666  2003-05-14 19:45  QICQ\Img_ListView1\GfxOutBarCtrl.cpp

     文件       7548  2000-04-04 20:39  QICQ\Img_ListView1\GfxOutBarCtrl.h

     文件      15292  2000-04-03 08:09  QICQ\Img_ListView1\GfxPopupMenu.cpp

     文件       1750  1998-07-03 22:28  QICQ\Img_ListView1\GfxPopupMenu.h

     文件      10782  2000-04-03 08:09  QICQ\Img_ListView1\GfxSplitterWnd.cpp

     文件       1115  1998-07-06 12:02  QICQ\Img_ListView1\GfxSplitterWnd.h

     文件      68196  2010-11-09 20:28  QICQ\Img_ListView1\Img_ListView1.aps

     文件       5657  2014-01-02 20:12  QICQ\Img_ListView1\Img_ListView1.clw

     文件       5818  2003-05-16 10:23  QICQ\Img_ListView1\Img_ListView1.cpp

     文件       9240  2000-05-09 16:36  QICQ\Img_ListView1\Img_ListView1.dsp

     文件        651  2001-10-07 10:03  QICQ\Img_ListView1\Img_ListView1.dsw

     文件       1433  2000-04-03 08:26  QICQ\Img_ListView1\Img_ListView1.h

     文件     443392  2014-01-02 20:12  QICQ\Img_ListView1\Img_ListView1.ncb

     文件      82944  2014-01-02 20:12  QICQ\Img_ListView1\Img_ListView1.opt

     文件       5572  2014-01-02 18:47  QICQ\Img_ListView1\Img_ListView1.plg

............此处省略110个文件信息

评论

共有 条评论