202B105
@ -1 +0,0 @@
|
||||
Build2553 - 5RC2
|
||||
@ -1,104 +0,0 @@
|
||||
// DigHelp.cpp: 实现文件
|
||||
//
|
||||
|
||||
#include "pch.h"
|
||||
#include "menu2.h"
|
||||
#include "DigHelp.h"
|
||||
#include "afxdialogex.h"
|
||||
|
||||
|
||||
// DigHelp 对话框
|
||||
|
||||
IMPLEMENT_DYNAMIC(DigHelp, CDialogEx)
|
||||
|
||||
DigHelp::DigHelp(CWnd* pParent /*=nullptr*/)
|
||||
: CDialogEx(IDD_DIALOG1, pParent)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
DigHelp::~DigHelp()
|
||||
{
|
||||
}
|
||||
|
||||
void DigHelp::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialogEx::DoDataExchange(pDX);
|
||||
DDX_Control(pDX, IDC_STATIC1, m_text1);
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(DigHelp, CDialogEx)
|
||||
ON_BN_CLICKED(IDOK, &DigHelp::OnBnClickedOk)
|
||||
ON_BN_CLICKED(IDCANCEL, &DigHelp::OnBnClickedCancel)
|
||||
ON_BN_CLICKED(IDC_BUTTON1, &DigHelp::OnBnClickedButton1)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
// DigHelp 消息处理程序
|
||||
|
||||
|
||||
void DigHelp::OnBnClickedOk()
|
||||
{
|
||||
// TODO: 在此添加控件通知处理程序代码
|
||||
CDialogEx::OnOK();
|
||||
}
|
||||
|
||||
|
||||
void DigHelp::OnBnClickedCancel()
|
||||
{
|
||||
// TODO: 在此添加控件通知处理程序代码
|
||||
CDialogEx::OnCancel();
|
||||
}
|
||||
|
||||
int beforeNum = 0;
|
||||
TCHAR lpPath_[255] = { 0 };
|
||||
void DigHelp::OnBnClickedButton1()
|
||||
{
|
||||
// TODO: 在此添加控件通知处理程序代码
|
||||
int maxInfo = GetPrivateProfileInt(L"sug", L"maxInfo", -1, lpPath_);
|
||||
TCHAR currentInfo[255] = { 0 };
|
||||
srand(time(0));
|
||||
int curNum = 0;
|
||||
do {
|
||||
curNum = rand() % maxInfo; // 生成随机数
|
||||
} while (curNum==beforeNum);
|
||||
beforeNum = curNum;
|
||||
TCHAR currentID[255] = { 0 };
|
||||
wsprintf(currentID, L"%d", curNum);
|
||||
GetPrivateProfileString(L"sug", currentID, NULL, currentInfo, 255, lpPath_);
|
||||
m_text1.SetWindowText(currentInfo);
|
||||
}
|
||||
|
||||
|
||||
BOOL DigHelp::OnInitDialog()
|
||||
{
|
||||
CDialogEx::OnInitDialog();
|
||||
|
||||
// TODO: 在此添加额外的初始化
|
||||
ShowWindow(SW_NORMAL);
|
||||
CRect rtDesk;
|
||||
CRect rtDlg;
|
||||
::GetWindowRect(::GetDesktopWindow(), &rtDesk);
|
||||
GetWindowRect(&rtDlg);
|
||||
int iXpos = rtDesk.Width() / 2 - rtDlg.Width() / 2;
|
||||
int iYpos = rtDesk.Height() / 2 - rtDlg.Height() / 2;
|
||||
SetWindowPos(NULL, iXpos, iYpos, 0, 0, SWP_NOOWNERZORDER | SWP_NOSIZE | SWP_NOZORDER);
|
||||
|
||||
|
||||
GetCurrentDirectory(MAX_PATH, lpPath_);
|
||||
wsprintf(lpPath_, L"%s\\menu.enus", lpPath_);
|
||||
|
||||
int maxInfo = GetPrivateProfileInt(L"sug", L"maxInfo", -1, lpPath_);
|
||||
TCHAR currentInfo[255] = { 0 };
|
||||
srand(time(0));
|
||||
int randomNum = rand()%maxInfo; // 生成随机数
|
||||
beforeNum = randomNum;
|
||||
TCHAR currentID[255] = { 0 };
|
||||
wsprintf(currentID, L"%d", randomNum);
|
||||
GetPrivateProfileString(L"sug", currentID, NULL, currentInfo, 255, lpPath_);
|
||||
m_text1.SetWindowText(currentInfo);
|
||||
|
||||
return TRUE; // return TRUE unless you set the focus to a control
|
||||
// 异常: OCX 属性页应返回 FALSE
|
||||
}
|
||||
@ -1,29 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
|
||||
// DigHelp 对话框
|
||||
|
||||
class DigHelp : public CDialogEx
|
||||
{
|
||||
DECLARE_DYNAMIC(DigHelp)
|
||||
|
||||
public:
|
||||
DigHelp(CWnd* pParent = nullptr); // 标准构造函数
|
||||
virtual ~DigHelp();
|
||||
|
||||
// 对话框数据
|
||||
#ifdef AFX_DESIGN_TIME
|
||||
enum { IDD = IDD_DIALOG1 };
|
||||
#endif
|
||||
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
|
||||
|
||||
DECLARE_MESSAGE_MAP()
|
||||
public:
|
||||
afx_msg void OnBnClickedOk();
|
||||
afx_msg void OnBnClickedCancel();
|
||||
afx_msg void OnBnClickedButton1();
|
||||
virtual BOOL OnInitDialog();
|
||||
CStatic m_text1;
|
||||
};
|
||||
@ -1,22 +0,0 @@
|
||||
c:\users\351\documents\visual studio 2017\projects\cec20\menu2\release\menu2.pch
|
||||
c:\users\351\documents\visual studio 2017\projects\cec20\menu2\release\vc141.pdb
|
||||
c:\users\351\documents\visual studio 2017\projects\cec20\menu2\release\pch.obj
|
||||
c:\users\351\documents\visual studio 2017\projects\cec20\menu2\release\menu2dlg.obj
|
||||
c:\users\351\documents\visual studio 2017\projects\cec20\menu2\release\menu2.obj
|
||||
c:\users\351\documents\visual studio 2017\projects\cec20\menu2\release\dighelp.obj
|
||||
c:\users\351\documents\visual studio 2017\projects\cec20\menu2\release\about.obj
|
||||
c:\users\351\documents\visual studio 2017\projects\cec20\release\menu2.exe
|
||||
c:\users\351\documents\visual studio 2017\projects\cec20\release\menu2.pdb
|
||||
c:\users\351\documents\visual studio 2017\projects\cec20\release\menu2.ipdb
|
||||
c:\users\351\documents\visual studio 2017\projects\cec20\release\menu2.iobj
|
||||
c:\users\351\documents\visual studio 2017\projects\cec20\menu2\release\menu2.res
|
||||
c:\users\351\documents\visual studio 2017\projects\cec20\menu2\release\menu2.tlog\cl.command.1.tlog
|
||||
c:\users\351\documents\visual studio 2017\projects\cec20\menu2\release\menu2.tlog\cl.read.1.tlog
|
||||
c:\users\351\documents\visual studio 2017\projects\cec20\menu2\release\menu2.tlog\cl.write.1.tlog
|
||||
c:\users\351\documents\visual studio 2017\projects\cec20\menu2\release\menu2.tlog\link.command.1.tlog
|
||||
c:\users\351\documents\visual studio 2017\projects\cec20\menu2\release\menu2.tlog\link.read.1.tlog
|
||||
c:\users\351\documents\visual studio 2017\projects\cec20\menu2\release\menu2.tlog\link.write.1.tlog
|
||||
c:\users\351\documents\visual studio 2017\projects\cec20\menu2\release\menu2.tlog\menu2.write.1u.tlog
|
||||
c:\users\351\documents\visual studio 2017\projects\cec20\menu2\release\menu2.tlog\rc.command.1.tlog
|
||||
c:\users\351\documents\visual studio 2017\projects\cec20\menu2\release\menu2.tlog\rc.read.1.tlog
|
||||
c:\users\351\documents\visual studio 2017\projects\cec20\menu2\release\menu2.tlog\rc.write.1.tlog
|
||||
@ -1,8 +0,0 @@
|
||||
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Platforms\Win32\PlatformToolsets\v141_xp\Toolset.targets(39,5): warning MSB8051: 面向 Windows XP 的支持已被弃用,将来的 Visual Studio 版本不再提供该支持。请访问 https://go.microsoft.com/fwlink/?linkid=2023588,获取详细信息。
|
||||
menu2Dlg.cpp
|
||||
正在生成代码
|
||||
4 of 264 functions ( 1.5%) were compiled, the rest were copied from previous compilation.
|
||||
0 functions were new in current compilation
|
||||
1 functions had inline decision re-evaluated but remain unchanged
|
||||
已完成代码的生成
|
||||
menu2.vcxproj -> C:\Users\351\Documents\Visual Studio 2017\Projects\cec20\Release\menu2.exe
|
||||
@ -1,2 +0,0 @@
|
||||
#TargetFrameworkVersion=v4.0:PlatformToolSet=v141_xp:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=7.0
|
||||
Release|Win32|C:\Users\351\Documents\Visual Studio 2017\Projects\cec20\|
|
||||
@ -1,118 +0,0 @@
|
||||
// about.cpp: 实现文件
|
||||
//
|
||||
|
||||
#include "pch.h"
|
||||
#include "menu2.h"
|
||||
#include "about.h"
|
||||
#include "afxdialogex.h"
|
||||
|
||||
|
||||
// about 对话框
|
||||
|
||||
IMPLEMENT_DYNAMIC(about, CDialogEx)
|
||||
|
||||
about::about(CWnd* pParent /*=nullptr*/)
|
||||
: CDialogEx(IDD_ABOUT_DIALOG, pParent)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
about::~about()
|
||||
{
|
||||
}
|
||||
|
||||
void about::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialogEx::DoDataExchange(pDX);
|
||||
DDX_Control(pDX, IDC_STATICVER, m_textver);
|
||||
DDX_Control(pDX, IDC_EDIT1, m_edit1);
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(about, CDialogEx)
|
||||
ON_BN_CLICKED(IDOK, &about::OnBnClickedOk)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
// about 消息处理程序
|
||||
|
||||
|
||||
void about::OnBnClickedOk()
|
||||
{
|
||||
// TODO: 在此添加控件通知处理程序代码
|
||||
CDialogEx::OnOK();
|
||||
}
|
||||
|
||||
TCHAR* AsciiToUnicode(char *str)
|
||||
{
|
||||
DWORD dwNum = 0;
|
||||
dwNum = MultiByteToWideChar(CP_ACP, 0, str, -1, NULL, 0);
|
||||
TCHAR* pwHostName = new TCHAR[dwNum];
|
||||
MultiByteToWideChar(CP_ACP, 0, str, -1, pwHostName, dwNum);
|
||||
return pwHostName;
|
||||
}
|
||||
|
||||
TCHAR lpPath__[255] = { 0 };
|
||||
BOOL about::OnInitDialog()
|
||||
{
|
||||
CDialogEx::OnInitDialog();
|
||||
|
||||
// TODO: 在此添加额外的初始化
|
||||
ShowWindow(SW_NORMAL);
|
||||
CRect rtDesk;
|
||||
CRect rtDlg;
|
||||
::GetWindowRect(::GetDesktopWindow(), &rtDesk);
|
||||
GetWindowRect(&rtDlg);
|
||||
int iXpos = rtDesk.Width() / 2 - rtDlg.Width() / 2;
|
||||
int iYpos = rtDesk.Height() / 2 - rtDlg.Height() / 2;
|
||||
SetWindowPos(NULL, iXpos, iYpos, 0, 0, SWP_NOOWNERZORDER | SWP_NOSIZE | SWP_NOZORDER);
|
||||
|
||||
wsprintf(lpPath__, L"..\\CECD0.20");
|
||||
|
||||
HANDLE hFile = CreateFile(
|
||||
lpPath__, // 文件名
|
||||
GENERIC_READ, // 读权限
|
||||
0, // 不共享
|
||||
NULL, // 安全属性
|
||||
OPEN_EXISTING, // 打开已存在的文件
|
||||
FILE_ATTRIBUTE_NORMAL, // 文件属性
|
||||
NULL // 模板文件的句柄
|
||||
);
|
||||
if (hFile == INVALID_HANDLE_VALUE) {
|
||||
MessageBox(L"ERROR");
|
||||
return 1;
|
||||
}
|
||||
// 确定文件大小
|
||||
DWORD dwFileSize = GetFileSize(hFile, NULL);
|
||||
// 分配内存读取文件
|
||||
char buffer[255] = { 0 };
|
||||
DWORD dwRead = 0;
|
||||
// 读取文件内容
|
||||
if (ReadFile(hFile, buffer, dwFileSize, &dwRead, NULL)) {
|
||||
buffer[dwFileSize] = '\0'; // 添加字符串终止符
|
||||
}
|
||||
// 关闭文件句柄
|
||||
CloseHandle(hFile);
|
||||
|
||||
m_textver.SetWindowText(AsciiToUnicode(buffer));
|
||||
|
||||
m_edit1.SetWindowText( L"Developer\r\n"
|
||||
" 351 351Workshop@Bilibili\r\n"
|
||||
"Sponsor\r\n"
|
||||
" IBM IBM_Official@Bilibili\r\n"
|
||||
" Dr.Quest 蓬岸@知乎\r\n"
|
||||
"Image Providing\r\n"
|
||||
" Alexis lucss21a@Discord\r\n"
|
||||
"Artworks\r\n"
|
||||
" WinPad とある科学の手机副屏@Bilibili\r\n"
|
||||
"Guidance and Testing\r\n"
|
||||
" Inter -INTER_INIT-@Bilibili\r\n"
|
||||
" GoldApple 不务正业的金苹果@Bilibili\r\n"
|
||||
" Zesa LinuxMEMZ@Bilibili\r\n"
|
||||
" DZY DZY20070614@Bilibili\r\n");
|
||||
//HWND hWndEdit1 = m_edit1.GetSafeHwnd();
|
||||
//::SendMessage(hWndEdit1, EM_LINESCROLL, 0, 3);
|
||||
|
||||
return TRUE; // return TRUE unless you set the focus to a control
|
||||
// 异常: OCX 属性页应返回 FALSE
|
||||
}
|
||||
@ -1,29 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
|
||||
// about 对话框
|
||||
|
||||
class about : public CDialogEx
|
||||
{
|
||||
DECLARE_DYNAMIC(about)
|
||||
|
||||
public:
|
||||
about(CWnd* pParent = nullptr); // 标准构造函数
|
||||
virtual ~about();
|
||||
|
||||
// 对话框数据
|
||||
#ifdef AFX_DESIGN_TIME
|
||||
enum { IDD = IDD_ABOUT_DIALOG };
|
||||
#endif
|
||||
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
|
||||
|
||||
DECLARE_MESSAGE_MAP()
|
||||
public:
|
||||
afx_msg void OnBnClickedOk();
|
||||
virtual BOOL OnInitDialog();
|
||||
CStatic m_textver;
|
||||
afx_msg void OnStnClicked65535();
|
||||
CEdit m_edit1;
|
||||
};
|
||||
@ -1,133 +0,0 @@
|
||||
// Win9x:
|
||||
//
|
||||
// The CRT now uses several "W" versions of functions which is more practial to require
|
||||
// the use of the Microsoft Layer for Unicode (MSLU) for Windows 9x to implement it. The
|
||||
// unicows.dll (for 9x) should be placed in the program folder with the .exe if using it.
|
||||
// unicows.dll is only loaded on 9x platforms. The way Win9x works without the MSLU is
|
||||
// that several "W" version of functions are located in kernel32.dll but they are just a
|
||||
// stub that returns failure code. To implement the unicode layer (unicows) the unicode.lib
|
||||
// must be linked prior to the other libs that should then linked in after unicode.lib.
|
||||
// The libraries are:
|
||||
//
|
||||
// kernel32.lib advapi32.lib user32.lib gdi32.lib shell32.lib comdlg32.lib
|
||||
// version.lib mpr.lib rasapi32.lib winmm.lib winspool.lib vfw32.lib
|
||||
// secur32.lib oleacc.lib oledlg.lib sensapi.lib
|
||||
//
|
||||
|
||||
|
||||
#include <windows.h>
|
||||
|
||||
// pull items from ntdef.h
|
||||
#define NT_SUCCESS(Status) (((NTSTATUS)(Status)) >= 0)
|
||||
typedef _Return_type_success_(return >= 0) LONG NTSTATUS;
|
||||
|
||||
//
|
||||
// implementation of replacement function for GetModuleHandleExW
|
||||
//
|
||||
extern "C" BOOL WINAPI ImplementGetModuleHandleExW(DWORD dwFlags, LPCWSTR lpModuleName, HMODULE* phModule)
|
||||
{
|
||||
// check flag combinations
|
||||
if (phModule == NULL ||
|
||||
dwFlags & ~(GET_MODULE_HANDLE_EX_FLAG_PIN | GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT | GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS) ||
|
||||
((dwFlags & GET_MODULE_HANDLE_EX_FLAG_PIN) && (dwFlags & GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT)) ||
|
||||
(lpModuleName == NULL && (dwFlags & GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS))) {
|
||||
SetLastError(ERROR_INVALID_PARAMETER);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
// check if to get by address
|
||||
if (dwFlags & GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS) {
|
||||
*phModule = NULL;
|
||||
|
||||
typedef PVOID(NTAPI *LPFN_RtlPcToFileHeader)(PVOID PcValue, PVOID * BaseOfImage);
|
||||
|
||||
const HMODULE hmodkernel32 = GetModuleHandleW(L"kernel32");
|
||||
const LPFN_RtlPcToFileHeader pfnRtlPcToFileHeader = reinterpret_cast<LPFN_RtlPcToFileHeader>(GetProcAddress(hmodkernel32, "RtlPcToFileHeader"));
|
||||
|
||||
if (pfnRtlPcToFileHeader) {
|
||||
// use RTL function (nt4+)
|
||||
pfnRtlPcToFileHeader((PVOID)lpModuleName, (PVOID*)phModule);
|
||||
}
|
||||
else {
|
||||
// query memory directly (win9x)
|
||||
MEMORY_BASIC_INFORMATION mbi;
|
||||
if (VirtualQuery((PVOID)lpModuleName, &mbi, sizeof(mbi)) >= offsetof(MEMORY_BASIC_INFORMATION, AllocationProtect)) {
|
||||
*phModule = reinterpret_cast<HMODULE>(mbi.AllocationBase);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
// standard getmodulehandle - to see if loaded
|
||||
*phModule = GetModuleHandleW(lpModuleName);
|
||||
}
|
||||
|
||||
|
||||
// check if module found
|
||||
if (*phModule == NULL) {
|
||||
SetLastError(ERROR_DLL_NOT_FOUND);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// check if reference needs updating
|
||||
if ((dwFlags & GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT) == 0) {
|
||||
|
||||
typedef NTSTATUS(NTAPI *LPFN_LdrAddRefDll)(ULONG Flags, PVOID BaseAddress);
|
||||
#define LDR_ADDREF_DLL_PIN 0x00000001
|
||||
|
||||
const HMODULE hmodntdll = GetModuleHandleW(L"ntdll");
|
||||
const LPFN_LdrAddRefDll pfnLdrAddRefDll = reinterpret_cast<LPFN_LdrAddRefDll>(GetProcAddress(hmodntdll, "LdrAddRefDll"));
|
||||
|
||||
if (pfnLdrAddRefDll) {
|
||||
// update dll reference
|
||||
if (!NT_SUCCESS(pfnLdrAddRefDll((dwFlags & GET_MODULE_HANDLE_EX_FLAG_PIN) ? LDR_ADDREF_DLL_PIN : 0, *phModule))) {
|
||||
SetLastError(ERROR_GEN_FAILURE);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
else if (dwFlags & GET_MODULE_HANDLE_EX_FLAG_PIN) {
|
||||
SetLastError(ERROR_NOT_SUPPORTED);
|
||||
return FALSE;
|
||||
}
|
||||
else {
|
||||
WCHAR *filename;
|
||||
if ((filename = reinterpret_cast<WCHAR*>(VirtualAlloc(NULL, MAX_PATH * sizeof(WCHAR), MEM_COMMIT, PAGE_READWRITE))) != NULL) {
|
||||
DWORD ret = GetModuleFileNameW(*phModule, filename, MAX_PATH);
|
||||
if (ret < MAX_PATH) {
|
||||
*phModule = LoadLibraryW(filename);
|
||||
}
|
||||
else *phModule = NULL;
|
||||
VirtualFree(filename, 0, MEM_RELEASE);
|
||||
// ensure load library success
|
||||
if (*phModule == NULL) {
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
else {
|
||||
SetLastError(ERROR_NOT_ENOUGH_MEMORY);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
//
|
||||
// implementation of replacement function for SetFilePointerEx
|
||||
//
|
||||
extern "C" BOOL WINAPI ImplementSetFilePointerEx(HANDLE hFile, LARGE_INTEGER liDistanceToMove, PLARGE_INTEGER lpNewFilePointer, DWORD dwMoveMethod)
|
||||
{
|
||||
DWORD ret = SetFilePointer(hFile, liDistanceToMove.LowPart, &liDistanceToMove.HighPart, dwMoveMethod);
|
||||
if (ret == INVALID_SET_FILE_POINTER) {
|
||||
if (GetLastError() != NO_ERROR) {
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
// check if provide file location
|
||||
if (lpNewFilePointer) {
|
||||
lpNewFilePointer->LowPart = ret;
|
||||
lpNewFilePointer->HighPart = liDistanceToMove.HighPart;
|
||||
}
|
||||
// success
|
||||
return TRUE;
|
||||
}
|
||||
@ -1,49 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#ifndef VC_EXTRALEAN
|
||||
#define VC_EXTRALEAN // 从 Windows 头中排除极少使用的资料
|
||||
#endif
|
||||
|
||||
#include "targetver.h"
|
||||
|
||||
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // 某些 CString 构造函数将是显式的
|
||||
|
||||
// 关闭 MFC 的一些常见且经常可放心忽略的隐藏警告消息
|
||||
#define _AFX_ALL_WARNINGS
|
||||
|
||||
#include <afxwin.h> // MFC 核心组件和标准组件
|
||||
#include <afxext.h> // MFC 扩展
|
||||
|
||||
|
||||
#include <afxdisp.h> // MFC 自动化类
|
||||
|
||||
|
||||
|
||||
#ifndef _AFX_NO_OLE_SUPPORT
|
||||
#include <afxdtctl.h> // MFC 对 Internet Explorer 4 公共控件的支持
|
||||
#endif
|
||||
#ifndef _AFX_NO_AFXCMN_SUPPORT
|
||||
#include <afxcmn.h> // MFC 对 Windows 公共控件的支持
|
||||
#endif // _AFX_NO_AFXCMN_SUPPORT
|
||||
|
||||
#include <afxcontrolbars.h> // MFC 支持功能区和控制条
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifdef _UNICODE
|
||||
#if defined _M_IX86
|
||||
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
|
||||
#elif defined _M_X64
|
||||
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")
|
||||
#else
|
||||
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
@ -1,250 +0,0 @@
|
||||
.386
|
||||
.MODEL flat, stdcall
|
||||
|
||||
USE_W_STRINGS EQU 1 ; Flag on which GetModuleHandle version to use
|
||||
USE_WIN9X EQU 1 ; Flag on if to include Win9x specific requirements
|
||||
|
||||
EXTRN STDCALL ImplementGetModuleHandleExW@12 : PROC
|
||||
EXTRN STDCALL ImplementSetFilePointerEx@20 : PROC
|
||||
|
||||
;; Declare functions that we will call statically
|
||||
IF USE_W_STRINGS
|
||||
EXTRN STDCALL _imp__GetModuleHandleW@4 : DWORD
|
||||
ELSE
|
||||
EXTRN STDCALL _imp__GetModuleHandleA@4 : DWORD
|
||||
ENDIF
|
||||
|
||||
EXTRN STDCALL _imp__GetProcAddress@8 : DWORD
|
||||
|
||||
|
||||
.DATA
|
||||
;; Override the import symbols from kernel32.dll
|
||||
__imp__InitializeSListHead@4 DWORD DownlevelInitializeSListHead
|
||||
__imp__GetModuleHandleExW@12 DWORD DownlevelGetModuleHandleExW
|
||||
__imp__EncodePointer@4 DWORD DownlevelEncodeDecodePointer
|
||||
__imp__DecodePointer@4 DWORD DownlevelEncodeDecodePointer
|
||||
;__imp__HeapSetInformation@16 dd DownlevelHeapSetInformation
|
||||
__imp__SetFilePointerEx@20 DWORD ImplementSetFilePointerEx@20
|
||||
|
||||
EXTERNDEF STDCALL __imp__InitializeSListHead@4 : DWORD
|
||||
EXTERNDEF STDCALL __imp__GetModuleHandleExW@12 : DWORD
|
||||
EXTERNDEF STDCALL __imp__EncodePointer@4 : DWORD
|
||||
EXTERNDEF STDCALL __imp__DecodePointer@4 : DWORD
|
||||
;EXTERNDEF STDCALL __imp__HeapSetInformation@16 : DWORD
|
||||
EXTERNDEF STDCALL __imp__SetFilePointerEx@20 : DWORD
|
||||
|
||||
|
||||
; For Win9x support - need to change return value to TRUE for the crt startup
|
||||
IF USE_WIN9X
|
||||
__imp__InitializeCriticalSectionAndSpinCount@8 DWORD DownlevelInitializeCriticalSectionAndSpinCount
|
||||
EXTERNDEF STDCALL __imp__InitializeCriticalSectionAndSpinCount@8 : DWORD
|
||||
ENDIF
|
||||
|
||||
CONST SEGMENT
|
||||
IF USE_W_STRINGS
|
||||
kszKernel32 DB 'k', 00H, 'e', 00H, 'r', 00H, 'n', 00H, 'e', 00H, 'l', 00H, '3', 00H, '2', 00H, 00H, 00H
|
||||
kszAdvApi32 DB 'a', 00H, 'd', 00H, 'v', 00H, 'a', 00H, 'p', 00H, 'i', 00H, '3', 00H, '2', 00H, 00H, 00H
|
||||
ELSE
|
||||
kszKernel32 DB "kernel32", 00H
|
||||
kszAdvApi32 DB "advapi32", 00H
|
||||
ENDIF
|
||||
|
||||
kszInitializeSListHead DB "InitializeSListHead", 00H
|
||||
kszGetModuleHandleExW DB "GetModuleHandleExW", 00H
|
||||
|
||||
kszInitializeCriticalSectionAndSpinCount DB "InitializeCriticalSectionAndSpinCount", 00H
|
||||
kszGetVersion DB "GetVersion", 00H
|
||||
|
||||
; Windows XP and Server 2003 and later have RtlGenRandom, which is exported as SystemFunction036.
|
||||
; If needed, we could fall back to CryptGenRandom(), but that will be much slower
|
||||
; because it has to drag in the entire crypto API.
|
||||
; (See also: https://blogs.msdn.microsoft.com/michael_howard/2005/01/14/cryptographically-secure-random-number-on-windows-without-using-cryptoapi/)
|
||||
; kszSystemFunction036 DB "SystemFunction036", 00H
|
||||
CONST ENDS
|
||||
|
||||
.CODE
|
||||
|
||||
; C++ translation:
|
||||
; extern "C" VOID WINAPI DownlevelInitializeSListHead(PSLIST_HEADER pHead)
|
||||
; {
|
||||
; const HMODULE hmodKernel32 = ::GetModuleHandleW(L"kernel32");
|
||||
; typedef decltype(InitializeSListHead)* pfnInitializeSListHead;
|
||||
; const pfnInitializeSListHead pfn = reinterpret_cast<pfnInitializeSListHead>(::GetProcAddress(hmodKernel32, "InitializeSListHead"));
|
||||
; if (pfn)
|
||||
; {
|
||||
; // call WinAPI function
|
||||
; pfn(pHead);
|
||||
; }
|
||||
; else
|
||||
; {
|
||||
; // fallback implementation for downlevel
|
||||
; pHead->Alignment = 0;
|
||||
; }
|
||||
; }
|
||||
DownlevelInitializeSListHead PROC
|
||||
;; Get a handle to the DLL containing the function of interest.
|
||||
push OFFSET kszKernel32
|
||||
IF USE_W_STRINGS
|
||||
call DWORD PTR _imp__GetModuleHandleW@4 ; Returns the handle to the library in EAX.
|
||||
ELSE
|
||||
call DWORD PTR _imp__GetModuleHandleA@4 ; Returns the handle to the library in EAX.
|
||||
ENDIF
|
||||
|
||||
;; Attempt to obtain a pointer to the function of interest.
|
||||
push OFFSET kszInitializeSListHead ; Push 2nd parameter (string containing function's name).
|
||||
push eax ; Push 1st parameter (handle to the library).
|
||||
call DWORD PTR _imp__GetProcAddress@8 ; Returns the pointer to the function in EAX.
|
||||
|
||||
;; Test for success, and call the function if we succeeded.
|
||||
test eax, eax ; See if we successfully retrieved a pointer to the function.
|
||||
je SHORT FuncNotSupported ; Jump on failure (ptr == 0), or fall through in the most-likely case.
|
||||
jmp eax ; We succeeded (ptr != 0), so tail-call the function.
|
||||
|
||||
;; The dynamic call failed, presumably because the function isn't available.
|
||||
;; So do what _RtlInitializeSListHead@4 (which is what we jump to on uplevel platforms) does,
|
||||
;; which is to set pHead->Alignment to 0. It is a QWORD-sized value, so 32-bit code must
|
||||
;; clear both of the DWORD halves.
|
||||
FuncNotSupported:
|
||||
mov edx, DWORD PTR [esp+4] ; get pHead->Alignment
|
||||
xor eax, eax
|
||||
mov DWORD PTR [edx], eax ; pHead->Alignment = 0
|
||||
mov DWORD PTR [edx+4], eax
|
||||
ret 4
|
||||
DownlevelInitializeSListHead ENDP
|
||||
|
||||
|
||||
; C++ translation:
|
||||
; extern "C" BOOL WINAPI DownlevelGetModuleHandleExW(DWORD dwFlags, LPCTSTR lpModuleName, HMODULE* phModule)
|
||||
; {
|
||||
; const HMODULE hmodKernel32 = ::GetModuleHandleW(L"kernel32");
|
||||
; typedef decltype(GetModuleHandleExW)* pfnGetModuleHandleExW;
|
||||
; const pfnGetModuleHandleExW pfn = reinterpret_cast<pfnGetModuleHandleExW>(::GetProcAddress(hmodKernel32, "GetModuleHandleExW"));
|
||||
; if (pfn)
|
||||
; {
|
||||
; // call WinAPI function
|
||||
; return pfn(dwFlags, lpModuleName, phModule);
|
||||
; }
|
||||
; else
|
||||
; {
|
||||
; // fallback for downlevel: return failure
|
||||
; return FALSE;
|
||||
; }
|
||||
; }
|
||||
DownlevelGetModuleHandleExW PROC
|
||||
;; Get a handle to the DLL containing the function of interest.
|
||||
push OFFSET kszKernel32
|
||||
IF USE_W_STRINGS
|
||||
call DWORD PTR _imp__GetModuleHandleW@4 ; Returns the handle to the library in EAX.
|
||||
ELSE
|
||||
call DWORD PTR _imp__GetModuleHandleA@4 ; Returns the handle to the library in EAX.
|
||||
ENDIF
|
||||
|
||||
;; Attempt to obtain a pointer to the function of interest.
|
||||
push OFFSET kszGetModuleHandleExW ; Push 2nd parameter (string containing function's name).
|
||||
push eax ; Push 1st parameter (handle to the library).
|
||||
call DWORD PTR _imp__GetProcAddress@8 ; Returns the pointer to the function in EAX.
|
||||
|
||||
;; Test for success, and call the function if we succeeded.
|
||||
test eax, eax ; See if we successfully retrieved a pointer to the function.
|
||||
je SHORT FuncNotSupported ; Jump on failure (ptr == 0), or fall through in the most-likely case.
|
||||
jmp eax ; We succeeded (ptr != 0), so tail-call the function.
|
||||
|
||||
;; The dynamic call failed, presumably because the function isn't available.
|
||||
;; The basic VS 2015 CRT (used in a simple Win32 app) only calls this function
|
||||
;; in try_cor_exit_process(), as called from common_exit (both in exit.cpp),
|
||||
;; where it uses it to attempt to get a handle to the module mscoree.dll.
|
||||
;; Since we don't care about managed apps, that attempt should rightfully fail.
|
||||
;; If this turns out to be used in other contexts, we'll need to revisit this
|
||||
;; and implement a proper fallback.
|
||||
FuncNotSupported:
|
||||
jmp ImplementGetModuleHandleExW@12
|
||||
|
||||
DownlevelGetModuleHandleExW ENDP
|
||||
|
||||
DownlevelEncodeDecodePointer proc
|
||||
mov eax, [esp+4]
|
||||
ret 4
|
||||
DownlevelEncodeDecodePointer endp
|
||||
|
||||
; DownlevelHeapSetInformation proc
|
||||
; mov eax, 1
|
||||
; ret 10h
|
||||
; DownlevelHeapSetInformation endp
|
||||
|
||||
; DownlevelSystemFunction036 PROC
|
||||
; int 3 ; break --- stub unimplemented
|
||||
; ret 8
|
||||
; DownlevelSystemFunction036 ENDP
|
||||
|
||||
|
||||
; Win9x section
|
||||
IF USE_WIN9X
|
||||
|
||||
; here we need to return 1 for the crt startup code which checks the return value which on 9x is "none" (throws exception instead)
|
||||
; This section will change the imported function on the first call for NT based OS so that every call doesn't require additional processing.
|
||||
|
||||
DownlevelInitializeCriticalSectionAndSpinCount proc
|
||||
|
||||
push OFFSET kszKernel32
|
||||
IF USE_W_STRINGS
|
||||
call DWORD PTR _imp__GetModuleHandleW@4 ; Returns the handle to the library in EAX.
|
||||
ELSE
|
||||
call DWORD PTR _imp__GetModuleHandleA@4 ; Returns the handle to the library in EAX.
|
||||
ENDIF
|
||||
|
||||
;; Save copy of handle
|
||||
push eax
|
||||
|
||||
;; Attempt to obtain a pointer to the function of interest.
|
||||
push OFFSET kszInitializeCriticalSectionAndSpinCount ; Push 2nd parameter (string containing function's name).
|
||||
push eax ; Push 1st parameter (handle to the library).
|
||||
call DWORD PTR _imp__GetProcAddress@8 ; Returns the pointer to the function in EAX.
|
||||
|
||||
;; Test for success, and call the function if we succeeded.
|
||||
test eax, eax ; See if we successfully retrieved a pointer to the function.
|
||||
jz SHORT FuncNotSupported ; Jump on failure (ptr == 0), or fall through in the most-likely case.
|
||||
|
||||
;; save address and get back kernel32 handle
|
||||
xchg dword ptr [esp],eax
|
||||
|
||||
;; Attempt to obtain a pointer to the function of interest.
|
||||
push OFFSET kszGetVersion ; Push 2nd parameter (string containing function's name).
|
||||
push eax ; Push 1st parameter (handle to the library).
|
||||
call DWORD PTR _imp__GetProcAddress@8 ; Returns the pointer to the function in EAX.
|
||||
|
||||
;; See if function exists
|
||||
test eax,eax
|
||||
jz SHORT FuncNotSupported
|
||||
|
||||
;; call GetVersion
|
||||
call eax
|
||||
|
||||
;; check if win9x
|
||||
test eax,80000000h
|
||||
pop eax ; get back address of InitializeCriticalSectionAndSpinCount function
|
||||
jz WinNT
|
||||
|
||||
;; for Win9x we need to call and then change return code
|
||||
push [esp+8] ; Copy the 1st parameter (+4 for IP return address, +4 for fist param)
|
||||
push [esp+8] ; Copy the 2nd parameter (recall esp moves on push)
|
||||
call eax
|
||||
mov eax,1
|
||||
ret 8
|
||||
|
||||
WinNT:
|
||||
;; Change the call address for next calls and call directly
|
||||
mov __imp__InitializeCriticalSectionAndSpinCount@8,eax
|
||||
jmp eax
|
||||
|
||||
|
||||
;; We should never end up here but if we do, fail the call
|
||||
FuncNotSupported:
|
||||
pop eax
|
||||
xor eax,eax
|
||||
ret 8
|
||||
|
||||
DownlevelInitializeCriticalSectionAndSpinCount endp
|
||||
|
||||
ENDIF
|
||||
|
||||
END
|
||||
@ -1,5 +0,0 @@
|
||||
[1]
|
||||
fat=0
|
||||
name="CE"
|
||||
cmd="DeviceEmulator.exe"
|
||||
para="..\ARMV4\WM65PPC.bin"
|
||||
@ -1,107 +0,0 @@
|
||||
|
||||
// menu2.cpp: 定义应用程序的类行为。
|
||||
//
|
||||
|
||||
#include "pch.h"
|
||||
#include "framework.h"
|
||||
#include "menu2.h"
|
||||
#include "menu2Dlg.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#endif
|
||||
|
||||
|
||||
// Cmenu2App
|
||||
|
||||
BEGIN_MESSAGE_MAP(Cmenu2App, CWinApp)
|
||||
ON_COMMAND(ID_HELP, &CWinApp::OnHelp)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
// Cmenu2App 构造
|
||||
|
||||
Cmenu2App::Cmenu2App()
|
||||
{
|
||||
// 支持重新启动管理器
|
||||
m_dwRestartManagerSupportFlags = AFX_RESTART_MANAGER_SUPPORT_RESTART;
|
||||
|
||||
// TODO: 在此处添加构造代码,
|
||||
// 将所有重要的初始化放置在 InitInstance 中
|
||||
}
|
||||
|
||||
|
||||
// 唯一的 Cmenu2App 对象
|
||||
|
||||
Cmenu2App theApp;
|
||||
|
||||
|
||||
// Cmenu2App 初始化
|
||||
|
||||
BOOL Cmenu2App::InitInstance()
|
||||
{
|
||||
// 如果一个运行在 Windows XP 上的应用程序清单指定要
|
||||
// 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式,
|
||||
//则需要 InitCommonControlsEx()。 否则,将无法创建窗口。
|
||||
INITCOMMONCONTROLSEX InitCtrls;
|
||||
InitCtrls.dwSize = sizeof(InitCtrls);
|
||||
// 将它设置为包括所有要在应用程序中使用的
|
||||
// 公共控件类。
|
||||
InitCtrls.dwICC = ICC_WIN95_CLASSES;
|
||||
InitCommonControlsEx(&InitCtrls);
|
||||
|
||||
CWinApp::InitInstance();
|
||||
|
||||
|
||||
AfxEnableControlContainer();
|
||||
|
||||
// 创建 shell 管理器,以防对话框包含
|
||||
// 任何 shell 树视图控件或 shell 列表视图控件。
|
||||
CShellManager *pShellManager = new CShellManager;
|
||||
|
||||
// 激活“Windows Native”视觉管理器,以便在 MFC 控件中启用主题
|
||||
CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerWindows));
|
||||
|
||||
// 标准初始化
|
||||
// 如果未使用这些功能并希望减小
|
||||
// 最终可执行文件的大小,则应移除下列
|
||||
// 不需要的特定初始化例程
|
||||
// 更改用于存储设置的注册表项
|
||||
// TODO: 应适当修改该字符串,
|
||||
// 例如修改为公司或组织名
|
||||
SetRegistryKey(_T("应用程序向导生成的本地应用程序"));
|
||||
|
||||
Cmenu2Dlg dlg;
|
||||
m_pMainWnd = &dlg;
|
||||
INT_PTR nResponse = dlg.DoModal();
|
||||
if (nResponse == IDOK)
|
||||
{
|
||||
// TODO: 在此放置处理何时用
|
||||
// “确定”来关闭对话框的代码
|
||||
}
|
||||
else if (nResponse == IDCANCEL)
|
||||
{
|
||||
// TODO: 在此放置处理何时用
|
||||
// “取消”来关闭对话框的代码
|
||||
}
|
||||
else if (nResponse == -1)
|
||||
{
|
||||
TRACE(traceAppMsg, 0, "警告: 对话框创建失败,应用程序将意外终止。\n");
|
||||
TRACE(traceAppMsg, 0, "警告: 如果您在对话框上使用 MFC 控件,则无法 #define _AFX_NO_MFC_CONTROLS_IN_DIALOGS。\n");
|
||||
}
|
||||
|
||||
// 删除上面创建的 shell 管理器。
|
||||
if (pShellManager != nullptr)
|
||||
{
|
||||
delete pShellManager;
|
||||
}
|
||||
|
||||
#if !defined(_AFXDLL) && !defined(_AFX_NO_MFC_CONTROLS_IN_DIALOGS)
|
||||
ControlBarCleanUp();
|
||||
#endif
|
||||
|
||||
// 由于对话框已关闭,所以将返回 FALSE 以便退出应用程序,
|
||||
// 而不是启动应用程序的消息泵。
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@ -1,32 +0,0 @@
|
||||
|
||||
// menu2.h: PROJECT_NAME 应用程序的主头文件
|
||||
//
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef __AFXWIN_H__
|
||||
#error "include 'pch.h' before including this file for PCH"
|
||||
#endif
|
||||
|
||||
#include "resource.h" // 主符号
|
||||
|
||||
|
||||
// Cmenu2App:
|
||||
// 有关此类的实现,请参阅 menu2.cpp
|
||||
//
|
||||
|
||||
class Cmenu2App : public CWinApp
|
||||
{
|
||||
public:
|
||||
Cmenu2App();
|
||||
|
||||
// 重写
|
||||
public:
|
||||
virtual BOOL InitInstance();
|
||||
|
||||
// 实现
|
||||
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
extern Cmenu2App theApp;
|
||||
@ -1,227 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<VCProjectVersion>15.0</VCProjectVersion>
|
||||
<ProjectGuid>{CFE8D300-EF37-486D-BA7F-C82809264B39}</ProjectGuid>
|
||||
<Keyword>MFCProj</Keyword>
|
||||
<RootNamespace>menu2</RootNamespace>
|
||||
<WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v141</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<UseOfMfc>Dynamic</UseOfMfc>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v141_xp</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<UseOfMfc>Static</UseOfMfc>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v141</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<UseOfMfc>Dynamic</UseOfMfc>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v141</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<UseOfMfc>Dynamic</UseOfMfc>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings" />
|
||||
<ImportGroup Label="Shared">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
|
||||
</Link>
|
||||
<Midl>
|
||||
<MkTypLibCompatible>false</MkTypLibCompatible>
|
||||
<ValidateAllParameters>true</ValidateAllParameters>
|
||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</Midl>
|
||||
<ResourceCompile>
|
||||
<Culture>0x0804</Culture>
|
||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
</Link>
|
||||
<Midl>
|
||||
<MkTypLibCompatible>false</MkTypLibCompatible>
|
||||
<ValidateAllParameters>true</ValidateAllParameters>
|
||||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</Midl>
|
||||
<ResourceCompile>
|
||||
<Culture>0x0804</Culture>
|
||||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>_WINDOWS;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
</Link>
|
||||
<Midl>
|
||||
<MkTypLibCompatible>false</MkTypLibCompatible>
|
||||
<ValidateAllParameters>true</ValidateAllParameters>
|
||||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</Midl>
|
||||
<ResourceCompile>
|
||||
<Culture>0x0804</Culture>
|
||||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>_WINDOWS;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
</Link>
|
||||
<Midl>
|
||||
<MkTypLibCompatible>false</MkTypLibCompatible>
|
||||
<ValidateAllParameters>true</ValidateAllParameters>
|
||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</Midl>
|
||||
<ResourceCompile>
|
||||
<Culture>0x0804</Culture>
|
||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="about.h" />
|
||||
<ClInclude Include="DigHelp.h" />
|
||||
<ClInclude Include="framework.h" />
|
||||
<ClInclude Include="menu2.h" />
|
||||
<ClInclude Include="menu2Dlg.h" />
|
||||
<ClInclude Include="pch.h" />
|
||||
<ClInclude Include="Resource.h" />
|
||||
<ClInclude Include="targetver.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="about.cpp" />
|
||||
<ClCompile Include="DigHelp.cpp" />
|
||||
<ClCompile Include="menu2.cpp" />
|
||||
<ClCompile Include="menu2Dlg.cpp" />
|
||||
<ClCompile Include="pch.cpp">
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="menu2.rc" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="res\menu2.rc2" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Image Include="res\about.bmp" />
|
||||
<Image Include="res\background.bmp" />
|
||||
<Image Include="res\flag.bmp" />
|
||||
<Image Include="res\info.ico" />
|
||||
<Image Include="res\menu2.ico" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets" />
|
||||
</Project>
|
||||
@ -1,87 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="源文件">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="头文件">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hh;hpp;hxx;hm;inl;inc;ipp;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="资源文件">
|
||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="menu2.h">
|
||||
<Filter>头文件</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="menu2Dlg.h">
|
||||
<Filter>头文件</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="framework.h">
|
||||
<Filter>头文件</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="targetver.h">
|
||||
<Filter>头文件</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Resource.h">
|
||||
<Filter>头文件</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="pch.h">
|
||||
<Filter>头文件</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="DigHelp.h">
|
||||
<Filter>头文件</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="about.h">
|
||||
<Filter>头文件</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="menu2.cpp">
|
||||
<Filter>源文件</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="menu2Dlg.cpp">
|
||||
<Filter>源文件</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="pch.cpp">
|
||||
<Filter>源文件</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DigHelp.cpp">
|
||||
<Filter>源文件</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="about.cpp">
|
||||
<Filter>源文件</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="menu2.rc">
|
||||
<Filter>资源文件</Filter>
|
||||
</ResourceCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="res\menu2.rc2">
|
||||
<Filter>资源文件</Filter>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Image Include="res\menu2.ico">
|
||||
<Filter>资源文件</Filter>
|
||||
</Image>
|
||||
<Image Include="res\background.bmp">
|
||||
<Filter>资源文件</Filter>
|
||||
</Image>
|
||||
<Image Include="res\info.ico">
|
||||
<Filter>资源文件</Filter>
|
||||
</Image>
|
||||
<Image Include="res\flag.bmp">
|
||||
<Filter>资源文件</Filter>
|
||||
</Image>
|
||||
<Image Include="res\about.bmp">
|
||||
<Filter>资源文件</Filter>
|
||||
</Image>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@ -1,6 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<RESOURCE_FILE>menu2.rc</RESOURCE_FILE>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
@ -1,250 +0,0 @@
|
||||
|
||||
// menu2Dlg.cpp: 实现文件
|
||||
//
|
||||
|
||||
#include "pch.h"
|
||||
#include "framework.h"
|
||||
#include "menu2.h"
|
||||
#include "menu2Dlg.h"
|
||||
#include "afxdialogex.h"
|
||||
#include "DigHelp.h"
|
||||
#include "about.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#endif
|
||||
|
||||
#define MAXTREE 255
|
||||
|
||||
// Cmenu2Dlg 对话框
|
||||
|
||||
|
||||
|
||||
Cmenu2Dlg::Cmenu2Dlg(CWnd* pParent /*=nullptr*/)
|
||||
: CDialogEx(IDD_MENU2_DIALOG, pParent)
|
||||
{
|
||||
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
|
||||
}
|
||||
|
||||
void Cmenu2Dlg::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialogEx::DoDataExchange(pDX);
|
||||
DDX_Control(pDX, IDC_TREE1, m_tree);
|
||||
}
|
||||
|
||||
BEGIN_MESSAGE_MAP(Cmenu2Dlg, CDialogEx)
|
||||
ON_WM_PAINT()
|
||||
ON_WM_QUERYDRAGICON()
|
||||
ON_NOTIFY(TVN_SELCHANGED, IDC_TREE1, &Cmenu2Dlg::OnTvnSelchangedTree1)
|
||||
ON_BN_CLICKED(IDOK, &Cmenu2Dlg::OnBnClickedOk)
|
||||
ON_BN_CLICKED(IDCANCEL, &Cmenu2Dlg::OnBnClickedCancel)
|
||||
ON_NOTIFY(NM_CLICK, IDC_SYSLINK1, &Cmenu2Dlg::OnNMClickSyslink1)
|
||||
ON_NOTIFY(NM_CLICK, IDC_SYSLINK2, &Cmenu2Dlg::OnNMClickSyslink2)
|
||||
ON_NOTIFY(NM_CLICK, IDC_SYSLINK3, &Cmenu2Dlg::OnNMClickSyslink3)
|
||||
ON_NOTIFY(NM_DBLCLK, IDC_TREE1, &Cmenu2Dlg::OnNMDblclkTree1)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
// Cmenu2Dlg 消息处理程序
|
||||
|
||||
|
||||
void Cmenu2Dlg::MyExpandTree(HTREEITEM hTreeItem)
|
||||
{
|
||||
if (!m_tree.ItemHasChildren(hTreeItem))//如果树控件根节点没有子节点则返回
|
||||
{
|
||||
return;
|
||||
}
|
||||
HTREEITEM hNextItem = m_tree.GetChildItem(hTreeItem);//若树控件的根节点有子节点则获取根节点的子节点
|
||||
while (hNextItem != NULL)//若有
|
||||
{
|
||||
MyExpandTree(hNextItem);//递归,展开子节点下的所有子节点
|
||||
hNextItem = m_tree.GetNextItem(hNextItem, TVGN_NEXT);//获取根节点的下一个子节点
|
||||
}
|
||||
m_tree.Expand(hTreeItem, TVE_EXPAND);//展开节点
|
||||
}
|
||||
|
||||
TCHAR lpPath[255] = { 0 };
|
||||
HTREEITEM *treeStr;
|
||||
BOOL Cmenu2Dlg::OnInitDialog()
|
||||
{
|
||||
CDialogEx::OnInitDialog();
|
||||
|
||||
// 设置此对话框的图标。 当应用程序主窗口不是对话框时,框架将自动
|
||||
// 执行此操作
|
||||
SetIcon(m_hIcon, TRUE); // 设置大图标
|
||||
SetIcon(m_hIcon, FALSE); // 设置小图标
|
||||
|
||||
// TODO: 在此添加额外的初始化代码
|
||||
GetCurrentDirectory(MAX_PATH, lpPath);
|
||||
wsprintf(lpPath, L"%s\\menu.enus", lpPath);
|
||||
|
||||
|
||||
SetWindowLong(m_hWnd, GWL_STYLE, WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX);
|
||||
|
||||
//treeStr[0] = m_tree.InsertItem(L"Windows CE", 1, 0, TVI_ROOT);
|
||||
int iNodeNum = GetPrivateProfileInt(L"0", L"nodeNum", 255, lpPath);
|
||||
treeStr = new HTREEITEM[iNodeNum]();
|
||||
for (int i = 0; i < iNodeNum; i++)
|
||||
{
|
||||
TCHAR iniCBuffer[255] = { 0 };
|
||||
wsprintf(iniCBuffer, L"%d", i);
|
||||
int currentFat = GetPrivateProfileInt(iniCBuffer, L"fat", -1, lpPath);
|
||||
if (currentFat == -1)
|
||||
continue;//201C101
|
||||
|
||||
TCHAR currentName[255] = { 0 };
|
||||
GetPrivateProfileString(iniCBuffer, L"name", NULL, currentName, 255, lpPath);
|
||||
if (currentFat == -2)
|
||||
treeStr[0] = m_tree.InsertItem(currentName, 1, 0, TVI_ROOT);
|
||||
else
|
||||
treeStr[i] = m_tree.InsertItem(currentName, 1, 0, treeStr[currentFat]);
|
||||
}
|
||||
|
||||
MyExpandTree(m_tree.GetRootItem());
|
||||
|
||||
DigHelp *dlg = new DigHelp;
|
||||
dlg->Create(IDD_DIALOG1, NULL);
|
||||
dlg->ShowWindow(SW_SHOWNORMAL);//SW_SHOW是对话框的显示方式
|
||||
|
||||
return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
|
||||
}
|
||||
|
||||
// 如果向对话框添加最小化按钮,则需要下面的代码
|
||||
// 来绘制该图标。 对于使用文档/视图模型的 MFC 应用程序,
|
||||
// 这将由框架自动完成。
|
||||
|
||||
void Cmenu2Dlg::OnPaint()
|
||||
{
|
||||
if (IsIconic())
|
||||
{
|
||||
CPaintDC dc(this); // 用于绘制的设备上下文
|
||||
|
||||
SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
|
||||
|
||||
// 使图标在工作区矩形中居中
|
||||
int cxIcon = GetSystemMetrics(SM_CXICON);
|
||||
int cyIcon = GetSystemMetrics(SM_CYICON);
|
||||
CRect rect;
|
||||
GetClientRect(&rect);
|
||||
int x = (rect.Width() - cxIcon + 1) / 2;
|
||||
int y = (rect.Height() - cyIcon + 1) / 2;
|
||||
|
||||
// 绘制图标
|
||||
dc.DrawIcon(x, y, m_hIcon);
|
||||
}
|
||||
else
|
||||
{
|
||||
//CDialogEx::OnPaint();
|
||||
CPaintDC dc(this);
|
||||
CRect rect;
|
||||
GetClientRect(&rect);
|
||||
CDC dcMem;
|
||||
dcMem.CreateCompatibleDC(&dc);
|
||||
CBitmap bmpBackground;
|
||||
bmpBackground.LoadBitmap(IDB_BITMAP1); //对话框的背景图片
|
||||
|
||||
BITMAP bitmap;
|
||||
bmpBackground.GetBitmap(&bitmap);
|
||||
CBitmap *pbmpOld = dcMem.SelectObject(&bmpBackground);
|
||||
dc.StretchBlt(0, 0, rect.Width(), rect.Height(), &dcMem, 0, 0, bitmap.bmWidth, bitmap.bmHeight, SRCCOPY);
|
||||
}
|
||||
}
|
||||
|
||||
//当用户拖动最小化窗口时系统调用此函数取得光标
|
||||
//显示。
|
||||
HCURSOR Cmenu2Dlg::OnQueryDragIcon()
|
||||
{
|
||||
return static_cast<HCURSOR>(m_hIcon);
|
||||
}
|
||||
|
||||
|
||||
|
||||
void Cmenu2Dlg::OnTvnSelchangedTree1(NMHDR *pNMHDR, LRESULT *pResult)
|
||||
{
|
||||
LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR);
|
||||
// TODO: 在此添加控件通知处理程序代码
|
||||
*pResult = 0;
|
||||
}
|
||||
|
||||
void doCommand(TCHAR *cmd, TCHAR *para)
|
||||
{
|
||||
ShellExecute(NULL, L"open", cmd, para, NULL, SW_SHOWNORMAL);
|
||||
}
|
||||
|
||||
void doCommandD(TCHAR *cmd, TCHAR *para, TCHAR *dir)
|
||||
{
|
||||
ShellExecute(NULL, L"open", cmd, para, dir, SW_SHOWNORMAL);
|
||||
}
|
||||
|
||||
void Cmenu2Dlg::OnBnClickedOk()
|
||||
{
|
||||
// TODO: 在此添加控件通知处理程序代码
|
||||
//CDialogEx::OnOK();
|
||||
HTREEITEM hselected = m_tree.GetSelectedItem();
|
||||
int currentTreeID = 0;
|
||||
int iNodeNum = GetPrivateProfileInt(L"0", L"nodeNum", 255, lpPath);
|
||||
for (; currentTreeID < iNodeNum; currentTreeID++)
|
||||
{
|
||||
if (hselected == treeStr[currentTreeID])
|
||||
break;
|
||||
}
|
||||
|
||||
TCHAR currentINIHead[255] = { 0 };
|
||||
TCHAR currentINICmd[255] = { 0 };
|
||||
TCHAR currentINIPara[255] = { 0 };
|
||||
TCHAR currentINIDir[255] = { 0 };
|
||||
wsprintf(currentINIHead, L"%d", currentTreeID);
|
||||
GetPrivateProfileString(currentINIHead, L"cmd", NULL, currentINICmd, 255, lpPath);
|
||||
GetPrivateProfileString(currentINIHead, L"para", NULL, currentINIPara, 255, lpPath);
|
||||
GetPrivateProfileString(currentINIHead, L"dir", NULL, currentINIDir, 255, lpPath);
|
||||
if (currentINICmd[0] != NULL)
|
||||
doCommandD(currentINICmd, currentINIPara, currentINIDir);
|
||||
}
|
||||
|
||||
|
||||
void Cmenu2Dlg::OnBnClickedCancel()
|
||||
{
|
||||
// TODO: 在此添加控件通知处理程序代码
|
||||
|
||||
CDialogEx::OnCancel();
|
||||
}
|
||||
|
||||
|
||||
void Cmenu2Dlg::OnNMClickSyslink1(NMHDR *pNMHDR, LRESULT *pResult)
|
||||
{
|
||||
// TODO: 在此添加控件通知处理程序代码
|
||||
doCommand(L"..\\DOCS\\help.txt", NULL);
|
||||
*pResult = 0;
|
||||
}
|
||||
|
||||
|
||||
void Cmenu2Dlg::OnNMClickSyslink2(NMHDR *pNMHDR, LRESULT *pResult)
|
||||
{
|
||||
// TODO: 在此添加控件通知处理程序代码
|
||||
doCommand(L"..\\DOCS\\vers.bmp", NULL);
|
||||
*pResult = 0;
|
||||
}
|
||||
|
||||
|
||||
void Cmenu2Dlg::OnNMClickSyslink3(NMHDR *pNMHDR, LRESULT *pResult)
|
||||
{
|
||||
// TODO: 在此添加控件通知处理程序代码
|
||||
//doCommand(L".\\about.exe", NULL);
|
||||
|
||||
about *dlg = new about;
|
||||
dlg->Create(IDD_ABOUT_DIALOG, NULL);
|
||||
dlg->ShowWindow(SW_SHOWNORMAL);//SW_SHOW是对话框的显示方式
|
||||
|
||||
*pResult = 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
void Cmenu2Dlg::OnNMDblclkTree1(NMHDR *pNMHDR, LRESULT *pResult)
|
||||
{
|
||||
// TODO: 在此添加控件通知处理程序代码
|
||||
Cmenu2Dlg::OnBnClickedOk();
|
||||
*pResult = 0;
|
||||
}
|
||||
@ -1,45 +0,0 @@
|
||||
|
||||
// menu2Dlg.h: 头文件
|
||||
//
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
// Cmenu2Dlg 对话框
|
||||
class Cmenu2Dlg : public CDialogEx
|
||||
{
|
||||
// 构造
|
||||
public:
|
||||
Cmenu2Dlg(CWnd* pParent = nullptr); // 标准构造函数
|
||||
|
||||
// 对话框数据
|
||||
#ifdef AFX_DESIGN_TIME
|
||||
enum { IDD = IDD_MENU2_DIALOG };
|
||||
#endif
|
||||
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
|
||||
|
||||
|
||||
// 实现
|
||||
protected:
|
||||
HICON m_hIcon;
|
||||
|
||||
// 生成的消息映射函数
|
||||
virtual BOOL OnInitDialog();
|
||||
afx_msg void OnPaint();
|
||||
afx_msg HCURSOR OnQueryDragIcon();
|
||||
DECLARE_MESSAGE_MAP()
|
||||
public:
|
||||
afx_msg void OnTvnSelchangedTree1(NMHDR *pNMHDR, LRESULT *pResult);
|
||||
CTreeCtrl m_tree;
|
||||
|
||||
void MyExpandTree(HTREEITEM hTreeItem);
|
||||
|
||||
afx_msg void OnBnClickedOk();
|
||||
afx_msg void OnBnClickedCancel();
|
||||
afx_msg void OnNMClickSyslink1(NMHDR *pNMHDR, LRESULT *pResult);
|
||||
afx_msg void OnNMClickSyslink2(NMHDR *pNMHDR, LRESULT *pResult);
|
||||
afx_msg void OnNMClickSyslink3(NMHDR *pNMHDR, LRESULT *pResult);
|
||||
afx_msg void OnNMDblclkTree1(NMHDR *pNMHDR, LRESULT *pResult);
|
||||
};
|
||||
@ -1,5 +0,0 @@
|
||||
// pch.cpp: 与预编译标头对应的源文件
|
||||
|
||||
#include "pch.h"
|
||||
|
||||
// 当使用预编译的头时,需要使用此源文件,编译才能成功。
|
||||
@ -1,23 +0,0 @@
|
||||
// pch.h: 这是预编译标头文件。
|
||||
// 下方列出的文件仅编译一次,提高了将来生成的生成性能。
|
||||
// 这还将影响 IntelliSense 性能,包括代码完成和许多代码浏览功能。
|
||||
// 但是,如果此处列出的文件中的任何一个在生成之间有更新,它们全部都将被重新编译。
|
||||
// 请勿在此处添加要频繁更新的文件,这将使得性能优势无效。
|
||||
|
||||
#ifndef PCH_H
|
||||
#define PCH_H
|
||||
|
||||
// 添加要在此处预编译的标头
|
||||
#ifndef WINVER
|
||||
#define WINVER 0x0501
|
||||
#endif
|
||||
|
||||
#ifndef _WIN32_WINNT // Specifies that the minimum required platform is Windows XP.
|
||||
#define _WIN32_WINNT 0x0501
|
||||
#endif
|
||||
|
||||
#include "framework.h"
|
||||
#include <afxcontrolbars.h>
|
||||
#include <afxcontrolbars.h>
|
||||
|
||||
#endif //PCH_H
|
||||
|
Before Width: | Height: | Size: 42 KiB |
|
Before Width: | Height: | Size: 42 KiB |
|
Before Width: | Height: | Size: 42 KiB |
|
Before Width: | Height: | Size: 1.4 MiB |
|
Before Width: | Height: | Size: 3.0 MiB |
|
Before Width: | Height: | Size: 3.0 MiB |
|
Before Width: | Height: | Size: 1.4 MiB |
|
Before Width: | Height: | Size: 1.6 KiB |
@ -1,32 +0,0 @@
|
||||
//{{NO_DEPENDENCIES}}
|
||||
// Microsoft Visual C++ 生成的包含文件。
|
||||
// 供 menu2.rc 使用
|
||||
//
|
||||
#define IDD_MENU2_DIALOG 102
|
||||
#define IDR_MAINFRAME 128
|
||||
#define IDB_BITMAP3 130
|
||||
#define IDB_BITMAP1 131
|
||||
#define IDI_ICON1 132
|
||||
#define IDD_DIALOG1 133
|
||||
#define IDD_ABOUT_DIALOG 134
|
||||
#define IDB_BITMAP2 135
|
||||
#define IDC_TREE1 1000
|
||||
#define IDC_SYSLINK1 1001
|
||||
#define IDC_SYSLINK2 1002
|
||||
#define IDC_SYSLINK3 1003
|
||||
#define IDC_BUTTON1 1004
|
||||
#define IDC_STATIC1 1005
|
||||
#define IDC_STATICVER 1006
|
||||
#define IDC_EDIT1 1007
|
||||
#define IDC_TREE2 1008
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 136
|
||||
#define _APS_NEXT_COMMAND_VALUE 32771
|
||||
#define _APS_NEXT_CONTROL_VALUE 1009
|
||||
#define _APS_NEXT_SYMED_VALUE 101
|
||||
#endif
|
||||
#endif
|
||||
@ -1,8 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
// 包括 SDKDDKVer.h 将定义可用的最高版本的 Windows 平台。
|
||||
|
||||
// 如果要为以前的 Windows 平台生成应用程序,请包括 WinSDKVer.h,并将
|
||||
// 将 _WIN32_WINNT 宏设置为要支持的平台,然后再包括 SDKDDKVer.h。
|
||||
|
||||
#include <SDKDDKVer.h>
|
||||
70
WNT/menu3.exe/ReadMe.txt
Normal file
@ -0,0 +1,70 @@
|
||||
================================================================================
|
||||
MICROSOFT 基础类库: menu3 项目概述
|
||||
===============================================================================
|
||||
|
||||
应用程序向导已为您创建了这个 menu3 应用程序。此应用程序不仅演示 Microsoft 基础类的基本使用方法,还可作为您编写应用程序的起点。
|
||||
|
||||
本文件概要介绍组成 menu3 应用程序的每个文件的内容。
|
||||
|
||||
menu3.vcproj
|
||||
这是使用应用程序向导生成的 VC++ 项目的主项目文件。
|
||||
它包含生成该文件的 Visual C++ 的版本信息,以及有关使用应用程序向导选择的平台、配置和项目功能的信息。
|
||||
|
||||
menu3.h
|
||||
这是应用程序的主要头文件。它包括其他项目特定的头文件(包括 Resource.h),并声明 Cmenu3App 应用程序类。
|
||||
|
||||
menu3.cpp
|
||||
这是包含应用程序类 Cmenu3App 的主要应用程序源文件。
|
||||
|
||||
menu3.rc
|
||||
这是程序使用的所有 Microsoft Windows 资源的列表。它包括 RES 子目录中存储的图标、位图和光标。此文件可以直接在 Microsoft Visual C++ 中进行编辑。项目资源位于 2052 中。
|
||||
|
||||
res\menu3.ico
|
||||
这是用作应用程序图标的图标文件。此图标包括在主要资源文件 menu3.rc 中。
|
||||
|
||||
res\menu3.rc2
|
||||
此文件包含不在 Microsoft Visual C++ 中进行编辑的资源。您应该将不可由资源编辑器编辑的所有资源放在此文件中。
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
应用程序向导创建一个对话框类:
|
||||
|
||||
menu3Dlg.h,menu3Dlg.cpp - 对话框
|
||||
这些文件包含 Cmenu3Dlg 类。该类定义应用程序主对话框的行为。该对话框的模板位于 menu3.rc 中,该文件可以在 Microsoft Visual C++ 中进行编辑。
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
其他功能:
|
||||
|
||||
ActiveX 控件
|
||||
应用程序包括对使用 ActiveX 控件的支持。
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
其他标准文件:
|
||||
|
||||
StdAfx.h,StdAfx.cpp
|
||||
这些文件用于生成名为 menu3.pch 的预编译头 (PCH) 文件和名为 StdAfx.obj 的预编译类型文件。
|
||||
|
||||
Resource.h
|
||||
这是标准头文件,它定义新的资源 ID。
|
||||
Microsoft Visual C++ 读取并更新此文件。
|
||||
|
||||
menu3.manifest
|
||||
应用程序清单文件供 Windows XP 用来描述应用程序
|
||||
对特定版本并行程序集的依赖性。加载程序使用此
|
||||
信息从程序集缓存加载适当的程序集或
|
||||
从应用程序加载私有信息。应用程序清单可能为了重新分发而作为
|
||||
与应用程序可执行文件安装在相同文件夹中的外部 .manifest 文件包括,
|
||||
也可能以资源的形式包括在该可执行文件中。
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
其他注释:
|
||||
|
||||
应用程序向导使用“TODO:”指示应添加或自定义的源代码部分。
|
||||
|
||||
如果应用程序在共享的 DLL 中使用 MFC,则需要重新发布这些 MFC DLL;如果应用程序所用的语言与操作系统的当前区域设置不同,则还需要重新发布对应的本地化资源 MFC80XXX.DLL。有关这两个主题的更多信息,请参见 MSDN 文档中有关 Redistributing Visual C++ applications (重新发布 Visual C++ 应用程序)的章节。
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
108
WNT/menu3.exe/aboutDlg.cpp
Normal file
@ -0,0 +1,108 @@
|
||||
// aboutDlg.cpp : 实现文件
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "menu3.h"
|
||||
#include "aboutDlg.h"
|
||||
|
||||
|
||||
// CaboutDlg 对话框
|
||||
|
||||
IMPLEMENT_DYNAMIC(CaboutDlg, CDialog)
|
||||
|
||||
CaboutDlg::CaboutDlg(CWnd* pParent /*=NULL*/)
|
||||
: CDialog(CaboutDlg::IDD, pParent)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
CaboutDlg::~CaboutDlg()
|
||||
{
|
||||
}
|
||||
|
||||
void CaboutDlg::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(CaboutDlg, CDialog)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
// CaboutDlg 消息处理程序
|
||||
|
||||
TCHAR* AsciiToUnicode(char *str)
|
||||
{
|
||||
DWORD dwNum = 0;
|
||||
dwNum = MultiByteToWideChar(CP_ACP, 0, str, -1, NULL, 0);
|
||||
TCHAR* pwHostName = new TCHAR[dwNum];
|
||||
MultiByteToWideChar(CP_ACP, 0, str, -1, pwHostName, dwNum);
|
||||
return pwHostName;
|
||||
}
|
||||
|
||||
BOOL CaboutDlg::OnInitDialog()
|
||||
{
|
||||
CDialog::OnInitDialog();
|
||||
|
||||
// TODO: 在此添加额外的初始化
|
||||
|
||||
|
||||
MessageBox(L"aaaaa");
|
||||
|
||||
ShowWindow(SW_NORMAL);
|
||||
CRect rtDesk;
|
||||
CRect rtDlg;
|
||||
::GetWindowRect(::GetDesktopWindow(), &rtDesk);
|
||||
GetWindowRect(&rtDlg);
|
||||
int iXpos = rtDesk.Width() / 2 - rtDlg.Width() / 2;
|
||||
int iYpos = rtDesk.Height() / 2 - rtDlg.Height() / 2;
|
||||
SetWindowPos(NULL, iXpos, iYpos, 0, 0, SWP_NOOWNERZORDER | SWP_NOSIZE | SWP_NOZORDER);
|
||||
|
||||
TCHAR lpPath[255] = { 0 };
|
||||
wsprintf(lpPath, L"..\\CECD0.20");
|
||||
|
||||
HANDLE hFile = CreateFile(
|
||||
lpPath, // 文件名
|
||||
GENERIC_READ, // 读权限
|
||||
0, // 不共享
|
||||
NULL, // 安全属性
|
||||
OPEN_EXISTING, // 打开已存在的文件
|
||||
FILE_ATTRIBUTE_NORMAL, // 文件属性
|
||||
NULL // 模板文件的句柄
|
||||
);
|
||||
if (hFile == INVALID_HANDLE_VALUE) {
|
||||
MessageBox(L"ERROR");
|
||||
return 1;
|
||||
}
|
||||
// 确定文件大小
|
||||
DWORD dwFileSize = GetFileSize(hFile, NULL);
|
||||
// 分配内存读取文件
|
||||
char buffer[255] = { 0 };
|
||||
DWORD dwRead = 0;
|
||||
// 读取文件内容
|
||||
if (ReadFile(hFile, buffer, dwFileSize, &dwRead, NULL)) {
|
||||
buffer[dwFileSize] = '\0'; // 添加字符串终止符
|
||||
}
|
||||
// 关闭文件句柄
|
||||
CloseHandle(hFile);
|
||||
|
||||
GetDlgItem(IDC_STATIC1)->SetWindowText(AsciiToUnicode(buffer));
|
||||
|
||||
GetDlgItem(IDC_EDIT1)->SetWindowText( L"Developer\r\n"
|
||||
L" 351 351Workshop@Bilibili\r\n"
|
||||
L"Sponsor\r\n"
|
||||
L" IBM IBM_Official@Bilibili\r\n"
|
||||
L" Dr.Quest 蓬岸@知乎\r\n"
|
||||
L"Image Providing\r\n"
|
||||
L" Alexis lucss21a@Discord\r\n"
|
||||
L"Artworks\r\n"
|
||||
L" WinPad とある科学の手机副屏@Bilibili\r\n"
|
||||
L"Guidance and Testing\r\n"
|
||||
L" Inter -INTER_INIT-@Bilibili\r\n"
|
||||
L" GoldApple 不务正业的金苹果@Bilibili\r\n"
|
||||
L" Zesa LinuxMEMZ@Bilibili\r\n"
|
||||
L" DZY DZY20070614@Bilibili\r\n");
|
||||
return TRUE; // return TRUE unless you set the focus to a control
|
||||
// 异常: OCX 属性页应返回 FALSE
|
||||
}
|
||||
23
WNT/menu3.exe/aboutDlg.h
Normal file
@ -0,0 +1,23 @@
|
||||
#pragma once
|
||||
|
||||
|
||||
// CaboutDlg 对话框
|
||||
|
||||
class CaboutDlg : public CDialog
|
||||
{
|
||||
DECLARE_DYNAMIC(CaboutDlg)
|
||||
|
||||
public:
|
||||
CaboutDlg(CWnd* pParent = NULL); // 标准构造函数
|
||||
virtual ~CaboutDlg();
|
||||
|
||||
// 对话框数据
|
||||
enum { IDD = IDD_ABOUTBOX };
|
||||
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
|
||||
|
||||
DECLARE_MESSAGE_MAP()
|
||||
public:
|
||||
virtual BOOL OnInitDialog();
|
||||
};
|
||||
546
WNT/menu3.exe/menu.enus
Normal file
@ -0,0 +1,546 @@
|
||||
[sug]
|
||||
maxInfo=7
|
||||
0="Background color in Shell Emulator depends on your host computer's setting."
|
||||
1="Sound in CE 1.x Shell Emulator depends on your host computer's setting."
|
||||
2="Reset your computer to boot into CEPC Loader."
|
||||
3="LOADCEPC.EXE will load the CE image to the memory."
|
||||
4="If the CEPC Loader show an error,you can try to increase memory."
|
||||
5="CE Collections was called CEPC Collection before!"
|
||||
6="Don't use more than one Shell Emulator at the same time!"
|
||||
|
||||
[0]
|
||||
fat=-2
|
||||
nodeNum=999
|
||||
name="Windows CE Family"
|
||||
|
||||
[1]
|
||||
fat=0
|
||||
name="1.x"
|
||||
[2]
|
||||
fat=0
|
||||
name="2.x"
|
||||
[3]
|
||||
fat=0
|
||||
name="3.x"
|
||||
[4]
|
||||
fat=0
|
||||
name="4.x"
|
||||
[5]
|
||||
fat=0
|
||||
name="5.x"
|
||||
[6]
|
||||
fat=0
|
||||
name="6.x"
|
||||
[7]
|
||||
fat=0
|
||||
name="7.x"
|
||||
[8]
|
||||
fat=0
|
||||
name="8.x"
|
||||
|
||||
[11]
|
||||
fat=1
|
||||
name="1.0x"
|
||||
|
||||
[13]
|
||||
fat=2
|
||||
name="2.00"
|
||||
[14]
|
||||
fat=2
|
||||
name="2.01"
|
||||
[15]
|
||||
fat=2
|
||||
name="2.10"
|
||||
[16]
|
||||
fat=2
|
||||
name="2.11"
|
||||
[17]
|
||||
fat=2
|
||||
name="2.12"
|
||||
|
||||
[18]
|
||||
fat=3
|
||||
name="3.00"
|
||||
|
||||
[19]
|
||||
fat=4
|
||||
name="4.00"
|
||||
[20]
|
||||
fat=4
|
||||
name="4.10"
|
||||
[21]
|
||||
fat=4
|
||||
name="4.20"
|
||||
[22]
|
||||
fat=4
|
||||
name="4.21"
|
||||
|
||||
[23]
|
||||
fat=5
|
||||
name="5.00"
|
||||
[24]
|
||||
fat=5
|
||||
name="5.10"
|
||||
[25]
|
||||
fat=5
|
||||
name="5.20"
|
||||
|
||||
[26]
|
||||
fat=6
|
||||
name="6.00"
|
||||
|
||||
[30]
|
||||
fat=7
|
||||
name="7.00"
|
||||
[31]
|
||||
fat=7
|
||||
name="7.10"
|
||||
|
||||
[32]
|
||||
fat=8
|
||||
name="8.00"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[101]
|
||||
fat=11
|
||||
name="Windows CE 1.0x"
|
||||
cmd="hiderun.vbs"
|
||||
para=""shellmgr 1 .\10xSTD SHELL32.exe""
|
||||
|
||||
[201]
|
||||
fat=13
|
||||
name="Windows CE 2.0"
|
||||
cmd="hiderun.vbs"
|
||||
para=""whitebox.exe /D:3 /M:PRO2.cfg ..\..\I486\20xSTD.bin""
|
||||
dir=".\whitebox\"
|
||||
[202]
|
||||
fat=13
|
||||
name="Handheld PC 2.0"
|
||||
cmd="hiderun.vbs"
|
||||
para=""shellmgr 2 .\200HPC explorem.exe""
|
||||
[203]
|
||||
fat=14
|
||||
name="Auto PC 1.0"
|
||||
cmd="hiderun.vbs"
|
||||
para=""shellmgr 4 .\201APC APCHW.exe""
|
||||
[204]
|
||||
fat=14
|
||||
name="Palm-size PC 1.0"
|
||||
cmd="hiderun.vbs"
|
||||
para=""shellmgr 2 .\201PPC SHELL32.exe""
|
||||
[205]
|
||||
fat=15
|
||||
name="Windows CE 2.10"
|
||||
cmd="hiderun.vbs"
|
||||
para=""whitebox.exe /D:3 ..\..\I486\210STD.bin""
|
||||
dir=".\whitebox\"
|
||||
[206]
|
||||
fat=16
|
||||
name="Windows CE 2.11"
|
||||
cmd="hiderun.vbs"
|
||||
para=""whitebox.exe /D:3 ..\..\I486\211STD.bin""
|
||||
dir=".\whitebox\"
|
||||
[207]
|
||||
fat=16
|
||||
name="Palm-size PC 1.1"
|
||||
cmd="hiderun.vbs"
|
||||
para=""shellmgr 2 .\211PPC1 SHELL32.exe""
|
||||
[208]
|
||||
fat=16
|
||||
name="Palm-szie PC 1.2"
|
||||
cmd="hiderun.vbs"
|
||||
para=""shellmgr 2 .\211PPC2 SHELL32.exe""
|
||||
[209]
|
||||
fat=16
|
||||
name="Handheld PC 3.0"
|
||||
cmd="hiderun.vbs"
|
||||
para=""shellmgr 2 .\211HPC explorej.exe""
|
||||
[200]
|
||||
fat=17
|
||||
name="Windows CE 2.12"
|
||||
cmd="hiderun.vbs"
|
||||
para=""whitebox.exe /D:3 ..\..\I486\212STD.bin""
|
||||
dir=".\whitebox\"
|
||||
|
||||
[301]
|
||||
fat=18
|
||||
name="Windows CE 3.0"
|
||||
cmd="hiderun.vbs"
|
||||
para=""whitebox.exe /L:800x600x16 ..\..\I486\300STD.bin""
|
||||
dir=".\whitebox\"
|
||||
[302]
|
||||
fat=18
|
||||
name="Pocket PC 2000"
|
||||
cmd="hiderun.vbs"
|
||||
para=""shellmgr 3 .\300PPC2K SHELL32.exe""
|
||||
[303]
|
||||
fat=18
|
||||
name="Handheld PC 2000"
|
||||
cmd="hiderun.vbs"
|
||||
para=""whitebox.exe /D:3 ..\..\I486\300HPC.bin""
|
||||
dir=".\whitebox\"
|
||||
[304]
|
||||
fat=18
|
||||
name="Windows Mobile 2002"
|
||||
[305]
|
||||
fat=304
|
||||
name="Pocket PC"
|
||||
cmd="hiderun.vbs"
|
||||
para=""whitebox.exe /L:240x320x16 ..\..\I486\300PPC.bin""
|
||||
dir=".\whitebox\"
|
||||
[306]
|
||||
fat=304
|
||||
name="Smart Phone"
|
||||
cmd="hiderun.vbs"
|
||||
para=""whitebox.exe /L:240x320x16 ..\..\I486\300SP.bin""
|
||||
dir=".\whitebox\"
|
||||
|
||||
[401]
|
||||
fat=19
|
||||
name="Windows CE.net 4.0"
|
||||
[402]
|
||||
fat=401
|
||||
name="Standard"
|
||||
cmd="hiderun.vbs"
|
||||
para=""whitebox.exe /L:800x600x16 ..\..\I486\400STD.bin""
|
||||
dir=".\whitebox\"
|
||||
[403]
|
||||
fat=401
|
||||
name="Thin Client"
|
||||
cmd="hiderun.vbs"
|
||||
para=""whitebox.exe /L:800x600x16 ..\..\I486\400TC.bin""
|
||||
dir=".\whitebox\"
|
||||
[404]
|
||||
fat=20
|
||||
name="Windows CE.net 4.1"
|
||||
[405]
|
||||
fat=404
|
||||
name="Standard"
|
||||
cmd="hiderun.vbs"
|
||||
para=""whitebox.exe /L:800x600x16 ..\..\I486\410STD.bin""
|
||||
dir=".\whitebox\"
|
||||
[406]
|
||||
fat=404
|
||||
name="Thin Client"
|
||||
cmd="hiderun.vbs"
|
||||
para=""whitebox.exe /L:800x600x16 ..\..\I486\410TC.bin""
|
||||
dir=".\whitebox\"
|
||||
[407]
|
||||
fat=21
|
||||
name="Windows CE.net 4.2"
|
||||
[408]
|
||||
fat=407
|
||||
name="Standard"
|
||||
cmd="hiderun.vbs"
|
||||
para=""whitebox.exe /L:800x600x16 ..\..\I486\420STD.bin""
|
||||
dir=".\whitebox\"
|
||||
[409]
|
||||
fat=407
|
||||
name="Thin Client"
|
||||
cmd="hiderun.vbs"
|
||||
para=""whitebox.exe /L:800x600x16 ..\..\I486\420TC.bin""
|
||||
dir=".\whitebox\"
|
||||
[410]
|
||||
fat=21
|
||||
name="Windows Mobile 2003"
|
||||
[411]
|
||||
fat=410
|
||||
name="Pocket PC"
|
||||
cmd="hiderun.vbs"
|
||||
para=""whitebox.exe /L:240x320x16 ..\..\I486\420PPC.bin""
|
||||
dir=".\whitebox\"
|
||||
[412]
|
||||
fat=410
|
||||
name="Smart Phone"
|
||||
cmd="hiderun.vbs"
|
||||
para=""whitebox.exe /L:240x320x16 ..\..\I486\420SP.bin""
|
||||
dir=".\whitebox\"
|
||||
[413]
|
||||
fat=22
|
||||
name="Windows Mobile 2003 SE"
|
||||
[414]
|
||||
fat=413
|
||||
name="Pocket PC"
|
||||
cmd="hiderun.vbs"
|
||||
para=""whitebox.exe /L:240x320x16 ..\..\I486\421PPC.bin""
|
||||
dir=".\whitebox\"
|
||||
[415]
|
||||
fat=413
|
||||
name="Smart Phone"
|
||||
cmd="hiderun.vbs"
|
||||
para=""whitebox.exe /L:240x320x16 ..\..\I486\421SP.bin""
|
||||
dir=".\whitebox\"
|
||||
|
||||
[501]
|
||||
fat=23
|
||||
name="Windows CE.net 5.0"
|
||||
[502]
|
||||
fat=501
|
||||
name="Standard"
|
||||
cmd="hiderun.vbs"
|
||||
para=""whitebox.exe /L:800x600x16 ..\..\I486\500STD.bin""
|
||||
dir=".\whitebox\"
|
||||
[503]
|
||||
fat=501
|
||||
name="Thin Client"
|
||||
cmd="hiderun.vbs"
|
||||
para=""whitebox.exe /L:800x600x16 ..\..\I486\500TC.bin""
|
||||
dir=".\whitebox\"
|
||||
[504]
|
||||
fat=501
|
||||
name="IP Phone"
|
||||
cmd="hiderun.vbs"
|
||||
para=""whitebox.exe /L:800x600x16 ..\..\I486\500IPP.bin""
|
||||
dir=".\whitebox\"
|
||||
[505]
|
||||
fat=23
|
||||
name="Networked Media Device 5.0"
|
||||
cmd="hiderun.vbs"
|
||||
para=""whitebox.exe /L:800x600x16 ..\..\I486\500NMD.bin""
|
||||
dir=".\whitebox\"
|
||||
[506]
|
||||
fat=24
|
||||
name="Windows Mobile 5.0"
|
||||
[507]
|
||||
fat=506
|
||||
name="Pocket PC"
|
||||
cmd="DeviceEmulator.exe"
|
||||
para="..\ARMV4\510PPC.bin /memsize 256"
|
||||
[508]
|
||||
fat=506
|
||||
name="Smart Phone"
|
||||
cmd="DeviceEmulator.exe"
|
||||
para="..\ARMV4\510SP.bin /memsize 256"
|
||||
[509]
|
||||
fat=24
|
||||
name="Windows Mobile 5.2"
|
||||
[510]
|
||||
fat=509
|
||||
name="Pocket PC"
|
||||
cmd="DeviceEmulator.exe"
|
||||
para="..\ARMV4\510PPC2.bin /memsize 256"
|
||||
[511]
|
||||
fat=509
|
||||
name="Smart Phone"
|
||||
cmd="DeviceEmulator.exe"
|
||||
para="..\ARMV4\510SP2.bin /memsize 256"
|
||||
[512]
|
||||
fat=25
|
||||
name="Windows Mobile 6.0"
|
||||
[513]
|
||||
fat=512
|
||||
name="Pocket PC"
|
||||
cmd="DeviceEmulator.exe"
|
||||
para="..\ARMV4\520PPC.bin /memsize 256"
|
||||
[514]
|
||||
fat=512
|
||||
name="Smart Phone"
|
||||
cmd="DeviceEmulator.exe"
|
||||
para="..\ARMV4\520SP.bin /memsize 256"
|
||||
[515]
|
||||
fat=25
|
||||
name="Windows Mobile 6.0.2"
|
||||
[516]
|
||||
fat=515
|
||||
name="Pocket PC"
|
||||
cmd="DeviceEmulator.exe"
|
||||
para="..\ARMV4\520PPC02.bin /memsize 256"
|
||||
[517]
|
||||
fat=515
|
||||
name="Smart Phone"
|
||||
cmd="DeviceEmulator.exe"
|
||||
para="..\ARMV4\520SP02.bin /memsize 256"
|
||||
[518]
|
||||
fat=25
|
||||
name="Windows Mobile 6.1"
|
||||
[519]
|
||||
fat=518
|
||||
name="Pocket PC"
|
||||
cmd="DeviceEmulator.exe"
|
||||
para="..\ARMV4\520PPC1.bin /memsize 256"
|
||||
[520]
|
||||
fat=518
|
||||
name="Smart Phone"
|
||||
cmd="DeviceEmulator.exe"
|
||||
para="..\ARMV4\520SP1.bin /memsize 256"
|
||||
[521]
|
||||
fat=25
|
||||
name="Windows Mobile 6.1.4"
|
||||
[522]
|
||||
fat=521
|
||||
name="Pocket PC"
|
||||
cmd="DeviceEmulator.exe"
|
||||
para="..\ARMV4\520PPC14.bin /memsize 256"
|
||||
[523]
|
||||
fat=521
|
||||
name="Smart Phone"
|
||||
cmd="DeviceEmulator.exe"
|
||||
para="..\ARMV4\520SP14.bin /memsize 256"
|
||||
[524]
|
||||
fat=25
|
||||
name="Windows Mobile 6.5"
|
||||
[525]
|
||||
fat=524
|
||||
name="Pocket PC"
|
||||
cmd="DeviceEmulator.exe"
|
||||
para="..\ARMV4\520PPC5.bin /memsize 256"
|
||||
[526]
|
||||
fat=524
|
||||
name="Smart Phone"
|
||||
cmd="DeviceEmulator.exe"
|
||||
para="..\ARMV4\520SP5.bin /memsize 256"
|
||||
[527]
|
||||
fat=25
|
||||
name="Windows Mobile 6.5.3"
|
||||
[528]
|
||||
fat=527
|
||||
name="Pocket PC"
|
||||
cmd="DeviceEmulator.exe"
|
||||
para="..\ARMV4\520PPC53.bin /memsize 256"
|
||||
[529]
|
||||
fat=527
|
||||
name="Smart Phone"
|
||||
cmd="DeviceEmulator.exe"
|
||||
para="..\ARMV4\520SP53.bin /memsize 256"
|
||||
|
||||
[601]
|
||||
fat=26
|
||||
name="Windows Embedded CE 6.0"
|
||||
[602]
|
||||
fat=601
|
||||
name="Standard"
|
||||
cmd="hiderun.vbs"
|
||||
para=""whitebox.exe /L:800x600x16 ..\..\I486\60xSTD.bin""
|
||||
dir=".\whitebox\"
|
||||
[603]
|
||||
fat=601
|
||||
name="Thin Client"
|
||||
cmd="hiderun.vbs"
|
||||
para=""whitebox.exe /L:800x600x16 ..\..\I486\60xTC.bin""
|
||||
dir=".\whitebox\"
|
||||
[604]
|
||||
fat=601
|
||||
name="IP Phone"
|
||||
cmd="hiderun.vbs"
|
||||
para=""whitebox.exe /L:800x600x16 ..\..\I486\60xIPP.bin""
|
||||
dir=".\whitebox\"
|
||||
[605]
|
||||
fat=601
|
||||
name="NMD UI(5.0)"
|
||||
cmd="hiderun.vbs"
|
||||
para=""whitebox.exe /L:800x600x16 ..\..\I486\60xNMD.bin""
|
||||
dir=".\whitebox\"
|
||||
|
||||
[701]
|
||||
fat=30
|
||||
name="Windows Embedded Compact 7.0"
|
||||
[702]
|
||||
fat=701
|
||||
name="Standard"
|
||||
cmd="hiderun.vbs"
|
||||
para=""whitebox.exe /L:800x600x16 ..\..\I486\700STD.bin""
|
||||
dir=".\whitebox\"
|
||||
[703]
|
||||
fat=701
|
||||
name="Thin Client"
|
||||
cmd="hiderun.vbs"
|
||||
para=""whitebox.exe /L:800x600x16 ..\..\I486\700TC.bin""
|
||||
dir=".\whitebox\"
|
||||
[704]
|
||||
fat=701
|
||||
name="Silverlight"
|
||||
[705]
|
||||
fat=704
|
||||
name="Theme A"
|
||||
cmd="hiderun.vbs"
|
||||
para=""whitebox.exe /L:800x600x16 ..\..\I486\700SL1.bin""
|
||||
dir=".\whitebox\"
|
||||
[706]
|
||||
fat=704
|
||||
name="Theme B"
|
||||
cmd="hiderun.vbs"
|
||||
para=""whitebox.exe /L:800x600x16 ..\..\I486\700SL2.bin""
|
||||
dir=".\whitebox\"
|
||||
[707]
|
||||
fat=704
|
||||
name="Theme C"
|
||||
cmd="hiderun.vbs"
|
||||
para=""whitebox.exe /L:800x600x16 ..\..\I486\700SL3.bin""
|
||||
dir=".\whitebox\"
|
||||
[708]
|
||||
fat=704
|
||||
name="Theme D"
|
||||
cmd="hiderun.vbs"
|
||||
para=""whitebox.exe /L:800x600x16 ..\..\I486\700SL4.bin""
|
||||
dir=".\whitebox\"
|
||||
[709]
|
||||
fat=30
|
||||
name="Automotive Embedded 7"
|
||||
cmd="hiderun.vbs"
|
||||
para=""whitebox.exe /L:800x600x16 ..\..\I486\700APC.bin""
|
||||
dir=".\whitebox\"
|
||||
[710]
|
||||
fat=30
|
||||
name="Windows Phone 7"
|
||||
cmd="hiderun.vbs"
|
||||
para="".\xdemgr 0 ..\..\ARMV40\700WP.bin""
|
||||
[711]
|
||||
fat=30
|
||||
name="Windows Phone 7 NoDo"
|
||||
cmd="hiderun.vbs"
|
||||
para="".\xdemgr 0 ..\..\ARMV40\700WPN.bin""
|
||||
[712]
|
||||
fat=31
|
||||
name="Windows Phone 7.5"
|
||||
cmd="hiderun.vbs"
|
||||
para="".\xdemgr 2 ..\..\ARMV40\710WP5.bin""
|
||||
[713]
|
||||
fat=31
|
||||
name="Windows Phone 7.5 Refresh"
|
||||
cmd="hiderun.vbs"
|
||||
para="".\xdemgr 2 ..\..\ARMV40\710WP5R.bin""
|
||||
[714]
|
||||
fat=31
|
||||
name="Windows Phone 7.8"
|
||||
cmd="hiderun.vbs"
|
||||
para="".\xdemgr 2 ..\..\ARMV40\710WP8.bin""
|
||||
|
||||
[801]
|
||||
fat=32
|
||||
name="Windows Embedded Compact 2013"
|
||||
[802]
|
||||
fat=801
|
||||
name="Standard"
|
||||
cmd="hiderun.vbs"
|
||||
para=""whitebox.exe /L:800x600x16 ..\..\I486\800STD.bin""
|
||||
dir=".\whitebox\"
|
||||
[803]
|
||||
fat=801
|
||||
name="Silverlight"
|
||||
[804]
|
||||
fat=803
|
||||
name="Theme A"
|
||||
cmd="hiderun.vbs"
|
||||
para=""whitebox.exe /L:800x600x16 ..\..\I486\800SL1.bin""
|
||||
dir=".\whitebox\"
|
||||
[805]
|
||||
fat=803
|
||||
name="Theme B"
|
||||
cmd="hiderun.vbs"
|
||||
para=""whitebox.exe /L:800x600x16 ..\..\I486\800SL2.bin""
|
||||
dir=".\whitebox\"
|
||||
[806]
|
||||
fat=803
|
||||
name="Theme C"
|
||||
cmd="hiderun.vbs"
|
||||
para=""whitebox.exe /L:800x600x16 ..\..\I486\800SL3.bin""
|
||||
dir=".\whitebox\"
|
||||
[807]
|
||||
fat=803
|
||||
name="Theme D"
|
||||
cmd="hiderun.vbs"
|
||||
para=""whitebox.exe /L:800x600x16 ..\..\I486\800SL4.bin""
|
||||
dir=".\whitebox\"
|
||||
78
WNT/menu3.exe/menu3.cpp
Normal file
@ -0,0 +1,78 @@
|
||||
// menu3.cpp : 定义应用程序的类行为。
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "menu3.h"
|
||||
#include "menu3Dlg.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#endif
|
||||
|
||||
|
||||
// Cmenu3App
|
||||
|
||||
BEGIN_MESSAGE_MAP(Cmenu3App, CWinApp)
|
||||
ON_COMMAND(ID_HELP, &CWinApp::OnHelp)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
// Cmenu3App 构造
|
||||
|
||||
Cmenu3App::Cmenu3App()
|
||||
{
|
||||
// TODO: 在此处添加构造代码,
|
||||
// 将所有重要的初始化放置在 InitInstance 中
|
||||
}
|
||||
|
||||
|
||||
// 唯一的一个 Cmenu3App 对象
|
||||
|
||||
Cmenu3App theApp;
|
||||
|
||||
|
||||
// Cmenu3App 初始化
|
||||
|
||||
BOOL Cmenu3App::InitInstance()
|
||||
{
|
||||
// 如果一个运行在 Windows XP 上的应用程序清单指定要
|
||||
// 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式,
|
||||
//则需要 InitCommonControlsEx()。否则,将无法创建窗口。
|
||||
INITCOMMONCONTROLSEX InitCtrls;
|
||||
InitCtrls.dwSize = sizeof(InitCtrls);
|
||||
// 将它设置为包括所有要在应用程序中使用的
|
||||
// 公共控件类。
|
||||
InitCtrls.dwICC = ICC_WIN95_CLASSES;
|
||||
InitCommonControlsEx(&InitCtrls);
|
||||
|
||||
CWinApp::InitInstance();
|
||||
|
||||
AfxEnableControlContainer();
|
||||
|
||||
// 标准初始化
|
||||
// 如果未使用这些功能并希望减小
|
||||
// 最终可执行文件的大小,则应移除下列
|
||||
// 不需要的特定初始化例程
|
||||
// 更改用于存储设置的注册表项
|
||||
// TODO: 应适当修改该字符串,
|
||||
// 例如修改为公司或组织名
|
||||
SetRegistryKey(_T("CE-Collection"));
|
||||
|
||||
Cmenu3Dlg dlg;
|
||||
m_pMainWnd = &dlg;
|
||||
INT_PTR nResponse = dlg.DoModal();
|
||||
if (nResponse == IDOK)
|
||||
{
|
||||
// TODO: 在此处放置处理何时用“确定”来关闭
|
||||
// 对话框的代码
|
||||
}
|
||||
else if (nResponse == IDCANCEL)
|
||||
{
|
||||
// TODO: 在此放置处理何时用“取消”来关闭
|
||||
// 对话框的代码
|
||||
}
|
||||
|
||||
// 由于对话框已关闭,所以将返回 FALSE 以便退出应用程序,
|
||||
// 而不是启动应用程序的消息泵。
|
||||
return FALSE;
|
||||
}
|
||||
31
WNT/menu3.exe/menu3.h
Normal file
@ -0,0 +1,31 @@
|
||||
// menu3.h : PROJECT_NAME 应用程序的主头文件
|
||||
//
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef __AFXWIN_H__
|
||||
#error "在包含此文件之前包含“stdafx.h”以生成 PCH 文件"
|
||||
#endif
|
||||
|
||||
#include "resource.h" // 主符号
|
||||
|
||||
|
||||
// Cmenu3App:
|
||||
// 有关此类的实现,请参阅 menu3.cpp
|
||||
//
|
||||
|
||||
class Cmenu3App : public CWinApp
|
||||
{
|
||||
public:
|
||||
Cmenu3App();
|
||||
|
||||
// 重写
|
||||
public:
|
||||
virtual BOOL InitInstance();
|
||||
|
||||
// 实现
|
||||
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
extern Cmenu3App theApp;
|
||||
213
WNT/menu3.exe/menu3.rc
Normal file
@ -0,0 +1,213 @@
|
||||
// Microsoft Visual C++ generated resource script.
|
||||
//
|
||||
#include "resource.h"
|
||||
|
||||
#define APSTUDIO_READONLY_SYMBOLS
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 2 resource.
|
||||
//
|
||||
#include "afxres.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#undef APSTUDIO_READONLY_SYMBOLS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// 中文(中华人民共和国) resources
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
|
||||
#ifdef _WIN32
|
||||
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
|
||||
#pragma code_page(936)
|
||||
#endif //_WIN32
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// TEXTINCLUDE
|
||||
//
|
||||
|
||||
1 TEXTINCLUDE
|
||||
BEGIN
|
||||
"resource.h\0"
|
||||
END
|
||||
|
||||
2 TEXTINCLUDE
|
||||
BEGIN
|
||||
"#include ""afxres.h""\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
3 TEXTINCLUDE
|
||||
BEGIN
|
||||
"#define _AFX_NO_SPLITTER_RESOURCES\r\n"
|
||||
"#define _AFX_NO_OLE_RESOURCES\r\n"
|
||||
"#define _AFX_NO_TRACKER_RESOURCES\r\n"
|
||||
"#define _AFX_NO_PROPERTY_RESOURCES\r\n"
|
||||
"\r\n"
|
||||
"#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)\r\n"
|
||||
"LANGUAGE 4, 2\r\n"
|
||||
"#pragma code_page(936)\r\n"
|
||||
"#include ""res\\menu3.rc2"" // 非 Microsoft Visual C++ 编辑的资源\r\n"
|
||||
"#include ""afxres.rc"" // 标准组件\r\n"
|
||||
"#endif\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Icon
|
||||
//
|
||||
|
||||
// Icon with lowest ID value placed first to ensure application icon
|
||||
// remains consistent on all systems.
|
||||
IDR_MAINFRAME ICON "res\\menu3.ico"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Dialog
|
||||
//
|
||||
|
||||
IDD_ABOUTBOX DIALOGEX 0, 0, 346, 344
|
||||
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "About CE-Collections"
|
||||
FONT 9, "宋体", 0, 0, 0x1
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "OK",IDOK,267,316,54,17,WS_GROUP
|
||||
CONTROL 130,IDC_STATIC,"Static",SS_BITMAP,6,4,333,67
|
||||
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,1,75,345,1
|
||||
LTEXT "CE-Collections Project",IDC_STATIC,43,81,89,8
|
||||
LTEXT "<VER>",IDC_STATIC1,43,93,278,8
|
||||
LTEXT "Develoment:",IDC_STATIC,43,215,45,8
|
||||
EDITTEXT IDC_EDIT1,48,228,273,78,ES_MULTILINE | ES_AUTOHSCROLL | ES_READONLY | WS_VSCROLL
|
||||
LTEXT "Copyright:",IDC_STATIC,43,115,41,8
|
||||
LTEXT "351Workshop 2022-2025",IDC_STATIC,48,127,85,8
|
||||
LTEXT "Microsoft Crop.",IDC_STATIC,48,139,61,8
|
||||
LTEXT "Thanks to:",IDC_STATIC,43,159,41,8
|
||||
LTEXT "FareastOnline Research 2025-2025",IDC_STATIC,48,183,129,8
|
||||
LTEXT "ONEW Studio 2022-2025",IDC_STATIC,48,171,85,8
|
||||
LTEXT "Compumuseum 2025-2025",IDC_STATIC,48,196,85,8
|
||||
END
|
||||
|
||||
IDD_MENU3_DIALOG DIALOGEX 0, 0, 683, 512
|
||||
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
EXSTYLE WS_EX_APPWINDOW
|
||||
FONT 9, "宋体", 0, 0, 0x1
|
||||
BEGIN
|
||||
CONTROL "",IDC_TREE1,"SysTreeView32",TVS_HASBUTTONS | TVS_HASLINES | WS_BORDER | WS_TABSTOP,265,137,385,295
|
||||
PUSHBUTTON "Run>>",IDOK,594,441,56,16
|
||||
LTEXT "Help",IDC_STATICBTN2,14,137,72,16
|
||||
LTEXT "Version list",IDC_STATICBTN3,14,160,72,16
|
||||
LTEXT "About...",IDC_STATICBTN1,14,203,72,16
|
||||
END
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Version
|
||||
//
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 1,0,0,1
|
||||
PRODUCTVERSION 1,0,0,1
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x1L
|
||||
#else
|
||||
FILEFLAGS 0x0L
|
||||
#endif
|
||||
FILEOS 0x4L
|
||||
FILETYPE 0x1L
|
||||
FILESUBTYPE 0x0L
|
||||
BEGIN
|
||||
BLOCK "StringFileInfo"
|
||||
BEGIN
|
||||
BLOCK "040004b0"
|
||||
BEGIN
|
||||
VALUE "CompanyName", "351Workshop"
|
||||
VALUE "FileDescription", "CE-Collections WinNT platform loader"
|
||||
VALUE "FileVersion", "2.02.Beta1.05"
|
||||
VALUE "InternalName", "menu3.exe"
|
||||
VALUE "LegalCopyright", "Copyright 351Workshop 2022-2025"
|
||||
VALUE "OriginalFilename", "menu3.exe"
|
||||
VALUE "ProductName", "CE-Collections"
|
||||
VALUE "ProductVersion", "2.02.Beta1.05"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
BEGIN
|
||||
VALUE "Translation", 0x400, 1200
|
||||
END
|
||||
END
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// DESIGNINFO
|
||||
//
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
GUIDELINES DESIGNINFO
|
||||
BEGIN
|
||||
IDD_ABOUTBOX, DIALOG
|
||||
BEGIN
|
||||
VERTGUIDE, 43
|
||||
VERTGUIDE, 48
|
||||
VERTGUIDE, 321
|
||||
END
|
||||
|
||||
IDD_MENU3_DIALOG, DIALOG
|
||||
BEGIN
|
||||
VERTGUIDE, 14
|
||||
VERTGUIDE, 86
|
||||
END
|
||||
END
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Bitmap
|
||||
//
|
||||
|
||||
IDB_BITMAP1 BITMAP "res\\background.bmp"
|
||||
IDB_BITMAP2 BITMAP "res\\about.bmp"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// String Table
|
||||
//
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_ABOUTBOX "About CE-Collections(&A)..."
|
||||
END
|
||||
|
||||
#endif // 中文(中华人民共和国) resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
#ifndef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 3 resource.
|
||||
//
|
||||
#define _AFX_NO_SPLITTER_RESOURCES
|
||||
#define _AFX_NO_OLE_RESOURCES
|
||||
#define _AFX_NO_TRACKER_RESOURCES
|
||||
#define _AFX_NO_PROPERTY_RESOURCES
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
|
||||
LANGUAGE 4, 2
|
||||
#pragma code_page(936)
|
||||
#include "res\menu3.rc2" // 非 Microsoft Visual C++ 编辑的资源
|
||||
#include "afxres.rc" // 标准组件
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#endif // not APSTUDIO_INVOKED
|
||||
|
||||
280
WNT/menu3.exe/menu3.vcproj
Normal file
@ -0,0 +1,280 @@
|
||||
<?xml version="1.0" encoding="gb2312"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="8.00"
|
||||
Name="menu3"
|
||||
ProjectGUID="{FA3449F6-31A9-4D7D-9FD6-4313C952F258}"
|
||||
RootNamespace="menu3"
|
||||
Keyword="MFCProj"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"
|
||||
/>
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
UseOfMFC="1"
|
||||
CharacterSet="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
MkTypLibCompatible="false"
|
||||
ValidateParameters="false"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
UsePrecompiledHeader="2"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="4"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
Culture="2052"
|
||||
AdditionalIncludeDirectories="$(IntDir)"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
LinkIncremental="2"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="2"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
UseOfMFC="1"
|
||||
CharacterSet="1"
|
||||
WholeProgramOptimization="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
MkTypLibCompatible="false"
|
||||
ValidateParameters="false"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG"
|
||||
MinimalRebuild="false"
|
||||
RuntimeLibrary="0"
|
||||
UsePrecompiledHeader="2"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
Culture="2052"
|
||||
AdditionalIncludeDirectories="$(IntDir)"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
LinkIncremental="1"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="2"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="Ô´Îļþ"
|
||||
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\menu3.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\menu3Dlg.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\stdafx.cpp"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="1"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="1"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Í·Îļþ"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\menu3.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\menu3Dlg.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Resource.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\stdafx.h"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="×ÊÔ´Îļþ"
|
||||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
|
||||
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\res\about.bmp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\res\background.bmp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\res\menu3.ico"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\menu3.rc"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\res\menu3.rc2"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<File
|
||||
RelativePath=".\ReadMe.txt"
|
||||
>
|
||||
</File>
|
||||
</Files>
|
||||
<Globals>
|
||||
<Global
|
||||
Name="RESOURCE_FILE"
|
||||
Value="menu3.rc"
|
||||
/>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
390
WNT/menu3.exe/menu3Dlg.cpp
Normal file
@ -0,0 +1,390 @@
|
||||
// menu3Dlg.cpp : 实现文件
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "menu3.h"
|
||||
#include "menu3Dlg.h"
|
||||
#include "afxwin.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#endif
|
||||
|
||||
|
||||
// 用于应用程序“关于”菜单项的 CAboutDlg 对话框
|
||||
|
||||
class CAboutDlg : public CDialog
|
||||
{
|
||||
public:
|
||||
CAboutDlg();
|
||||
|
||||
// 对话框数据
|
||||
enum { IDD = IDD_ABOUTBOX };
|
||||
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
|
||||
|
||||
// 实现
|
||||
protected:
|
||||
DECLARE_MESSAGE_MAP()
|
||||
public:
|
||||
CEdit m_edit1;
|
||||
CStatic m_textver;
|
||||
virtual BOOL OnInitDialog();
|
||||
};
|
||||
|
||||
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
|
||||
{
|
||||
}
|
||||
|
||||
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
DDX_Control(pDX, IDC_EDIT1, m_edit1);
|
||||
DDX_Control(pDX, IDC_STATIC1, m_textver);
|
||||
}
|
||||
|
||||
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
// Cmenu3Dlg 对话框
|
||||
|
||||
|
||||
|
||||
|
||||
Cmenu3Dlg::Cmenu3Dlg(CWnd* pParent /*=NULL*/)
|
||||
: CDialog(Cmenu3Dlg::IDD, pParent)
|
||||
{
|
||||
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
|
||||
}
|
||||
|
||||
void Cmenu3Dlg::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
DDX_Control(pDX, IDC_TREE1, m_tree);
|
||||
}
|
||||
|
||||
BEGIN_MESSAGE_MAP(Cmenu3Dlg, CDialog)
|
||||
ON_WM_SYSCOMMAND()
|
||||
ON_WM_PAINT()
|
||||
ON_WM_QUERYDRAGICON()
|
||||
//}}AFX_MSG_MAP
|
||||
ON_BN_CLICKED(IDCANCEL, &Cmenu3Dlg::OnBnClickedCancel)
|
||||
ON_BN_CLICKED(IDOK, &Cmenu3Dlg::OnBnClickedOk)
|
||||
ON_NOTIFY(NM_DBLCLK, IDC_TREE1, &Cmenu3Dlg::OnNMDblclkTree1)
|
||||
ON_WM_CTLCOLOR()
|
||||
ON_WM_LBUTTONUP()
|
||||
ON_WM_MOUSEMOVE()
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
// Cmenu3Dlg 消息处理程序
|
||||
|
||||
void Cmenu3Dlg::MyExpandTree(HTREEITEM hTreeItem)
|
||||
{
|
||||
if (!m_tree.ItemHasChildren(hTreeItem))//如果树控件根节点没有子节点则返回
|
||||
{
|
||||
return;
|
||||
}
|
||||
HTREEITEM hNextItem = m_tree.GetChildItem(hTreeItem);//若树控件的根节点有子节点则获取根节点的子节点
|
||||
while (hNextItem != NULL)//若有
|
||||
{
|
||||
MyExpandTree(hNextItem);//递归,展开子节点下的所有子节点
|
||||
hNextItem = m_tree.GetNextItem(hNextItem, TVGN_NEXT);//获取根节点的下一个子节点
|
||||
}
|
||||
m_tree.Expand(hTreeItem, TVE_EXPAND);//展开节点
|
||||
}
|
||||
|
||||
TCHAR lpPath[255] = { 0 };
|
||||
HTREEITEM *treeStr;
|
||||
BOOL Cmenu3Dlg::OnInitDialog()
|
||||
{
|
||||
CDialog::OnInitDialog();
|
||||
|
||||
// 将“关于...”菜单项添加到系统菜单中。
|
||||
|
||||
// IDM_ABOUTBOX 必须在系统命令范围内。
|
||||
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
|
||||
ASSERT(IDM_ABOUTBOX < 0xF000);
|
||||
|
||||
CMenu* pSysMenu = GetSystemMenu(FALSE);
|
||||
if (pSysMenu != NULL)
|
||||
{
|
||||
CString strAboutMenu;
|
||||
strAboutMenu.LoadString(IDS_ABOUTBOX);
|
||||
if (!strAboutMenu.IsEmpty())
|
||||
{
|
||||
pSysMenu->AppendMenu(MF_SEPARATOR);
|
||||
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
|
||||
}
|
||||
}
|
||||
|
||||
// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
|
||||
// 执行此操作
|
||||
SetIcon(m_hIcon, TRUE); // 设置大图标
|
||||
SetIcon(m_hIcon, FALSE); // 设置小图标
|
||||
|
||||
// TODO: 在此添加额外的初始化代码
|
||||
wsprintf(lpPath, L".\\menu.enus");
|
||||
|
||||
GetDlgItem(IDC_STATICBTN1)->GetWindowRect(&m_rectbtn1);
|
||||
ScreenToClient(&m_rectbtn1);
|
||||
GetDlgItem(IDC_STATICBTN2)->GetWindowRect(&m_rectbtn2);
|
||||
ScreenToClient(&m_rectbtn2);
|
||||
GetDlgItem(IDC_STATICBTN3)->GetWindowRect(&m_rectbtn3);
|
||||
ScreenToClient(&m_rectbtn3);
|
||||
|
||||
SetWindowLong(m_hWnd, GWL_STYLE, WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX);
|
||||
|
||||
int iNodeNum = GetPrivateProfileInt(L"0", L"nodeNum", 255, lpPath);
|
||||
treeStr = new HTREEITEM[iNodeNum]();
|
||||
for (int i = 0; i < iNodeNum; i++)
|
||||
{
|
||||
TCHAR iniCBuffer[255] = { 0 };
|
||||
wsprintf(iniCBuffer, L"%d", i);
|
||||
int currentFat = GetPrivateProfileInt(iniCBuffer, L"fat", -1, lpPath);
|
||||
if (currentFat == -1)
|
||||
continue;//201C101
|
||||
|
||||
TCHAR currentName[255] = { 0 };
|
||||
GetPrivateProfileString(iniCBuffer, L"name", NULL, currentName, 255, lpPath);
|
||||
if (currentFat == -2)
|
||||
treeStr[0] = m_tree.InsertItem(currentName, 1, 0, TVI_ROOT);
|
||||
else
|
||||
treeStr[i] = m_tree.InsertItem(currentName, 1, 0, treeStr[currentFat]);
|
||||
}
|
||||
|
||||
MyExpandTree(m_tree.GetRootItem());
|
||||
|
||||
|
||||
return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
|
||||
}
|
||||
|
||||
void Cmenu3Dlg::OnSysCommand(UINT nID, LPARAM lParam)
|
||||
{
|
||||
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
|
||||
{
|
||||
CAboutDlg dlgAbout;
|
||||
dlgAbout.DoModal();
|
||||
}
|
||||
else
|
||||
{
|
||||
CDialog::OnSysCommand(nID, lParam);
|
||||
}
|
||||
}
|
||||
|
||||
// 如果向对话框添加最小化按钮,则需要下面的代码
|
||||
// 来绘制该图标。对于使用文档/视图模型的 MFC 应用程序,
|
||||
// 这将由框架自动完成。
|
||||
|
||||
void Cmenu3Dlg::OnPaint()
|
||||
{
|
||||
if (IsIconic())
|
||||
{
|
||||
CPaintDC dc(this); // 用于绘制的设备上下文
|
||||
|
||||
SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
|
||||
|
||||
// 使图标在工作矩形中居中
|
||||
int cxIcon = GetSystemMetrics(SM_CXICON);
|
||||
int cyIcon = GetSystemMetrics(SM_CYICON);
|
||||
CRect rect;
|
||||
GetClientRect(&rect);
|
||||
int x = (rect.Width() - cxIcon + 1) / 2;
|
||||
int y = (rect.Height() - cyIcon + 1) / 2;
|
||||
|
||||
// 绘制图标
|
||||
dc.DrawIcon(x, y, m_hIcon);
|
||||
}
|
||||
else
|
||||
{
|
||||
//CDialog::OnPaint();
|
||||
CPaintDC dc(this);
|
||||
CRect rect;
|
||||
GetClientRect(&rect);
|
||||
CDC dcMem;
|
||||
dcMem.CreateCompatibleDC(&dc);
|
||||
CBitmap bmpBackground;
|
||||
bmpBackground.LoadBitmap(IDB_BITMAP1); //对话框的背景图片
|
||||
|
||||
BITMAP bitmap;
|
||||
bmpBackground.GetBitmap(&bitmap);
|
||||
CBitmap *pbmpOld = dcMem.SelectObject(&bmpBackground);
|
||||
dc.StretchBlt(0, 0, rect.Width(), rect.Height(), &dcMem, 0, 0, bitmap.bmWidth, bitmap.bmHeight, SRCCOPY);
|
||||
}
|
||||
}
|
||||
|
||||
//当用户拖动最小化窗口时系统调用此函数取得光标显示。
|
||||
//
|
||||
HCURSOR Cmenu3Dlg::OnQueryDragIcon()
|
||||
{
|
||||
return static_cast<HCURSOR>(m_hIcon);
|
||||
}
|
||||
|
||||
|
||||
void Cmenu3Dlg::OnBnClickedCancel()
|
||||
{
|
||||
// TODO: 在此添加控件通知处理程序代码
|
||||
OnCancel();
|
||||
}
|
||||
|
||||
void Cmenu3Dlg::OnBnClickedOk()
|
||||
{
|
||||
// TODO: 在此添加控件通知处理程序代码
|
||||
//OnOK();
|
||||
HTREEITEM hselected = m_tree.GetSelectedItem();
|
||||
int currentTreeID = 0;
|
||||
int iNodeNum = GetPrivateProfileInt(L"0", L"nodeNum", 255, lpPath);
|
||||
for (; currentTreeID < iNodeNum; currentTreeID++)
|
||||
{
|
||||
if (hselected == treeStr[currentTreeID])
|
||||
break;
|
||||
}
|
||||
|
||||
TCHAR currentINIHead[255] = { 0 };
|
||||
TCHAR currentINICmd[255] = { 0 };
|
||||
TCHAR currentINIPara[255] = { 0 };
|
||||
TCHAR currentINIDir[255] = { 0 };
|
||||
wsprintf(currentINIHead, L"%d", currentTreeID);
|
||||
GetPrivateProfileString(currentINIHead, L"cmd", NULL, currentINICmd, 255, lpPath);
|
||||
GetPrivateProfileString(currentINIHead, L"para", NULL, currentINIPara, 255, lpPath);
|
||||
GetPrivateProfileString(currentINIHead, L"dir", NULL, currentINIDir, 255, lpPath);
|
||||
if (currentINICmd[0] != NULL)
|
||||
{
|
||||
ShellExecute(NULL, L"open", currentINICmd, currentINIPara, currentINIDir, SW_SHOWNORMAL);
|
||||
}
|
||||
}
|
||||
|
||||
void Cmenu3Dlg::OnNMDblclkTree1(NMHDR *pNMHDR, LRESULT *pResult)
|
||||
{
|
||||
// TODO: 在此添加控件通知处理程序代码
|
||||
*pResult = 0;
|
||||
OnBnClickedOk();
|
||||
}
|
||||
|
||||
HBRUSH Cmenu3Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
|
||||
{
|
||||
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
|
||||
|
||||
// TODO: 在此更改 DC 的任何属性
|
||||
if (pWnd->GetDlgCtrlID() == IDC_STATICBTN1 ||
|
||||
pWnd->GetDlgCtrlID() == IDC_STATICBTN2 ||
|
||||
pWnd->GetDlgCtrlID() == IDC_STATICBTN3)
|
||||
{
|
||||
pDC->SetTextColor(RGB(64,148,199));
|
||||
}
|
||||
// TODO: 如果默认的不是所需画笔,则返回另一个画笔
|
||||
return hbr;
|
||||
}
|
||||
|
||||
void Cmenu3Dlg::OnLButtonUp(UINT nFlags, CPoint point)
|
||||
{
|
||||
// TODO: 在此添加消息处理程序代码和/或调用默认值
|
||||
if (point.x > m_rectbtn1.left && point.x < m_rectbtn1.right && point.y < m_rectbtn1.bottom && point.y > m_rectbtn1.top)
|
||||
{
|
||||
CAboutDlg dlgAbout;
|
||||
dlgAbout.DoModal();
|
||||
}
|
||||
else if (point.x > m_rectbtn2.left && point.x < m_rectbtn2.right && point.y < m_rectbtn2.bottom && point.y > m_rectbtn2.top)
|
||||
{
|
||||
ShellExecute(NULL, L"open", L"..\\DOCS\\HELP.txt", NULL, NULL, SW_SHOWNORMAL);
|
||||
}
|
||||
else if (point.x > m_rectbtn3.left && point.x < m_rectbtn3.right && point.y < m_rectbtn3.bottom && point.y > m_rectbtn3.top)
|
||||
{
|
||||
ShellExecute(NULL, L"open", L"..\\DOCS\\VERS.bmp", NULL, NULL, SW_SHOWNORMAL);
|
||||
}
|
||||
CDialog::OnLButtonUp(nFlags, point);
|
||||
}
|
||||
|
||||
void Cmenu3Dlg::OnMouseMove(UINT nFlags, CPoint point)
|
||||
{
|
||||
// TODO: 在此添加消息处理程序代码和/或调用默认值
|
||||
if ((point.x > m_rectbtn1.left && point.x < m_rectbtn1.right && point.y < m_rectbtn1.bottom && point.y > m_rectbtn1.top) ||
|
||||
(point.x > m_rectbtn2.left && point.x < m_rectbtn2.right && point.y < m_rectbtn2.bottom && point.y > m_rectbtn2.top) ||
|
||||
(point.x > m_rectbtn3.left && point.x < m_rectbtn3.right && point.y < m_rectbtn3.bottom && point.y > m_rectbtn3.top))
|
||||
{
|
||||
HCURSOR hCursor;
|
||||
hCursor = ::LoadCursor ( NULL, IDC_HAND );
|
||||
::SetCursor ( hCursor );
|
||||
}
|
||||
CDialog::OnMouseMove(nFlags, point);
|
||||
}
|
||||
|
||||
TCHAR* AsciiToUnicode(char *str)
|
||||
{
|
||||
DWORD dwNum = 0;
|
||||
dwNum = MultiByteToWideChar(CP_ACP, 0, str, -1, NULL, 0);
|
||||
TCHAR* pwHostName = new TCHAR[dwNum];
|
||||
MultiByteToWideChar(CP_ACP, 0, str, -1, pwHostName, dwNum);
|
||||
return pwHostName;
|
||||
}
|
||||
|
||||
BOOL CAboutDlg::OnInitDialog()
|
||||
{
|
||||
CDialog::OnInitDialog();
|
||||
|
||||
// TODO: 在此添加额外的初始化
|
||||
|
||||
ShowWindow(SW_NORMAL);
|
||||
CRect rtDesk;
|
||||
CRect rtDlg;
|
||||
::GetWindowRect(::GetDesktopWindow(), &rtDesk);
|
||||
GetWindowRect(&rtDlg);
|
||||
int iXpos = rtDesk.Width() / 2 - rtDlg.Width() / 2;
|
||||
int iYpos = rtDesk.Height() / 2 - rtDlg.Height() / 2;
|
||||
SetWindowPos(NULL, iXpos, iYpos, 0, 0, SWP_NOOWNERZORDER | SWP_NOSIZE | SWP_NOZORDER);
|
||||
|
||||
TCHAR lpPath[255] = { 0 };
|
||||
wsprintf(lpPath, L"..\\CECD0.20");
|
||||
char buffer[255] = { 0 };
|
||||
HANDLE hFile = CreateFile(
|
||||
lpPath, // 文件名
|
||||
GENERIC_READ, // 读权限
|
||||
0, // 不共享
|
||||
NULL, // 安全属性
|
||||
OPEN_EXISTING, // 打开已存在的文件
|
||||
FILE_ATTRIBUTE_NORMAL, // 文件属性
|
||||
NULL // 模板文件的句柄
|
||||
);
|
||||
if (hFile == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
//MessageBox(L"Can't read CECD0.20");
|
||||
//return 1;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
// 确定文件大小
|
||||
DWORD dwFileSize = GetFileSize(hFile, NULL);
|
||||
// 分配内存读取文件
|
||||
DWORD dwRead = 0;
|
||||
// 读取文件内容
|
||||
if (ReadFile(hFile, buffer, dwFileSize, &dwRead, NULL))
|
||||
{
|
||||
buffer[dwFileSize] = '\0'; // 添加字符串终止符
|
||||
}
|
||||
// 关闭文件句柄
|
||||
CloseHandle(hFile);
|
||||
}
|
||||
|
||||
|
||||
GetDlgItem(IDC_STATIC1)->SetWindowText(AsciiToUnicode(buffer));
|
||||
|
||||
GetDlgItem(IDC_EDIT1)->SetWindowText( L"Developer\r\n"
|
||||
L" 351 351Workshop@Bilibili\r\n"
|
||||
L"Sponsor\r\n"
|
||||
L" IBM IBM_Official@Bilibili\r\n"
|
||||
L" Dr.Quest 蓬岸@知乎\r\n"
|
||||
L"Image Providing\r\n"
|
||||
L" Alexis lucss21a@Discord\r\n"
|
||||
L"Artworks\r\n"
|
||||
L" WinPad とある科学の手机副屏@Bilibili\r\n"
|
||||
L"Guidance and Testing\r\n"
|
||||
L" Inter -INTER_INIT-@Bilibili\r\n"
|
||||
L" GoldApple 不务正业的金苹果@Bilibili\r\n"
|
||||
L" Zesa LinuxMEMZ@Bilibili\r\n"
|
||||
L" DZY DZY20070614@Bilibili\r\n");
|
||||
return TRUE; // return TRUE unless you set the focus to a control
|
||||
// 异常: OCX 属性页应返回 FALSE
|
||||
}
|
||||
44
WNT/menu3.exe/menu3Dlg.h
Normal file
@ -0,0 +1,44 @@
|
||||
// menu3Dlg.h : 头文件
|
||||
//
|
||||
|
||||
#pragma once
|
||||
#include "afxcmn.h"
|
||||
|
||||
|
||||
// Cmenu3Dlg 对话框
|
||||
class Cmenu3Dlg : public CDialog
|
||||
{
|
||||
// 构造
|
||||
public:
|
||||
Cmenu3Dlg(CWnd* pParent = NULL); // 标准构造函数
|
||||
|
||||
// 对话框数据
|
||||
enum { IDD = IDD_MENU3_DIALOG };
|
||||
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
|
||||
|
||||
|
||||
// 实现
|
||||
protected:
|
||||
HICON m_hIcon;
|
||||
|
||||
// 生成的消息映射函数
|
||||
virtual BOOL OnInitDialog();
|
||||
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
|
||||
afx_msg void OnPaint();
|
||||
afx_msg HCURSOR OnQueryDragIcon();
|
||||
DECLARE_MESSAGE_MAP()
|
||||
public:
|
||||
afx_msg void OnBnClickedCancel();
|
||||
afx_msg void OnBnClickedOk();
|
||||
void MyExpandTree(HTREEITEM hTreeItem);
|
||||
CTreeCtrl m_tree;
|
||||
afx_msg void OnNMDblclkTree1(NMHDR *pNMHDR, LRESULT *pResult);
|
||||
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
|
||||
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
|
||||
CRect m_rectbtn1;
|
||||
CRect m_rectbtn2;
|
||||
CRect m_rectbtn3;
|
||||
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
|
||||
};
|
||||
BIN
WNT/menu3.exe/res/Thumbs.db
Normal file
|
Before Width: | Height: | Size: 146 KiB After Width: | Height: | Size: 146 KiB |
|
Before Width: | Height: | Size: 2.3 MiB After Width: | Height: | Size: 2.3 MiB |
|
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 39 KiB |
|
Before Width: | Height: | Size: 766 B After Width: | Height: | Size: 766 B |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
13
WNT/menu3.exe/res/menu3.rc2
Normal file
@ -0,0 +1,13 @@
|
||||
//
|
||||
// menu3.RC2 - Microsoft Visual C++ 不会直接编辑的资源
|
||||
//
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#error 此文件不能由 Microsoft Visual C++ 编辑
|
||||
#endif //APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// 在此处添加手动编辑的资源...
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
28
WNT/menu3.exe/resource.h
Normal file
@ -0,0 +1,28 @@
|
||||
//{{NO_DEPENDENCIES}}
|
||||
// Microsoft Visual C++ generated include file.
|
||||
// Used by menu3.rc
|
||||
//
|
||||
#define IDM_ABOUTBOX 0x0010
|
||||
#define IDD_ABOUTBOX 100
|
||||
#define IDS_ABOUTBOX 101
|
||||
#define IDD_MENU3_DIALOG 102
|
||||
#define IDR_MAINFRAME 128
|
||||
#define IDB_BITMAP1 129
|
||||
#define IDB_BITMAP2 130
|
||||
#define IDC_TREE1 1000
|
||||
#define IDC_EDIT1 1005
|
||||
#define IDC_STATICBTN1 1009
|
||||
#define IDC_STATICBTN2 1010
|
||||
#define IDC_STATICBTN3 1011
|
||||
#define IDC_STATIC1 1012
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 131
|
||||
#define _APS_NEXT_COMMAND_VALUE 32771
|
||||
#define _APS_NEXT_CONTROL_VALUE 1013
|
||||
#define _APS_NEXT_SYMED_VALUE 101
|
||||
#endif
|
||||
#endif
|
||||
7
WNT/menu3.exe/stdafx.cpp
Normal file
@ -0,0 +1,7 @@
|
||||
// stdafx.cpp : 只包括标准包含文件的源文件
|
||||
// menu3.pch 将作为预编译头
|
||||
// stdafx.obj 将包含预编译类型信息
|
||||
|
||||
#include "stdafx.h"
|
||||
|
||||
|
||||
73
WNT/menu3.exe/stdafx.h
Normal file
@ -0,0 +1,73 @@
|
||||
// stdafx.h : 标准系统包含文件的包含文件,
|
||||
// 或是经常使用但不常更改的
|
||||
// 特定于项目的包含文件
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef _SECURE_ATL
|
||||
#define _SECURE_ATL 1
|
||||
#endif
|
||||
|
||||
#ifndef VC_EXTRALEAN
|
||||
#define VC_EXTRALEAN // 从 Windows 头中排除极少使用的资料
|
||||
#endif
|
||||
|
||||
// 如果您必须使用下列所指定的平台之前的平台,则修改下面的定义。
|
||||
// 有关不同平台的相应值的最新信息,请参考 MSDN。
|
||||
#ifndef WINVER // 允许使用特定于 Windows XP 或更高版本的功能。
|
||||
#define WINVER 0x0501 // 将此值更改为相应的值,以适用于 Windows 的其他版本。
|
||||
#endif
|
||||
|
||||
#ifndef _WIN32_WINNT // 允许使用特定于 Windows XP 或更高版本的功能。
|
||||
#define _WIN32_WINNT 0x0501 // 将此值更改为相应的值,以适用于 Windows 的其他版本。
|
||||
#endif
|
||||
|
||||
#ifndef _WIN32_WINDOWS // 允许使用特定于 Windows 98 或更高版本的功能。
|
||||
#define _WIN32_WINDOWS 0x0410 // 将它更改为适合 Windows Me 或更高版本的相应值。
|
||||
#endif
|
||||
|
||||
#ifndef _WIN32_IE // 允许使用特定于 IE 6.0 或更高版本的功能。
|
||||
#define _WIN32_IE 0x0600 // 将此值更改为相应的值,以适用于 IE 的其他版本。值。
|
||||
#endif
|
||||
|
||||
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // 某些 CString 构造函数将是显式的
|
||||
|
||||
// 关闭 MFC 对某些常见但经常可放心忽略的警告消息的隐藏
|
||||
#define _AFX_ALL_WARNINGS
|
||||
|
||||
#include <afxwin.h> // MFC 核心组件和标准组件
|
||||
#include <afxext.h> // MFC 扩展
|
||||
|
||||
|
||||
#include <afxdisp.h> // MFC 自动化类
|
||||
|
||||
|
||||
|
||||
#ifndef _AFX_NO_OLE_SUPPORT
|
||||
#include <afxdtctl.h> // MFC 对 Internet Explorer 4 公共控件的支持
|
||||
#endif
|
||||
#ifndef _AFX_NO_AFXCMN_SUPPORT
|
||||
#include <afxcmn.h> // MFC 对 Windows 公共控件的支持
|
||||
#endif // _AFX_NO_AFXCMN_SUPPORT
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifdef _UNICODE
|
||||
#if defined _M_IX86
|
||||
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
|
||||
#elif defined _M_IA64
|
||||
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='ia64' publicKeyToken='6595b64144ccf1df' language='*'\"")
|
||||
#elif defined _M_X64
|
||||
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")
|
||||
#else
|
||||
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||