gusucode.com > 基于VC++的局域网视频聊天系统源码程序 > 基于VC++的局域网视频聊天系统源码程序/code/ChatClient/ChatClient.cpp
// ChatClient.cpp : Defines the class behaviors for the application. // #include "stdafx.h" #include "ChatClient.h" #include "ChatClientDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CChatClientApp BEGIN_MESSAGE_MAP(CChatClientApp, CWinApp) //{{AFX_MSG_MAP(CChatClientApp) // NOTE - the ClassWizard will add and remove mapping macros here. // DO NOT EDIT what you see in these blocks of generated code! //}}AFX_MSG ON_COMMAND(ID_HELP, CWinApp::OnHelp) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CChatClientApp construction CChatClientApp::CChatClientApp() { // TODO: add construction code here, // Place all significant initialization in InitInstance } ///////////////////////////////////////////////////////////////////////////// // The one and only CChatClientApp object CChatClientApp theApp; WSADATA wsaData; CString g_szPropName = "视频会议"; //自己定义一个属性名 HANDLE g_hValue = (HANDLE)1; //自己定义一个属性值 BOOL CALLBACK EnumWndProc(HWND hwnd,LPARAM lParam) { HANDLE h = GetProp(hwnd,g_szPropName); if( h == g_hValue) { *(HWND*)lParam = hwnd; return false; } return true; } ///////////////////////////////////////////////////////////////////////////// // CChatClientApp initialization BOOL CChatClientApp::InitInstance() { HWND oldHWnd = NULL; EnumWindows(EnumWndProc,(LPARAM)&oldHWnd); //枚举所有运行的窗口 if(oldHWnd != NULL) { AfxMessageBox("本程序已经在运行了"); ::ShowWindow(oldHWnd,SW_SHOWNORMAL); //激活找到的前一个程序 ::SetForegroundWindow(oldHWnd); //把它设为前景窗口 return false; //退出本次运行 } if (!AfxSocketInit(&wsaData)) { AfxMessageBox("Windows 通信端口初始化失败。"); return FALSE; } if (!AfxInitRichEdit()) { AfxMessageBox("初始化控件失败!"); return FALSE; } AfxEnableControlContainer(); // Standard initialization // If you are not using these features and wish to reduce the size // of your final executable, you should remove from the following // the specific initialization routines you do not need. #ifdef _AFXDLL Enable3dControls(); // Call this when using MFC in a shared DLL #else Enable3dControlsStatic(); // Call this when linking to MFC statically #endif CChatClientDlg dlg; m_pMainWnd = &dlg; int nResponse = dlg.DoModal(); if (nResponse == IDOK) { // TODO: Place code here to handle when the dialog is // dismissed with OK } else if (nResponse == IDCANCEL) { // TODO: Place code here to handle when the dialog is // dismissed with Cancel } // Since the dialog has been closed, return FALSE so that we exit the // application, rather than start the application's message pump. return FALSE; }