QuakeGod
2023-10-20 0200a36062386b937567265e3ea01f93eaa8f1f5
提交 | 用户 | age
418cb3 1 
Q 2 // LCDDisplay.cpp: 定义应用程序的类行为。
3 //
4
5 #include "pch.h"
6 #include "framework.h"
7 #include "LCDDisplayTest.h"
8 #include "LCDDisplayTestDlg.h"
9
10 #ifdef _DEBUG
11 #define new DEBUG_NEW
12 #endif
13
14 #pragma comment(lib,"gdiplus.lib")
15
16 // CLCDDisplayTestApp
17
18 BEGIN_MESSAGE_MAP(CLCDDisplayTestApp, CWinApp)
19     ON_COMMAND(ID_HELP, &CWinApp::OnHelp)
20 END_MESSAGE_MAP()
21
22
23 // CLCDDisplayTestApp 构造
24
25 CLCDDisplayTestApp::CLCDDisplayTestApp()
26 {
27     // 支持重新启动管理器
28     m_dwRestartManagerSupportFlags = AFX_RESTART_MANAGER_SUPPORT_RESTART;
29
30     // TODO: 在此处添加构造代码,
31     // 将所有重要的初始化放置在 InitInstance 中
32 }
33
34
35 // 唯一的 CLCDDisplayTestApp 对象
36
37 CLCDDisplayTestApp theApp;
38
39
40 // CLCDDisplayTestApp 初始化
41
42 BOOL CLCDDisplayTestApp::InitInstance()
43 {
44     // 如果一个运行在 Windows XP 上的应用程序清单指定要
45     // 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式,
46     //则需要 InitCommonControlsEx()。  否则,将无法创建窗口。
47     INITCOMMONCONTROLSEX InitCtrls;
48     InitCtrls.dwSize = sizeof(InitCtrls);
49     // 将它设置为包括所有要在应用程序中使用的
50     // 公共控件类。
51     InitCtrls.dwICC = ICC_WIN95_CLASSES;
52     InitCommonControlsEx(&InitCtrls);
53
54     CWinApp::InitInstance();
55
56     Gdiplus::GdiplusStartupInput gdiplusStartupInput;
57     Gdiplus::GdiplusStartup(&m_gdiplusToken, &gdiplusStartupInput, NULL);
58
59     AfxEnableControlContainer();
60
61     // 创建 shell 管理器,以防对话框包含
62     // 任何 shell 树视图控件或 shell 列表视图控件。
63     CShellManager *pShellManager = new CShellManager;
64
65     // 激活“Windows Native”视觉管理器,以便在 MFC 控件中启用主题
66     CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerWindows));
67
68     // 标准初始化
69     // 如果未使用这些功能并希望减小
70     // 最终可执行文件的大小,则应移除下列
71     // 不需要的特定初始化例程
72     // 更改用于存储设置的注册表项
73     // TODO: 应适当修改该字符串,
74     // 例如修改为公司或组织名
75     SetRegistryKey(_T("应用程序向导生成的本地应用程序"));
76
77     CLCDDisplayTestDlg dlg;
78     m_pMainWnd = &dlg;
79     INT_PTR nResponse = dlg.DoModal();
80     if (nResponse == IDOK)
81     {
82         // TODO: 在此放置处理何时用
83         //  “确定”来关闭对话框的代码
84     }
85     else if (nResponse == IDCANCEL)
86     {
87         // TODO: 在此放置处理何时用
88         //  “取消”来关闭对话框的代码
89     }
90     else if (nResponse == -1)
91     {
92         TRACE(traceAppMsg, 0, "警告: 对话框创建失败,应用程序将意外终止。\n");
93         TRACE(traceAppMsg, 0, "警告: 如果您在对话框上使用 MFC 控件,则无法 #define _AFX_NO_MFC_CONTROLS_IN_DIALOGS。\n");
94     }
95
96     // 删除上面创建的 shell 管理器。
97     if (pShellManager != nullptr)
98     {
99         delete pShellManager;
100     }
101
102 #if !defined(_AFXDLL) && !defined(_AFX_NO_MFC_CONTROLS_IN_DIALOGS)
103     ControlBarCleanUp();
104 #endif
105
106     // 由于对话框已关闭,所以将返回 FALSE 以便退出应用程序,
107     //  而不是启动应用程序的消息泵。
108     return FALSE;
109 }
110
111
112
113 int CLCDDisplayTestApp::ExitInstance()
114 {
115     // TODO: 在此添加专用代码和/或调用基类
116     Gdiplus::GdiplusShutdown(m_gdiplusToken);
117     return CWinApp::ExitInstance();
118 }