热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MFC用ListControl实现表格停靠窗口

MFC用ListControl实现表格停靠窗口1.建立Dialog1.1类视图-新建Dialog,ID修改为DAILOG_DATA1.2属性border-No

MFC用List Control 实现表格停靠窗口

1.建立Dialog

1.1 类视图->新建Dialog,ID修改为DAILOG_DATA
1.2属性 border->None,Style->Child
1.3对话框添加控件工具->List Control ,属性->view->report
1.4控件关联变量名m_list
在这里插入图片描述
1.4右击对话框,添加MFC类CDataDlg,基类CDialogEx
1.5调整控件大小位置,适应Dialog
2.建立停靠窗口
2.1类导向->添加MFC类->类名CDataView,基类CDockablePan
2.2MainFrm.h中添加 pubilc成员 :CDataView m_wndDataView;
2.3类视图->CMainFrame->消息WM_Create,在// 启用增强的窗口管理对话框语句前添加

if (!m_wndDataView.Create(_T("数据窗"), this, CRect(0, 0, 200, 200), TRUE, 2000, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_LEFT | CBRS_FLOAT_MULTI)){TRACE0("Failed to create Class View window\n");return FALSE; // failed to create}m_wndDataView.EnableDocking(CBRS_ALIGN_ANY);DockPane(&m_wndDataView);

3.关联对话框和停靠窗口
3.1 CDataView.h中添加pubilic成员CDataDlg DATA;(头文件"CDataDlg.h")
3.2CDataView->OnCreate中添加

DATA.Create(DIALOG_DATA, this);
DATA.ShowWindow(SW_SHOW);

3.3 此时对话框已挂载在停靠窗但边框不适配
CDataView->OnSize函数中添加 (消息WM_SIZE)

if (DATA.GetSafeHwnd()){CRect rect;GetClientRect(&rect);DATA.MoveWindow(rect);}

4.初始化表格
CDataDlg->重写OnInitDialog,添加初始化

//LVS_EX_FULLROWSELECT选中整行&#xff0c;LVS_EX_GRIDLINES网格m_list.SetExtendedStyle(m_list.GetExtendedStyle() | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);// 初始化表头CString field[] &#61; { _T("商品ID"), _T("商品名称"), _T("商品价格"), _T("库存数量") };for (int i &#61; 0; i < sizeof(field) / sizeof(field[0]); &#43;&#43;i){m_list.InsertColumn(i, field[i], LVCFMT_CENTER, 90);}

在这里插入图片描述


推荐阅读
author-avatar
samiensfe_663
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有