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

📄 mainwnd.cpp

📁 SmartPhone的任务管理器: 包括关闭任务、切换任务、查看任务属性、新建任务等功能
💻 CPP
字号:



////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 预处理
#include "Main.h"
#include "MainWnd.h"
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// CMainWnd 类静态变量
HWND CMainWnd::m_hWnd = NULL;
HWND CMainWnd::m_hMenuBar = NULL;
HMENU CMainWnd::m_hMenu = NULL;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 创建主窗口
HWND CMainWnd::Create()
{
	// 注册主窗口类
	WNDCLASS wcClass = {0};
	wcClass.style = CS_VREDRAW | CS_HREDRAW;
	wcClass.lpfnWndProc = MainWndProc;
	wcClass.hInstance = g_hInst;
	wcClass.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH);
	wcClass.lpszClassName = STR_AppName;
	RegisterClass(&wcClass);

	// 创建主窗口
	return CreateWindow(STR_AppName, STR_AppName, WS_CLIPCHILDREN,
		CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
		NULL, NULL, g_hInst, NULL);
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 显示主窗口
VOID CMainWnd::Show(INT iCmdShow)
{
	// 显示主窗口
	ShowWindow(m_hWnd, iCmdShow);
	UpdateWindow(m_hWnd);

	// 消息循环
	MSG msgMsg;
	HACCEL hAccel = LoadAccelerators(g_hInst, MAKEINTRESOURCE(IDR_Accel));
	while (GetMessage(&msgMsg, NULL, 0, 0))
	{
		if (TranslateAccelerator(m_hWnd, hAccel, &msgMsg) == FALSE)
		{
			TranslateMessage(&msgMsg);
			DispatchMessage(&msgMsg);
		}
	}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 回调函数
LRESULT CALLBACK CMainWnd::MainWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	switch (uMsg)
	{
	case WM_CREATE:
		// 窗口被创建
		m_hWnd = hWnd;
		OnCreate();
		break;

	case WM_SETFOCUS:
		// 设置焦点
		SetFocus(CListView::m_hWnd);
		break;

	case WM_ACTIVATE:
		// 激活窗口
		_ExIf(LOWORD(wParam) != WA_INACTIVE, CListView::Refresh());
		break;

	case WM_COMMAND:
		// 命令处理
		OnCommand(wParam, lParam);
		break;

	/*case WM_NOTIFY:
		// 通知消息
		if ((((LPNMHDR) lParam)->code == LVN_KEYDOWN) && _IsNum(((LPNMLVKEYDOWN) lParam)->wVKey))
		{
			CListView::Goto((((LPNMLVKEYDOWN) lParam)->wVKey) - '0');
		}
		break;*/

	case WM_INITMENUPOPUP:
		// 弹出菜单
		OnMenuPopup((HMENU) wParam);
		break;

	case WM_HOTKEY:
		// 热键消息
		_ExIf(HIWORD(lParam) == VK_TBACK, OnCommand(IDM_Exit));
		break;

	case WM_DESTROY:
		// 窗口被销毁
		PostQuitMessage(0);
		return 0;
	}

	return DefWindowProc(hWnd, uMsg, wParam, lParam);
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 窗口被创建
VOID CMainWnd::OnCreate()
{
	// 创建菜单
	SHMENUBARINFO mbiButtonMenu = {0};
	mbiButtonMenu.cbSize = sizeof(SHMENUBARINFO);
	mbiButtonMenu.hwndParent = m_hWnd;
	mbiButtonMenu.nToolBarId = IDR_Menu;
	mbiButtonMenu.hInstRes = g_hInst;
	if (SHCreateMenuBar(&mbiButtonMenu))
    {
		m_hMenuBar = mbiButtonMenu.hwndMB;
		m_hMenu = (HMENU) SendMessage(m_hMenuBar, SHCMBM_GETMENU, 0, 0);

		// 设置后退键
		SendMessage(m_hMenuBar, SHCMBM_OVERRIDEKEY, VK_TBACK,
			MAKELPARAM(SHMBOF_NODEFAULT | SHMBOF_NOTIFY, SHMBOF_NODEFAULT | SHMBOF_NOTIFY));

		// 创建列表视图
		CListView::Create();
	}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 命令处理
VOID CMainWnd::OnCommand(WPARAM wParam, LPARAM lParam)
{
	switch (LOWORD(wParam))
	{
	case IDM_Close:
		// 关闭任务
		CListView::Close();
		break;

	case IDM_CloseOthers:
		// 关闭其它
		CListView::CloseAll(TRUE);
		break;

	case IDM_CloseAll:
		// 关闭全部
		CListView::CloseAll();
		break;

	case IDM_Goto:
		// 转到
		CListView::Goto();
		break;

	case IDM_Goto0:
	case IDM_Goto1:
	case IDM_Goto2:
	case IDM_Goto3:
	case IDM_Goto4:
	case IDM_Goto5:
	case IDM_Goto6:
	case IDM_Goto7:
	case IDM_Goto8:
	case IDM_Goto9:
		// 转到
		CListView::Goto(LOWORD(wParam) - IDM_Goto0);
		break;

	case IDM_Properties:
		// 属性
		CListView::View();
		break;

	case IDM_View_Toggle:
		// 切换
		CListView::Toggle();
		break;

	case IDM_View_Task:
	case IDM_View_Process:
		// 任务/进程
		CListView::Refresh(LOWORD(wParam));
		break;

	case IDM_View_Power:
		// 电源状态
		CStatus::ShowPower();
		break;

	case IDM_View_Storage:
		// 存储状态
		CStatus::ShowStorage();
		break;

	case IDM_Help_ShowSysApp:
		// 显示系统程序
		CheckMenu(IDM_Help_ShowSysApp, !IsMenuChecked(IDM_Help_ShowSysApp));

	case IDM_View_Refresh:
		// 刷新
		CListView::Refresh();
		break;

	case IDM_Help_CeleTask:
		// 开始菜单快捷方式
		CShortcut::OnShortcut(IDM_Help_CeleTask);
		break;

	case IDM_Help_CloseAll:
		// 开始菜单快捷方式
		CShortcut::OnShortcut(IDM_Help_CloseAll, TEXT(" -Close"), IDI_Close);
		break;

	case IDM_Help_Task:
		// 右键按钮快捷方式
		CShortcut::OnRButton();
		break;

	case IDM_Help_HotKey:
		// 热键
		MsgBox(STR_HotKeyMsg, IDM_Help_HotKey);
		break;

	case IDM_Help_About:
		// 关于
		MsgBox(STR_AboutMsg, IDM_Help_About);
		break;

	case IDM_Exit:
		// 退出
		DestroyWindow(m_hWnd);
		break;
	}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 弹出菜单
VOID CMainWnd::OnMenuPopup(HMENU hMenu)
{
	MENUITEMINFO miItem;
	miItem.cbSize= sizeof(MENUITEMINFO);
	miItem.fMask = MIIM_ID;
	GetMenuItemInfo(hMenu, 0, TRUE, &miItem);

	if (miItem.wID == IDM_Help_CeleTask)
	{
		// 判断快捷方式是否存在
		CheckMenu(IDM_Help_CeleTask, CShortcut::Exist(IDM_Help_CeleTask));
		CheckMenu(IDM_Help_CloseAll, CShortcut::Exist(IDM_Help_CloseAll));
	}
	else if (miItem.wID == IDM_Help_Task)
	{
		CheckMenu(IDM_Help_Task, CShortcut::Exist());
	}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

⌨️ 快捷键说明

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