ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

MFC进阶教程深入浅出版.笔记第5天

2019-06-16 18:02:18  阅读:313  来源: 互联网

标签:控件 MFC 进阶 深入浅出 视图 列表 CRecordset CListCtrl


 

平时也没机会接触到MFC的代码,这次也是项目使然,手上项目涉及到MFC,感觉有点意思,所以在b站找了视频学习,没有上手操作过,只是走马观花,大致了解了这个代码的流程,现在奉上b站的视频链接:MFC进阶教程深入浅出版
以下是课程笔记:

【根据向导创建单文档,在”用户界面功能”,取消”使用传统的停靠工具栏”】
【重写】【数据库】

一、静态拆分窗口:

 1)自定义两个类 CUserTreeView(继承于CTreeView,显示用户信息)、CMedicListView(继承于CListView,显示药品信息)
  a)类视图中,选中顶层文件夹 --> 右击 --> 添加类 --> MFC --> ……
 2)在框架类frame中做处理,使用 CSplitterWnd类实现拆分功能,.h中CSplitterWnd类定义对象
 3)在框架类frame中做处理,重写 OnCreateClient(),在其内部实现,把默认返回值屏蔽,人为返回TURE
  a) 窗口拆分((1行2列):CSplitterWnd::CreateStatic
  b) 创建视图:CSplitterWnd::CreateView
   1) CUserTreeView尺寸:CSize (230,600)
   2) CMedicListView尺寸:CSize (720,600)
 4)设置标题,在文档类 OnNewDocument()中:CDocument::SetTitle


二、列表视图(显示药品信息)初始化

 1) CListView类简化了列表控件和CListCtrl的使用,它本身就包含一个列表控件
 2) CMedicListView .h文件定义一个CListCtrl类的对象指针
 3) CMedicListView 右击 --> 属性 --> 重写 --> OnInitialUpdate(),在OnInitialUpdate()中做初始化工作
  a)返回与视图关联的list控件:CListView::GetListCtrl
  b)设置列表模式:CWnd::ModifyStyle(0,LVS_REPORT);
  c)设置列表风格:CListCtrl::SetExtendedStyle
   pctrl->SetExtendedStyle(pctrl->GetExtendedStyle()|LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT);
  d)插入表头:CListCtrl::InsertColumn
  e)根据数据库数据插入正文内容
   1)类视图中,选中顶层文件夹 --> 右击 --> 添加类 --> MFC --> MFC ODBC使用者 --> 数据源 --> 新建 --> ...-- --> 选择所需表……新类名字为CMedicSet
   2)在文档类中定义CMedicSet对象,方便后面处理
   3)获取文档类对象:CView::GetDocument
   4)如果没有打开记录集:CRecordset::IsOpen,打开记录集:CRecordset::Open
   4)查询后按行插入数据
    a)查询:CRecordset::Requery
    b)记录集中记录的数目:CRecordset::GetRecordCount
    c)第一个必须先插入新项:CListCtrl::InsertItem
    d)后面才能设置子项的文本:CListCtrl::SetItemText
      1)时间格式化成字符串 CTime::Format
      CTime time = pSet --> m_produceDate;
      CString str = time.Format(_T("%Y-%m-%d"));
    e)记录集指针向后移动:CRecordset::MoveNext
    

三、树视图(显示用户信息)初始化

1) CTreeView类简化了对tree控件和CTreeCtrl类的使用,它本身就包含一个tree控件
2) CuserTreeview .h文件定义一个CTreeCtrl类的对象指针
3) CUserTreeView类右击 --> 属性 --> 重写 --> OnInitialUpdate(),在OnInitialUpdate()中做初始化工作
 a)返回与视图关联的tree控件:CTreeView::GetTreeCtrl
   根据需要设置风格:m_treeCtrl.ModifyStyle(NULL, WS_VISIBLE | WS_TABSTOP | WS_CHILD | WS_BORDER | TVS_HASBUTTONS | TVS_LINESATROOT | TVS_HASLINES | TVS_DISABLEDRAGDROP);
 b)创建图像列表
  1) .h创建图表列表对象 CImageList
  2) 创建图像列表:CImageList:: Create
  3) 加载位图:CBitmap::LoadBitmap
  4) 图像列表追加图标:CImageList::Add,掩码颜色用黑色 RGB (0,0,0)
 c)树控件设置图形状态列表:CTreeCtrl::SetImageList
 d)初始化数据,数据从数据库中取
  1)类视图中,选中顶层文件夹 --> 右击 --> 添加类 --> MFC --> MFC ODBC使用者 -->  数据源 --> 新建 --> …… --> 选择所需表……新类名字为 CUserSet
  2)在文档类中定义 CUserSet 对象,方便后面处理
  3)获取文档类对象:CView::GetDocument
  4)如果没有打开记录集:CRecordset::IsOpen,打开记录集:CRecordset::Open
  5)过滤查询
   a)过滤:CRecordset::m_strFilter
   b)查询:CRecordset::Requery
   c)记录集中记录的数目:CRecordset::GetRecordCount
   d)记录集指针向后移动:CRecordset::MoveNext
  6)插入节点:CTreeCtrl::InsertItem

标签:控件,MFC,进阶,深入浅出,视图,列表,CRecordset,CListCtrl
来源: https://www.cnblogs.com/yeyeye123/p/11032307.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有