?? test.cpp
字號(hào):
// Test.cpp : 定義應(yīng)用程序的類行為。
//
#include "stdafx.h"
#include "Test.h"
#include "MainFrm.h"
#include "TestDoc.h"
#include "TestView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CTestApp
BEGIN_MESSAGE_MAP(CTestApp, CWinApp)
ON_COMMAND(ID_APP_ABOUT, OnAppAbout)
// 基于文件的標(biāo)準(zhǔn)文檔命令
ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew)
ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen)
// 標(biāo)準(zhǔn)打印設(shè)置命令
ON_COMMAND(ID_FILE_PRINT_SETUP, CWinApp::OnFilePrintSetup)
END_MESSAGE_MAP()
// CTestApp 構(gòu)造
CTestApp::CTestApp()
{
// TODO: 在此處添加構(gòu)造代碼,
// 將所有重要的初始化放置在 InitInstance 中
}
// 唯一的一個(gè) CTestApp 對(duì)象
CTestApp theApp;
HANDLE hMapping;
// CTestApp 初始化
BOOL CTestApp::InitInstance()
{
//創(chuàng)建內(nèi)存映像對(duì)象
hMapping=CreateFileMapping((HANDLE)0xFFFFFFFF,NULL,PAGE_READWRITE,0,0x100,"MYSHARE");
if(hMapping==NULL)
{
AfxMessageBox("CreateFileMapping()調(diào)用失敗!");
return FALSE;
}
CString StrInfo;
LPSTR lpData;
//讀內(nèi)存文件
lpData=(LPSTR)MapViewOfFile(hMapping,FILE_MAP_ALL_ACCESS,0,0,0);
StrInfo.Format("%s",lpData);
if(StrInfo.Find("ProgramRunning",0)>=0)
{
AfxMessageBox("程序已經(jīng)運(yùn)行!");
UnmapViewOfFile(lpData);
return FALSE;
}
else
{
lpData=(LPSTR)MapViewOfFile(hMapping,FILE_MAP_ALL_ACCESS,0,0,0);
//給這段映像內(nèi)存寫數(shù)據(jù)
sprintf(lpData,"ProgramRunning");
//釋放映像內(nèi)存
UnmapViewOfFile(lpData);
}
// 如果一個(gè)運(yùn)行在 Windows XP 上的應(yīng)用程序清單指定要
// 使用 ComCtl32.dll 版本 6 或更高版本來啟用可視化方式,
//則需要 InitCommonControls()。否則,將無法創(chuàng)建窗口。
InitCommonControls();
CWinApp::InitInstance();
// 初始化 OLE 庫
if (!AfxOleInit())
{
AfxMessageBox(IDP_OLE_INIT_FAILED);
return FALSE;
}
AfxEnableControlContainer();
// 標(biāo)準(zhǔn)初始化
// 如果未使用這些功能并希望減小
// 最終可執(zhí)行文件的大小,則應(yīng)移除下列
// 不需要的特定初始化例程
// 更改用于存儲(chǔ)設(shè)置的注冊(cè)表項(xiàng)
// TODO: 應(yīng)適當(dāng)修改該字符串,
// 例如修改為公司或組織名
SetRegistryKey(_T("應(yīng)用程序向?qū)傻谋镜貞?yīng)用程序"));
LoadStdProfileSettings(4); // 加載標(biāo)準(zhǔn) INI 文件選項(xiàng)(包括 MRU)
// 注冊(cè)應(yīng)用程序的文檔模板。文檔模板
// 將用作文檔、框架窗口和視圖之間的連接
CSingleDocTemplate* pDocTemplate;
pDocTemplate = new CSingleDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(CTestDoc),
RUNTIME_CLASS(CMainFrame), // 主 SDI 框架窗口
RUNTIME_CLASS(CTestView));
AddDocTemplate(pDocTemplate);
// 分析標(biāo)準(zhǔn)外殼命令、DDE、打開文件操作的命令行
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
// 調(diào)度在命令行中指定的命令。如果
// 用 /RegServer、/Register、/Unregserver 或 /Unregister 啟動(dòng)應(yīng)用程序,則返回 FALSE。
if (!ProcessShellCommand(cmdInfo))
return FALSE;
// 唯一的一個(gè)窗口已初始化,因此顯示它并對(duì)其進(jìn)行更新
m_pMainWnd->ShowWindow(SW_SHOW);
m_pMainWnd->UpdateWindow();
// 僅當(dāng)存在后綴時(shí)才調(diào)用 DragAcceptFiles,
// 在 SDI 應(yīng)用程序中,這應(yīng)在 ProcessShellCommand 之后發(fā)生
return TRUE;
}
// 用于應(yīng)用程序“關(guān)于”菜單項(xiàng)的 CAboutDlg 對(duì)話框
class CAboutDlg : public CDialog
{
public:
CAboutDlg();
// 對(duì)話框數(shù)據(jù)
enum { IDD = IDD_ABOUTBOX };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
// 實(shí)現(xiàn)
protected:
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
END_MESSAGE_MAP()
// 用于運(yùn)行對(duì)話框的應(yīng)用程序命令
void CTestApp::OnAppAbout()
{
CAboutDlg aboutDlg;
aboutDlg.DoModal();
}
// CTestApp 消息處理程序
int CTestApp::ExitInstance()
{
if(hMapping!=NULL)
::ReleaseMutex(hMapping);
return CWinApp::ExitInstance();
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -