GM客户端
字子昂
这个作者很懒,什么都没留下…
展开
-
单击listCtrl消息函数
映射NM_CLICK消息void CAppDlg::OnNMClickList(NMHDR *pNMHDR,LRESULT *pResult){int temp = m_list.GetItemCount();int m_nIndex;m_nIndex = m_list.GetSelectionMark(); //当前选择的行if(原创 2014-03-13 18:06:10 · 1769 阅读 · 0 评论 -
handler_hash.h
#ifndef __HANDLER_HASH_H#define __HANDLER_HASH_H#includeusing namespace std;templateclass HandlerHash{ public: HandlerHash() {} ~HandlerHash() {} public: in原创 2014-03-17 20:30:35 · 423 阅读 · 0 评论 -
函数具体的实现 client_c2s.cpp
#include#include#include#include"client_protocol.h"#include"client_message.h"#include"error.h"#include"client_c2s.h"#include"GMToolDlg.h"#include"DialogLogin.h"//static CPacket原创 2014-03-19 14:55:39 · 788 阅读 · 0 评论 -
函数具体的实现 client_c2s.h
#ifndef __CLIENT_C2S_H#define __CLIENT_C2S_H#include "server_packet.h"#include"packet_push.h"#include"packet_pop.h"#includeclass ClientC2S{public:static int Handler_X2C_USER_原创 2014-03-19 14:38:37 · 852 阅读 · 0 评论 -
根据关键字指派到不同的处理函数 client_packet_dispatcher.cpp
#include#include#include"client_c2s.h"#include"client_protocol.h"#include"client_packet_dispatcher.h"CClientPacketDispatcher::CClientPacketDispatcher(){Init();}CCli原创 2014-03-17 20:52:49 · 432 阅读 · 0 评论 -
回调函数的使用
执行某个类的某个函数时,回调另外一个类的同名函数,方法如下:1、typedef void (CALLBACK* ONDISCONNECT)(CWnd*) //定义连接断开事件 class class1 { public: ONDISCONNECT OnDisConnect; //原创 2014-02-24 16:02:08 · 603 阅读 · 0 评论 -
入口 OnReadMessage
LRESULT CGMToolDlg::OnReadMessage(WPARAM wParam,LPARAM lParam){int err;/*static link_struct *pLinkHead = NULL;static int state = 0; static int pblen =0;int nReceive = 0;char buf[原创 2014-03-10 15:56:20 · 910 阅读 · 0 评论 -
根据关键字指派到不同的处理函数 client_packet_dispatcher.h
//客户端数据包处理接口哈希表#ifndef __CLIENT_PACKET_DISPATCHER_H#define __CLIENT_PACKET_DISPATCHER_H#include "handler_hash.h"#include"client_packet.h"//数据包处理接口typedef int (*CLIENT_PACKET_HANDL原创 2014-03-17 20:42:32 · 409 阅读 · 0 评论 -
解析包的关键字 获得handler 映射到具体的实现函数 client_packet.h
//处理客户端发送的数据包#ifndef __CLIENT_PACKET_H#define __CLIENT_PACKET_H#include "packet.h"#include typedef struct net_packet CLIENT_PACKET; //客户端数据包原创 2014-03-17 21:07:03 · 880 阅读 · 0 评论 -
定时器用法
1、添加消息 WM_TIMER2、给不同的定时器 define 不同的ID3、SetTimer(定时器ID,1000,NULL); //1000代表一秒4、OnTimer(UINT_PTR nIDEvent) {static int nTime = 0;if(nIDEvent == 定时器ID) {}nTime++;CDialog::On原创 2014-04-04 10:35:18 · 499 阅读 · 0 评论 -
MFC限制编辑框只能输入数字
BOOL CGMToolDlg::PreTranslateMessage(MSG* pMsg){if(原创 2014-04-04 10:49:06 · 2649 阅读 · 0 评论 -
操作记录类 CRecord
//操作记录类 record.h#ifndef __RECORD_H#define __RECORD_H#include"packet.h"class CRecord{ public:CRecord();~CRecord(); public:void Init(char* pID);void Push(char* pBu原创 2014-04-04 11:10:35 · 1014 阅读 · 0 评论 -
数据包加密和解密
加密:void EncodePacket(char *buff,size_t size){原创 2014-04-04 14:01:04 · 4005 阅读 · 0 评论 -
packetpush
int ::PushChar(char c){int len = sizeof(c); if(m_buff == NULL) { return -1; } if(m_offset + len > m_buff_size) { return -1; } m原创 2014-01-23 13:59:28 · 685 阅读 · 0 评论 -
根据deque创建链表
link_struct* CreatLinkFromDeq(dequeDeq){if(RecvDeq.size()>=8){char pacLen[4] = {RecvDeq[4],RecvDeq[5],RecvDeq[6],RecvDeq[7]};int nPacLen = *(int*)(pacLen)+8;int nPacLenBackup = nPacLen;原创 2014-03-19 11:31:40 · 746 阅读 · 0 评论 -
客户端测试程序
char g_write_buff[MAX_PACKET_SIZE] = {0};char g_read_buff[MAX_PACKET_SIZE] = {0};int g_write_len = 0;int g_read_offset = 0;static MyHandler s_handler;SOCKET my_sockfd;void Enco原创 2014-03-07 18:33:19 · 630 阅读 · 0 评论 -
一接收数据将其存入deque里
全局变量 dequeRecvDeq;dequeAppendDeq(CTCPClient_CE *pTCPClient){char recvBuf[MAX_BUFF_SIZE];ZeroMemory(recvBuf,sizeof(char)*MAX_BUFF_SIZE);int nRecv =0; //Sleep(200);原创 2014-03-19 10:26:43 · 738 阅读 · 0 评论 -
日期控件的使用
控件变量:CDateTimeCtrl m_BeginTime,CDateTimeCtrl m_EndTime;m_BeginTime.SetFormat("yyyy-MM-dd HH:mm:ss");m_EndTime.SetFormat("yyyy-MM-dd HH:mm:ss");//得到字符串时间CTime ctBeginTime,ctEndTime;原创 2014-03-13 18:23:22 · 302 阅读 · 0 评论 -
编辑框若无内容失焦点时呈灰色 显示提示,获取焦点提示消失,文字显示蓝色
1、对话框初始化时,设置提示内容。 CEdit *pEdit = (CEdit*)GetDlgItem(IDC_EDIT_ID); pEdit ->SetWindowText(_T("角色帐号")); CComboBox *pComboBox = (CComboBox *)GetDlgItem(IDC_COMBO_SERVER); p原创 2014-03-10 12:32:12 · 2693 阅读 · 1 评论 -
packet_pop.cpp
#include"error.h"#include"packet_pop.h"CPacketPop(char *src_data,int len){Init(src_data,len);}CPacketPop(){}~CPacketPop(){}void CPacketPop::Init(char *src_data,in原创 2014-01-23 22:39:06 · 704 阅读 · 0 评论 -
单击列表中某一项,判断其状态
映射NM_CLICK消息,int nUpdateNoticeID =0;int nNoticeListIndex = -1;bool bIsAbleGetFocus = true;void CClassDlg::OnNMClickListNotice(NMHDR *pNMHDR,LRESULT *pResult){int temp = m_list.GetItemC原创 2014-03-17 12:03:31 · 730 阅读 · 0 评论 -
将用逗号隔开的字符串存入MAP里
mapCstringToIntMap(CString strSource){mapserverIDMap;if(strSource.IsEmpty())return serverIDMap;int nFind = -1,nIndex = 0;nFind = strSource.Find(',');if(nFindserverIDMap[atoi(strSourc原创 2014-03-17 17:23:42 · 4329 阅读 · 0 评论 -
vC2010应用程序的控件风格与设计时显示一致解决方案
在stdafx.h加上以下这句#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' l转载 2014-03-03 15:35:23 · 994 阅读 · 0 评论 -
packet_pop.h
/* *文件名 packet_pop.h *描述:从数据包的数据体取出数据 */#ifndef _PACKET_POP_H#define _PACKET_POP_Hclass CPacketPop{ public: //@len src_data指向的数据的长度CPacketPop(char *src_d原创 2014-01-23 18:10:30 · 702 阅读 · 0 评论 -
UINT SocketThreadFunc(LPVOID lparam)
UINT SocketThreadFunc(LPVOID lparam){CTCPClient_CE *pTCPClient = NULL;pTCPClient = (CTCPClient_CE *)lparam;fd_set fdRead;int ret; TIMEVAL aTime;aTime.tv_sec =1;aTime.tv_usec =0原创 2014-03-10 20:17:49 · 2012 阅读 · 0 评论 -
MFC 编辑框 限制数字输入
重写虚函数PreTranslateMessage。BOOL CClassDlg::PreTranslateMessage(MSG* pMsg){// TODO: 在此添加专用代码和/或调用基类//屏蔽小数输入框输入其他字符if(pMsg->message == WM_CHAR){ //IDC_UPPER_LIMIT和IDC_LOWER_LIMIT为编辑框IDCEdi原创 2014-03-17 18:20:50 · 3589 阅读 · 0 评论 -
弹出对话框并切换焦点
pWnd1->ShowWindow(SW_HIDE)CDlg2 *dlg = new CDlg2(pWnd1);dlg->pLoginDlg = (CLoginDlg*)pWnd1;dlg->Create(IDD);dlg->ShowWindow(SW_SHOW);dlg->EnableWindow(true);dlg->SetFocus();原创 2014-03-10 10:43:24 · 1302 阅读 · 0 评论 -
限定字符串的最大字节数
if(CStringA(m_str).GetLength()>512)return;原创 2014-03-17 17:58:49 · 868 阅读 · 0 评论 -
CDateTimeCtrl CTime COleDateTime CString 日期时间
控件变量:CDateTimeCtrl m_BeginTime,CDateTimeCtrl m_EndTime;m_BeginTime.SetFormat("yyyy-MM-dd HH:mm:ss");m_EndTime.SetFormat("yyyy-MM-dd HH:mm:ss");//从CDateTimeCtrl、CTime、COleDateTime得到字符串原创 2014-04-01 14:36:42 · 2598 阅读 · 0 评论 -
CreateEvent 创建和使用一个命名的事件对象
1、 HANDLE m_exitThreadEvent = CreateEvent(NULL,FALSE,FALSE,NULL); //创建通讯线程退出事件句柄,第三个参数为FALSE表示初始时无信号2、ResetEvent(m_exitThreadEvent );原创 2014-02-24 15:37:59 · 2854 阅读 · 0 评论 -
MFC listCtrl选中某一项,LIST失去焦点时,该项仍然显示高亮
//消息映射ON_NOTIFY_REFLECT(NM_CUSTIOMDRAW,OnCUstomDraw)void CAppDlg::OnCustomdrawMyList ( NMHDR* pNMHDR, LRESULT* pResult ){NMLVCUSTOMDRAW* pLVCD = reinterpret_cast( pNMHDR ); switch(pLV原创 2014-03-13 17:31:40 · 6525 阅读 · 0 评论 -
链表
1、单向链表(1)创建有关指针,无头节点的单向链表:#include#includestruct LNode{ int data; struct LNode *next;};struct LNode *creat(int n){ int i; struct LNode *head,*原创 2014-02-27 10:45:08 · 825 阅读 · 0 评论