其他分享
首页 > 其他分享> > MFC进阶教程深入浅出版.笔记第5天

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

作者:互联网

 

平时也没机会接触到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