vc++qqWord格式文档下载.docx
《vc++qqWord格式文档下载.docx》由会员分享,可在线阅读,更多相关《vc++qqWord格式文档下载.docx(17页珍藏版)》请在冰豆网上搜索。
}
voidCAboutDlg:
DoDataExchange(CDataExchange*pDX)
CDialog:
DoDataExchange(pDX);
BEGIN_MESSAGE_MAP(CAboutDlg,CDialog)
END_MESSAGE_MAP()
//CMyQQDlg对话框
CMyQQDlg:
CMyQQDlg(CWnd*pParent/*=NULL*/)
:
CDialog(CMyQQDlg:
IDD,pParent)
m_client_name(_T("
"
))
m_server_name(_T("
localhost"
m_nport(800)
m_send_info(_T("
m_systemTime(_T("
m_talk(FALSE)
count(0)
m_hIcon=AfxGetApp()->
LoadIcon(IDR_MAINFRAME);
voidCMyQQDlg:
DDX_Text(pDX,IDC_CLIENT_NAME,m_client_name);
DDV_MaxChars(pDX,m_client_name,20);
DDX_Text(pDX,IDC_SERVER_NAME,m_server_name);
DDV_MaxChars(pDX,m_server_name,30);
DDX_Text(pDX,IDC_SERVER_PORT,m_nport);
DDV_MinMaxInt(pDX,m_nport,0,1024);
DDX_Control(pDX,IDC_RECEIVED_INFO,m_ctlRecvd);
DDX_Text(pDX,IDC_SEND_INFO,m_send_info);
DDV_MaxChars(pDX,m_send_info,500);
DDX_Control(pDX,IDC_LIST_NAME,m_ctlName);
DDX_Text(pDX,IDC_EDIT_TIME,m_systemTime);
DDV_MaxChars(pDX,m_systemTime,100);
DDX_Check(pDX,IDC_CHECK1,m_talk);
BEGIN_MESSAGE_MAP(CMyQQDlg,CDialog)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
//}}AFX_MSG_MAP
ON_BN_CLICKED(IDC_CONNECT,&
OnBnClickedConnect)
ON_BN_CLICKED(IDC_CLOSE,&
OnBnClickedClose)
ON_BN_CLICKED(IDC_SEND,&
OnBnClickedSend)
ON_MESSAGE(RE_RECEIVED,OnMyReceive)
ON_WM_TIMER()
ON_BN_CLICKED(IDC_CHECK1,&
OnBnClickedCheck1)
//CMyQQDlg消息处理程序
BOOLCMyQQDlg:
OnInitDialog()
OnInitDialog();
//将“关于...”菜单项添加到系统菜单中。
//IDM_ABOUTBOX必须在系统命令范围内。
ASSERT((IDM_ABOUTBOX&
0xFFF0)==IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX<
0xF000);
CMenu*pSysMenu=GetSystemMenu(FALSE);
if(pSysMenu!
=NULL)
{
CStringstrAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if(!
strAboutMenu.IsEmpty())
{
pSysMenu->
AppendMenu(MF_SEPARATOR);
AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu);
}
}
//设置此对话框的图标。
当应用程序主窗口不是对话框时,框架将自动
//执行此操作
SetIcon(m_hIcon,TRUE);
//设置大图标
SetIcon(m_hIcon,FALSE);
//设置小图标
//TODO:
在此添加额外的初始化代码
m_ctlName.InsertString(0,"
所有人"
);
m_ctlName.SetCurSel(0);
UpdateData(false);
SetTimer(1,1000,NULL);
GetDlgItem(IDC_CONNECT)->
EnableWindow(true);
GetDlgItem(IDC_SEND)->
GetDlgItem(IDC_CLOSE)->
EnableWindow(false);
GetDlgItem(IDC_SERVER_PORT)->
GetDlgItem(IDC_CLIENT_NAME)->
GetDlgItem(IDC_SERVER_NAME)->
GetDlgItem(IDC_LIST_NAME)->
returnTRUE;
//除非将焦点设置到控件,否则返回TRUE
OnSysCommand(UINTnID,LPARAMlParam)
if((nID&
0xFFF0)==IDM_ABOUTBOX)
CAboutDlgdlgAbout;
dlgAbout.DoModal();
else
CDialog:
OnSysCommand(nID,lParam);
//如果向对话框添加最小化按钮,则需要下面的代码
//来绘制该图标。
对于使用文档/视图模型的MFC应用程序,
//这将由框架自动完成。
OnPaint()
if(IsIconic())
CPaintDCdc(this);
//用于绘制的设备上下文
SendMessage(WM_ICONERASEBKGND,reinterpret_cast<
WPARAM>
(dc.GetSafeHdc()),0);
//使图标在工作矩形中居中
intcxIcon=GetSystemMetrics(SM_CXICON);
intcyIcon=GetSystemMetrics(SM_CYICON);
CRectrect;
GetClientRect(&
rect);
intx=(rect.Width()-cxIcon+1)/2;
inty=(rect.Height()-cyIcon+1)/2;
//绘制图标
dc.DrawIcon(x,y,m_hIcon);
OnPaint();
//当用户拖动最小化窗口时系统调用此函数取得光标显示。
HCURSORCMyQQDlg:
OnQueryDragIcon()
returnstatic_cast<
HCURSOR>
(m_hIcon);
OnBnClickedConnect()
在此添加控件通知处理程序代码
UpdateData(true);
CStringcName=m_client_name;
if(!
cName.Compare("
:
AfxMessageBox("
Client'
snamecannotbenull"
return;
sockClient.Create())
AfxMessageBox(_T("
CreateQQsocketfailed"
));
sockClient.Connect(m_server_name,m_nport))
if(sockClient!
=NULL)
sockClient.Close();
MessageBox(_T("
连接失败"
MessageBox(_T("
连接成功"
memset(m_Dat.m_type,0,255);
memset(m_Dat.m_strName,0,255);
memcpy(m_Dat.m_type,"
CONNECTION"
sizeof("
memcpy(m_Dat.m_strName,m_client_name,m_client_name.GetLength());
sockClient.Send(&
m_Dat,sizeof(m_Dat));
OnBnClickedClose()
CLOSE"
sockClient.Close();
exit(0);
OnBnClickedSend()
CStringtalkingName;
m_ctlName.GetText(m_ctlName.GetCurSel(),talkingName);
if(talkingName!
="
)
memset(m_Dat.m_type,0,255);
memcpy(m_Dat.m_type,"
PRIVATE"
memset(m_Dat.m_talkingName,0,255);
memcpy(m_Dat.m_talkingName,talkingName,talkingName.GetLength());
{memset(m_Dat.m_type,0,255);
MSG"
memset(m_Dat.m_dbData,0,255);
memcpy(&
m_Dat.m_dbData,m_send_info,m_send_info.GetLength());
memset(m_Dat.m_strName,0,255);
memcpy(m_Dat.m_strName,m_client_name,m_client_name.GetLength());
intiSent=sockClient.Send(&
if(iSent!
=SOCKET_ERROR)
m_ctlRecvd.AddString(m_client_name+_T("
说:
("
)+m_systemTime+_T("
)"
m_ctlRecvd.AddString(_T("
"
)+m_send_info);
m_send_info="
;
UpdateData(false);
LRESULTCMyQQDlg:
OnMyReceive(WPARAMwparam,LPARAMlparam)
{_DATA*dat;
dat=new_DATA;
memcpy(dat,(_DATA*)wparam,sizeof(_DATA));
CStringtype=(CString)dat->
m_type;
CStringname=(CString)dat->
m_strName;
type.Compare(_T("
CLIENT"
)))
{m_ctlName.InsertString(count,name);
count++;
elseif(!
{inti=1;
CStringcloseName;
m_ctlName.GetText(i,closeName);
while
(1)
{if(!
name.Compare(closeName))
{m_ctlName.DeleteString(i);
count--;
break;
}
if(closeName=="
i++;
m_ctlName.GetText(i,closeName);
{CStringstr1=name;
str1+=_T("
对你说:
m_ctlRecvd.AddString(str1);
str1=_T("
str1+=dat->
m_dbData;
else
{CStringstr=(CString)dat->
str+=_T("
m_ctlRecvd.AddString(str);
str=_T("
str+=dat->
UpdateData(false);
deletedat;
return1;
OnTimer(UINT_PTRnIDEvent)
在此添加消息处理程序代码和/或调用默认值
CTimesTime=CTime:
GetCurrentTime();
CStringsTimeSting=sTime.Format("
%H:
%M:
%S"
m_systemTime=sTimeSting;
OnTimer(nIDEvent);
OnBnClickedCheck1()
if(m_talk==false)
{GetDlgItem(IDC_LIST_NAME)->
m_ctlName.SetCurSel(0);
//MyServerDlg.cpp:
MyServer.h"
MyServerDlg.h"
LSock.h"
//CMyServerDlg对话框
CMyServerDlg:
CMyServerDlg(CWnd*pParent/*=NULL*/)
CDialog(CMyServerDlg:
m_server_port(800)
m_clientSocket=NULL;
m_listenSocket=NULL;
voidCMyServerDlg:
DDX_Text(pDX,IDC_SERVER_PORT,m_server_port);
DDX_Control(pDX,IDC_SERVER_INFO,m_ctlRecvd);
DDX_Control(pDX,IDC_LIST_INLINE,m_inline);
BEGIN_MESSAGE_MAP(CMyServerDlg,CDialog)
ON_BN_CLICKED(IDC_START,&
OnBnClickedStart)
ON_LBN_SELCHANGE(IDC_SERVER_INFO,&
OnLbnSelchangeServerInfo)
//CMyServerDlg消息处理程序
BOOLCMyServerDlg:
GetDlgItem(IDC_START)->
GetDlgItem(IDC_SERVE