📄 mainwnd.h
字号:
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 预处理
#pragma once
#include <Windows.h>
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// CMainWnd 类
class CMainWnd
{
public:
static HWND m_hWnd; // 窗口句柄
static HWND m_hMenuBar; // 菜单栏句柄
static HMENU m_hMenu; // 菜单句柄
public:
// 创建主窗口
static HWND Create();
// 显示主窗口
static VOID Show(INT iCmdShow = SW_SHOWNORMAL);
private:
// 回调函数
static LRESULT CALLBACK MainWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
// 窗口被创建
static VOID OnCreate();
// 命令处理
static VOID OnCommand(WPARAM wParam, LPARAM lParam = 0);
// 弹出菜单
static VOID OnMenuPopup(HMENU hMenu);
public:
// 获取菜单项文本
inline static BOOL GetMenuText(UINT uCmd, PTSTR ptzText)
{
MENUITEMINFO miItem;
miItem.cbSize= sizeof(MENUITEMINFO);
miItem.fMask = MIIM_TYPE;
miItem.cch = MAX_PATH;
miItem.dwTypeData = ptzText;
return GetMenuItemInfo(m_hMenu, uCmd, FALSE, &miItem);
}
// 获取菜单项文本
inline static BOOL IsMenuChecked(UINT uCmd)
{
MENUITEMINFO miItem;
miItem.cbSize= sizeof(MENUITEMINFO);
miItem.fMask = MIIM_STATE;
return GetMenuItemInfo(m_hMenu, uCmd, FALSE, &miItem) && (miItem.fState & MFS_CHECKED);
}
// 使菜单有效
inline static BOOL EnableMenu(UINT uCmd, BOOL bEnable = TRUE)
{
return EnableMenuItem(m_hMenu, uCmd, bEnable ? MF_ENABLED : MF_GRAYED);
}
// 使菜单选择
inline static BOOL CheckMenu(UINT uCmd, BOOL bChecked = TRUE)
{
return CheckMenuItem(m_hMenu, uCmd, bChecked ? MF_CHECKED : MF_UNCHECKED);
}
// 使菜单单选选择
inline static BOOL CheckMenuRadio(UINT uFirst, UINT uLast, UINT uCmd)
{
return CheckMenuRadioItem(m_hMenu, uFirst, uLast, uCmd, MF_BYCOMMAND);
}
public:
// 消息框
inline static INT MsgBox(PCTSTR ptzText, PCTSTR ptzCaption = STR_AppName, UINT uType = MB_ICONINFORMATION)
{
return MessageBox(m_hWnd, ptzText, ptzCaption, uType);
}
// 错误提示框
inline static INT ErrBox(PCTSTR ptzText, PCTSTR ptzCaption = STR_AppName)
{
return MsgBox(ptzText, ptzCaption, MB_ICONSTOP);
}
// 消息框
inline static INT MsgBox(PCTSTR ptzText, UINT uCmd, UINT uType = MB_ICONINFORMATION)
{
TCHAR tzCmd[MAX_PATH];
TCHAR tzCaption[MAX_PATH];
GetMenuText(uCmd, tzCmd);
wsprintf(tzCaption, TEXT("%s - %s"), STR_AppName, tzCmd);
return MsgBox(ptzText, tzCaption, uType);
}
// 错误提示框
inline static INT ErrBox(PCTSTR ptzText, UINT uCmd)
{
return MsgBox(ptzText, uCmd, MB_ICONSTOP);
}
};
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -