任务管理器详细开发过程资料.doc
文本预览下载声明
制作自己的任务管理器设计和实现说明
一背景介绍
模仿windows任务管理器制作一个任务管理器软件。设计语言不限。
二知识要求
Windows编程,MFC编程,API调用
三.开发环境
使用Microsoft Visual Studio 2013的开发环境,模拟Windows的任务管理器。首先分析进程管理器软件的相关功能;其次,综合运用以前所学的相关知识,广泛查阅资料。
四.主要功能及实现思路
4.1设计要求实现的主要功能进程管理功能,具体包括以下内容:
使用系统API。
制作出相应的图形用户界面。
至少包括三个功能:
获取、显示、控制(结束任务)当前系统中的应用程序;
获取、显示、控制(结束进程)当前系统中的进程;
获取、显示当前系统CPU及内存的使用情况。
4.2实现思路
4.2.1界面设计
所设计的程序是基于对话框的程序。首先创建一个MFC的应用程序, 在主对话框类中添加一个TabContrl标签控件用于放置应用程序、进程和CPU信息三个页面,
子对话框的显示与切换,是通过标签控件完成的。当用户点击标签控件上的每一项时,分别显示对应页面的相关信息。
要显示三个子对话框,需要添加三个对话框到工程中,并将Style属性设为Child,Board设为None,取消标题栏。再分别创建三个对话框的类CTask ,CProcess,CChart,并定义这三个类的变量:
CTask m_Task; //任务
CProcess m_Process; //进程
CChart m_Chart; //图表
接下来就创建子窗口:
m_Tab.InsertItem(0, _T(应用程序), 60);//向tab控件中添加每个参数选项卡的值
m_Tab.InsertItem(1, _T(进程信息), 60);
m_Tab.InsertItem(2, _T(CPU信息), 60);
//关联对话框,让tab控件为父窗口
m_Task.Create(IDD_TASK, m_Tab);
m_Process.Create(IDD_PROCESS, m_Tab);
m_Chart.Create(IDD_CHART, m_Tab);
当用户选择标签中的一项是,为了将对应的对话框在标签控件中显示出来,需要在OnShowWindow(BOOL bShow,UINT nStatus)中添加代码相关代码。这样便可将在个对话框分别显示于标签控件的每个页面中,但要实现选择标签的不同项显示不同页面还需在OnSelchangeTab1(NMHDR *pNMHDR, LRESULT *pResult)添加显示代码。核心代码如下:
void CTaskMgrDlg::OnSelchangeTab1(NMHDR *pNMHDR, LRESULT *pResult)
{
// TODO: 在此添加控件通知处理程序代码
*pResult = 0;
CRect tabRect;
m_Tab.GetClientRect(tabRect);
tabRect.top += 20;
tabRect.left += 1;
tabRect.right += 1;
tabRect.bottom += 1;
switch (m_Tab.GetCurSel())//根据鼠标选择的标签进行显示相应的对话框
{
case 0:
m_Task.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_SHOWWINDOW);//SWP_SHOWWINDOW:显示窗口
m_Process.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_HIDEWINDOW);//SWP_HIDEWINDOW:隐藏窗口
m_Chart.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_HIDEWINDOW);
break;
case 1:
m_Task.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_HIDEWINDOW);
m_Process.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(),
显示全部