VC++之MFC从零开始实现windows系统任务管理器(一、windows任务管理器界面的制作)
通过本例程从零开始使用VC++与MFC实现一个基于windows的任务管理器。最终效果图
软件工具:VisualStudio2017
编程语言:VC++
本节项目工程下载地址: 打开 提取码:yr2d
话不多说,进入正题!!!~~~~
文章目录
以下是本篇文章正文内容,下面案例可供参考
一、创建工程
1、项目选择MFC应用类型
2、菜单选择经典菜单
3、取消打印功能
4、生成视图类
5、运行程序
运行程序后会报错,提示“GetContextMenuManager”: 不是
“CSystemManagerApp”的成员。
解决方法:将 CSystemManagerApp类改为继承自CWinAppEx
运行成功。为什么呢?因为我们发现CWinAppEx继承自CWinApp,但是CWinApp中并没有GetContextMenuManager()这个成员,如果直接继承自CWinApp那肯定是不会找到所以会报错找不到GetContextMenuManager()这个成员。所以要继承自 CWinAppEx这个类就可以继承其公共成员方法GetContextMenuManager()。
二、窗口样式
在窗体初始化方法里设置我们所需要的窗体样式
1.设置窗体样式
void CSystemManagerView::OnInitialUpdate()
{
CListView::OnInitialUpdate();
// TODO: 调用 GetListCtrl() 直接访问 ListView 的列表控件,
// 从而可以用项填充 ListView。
SetWindowLong(
GetListCtrl().m_hWnd,
GWL_STYLE,
GetWindowLong(GetListCtrl().m_hWnd, GWL_STYLE)|LVS_REPORT);
}
下面对 SetWindowLong() 方法进行一个说明
SetWindowLong(
_In_ HWND hWnd,
_In_ int nIndex,
_In_ LONG dwNewLong);
说明 :改变指定窗口的属性 。
返回值 :如果函数成功,返回值是指定的32位整数的原来的值。 失败,返回值为0。
hwnd:整数型 欲为其设置信息的窗口的句柄
nlndex: 整数型 可以指定下面值之一:
GWL_EXSTYLE 设置扩展窗口风格。
GWL_STYLE 设置窗口风格。
GWL_WNDPROC 设置窗口过程的地址,或代表窗口过程的地址的句柄。
GWL_HINSTANCE 设置应用事例的句柄。
GWL_HWNDPAAENT 如果父窗口存在,设置父窗口句柄。
GWL_ID 设置窗口标识。
GWL_USERDATA 设置与窗口有关的32位值。每一个窗口均有一个由创建该窗口的应用程序使用的32位值
DWL_DLGPROC 设置对话框过程的地址,或一个代表对话框过程的地址的句柄。
DWL_MSGRESULT 设置在对话框过程中一个消息处理的返回值。
DWL_USER 设置应用程序私有的额外信息,例如一个句柄或指针。
dwNewLong 整数型 指定的替换值。
dwNewLong:整数型 指定的替换值
2.增加标题栏
这里添加6列分别是我们需要的功能
GetListCtrl().InsertColumn(0, _T("服务名称"), LVCFMT_LEFT, 200);
GetListCtrl().InsertColumn(1, _T("服务状态"), LVCFMT_LEFT, 100);
GetListCtrl().InsertColumn(2, _T("启动类型"), LVCFMT_LEFT, 240);
GetListCtrl().InsertColumn(3, _T("文件类型"), LVCFMT_LEFT, 240);
GetListCtrl().InsertColumn(4, _T("服务描述"), LVCFMT_LEFT, 400);
GetListCtrl().InsertColumn(5, _T("备注"), LVCFMT_LEFT, 240);
GetListCtrl()//获取当前的ListCtrl控件
InsertColumn()//给当前ClistCtrl插入列