⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ex30a.cpp

📁 《vc++技术内墓》 附带源码
💻 CPP
字号:
// ex30a.cpp : Defines the class behaviors for the application.//#include "stdafx.h"#include "ex30a.h"#include "MainFrm.h"#include "ex30aDoc.h"#include "ex30aView.h"#include "utility.h"#include "blocksock.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endifextern CBlockingSocket g_sListen;/////////////////////////////////////////////////////////////////////////////// CEx30aAppBEGIN_MESSAGE_MAP(CEx30aApp, CWinApp)	//{{AFX_MSG_MAP(CEx30aApp)	ON_COMMAND(ID_APP_ABOUT, OnAppAbout)		// NOTE - the ClassWizard will add and remove mapping macros here.		//    DO NOT EDIT what you see in these blocks of generated code!	//}}AFX_MSG_MAP	// Standard file based document commands	ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew)	ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen)	// Standard print setup command	ON_COMMAND(ID_FILE_PRINT_SETUP, CWinApp::OnFilePrintSetup)END_MESSAGE_MAP()/////////////////////////////////////////////////////////////////////////////// CEx30aApp constructionCEx30aApp::CEx30aApp(){	// TODO: add construction code here,	// Place all significant initialization in InitInstance}/////////////////////////////////////////////////////////////////////////////// The one and only CEx30aApp objectCEx30aApp theApp;/////////////////////////////////////////////////////////////////////////////// CEx30aApp initializationBOOL CEx30aApp::InitInstance(){	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	// Change the registry key under which our settings are stored.	// You should modify this string to be something appropriate	// such as the name of your company or organization.	SetRegistryKey(_T("Local AppWizard-Generated Applications"));	LoadStdProfileSettings();  // Load standard INI file options (including MRU)	// Register the application's document templates.  Document templates	//  serve as the connection between documents, frame windows and views.	CSingleDocTemplate* pDocTemplate;	pDocTemplate = new CSingleDocTemplate(		IDR_MAINFRAME,		RUNTIME_CLASS(CEx30aDoc),		RUNTIME_CLASS(CMainFrame),       // main SDI frame window		RUNTIME_CLASS(CEx30aView));	AddDocTemplate(pDocTemplate);	// Enable DDE Execute open	EnableShellOpen();	RegisterShellFileTypes(TRUE);	// Parse command line for standard shell commands, DDE, file open	CCommandLineInfo cmdInfo;	ParseCommandLine(cmdInfo);	// Dispatch commands specified on the command line	if (!ProcessShellCommand(cmdInfo))	return FALSE;	// socket initialization	WSADATA wsd;	VERIFY(WSAStartup(0x0101, &wsd) == 0);	TRACE("WSAStartup -- min version = %x\n", wsd.wVersion);	g_hMainWnd = m_pMainWnd->m_hWnd;	return TRUE;}int CEx30aApp::ExitInstance() {	try {		if(g_bListening) {				g_sListen.Close();			Sleep(300); // wait for thread to exit		}		VERIFY(WSACleanup() != SOCKET_ERROR);	}	catch(CUserException* e) {		TRACE("exception in CSock01App::ExitInstance\n");		e->Delete();	}	return CWinApp::ExitInstance();}/////////////////////////////////////////////////////////////////////////////// CAboutDlg dialog used for App Aboutclass CAboutDlg : public CDialog{public:	CAboutDlg();// Dialog Data	//{{AFX_DATA(CAboutDlg)	enum { IDD = IDD_ABOUTBOX };	//}}AFX_DATA	// ClassWizard generated virtual function overrides	//{{AFX_VIRTUAL(CAboutDlg)	protected:	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support	//}}AFX_VIRTUAL// Implementationprotected:	//{{AFX_MSG(CAboutDlg)		// No message handlers	//}}AFX_MSG	DECLARE_MESSAGE_MAP()};CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD){	//{{AFX_DATA_INIT(CAboutDlg)	//}}AFX_DATA_INIT}void CAboutDlg::DoDataExchange(CDataExchange* pDX){	CDialog::DoDataExchange(pDX);	//{{AFX_DATA_MAP(CAboutDlg)	//}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)	//{{AFX_MSG_MAP(CAboutDlg)		// No message handlers	//}}AFX_MSG_MAPEND_MESSAGE_MAP()// App command to run the dialogvoid CEx30aApp::OnAppAbout(){	CAboutDlg aboutDlg;	aboutDlg.DoModal();}/////////////////////////////////////////////////////////////////////////////// CEx30aApp commandsBOOL CEx30aApp::OnIdle(LONG lCount) {	CStatusBar* pStatus = &((CMainFrame*) m_pMainWnd)->m_wndStatusBar;	g_csStatus.Lock(); // blocking call in main thread -- could be dangerous	  pStatus->SetPaneText(1, g_pchStatus);	g_csStatus.Unlock();	return CWinApp::OnIdle(lCount);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -