CListView显示数据的问题

ZiSheng 2017-01-06 09:20:14

int CLeftView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CListView::OnCreate(lpCreateStruct) == -1)
return -1;

// TODO: Add your specialized creation code here
CRect rectClient;
GetClientRect(&rectClient);
GetListCtrl().ModifyStyle(0,LVS_REPORT|LVS_SHOWSELALWAYS);
GetListCtrl().SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT|LVS_EX_CHECKBOXES);
GetListCtrl().InsertColumn(0,"主模块第一列",LVCFMT_CENTER,100);
try
{
CDatabase db;
if( db.Open("freehis"))
{

db.ExecuteSQL( "set names 'gbk'");
CMainModuleRecordSet *pMainModuleRecordSet = new CMainModuleRecordSet(&db);
pMainModuleRecordSet->Open(CRecordset::snapshot , "select * from T_MainModule");
LVITEM lvi;
CString strItem;
int i = 0;
while( ! pMainModuleRecordSet->IsEOF())
{

strItem.Format("%d-%s" , pMainModuleRecordSet->m_id, pMainModuleRecordSet->m_MainModuleName);
lvi.mask = LVIF_TEXT;
lvi.iItem = i;
lvi.iSubItem = 0;
lvi.pszText = (LPTSTR)(LPCTSTR)(strItem);
lvi.iImage = 0; //
GetListCtrl().InsertItem(&lvi);
//GetListCtrl().InsertItem(LVIF_TEXT | LVIF_PARAM, i, _T("m"), 0, 0, 0, 0);
//GetListCtrl().InsertItem(i,strItem,0);
//GetListCtrl().SetItemText(i,1,strItem);
i++;
strItem = "";
pMainModuleRecordSet->MoveNext();
}
db.Close();
if (pMainModuleRecordSet!=NULL)
{
delete pMainModuleRecordSet;
}
}
}
catch (CDBException* e)
{
AfxMessageBox( e->m_strError);
e->Delete();
}
return 0;
}

我用的是vc6.0,CLefttView 继承了CListView,在CLeftView中的onCreate函数中,修改了ListCtrl的风格添加了一列,然后想从数据库中读取数据,并插入,但是在执行到 GetListCtrl().InsertItem(&lvi);之后,我跟踪发现,执行到::SendMessage();就停止了,界面显示只有一条数据,insertItem有好几个重载函数,试了试都是这个问题,我百思不得其解,是我的风格设置的问题,还是插入的有问题??各位帮我看看,先谢谢大家了。备注,数据库确实有四条记录,但是显示只有一条。
...全文
535 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
schlafenhamster 2017-02-09
  • 打赏
  • 举报
回复
typedef struct _LVITEM { UINT mask; int iItem; int iSubItem; UINT state; UINT stateMask; LPTSTR pszText; int cchTextMax; int iImage; LPARAM lParam; #if (_WIN32_IE >= 0x0300) int iIndent; #endif } LVITEM, FAR *LPLVITEM; LVITEM lvi; 改 LVITEM lvi = {0}; 或 ZeroMemory(&lvi, sizeof(lvi)); 保证不用的 为 0
onedayday-tao 2017-02-08
  • 打赏
  • 举报
回复
有可能是界面刷新的问题,你可以尝试用一个定时器来延时刷新listView
ZiSheng 2017-01-07
  • 打赏
  • 举报
回复
我创建的是单文档,然后用csplitterwnd静态创建,分割为左右两个视图,这两个视图类为cleftview和crightview,都继承自clistview。在用csplitterwnd静态创建的时候,传递了两个视图的runtimeclass,是动态创建对象,这是执行了一次,我发现frmwnd在调用loadfram函数的时候,调用initialupdatedescend函数,似乎也执行了一次。
赵4老师 2017-01-06
  • 打赏
  • 举报
回复
设置全局变量避免重入 或 加锁
ZiSheng 2017-01-06
  • 打赏
  • 举报
回复
引用 1 楼 xiaohuh421 的回复:
ListView的初始化, 一般放到OnInitUpdate中, 不放到Create中 特别是你这些数据库查询, 更应该放到OnInitUpdate中或者之后. OnCreate 说明还正在做窗口创建相关的工作.
我试了试,不知道为什么,跟踪发现,只要执行到GetListCtrl().InsertItem(&lvi);就会重新再次执行OnInitUpdate这个虚函数,第二次后就显示异常,程序崩溃。
向立天 2017-01-06
  • 打赏
  • 举报
回复
你从这个OnCreate函数里postmessage发一个消息出来 然后在这个消息中加载数据试一下
ZiSheng 2017-01-06
  • 打赏
  • 举报
回复
引用 1 楼 xiaohuh421 的回复:
ListView的初始化, 一般放到OnInitUpdate中, 不放到Create中 特别是你这些数据库查询, 更应该放到OnInitUpdate中或者之后. OnCreate 说明还正在做窗口创建相关的工作.
我试试
ZiSheng 2017-01-06
  • 打赏
  • 举报
回复
引用 2 楼 VisualEleven 的回复:
你自己Debug一下,看看你的while循环执行了几次?
执行到第一次就停止了,进入 GetListCtrl().InsertItem(&lvi),然后是::sendMessage();就停止了,显示了一条数据。
Eleven 2017-01-06
  • 打赏
  • 举报
回复
你自己Debug一下,看看你的while循环执行了几次?
xiaohuh421 2017-01-06
  • 打赏
  • 举报
回复
ListView的初始化, 一般放到OnInitUpdate中, 不放到Create中 特别是你这些数据库查询, 更应该放到OnInitUpdate中或者之后. OnCreate 说明还正在做窗口创建相关的工作.
xiaohuh421 2017-01-06
  • 打赏
  • 举报
回复
OnInitUpdate 这个函数应该只在View类中执行一次 , 除非是异常崩溃后, 又重新创建了. 但这种可能性很小, 你是多文档, 还是单文档?
VC++ MFC 经典教程 - 基础篇 1.CP_YourFirstWindowsProgram.mp4 10.MFC_GDI_画直线和曲线.mp4 11.MFC_GDI_画椭圆_多边形及其他形状.mp4 12.MFC_GDI_画笔和画刷.mp4 13.MFC_GDI_画文本和字体.mp4 14.MFC_GDI_备用对象和取消选定.mp4 15.MFC_Ruler.mp4 16.MFC_窗口滚动条.mp4 17.MFC_Accel.mp4 18.MFC_Accel(2).mp4 19.MFC_消息框.mp4 2.Windows_编程模型.mp4 20MFC_客户区鼠标消息.mp4 21.MFC_TicTac-1.mp4 22.MFC_TicTac-2.mp4 23.MFC_TicTac-3.mp4 24.MFC_鼠标滚轮.mp4 25.MFC_捕获鼠标.mp4 26.MFC_VisualKB-1.mp4 27.MFC_VisualKB-2.mp4 29.MFC_菜单.mp4 3.MFC_第一个MFC程序设计.mp4 30.MFC_CButton类.mp4 31.MFC_E_FontView-1.mp4 32.MFC_E_FontView-2.mp4 33.MFC_CEdit类.mp4 34.MFC_MyPad.mp4 35.MFC_对话框_静态文本_编辑框.mp4 36.MFC_对话框_访问控件_7种方法_A.mp4 37.MFC_对话框_访问控件_7种方法_B.mp4 38.MFC_对话框_访问控件_7种方法_C.mp4 39.MFC_对话框_复选框_单选钮.mp4 4.MFC_消息映射.mp4 40.MFC_模态对话框.mp4 41.MFC_非模态对话框.mp4 42.MFC_属性表.mp4 43.MFC_公用对话框.mp4 44.MFC_数组类-1.mp4 45.MFC_数组类-2.mp4 46.MFC_CArray.mp4 47.MFC_列表类.mp4 48.MFC_映射类.mp4 49.MFC_类型指针类.mp4 5.MFC_使用向导快速进行MFC程序设计.mp4 50.MFC_CFile.mp4 51.MFC_CArchive.mp4 52.MFC_四个对象四种方法.mp4 53. MFC_Ruler.mp4 54.MFC_Ruler.mp4 55.MFC_Ruler.mp4 56.MFC_SdiSquares.mp4 57.MFC_Scroll_Ruler.mp4 58.MFC_CHtmlView.mp4 59.MFC_CTreeView.mp4 6.MFC_字符集和TEXT宏.mp4 60.MFC_CListView.mp4 61.MFC_MdiSquares.mp4 62.MFC_动态拆分窗口.mp4 63.MFC_ToolBar.mp4 64.MFC_ToolBar_Ex13a.mp4 65.MFC_StatusBar.mp4 66.MFC_StatusBar_Ex13b.mp4 67.MFC_Rebar.mp4 68.MFC_EZPrint.mp4 69.MFC_Print_Bubble.mp4 7.MFC_建立应用程序.mp4 8.MFC_第一个MFC程序设计(不用向导).mp4 9.MFC_Windows_GDI_设备描述表类.mp4 数据结构与算法_C语言 01.swap.mp4 02.BubbleSort.mp4 03.SelecttionSort.mp4 04.顺序查找.mp4 05.C_DS_折半查找.mp4 06.递归.mp4 07递归算法_折半查找.mp4 08.Permutations.mp4 09.插入排序.mp4 10.快速排序.mp4 11.归并排序.mp4 12.顺序栈.mp4 13.顺序队列.mp4 14.链表的基本概念.mp4 15.单链表的基本运算.mp4 16.循环单链表.mp4 17.双向链表.mp4 18.链式栈.mp4 19.链式队列.mp4 20.基数排序.mp4 21.树.mp4 22.二叉树的存储表示与实现.mp4 23.二叉树的遍历.mp4 24.二叉查找树.mp4 25.红黑树.mp4 26.堆.mp4 27.堆排序.mp4 28.哈希表.mp4 29.图_邻接矩阵
第8章 实例173——在视图中使用鼠标进行绘图操作(涂鸦) 实例174——在文档中记录绘图数据,并实现窗口重绘 实例175——通过序列化保存文档 实例176——当文档被修改时在标题上给出提醒 实例177——使用对话框与文档视图进行数据交换 实例178——多文档程序实现为新建的文档设置显示字体 实例179——在滚动窗口中实现绘图 实例180——实现动态滚动窗口 实例181——在窗体视图(CFormView)中使用控件 实例182——在列表视图(CListView)中使用列表控件 实例183——改变视图窗口的背景色 实例184——改变MDI框架窗口背景色 实例185——动态设置主框架窗口的图标 实例186——动态设置子框架窗口的图标 实例187——使窗口总在最前显示 实例188——MDI启动时不创建新文档,且限定框架窗口的大小和位置 实例189——限定框架窗口的大小和位置 实例190——限定MDI子框架窗口的最大、最小尺寸 实例191——实现客户窗口的全屏显示 实例192——为程序制作启动界面 实例193——动画启动、关闭窗口并添加位图背景 实例194——改变主窗口上的标题 实例195——为程序创建系统托盘图标 实例196——为程序创建类似迅雷的辅助隐藏窗口 实例197——动态分割窗口,不同窗口对应同一视图 实例198——静态分割窗口,实现窗口的任意切分 实例199——固定分割窗口的分隔线 实例200——动态改变分割窗口的大小 实例201——定制分隔条的外观特性 实例202——分割窗口形成的多视图实现与文档的交互
全部博客下载论坛学院问答 MFC信息管理系统 MFC上位机与STM32下位机通讯精讲 - CSDN学院学院 讲师:王凯杰 9084人在学 本课程主要介绍C++类库MFC上位机与STM32单片机的RS232、RS422、RS485、USB、LWIP以太网、CAN等接口进行稳定通信。课程主要从MFC和STM32基础开始,以编写上位机以及下位机为主,非常注重实践。 https://edu.csdn.net/course/detail/6375 当年的毕业设计 - MFC信息管理系统 - CSDN博客博客 由于程序只能在远程服务器上跑,调试起来非常麻烦,所以想弄一个UDP的日志服务程序,能实时的显示远程程序打印过来的日志。于是就想到了用MFC弄一个继承自CListView的单文档应用程序。 话说MFC还是我大学时候做毕业设计时用过, 距离现在都两年了,好多API也忘得差不多了。不过参照以前的毕业设计还是弄出来了。想来虽然当初编程水平不咋的,但是程序还是有一些参考价值。 作者: tujiaw 日期:2012-03-08 https://blog.csdn.net/tujiaw/article/details/73337987021次阅读 MFC课程设计——基于对话框实现学生信息管理系统 - CSDN博客博客 MFC基于对话框实现的学生信息管理系统,能够实现添加、删除、修改、查找、导入、导出数据,根据数据绘制直方图和折线图的功能。 作者: qq_43492327 日期:2019-07-07 https://blog.csdn.net/qq_43492327/article/details/948334501105次阅读 MFC学生信息管理系统 - CSDN博客博客 MFC 学生信息管理系统 一、实现功能 1)新建、保存(导出)、导入学生信息文档; 2)增加、修改、删除、排序学生信息。 二、数据结构 Stu_ 结构体 struct Stu_{ CString Stu_Id; //学号 CString Stu_Name; //姓名 CString Stu_Sex; //性别 CString Stu_BirthDate; //出生年月 ... 作者: qq_33892106 日期:2018-12-28 https://blog.csdn.net/qq_33892106/article/details/85331126569次阅读
MFC类目录及头文件 类 描述 头文件 CAnimateCtrl 自动化通用控件 afxcmn.h CArchive afx.h CArchiveException afx.h CArray afxtempl.h CAsyncMonikerFile 在ActiveX控件中提供对异步标记的支持 afxole.h CAsyncScoket 封装Windows Sockets API,参看CSocket afxsock.h CBitmap afxwin.h CBitmapButton afxext.h CBrush afxwin.h CButton 按钮控件对象 afxwin.h CByteArray afxcoll.h CCachedDataPathProperty 允许一个ActiveX控件异步传输属性数据和缓冲内存中的数据,参考CDataPathProperty afxctl.h CCheckListBox afxwin.h CClientDC afxwin.h CCmdTarget 所有能够接收和响应消息的对象的基类 afxwin.h CCmdUI afxwin.h CColorDialog 颜色选择的通用对话框,提供为显示系统定义的颜色列表 afxdlgs.h CComboBox 组合框对象 afxwin.h CComboBoxEx CComboBox类的派生类,用于支持在组合框控件中的图像列表 afxcmn.h CCommandLineInfo afxwin.h CCommonDialog afxdlgs.h CConnectionPoint afxdisp.h CControlBar afxext.h CCreateContext afxext.h CCriticalSection afxmt.h CCtrlView afxwin.h CDaoDatabase afxdao.h CDaoException afxdao.h CDaoFieldExchange afxdao.h CDaoQueryDef afxdao.h CDaoRecordset 代表选自数据源的记录集。CDaoRecordset对象可用于三种格式:表类型记录集,动态集类型记录集和快照类型记录集 afxdao.h CDaoRecordView 提供表单视图,以在控件中显示数据库记录。表单视图是CDaoRecordset对象的一部分。参考CFormView和CRecordView afxdao.h CDaoTableDef afxdao.h CDaoWorkspace afxdao.h CDatabase afxdb.h CDataExchange afxwin.h CDataPathProperty 实现一个ActiveX控件属性,它能够异步加载其数据。这个类允许ActiveX控件在后台下载属性数据时被激活 afxctl.h CDateTimeCtrl 封装新的日期/时间选取器控件 afxdtctl.h CDBException afxdb.h CDBVariant afxdb.h CDC afxwin.h CDialog 用于包含控件窗口的对话框对象 afxwin.h CDialogBar afxext.h CDocItem afxole.h CDockState afxadv.h CDocObjectServer afxdocob.h CDocObjectServerItem afxdocob.h CDocTemplate afxwin.h CDocument 用于管理程序的数据的类 afxwin.h CDragListBox Windows列表框,允许用户把其中的项拖放到不同的位置 afxcmn.h CDumpContext afx.h CDWordArray afxcoll.h CEdit 用于文本输入的子窗口控件 afxwin.h CEditView 提供Windows编缉控件的功能。因为CEditView派生于Cedit,该对象可同文件和文件模板一同使用 afxext.h CEvent afxmt.h CException afx.h CFieldExchange afxdb.h CFile afx.h CFileDialog 通用文件对话框,提供Open和Save As对话框中的功能 afxdlgs.h CFileException afx.h CFileFind afx.h CFindReplaceDialog afxdlgs.h CFont afxwin.h CFontDialog 通用字体对话框,用于显示当前已装入系统的字体列表 afxdlgs.h CFontHolder afxctl.h CFormView 包含对话框控件的窗口 afxext.h CFrameWnd SDI(单窗口界面)框架窗口 afxwin.h CFtpConnection afxinet.h CFtpFileFind afxinet.h CGdiObject afxwin.h CGopherConnection afxinet.h CGopherFile afxinet.h CGopherFileFind afxinet.h CGopherLocator afxinet.h CHeaderCtrl 标题通用控件 afxcmn.h CHotKeyCtrl 热键通用控件 afxcmn.h CHtmlStream afxisapi.h CHtmlView 实现Web Browser控件的视图类,能够访问当地或Web上的HTML文件。 afxhtml.h CHttpConnection afxinet.h CHttpFile afxinet.h CHttpFilter 创建并处理超文传输协议过滤器对象,该对象用于过滤用于HTTP请求的服务器通知 afxisapi.h CHttpFilterContext afxisapi.h CHttpServer Internet Server API(ISAPI)的包装类 afxisapi.h CHttpServerContext afxisapi.h CImageList afxcmn.h CInternetConnection afxinet.h CInternetException afxinet.h CInternetFile afxinet.h CInternetSession afxinet.h CIPAddressCtrl IP地址控件。类似于编缉框,该控件接收Internet 协议格式的地址 afxcmn.h CList afxtempl.h CListBox 列表框对象 afxwin.h CListCtrl 列表视通用控件 afxcmn.h ClistView 简化CListCtrl的使用,添加了对文件和视图的支持 afxcview.h CLongBinary afxdb_.h CMap afxtempl.h CMapPtrToPtr afxcoll.h CMapPtrToWord afxcoll.h CMapStringToOb afxcoll.h CMapStringToPtr afxcoll.h CMapStringToString afxcoll.h CMapWordToOb afxcoll.h CMapWordToPtr afxcoll.h CMDIChildWnd MDI(多文档界面)子框架窗口 afxwin.h CMDIFrameWnd afxwin.h CMemFile afx.h CMemoryException afx.h CMemoryState CMenu afxwin.h CMetaFileDC afxext.h CMiniFrameWnd 半高的框架窗口,主要用于浮动工具栏。一个小框架窗口没有最小化和最大化按钮,但其他都类似于正常的框架窗口 afxwin.h CMonikerFile afxole.h CMonthCalCtrl 月历控件,用于显示一个用户可选择日期的日历 afxdtctl.h CMultiDocTemplate afxwin.h CMultiLock afxmt.h CMutex afxmt.h CNotSupportedException afx.h CObArray afxcoll.h CObject afx.h CObList afxcoll.h COleBusyDialog afxodlgs.h COleChangeIconDialog afxodlgs.h COleChangeSourceDialog afxodlgs.h COleClientItem afxole.h COleCmdUI afxdocob.h COleControl afxctl.h COleControlModule afxctl.h COleConvertDialog afxodlgs.h COleCurrency afxdisp.h COleDataObject afxole.h COleDataSource afxole.h COleDateTime afxdisp.h COleDateTimeSpan afxdisp.h COleDBRecordView afxoledb.h COleDialog afxodlgs.h COleDispatchDriver afxdisp.h COleDispatchException afxdisp.h COleDocObjectItem afxole.h COleDocument 把一个文件看作为CDocItem对象的一个集合。包容器和服务器都需要这个结构,因为它们的文件必须能够包含OLE项 afxole.h COleDropSource afxole.h COleDropTarget afxole.h COleException afxdisp.h COleInsertDialog afxodlgs.h COleIPFrameWnd afxole.h COleLinkingDoc OLE包容器文件的基类,这些文件支持对它们所包含项的链接 afxole.h COleLinksDialog afxodlgs.h COleMessageFilter afxole.h COleObjectFactory afxdisp.h COlePasteSpecialDialog afxodlgs.h COlePropertiesDialog afxodlgs.h COlePropertyPage afxctl.h COleResizeBar afxole.h COleSafeArray afxdisp.h COleServerDoc OLE服务器文件的基类 afxole.h COleServerItem 为OLE项提供一个服务器界面 afxole.h COleStreamFile afxole.h COleTemplateServer afxdisp.h COleUpdateDialog afxodlgs.h COleVariant afxdisp.h CPageSetupDialog afxdlgs.h CPaintDC afxwin.h CPalette afxwin.h CPen afxwin.h CPictureHolder afxctl.h CPoint atltypes.h CPrintDialog 通用打印对话框,提供Print和Print Setup对话框中的功能 afxdlgs.h CPrintInfo CProgressCtrl 通用进程指示器控件 afxcmn.h CPropertyPage 代表属性表单中的一页 afxdlgs.h CPropertyPageEx CPropertySheet 属性表,也叫做多选项卡对话框。一个属性表由一个CPropertySheet对象和几个CPropertyPage对象组成 afxdlgs.h CPropertySheetEx CPropExchange afxctl.h CPtrArray afxcoll.h CPtrList afxcoll.h CReBar afxext.h CReBarCtrl afxcmn.h CRecentFileList afxadv.h CRecordset 用于访问数据库表或查询的类 afxdb.h CRecordView 包含对话框控件的窗口 afxdb.h CRect atltypes.h CRectTracker afxext.h CResourceException afxwin.h CRgn afxwin.h CRichEditCntrItem afxrich.h CRichEditCtrl 用户能够输入和编缉文本的窗口,提供字符和程序段格式,以及对嵌入OLE项的支持 afxcmn.h CRichEditDoc afxrich.h CRichEditView afxrich.h CRuntimeClass CScrollBar 滚动条对象 afxwin.h CScrollView 可滚动的窗口,派生于CView afxwin.h CSemaphore afxmt.h CSharedFile afxadv.h CSingleDocTemplate afxwin.h CSingleLock afxmt.h CSize atltypes.h CSliderCtrl 提供包含一个滑块和可选的刻度线的窗口 afxcmn.h CSocket Windows Socket API的包装类 afxsock.h CSocketFile afxsock.h CSpinButtonCtrl 提供箭头按钮,用户可单击它,以增加或减少某个控件中的一个值 afxcmn.h CSplitterWnd afxext.h CStatic 用于标识另一个控件或给用户提供消息的简单文本框 afxwin.h CStatusBar afxext.h CStatusBarCtrl 提供一个层次窗口,通常放于父窗口的底部,用于显示关于应用程序的状态信息 afxcmn.h CStdioFile afx.h CString afx.h CStringArray afxcoll.h CStringList afxcoll.h CSyncObject afxmt.h CTabCtrl 允许应用程序在一个窗口或对话框的同一区域显示多个页面 afxcmn.h CTime afx.h CTimeSpan afx.h CToolBar afxext.h CToolBarCtrl 工具栏通用控件 afxcmn.h CToolTipCtrl 提供工具提示控件的功能,它以一个小弹出窗口的样子显示,包含描述某个工具用途的一行文本 afxcmn.h CTreeCtrl 显示项的分层结构列表 afxcmn.h CTreeView 简化CTreeCtrl的用法 afxcview.h CTypedPtrArray afxtempl.h CTypedPtrList afxtempl.h CTypedPtrMap afxtempl.h CUIntArray afxcoll.h CUserException afxwin.h CView 用于显示程序数据的类 afxwin.h CWaitCursor afxwin.h CWinApp afxwin.h CWindowDC afxwin.h CWinThread 代表一个应用程序中的一个线程 afxwin.h CWnd afxwin.h CWordArray afxcoll.h ......

16,465

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧