如何用CDC类对状态栏进行手工画?

qtr 2000-09-14 05:17:00
在对状态栏进行操作的时候,我遇到下面的问题。
如何用CDC类对状态栏进行手工画?
如何得到状态栏相对于主窗口的尺寸?

谢谢!
...全文
77 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
andygood 2000-09-15
  • 打赏
  • 举报
回复

Overload CStatusBar::OnPaint() is OK. Example:

void CMyStatusBar::OnPaint()
{
CPaintDC dc(this); // device context for painting

CRect rectClient;
GetClientRect(&rectClient);

dc.FillSolidRect(&rectClient, GetSysColor(COLOR_BTNFACE));

HFONT hFont = (HFONT)SendMessage(WM_GETFONT);
HGDIOBJ hOldFont = NULL;

if (hFont != NULL)
hOldFont = dc.SelectObject(hFont);

dc.SetBkMode(TRANSPARENT);

COLORREF clrPane;
UINT nID, nStyle;
int cxWidth;
CString strPane;

for(int i=0;i<m_nCount;i++)
{
CRect rc;
GetItemRect(i,&rc);
GetPaneInfo(i, nID, nStyle, cxWidth); // 得到一项的信息
strPane = GetPaneText(i);

if(nStyle & SBPS_DISABLED) // 如果是禁止状态,用灰色画文本
clrPane = GetSysColor(COLOR_GRAYTEXT);
else
clrPane = GetSysColor(COLOR_WINDOWTEXT);

dc.SetTextColor(clrPane);

dc.Draw3dRect(&rc,m_clrBtnHilight,m_clrBtnHilight); // Lazy using Draw3dRect() to draw a plain rect. m_clrBtnHilight=GetSysColor(COLOR_BTNHILIGHT)

rc.DeflateRect(2, 1);

DrawText(dc.GetSafeHdc(),strPane,strPane.GetLength(),&rc,DT_LEFT | DT_VCENTER);
}
if (hOldFont != NULL)
dc.SelectObject(hOldFont);

WINDOWPLACEMENT wndpl;
CFrameWnd *pFrame = GetParentFrame();
ASSERT(pFrame!=NULL);

pFrame->GetWindowPlacement(&wndpl);

// 按照Windows的规则,当一个窗口是最大化时,不需要Sizing gripper.
if(wndpl.showCmd != SW_SHOWMAXIMIZED)
DrawSizingGripper(&dc); // 画出右边的手柄,自己写吧。呵呵。
}
Holly 2000-09-14
  • 打赏
  • 举报
回复
1.状态栏也是一个WINDOWS提供的COMMON CONTROLS,如果你用MFC编程,可以直接用CStatusBar来处理绘制的问题,状态栏提供Owner Draw的属性;

2.状态栏的尺寸通常不需要自己知道,如果需要可以通过如下方法:
//SDK
RECT rcStatusBar;
GetWindowRect(hStatusBar, &rcStatusBar);
ScreenToClient(hMainFrame, &rcStatusBar);
ScreenToClient(hMainFrame, (&rcStatusBar)+2*sizeof(DWORD));
//MFC
RECT rcStatusBar;
pStatusBar->GetWindowRect(&rcStatusBar);
pMainFrame->ScreenToClient(&rcStatusBar);
第一课: Windows程序运行原理及程序编写流程,窗口产生过程,句柄原理,消息队列,回调函数,窗口关闭与应用程序退出的工作关系,使用VC++的若干小技巧,stdcall与cdecl调用规范的比较,初学者常犯错误及注意事项。我们通常不必要知晓每一个函数和消息。但另一方面,也不得不记住其中的一部分,否则很难将VC++运用自如。到底该记住哪些,这在我们的课程中都会涉及到。 第二课: C++经典语法与应用,的编写与应用,构造与析构函数,函数的重载,的继承,函数覆盖,基与派生的构造函数、析构函数先后调用顺序,如何在派生构造函数中向基的构造函数传递参数,this成员变量,型转换的内幕,虚拟函数与奇妙多态性。VC工程的编译原理与过程,将工程中不同的拆分到不同的原文件中,每一个由一个.h和.cpp文件共同完成,然后解决头文件重复定义问题,培养了学员良好的编程习惯,也为以后分析MFC Appwizard生成的工程奠定了良好基础。 第三课: 讲述MFC AppWizard的原理与MFC程序框架的剖析。AppWizard是一个原代码生成工具,是计算机辅助程序设计软件,Winmain在MFC程序中是如何从源程序中被隐藏的,theApp全局变量是如何被分配的,MFC框架中的几个的作用与相互关系,MFC框架窗口是如何产生和销毁的,对窗口的PreCreateWidow和OnCreate两个函数的着重分析,Windows窗口与C++中的CWnd的关系。 第四课: 讲述如何运用ClassWizard及对MFC消息响应函数机制的分析,理解发送给窗口的消息是如何被MFC框架通过窗口句柄映射表和消息映射表来用窗口的函数进行响应的。掌握设备描述表及其封装CDC的使用,CDC是如何与具体的设备发生关联的,融合具体的图程序进行分析。如何设置封闭图形的填充刷子(位图刷与透明刷的使用)。 第五课: 掌握CDC的文字处理程序的编写,如何产生自定义字体和自定义插入符,熟悉对CString的使用。通过对kala ok程序的编写,讲解定时器的使用和DrawText函数的巧妙运用。讲解如何使用CDC的裁减功能。 第六课: 菜单的工作原理及编写应用,菜单命令消息在MFC框架程序的几个中的传递顺序和处理过程。标记菜单的实现原理、图形菜单的实现及常犯错误的分析,GetSystemMetrics的应用,快捷弹出菜单的实现方式及其命令响应函数有效范围(与弹出菜单时所指定的父窗口有密切的关系,最底层的子窗口具有最优先的处理机会)。 第七课.: 动态菜单的编写,如何让程序在运行时产生新的菜单项及如何手工为这些新产生的菜单命令安排处理函数,如何在顶层窗口中截获对菜单命令的处理,更进一步掌握CString的应用。 第八课.: 对话框用户界面程序的编写,如何向对话框控件联接数据成员及其实现机理,如何向对话框控关联控件,如何利用对话框的成员函数向控件发送消息和获取对话框控件的指针,如何直接利用对话框控件操纵对话框控件(发送消息和直接调用成员函数)。如何在程序运行时产生和销毁控件。对话框控件的几种操作方式的优劣比较分析。 第九课: 如何让对话框上的文本框在程序启动后立即获得焦点,如何利用SetWindowLong改变窗口的回调函数,通过改变文本框的默认回车处理方式进行演示。实现多个输入文本框间通过回车逐一向下传递焦点的另一种巧妙方法(用缺省按钮来处理)。利用SetWindowLong和定时器轮回改变窗口的图标。如何实现对话框的部分收缩和展开。如何在主对话框程序启动时立即隐藏对话框的巧妙实现方式与精妙思想(不能直接在OnInitDialog处理。包括自定义消息的实现) 第十课: 如何制作属性页对话框和向导对话框,融合讲解组合框(如何调整组合框的大小)、列表框、单选按钮、复选按钮 等常用对话框控件的多种使用方法。如何限制用户在不满足设定的条件时切换到其他属性页和向导页。 第十一课: 如何修改MFC AppWizard向导生成的框架程序的外观,包括修改标题栏的多种方式及原理,修改图标、光标、背景的两种方法。如何给应用程序增加工具栏和删除工具栏按钮。定制状态栏,在CView中获取状态栏对象的几种方式,在状态栏中添加时钟显示(掌握CTime和静态成员变量和函数的用法),鼠标坐标显示,进度条(主窗口产生后立即产生进度条的巧妙思想,不能在OnCreate函数中直接处理,要用到自定义消息的方法)。如何为窗口添加背景位图。 第十二课: 如何使用自定义笔(颜色,线宽,线形),刷(形状,颜色)。如何为程序中添加选项菜单和选项设置对话框,如何使用标准颜色对话框,窗口重绘原理,在选项对话框中实现预览功能。实现选项对话框和窗口中的数据交换。 第十三课: 如何让CDC上输出的文字、图形具有保持功能,元文件设备描述表的使用,CpaintDC与CClientDC的区别与应用,OnPaint与Ondraw在CView中的关系及实现内幕,集合CObArray的使用,滚动窗口的实现,设备坐标与逻辑坐标的转换。 第十四课: 文件读写,CFileDialog,CFile,fstream,CArchive的使用与比较。在应用中讲解const char *与char * const的区别,字符串的使用原理,如何使用CString的内存缓冲区。注册表与win.ini文件的读写方式及相关知识点。 第十五课: 如何利用CDocument的串行化存储功能及MFC框架程序提供的文件打开与保存功能的实现原理。如何实现对串行化的支持,CObArray的串行化实现内幕。MFC框架程序的几个主要之间如何获得相互的指针引用。 第十六课: 网络程序的编写,Socket是连接应用程序与网络驱动程序的桥梁,Socket在应用程序中创建,通过bind与驱动程序建立关系。此后,应用程序送给Socket的数据,由Socket交给驱动程序向网络上发送出去。计算机从网络上收到与该Socket绑定的IP+Port相关的数据后,由驱动程序交给Socket,应用程序便可从该Socket中提取接收到的数据。网络应用程序就是这样通过socket进行数据的发送与接收的。UDP与TCP的工作原理与编写过程,包含如何在程序中连接库文件,telnet工具软件在编写网络程序中的用途 第十七课: 多线程程序的编写,如何通过互斥来保证多线程的安全。如何利用命名互斥保证只有一份程序实例被运行,结合多线程,网络编程,自定义消息,数据型转换,如何改变文本框对回车的默认处理方式等技术编写网络聊天程序。 第十八课: 动态连接库程序的编写,库函数的两种输出方式。调用程序对动态连接库的静态连接与动态连接方式,如何利用工具查看动态连接库里的函数,C/C++连接规范中的命名转变问题分析,如何获得动态连接库里的函数 的指针,如何用typedef声明指向函数的指针型。如何调试动态连接库。 第十九课: ActiveX控件的应用与工作原理,ActiveX控件的编写,如何为控件安排属性,方法,事件,属性页,持久性存储。如何注册控件与取消控件注册。如何测试与调试控件。 第二十课: 综合答疑与一些高深主题的介绍,包括如何安装系统钩子函数,dll连接库里的全局变量数据共享问题分析,ADO数据库编程,如何将数据库记录显示在Clistview网格中。 以上内容为作者对课件的初步整理,还有很多课堂上要讲到,但在本大纲中还没有被撰稿的内容,以后将逐渐完善本大大纲。
《Visual C++ 数据库系统开发完全手册》(目录) 第一篇 Visual C++编程篇 第1章 Visual C++ 6.0开发环境概述 1.1 Visual C++ 6.0概述 1.2 熟悉Visual C++ 6.0的集成开发环境 1.2.1 进入Visual C++ 6.0环境 1.2.2 Visual C++ 6.0的主菜单 1.2.3 Visual C++ 6.0的工具栏 1.2.4 工作区(Workspace)窗口 1.2.5 编辑窗口 1.2.6 输出(Output)窗口 第2章 C++语言基础 2.1 C++概述 2.1.1 C++主要特点 2.1.2 利用Visual C++编制C++程序 2.2 C++程序的组成 2.2.1 标识符 2.2.2 关键字 2.2.3 常量与变量 2.2.4 基本运算符 2.3 C++数据型 2.3.1 基本数据型 2.3.2 数组 2.3.3 指针 2.3.4 结构 2.3.5 枚举型 2.4 控制结构 2.4.1 顺序结构 2.4.2 分支结构 2.4.3 循环结构 2.4.4 转移语句 2.5 函数 2.5.1 函数的定义与调用 2.5.2 默认参数 2.5.3 函数重载概述 2.6 编译预处理指令 2.6.1 #include文件包含指令 2.6.2 #define宏定义指令 2.6.3 条件编译指令 第3章 面向对象的程序设计 3.1 概述 3.1.1 面向对象程序设计方法 3.1.2 面向对象程序设计特征 3.2 C++面向对象程序设计基础 3.2.1 C++的定义与实现 3.2.2 构造函数与析构函数 3.2.3 静态成员 3.2.4 this指针 3.2.5 友元函数 3.3 的继承机制 3.3.1 基与派生概念 3.3.2 单一派生 3.3.3 多重继承 3.3.4 虚基 3.4 多态性与虚函数 3.5 抽象与纯虚函数 3.6 C++模板 3.6.1 函数模板 3.6.2 模板 第4章 创建应用程序 4.1 应用程序向导 4.1.1 Visual C++ 6.0中的向导型 4.1.2 Visual C++ 6.0中的应用程序向导 4.1.3 MFC应用程序的开发流程 4.2 应用程序向导生成文件 4.2.1 文件型 4.2.2 典型文件举例 4.3 ClassWizard(向导) 4.3.1 ClassWizard的功能 4.3.2 ClassWizard的简单应用 4.3.3 为项目添加新 4.3.4 手工添加消息处理函数 第5章 文档与视图 5.1 Document与View概述 5.2 Document与View之间的相互作用 5.2.1 CView的GetDocument()成员函数 5.2.2 CDocument的UpdateAllViews()成员函数 5.2.3 CView的OnUpdate()成员函数 5.3 菜单设计 5.3.1 建立菜单资源 5.3.2 添加菜单命令处理函数 5.3.3 弹出式菜单 5.4 工具栏和状态栏设计 5.4.1 建立工具栏资源 5.4.2 工具栏的显示 5.4.3 定制状态栏 5.5 使用不同的视图 5.5.1 滚动视图 5.5.2 网页视图 5.5.3 多文档视图 第6章 MFC原理及方法 6.1 MFC概述 6.2 Windows编程思想 6.2.1 Windows API 6.2.2 事件驱动程序 6.2.3 消息概述 6.3 MFC微软库 6.3.1 MFC发展历史 6.3.2 MFC应用程序的生与死 6.3.3 常用MFC文件及库文件 6.4 常用的MFC 6.4.1 CRuntimeClass结构 6.4.2 CObject 6.4.3 CCmdTarget 6.4.4 CWinThread 6.4.5 CWinApp 6.4.6 CWnd 6.4.7 CFrameWnd 6.4.8 CDocument和CView 6.5 MFC消息机制 6.5.1 系统定义的消息 6.5.2 用户定义的消息 6.5.3 消息映射 6.5.4 消息的发送 6.6 MFC宏 6.6.1 运行时型识别宏 6.6.2 MFC调试宏 第7章 对话框及常用控件 7.1 对话框概述 7.1.1 基于对话框的应用程序 7.1.2 对话框CDialog 7.2 向对话框中添加菜单 7.3 向对话框中添加工具栏 7.4 向对话框中添加状态栏 7.5 Windows公共对话框 7.5.1 CColorDialog对话框 7.5.2 CFileDialog对话框 7.5.3 CFontDialog对话框 7.6 常用控件 7.6.1 控件概述 7.6.2 使用控件 7.6.3 通用控件成员 7.6.4 静态文本控件(Static Text) 7.6.5 按钮控件(Button) 7.6.6 编辑控件(Edit Box) 7.6.7 列表框控件(List Box) 7.6.8 组合框控件(Combo Box) 7.6.9 树视图控件(Tree Control) 7.6.10 列表视图控件(List Control) 7.6.11 标签控件(Tab Control) 7.7 ActiveX控件 7.8 制作ActiveX控件 7.8.1 制作ActiveX控件的方法 7.8.2 ActiveX控件创建实例 第8章 图形图像及打印技术 8.1 图形设备接口概述 8.2 设备环境CDC 8.2.1 设备环境简介 8.2.2 设备环境CDC 8.2.3 设置场景CDC的简单应用 8.3 CPen 8.4 CBrush 8.5 字体CFont 8.6 位图CBitmap 8.7 打印基础 8.8 如何打印表格 8.8.1 打印流程 8.8.2 怎样打印表格 第9章 程序调试与错误处理 9.1 概述 9.2 断点跟踪 9.3 调试窗口 9.3.1 Watch窗口 9.3.2 Call Stack窗口 9.3.3 Memory窗口 9.3.4 Variables窗口 9.3.5 Registers窗口 9.3.6 Disassembly窗口 9.4 错误处理 9.4.1 捕捉错误 9.4.2 C++中的错误处理 9.4.3 编制错误处理程序 第二篇 数据库应用篇 第10章 管理SQL Server 2000 10.1 安装SQL Server 10.2 配置服务器 10.2.1 启动、暂停和停止SQL Server服务器 10.2.2 注册SQL Server 2000服务器 10.2.3 编辑SQL Server 2000注册信息 10.3 脚本概述 10.3.1 将数据库生成脚本 10.3.2 将指定表生成脚本 10.3.3 执行脚本 10.4 备份和还原数据库 10.4.1 备份和还原的概念 10.4.2 数据库备份 10.4.3 数据库还原 10.5 分离和附加数据库 10.5.1 分离数据库 10.5.2 附加数据库 10.6 导入、导出数据表 10.6.1 导入数据库 10.6.2 导入SQL Server数据表 10.6.3 导入其他数据源的数据表 10.6.4 导出数据库 10.6.5 导出SQL Server数据表 第11章 SQL Server 2000数据库设计与操作 11.1 关系数据库 11.1.1 数据库及关系数据库概述 11.1.2 数据库发展历史 11.1.3 关系型数据库 11.2 分析数据库 11.2.1 分析数据库结构 11.2.2 设计数据库 11.3 使用数据库 11.3.1 创建数据库 11.3.2 创建数据表 11.3.3 SQL Server中的数据型 11.3.4 向数据表中添加数据 11.4 建立索引 11.4.1 建立和删除惟一索引 11.4.2 定义主键索引 11.5 关系的建立与维护 11.5.1 建立一对一关系 11.5.2 建立一对多关系 11.5.3 删除关系 11.6 使用Visual C++ 6.0与数据库连接 11.6.1 ADO简介 11.6.2 使用ADO连接数据源前的准备工作 11.6.3 Connection与Recordset 11.6.4 打开数据与关闭数据连接 11.7 如何使用ADO 11.7.1 如何打开记录集 11.7.2 怎样使用记录集 11.8 重新封装ADO 11.8.1 RxADO的制作方法 11.8.2 RxRecordset的制作方法 第12章 数据查询技巧 12.1 SQL简介 12.2 查询命令SELECT 12.2.1 SELECT命令简介 12.2.2 SELECT子句 12.2.3 FROM子句 12.2.4 WHERE子句 12.2.5 使用ORDER BY排序查询结果 12.2.6 聚合函数 12.2.7 GROUP BY子句 12.2.8 HAVING子句 12.2.9 复杂查询 12.3 插入命令INSERT 12.3.1 INSERT命令简介 12.3.2 简单的INSERT命令 12.3.3 在插入命令中使用SELECT 12.4 更新命令UPDATE 12.4.1 UPDATE命令简介 12.4.2 简单的UPDATE命令 12.4.3 在UPDATE更新命令中使用子查询 12.5 删除命令DELETE 12.5.1 DELETE命令简介 12.5.2 简单的DELETE命令 12.5.3 在删除中使用子查询 12.6 数据备份与数据还原 12.6.1 数据备份命令BACKUP 12.6.2 数据还原命令RESTORE 第13章 存储过程、触发器与视图 13.1 存储过程概述 13.2 存储过程的应用 13.2.1 新建存储过程 13.2.2 修改存储过程 13.2.3 删除存储过程 13.2.4 获取数据库中存储过程 13.2.5 获取指定存储过程语句 13.2.6 存储过程的调用 13.3 触发器介绍 13.4 使用触发器 13.4.1 新建触发器 13.4.2 修改触发器 13.4.3 删除触发器 13.5 视图介绍 13.6 视图应用 13.6.1 新建视图 13.6.2 修改视图 13.6.3 删除视图 13.6.4 获得数据库中所有的视图 13.6.5 获得指定视图语句 第三篇 实例开发篇 第14章 定制自己的工作环境 14.1 工具环境设置介绍 14.1.1 Editor 14.1.2 Tabs 14.1.3 Debug 14.1.4 Compatibility 14.1.5 Build 14.1.6 Directories 14.1.7 Source Control 14.1.8 Workspace 14.1.9 Macros 14.1.10 Format 14.2 定制自己的工作环境 14.3 常用快捷键 第15章 Visual C++ 6.0在资产设备管理系统中的应用 15.1 资产设备管理系统概述 15.1.1 开发背景及意义 15.1.2 系统目标 15.2 系统分析 15.2.1 系统规划 15.2.2 系统结构图 15.2.3 业务流程 15.3 数据库设计 15.3.1 数据库概念设计 15.3.2 数据库逻辑结构设计 15.4 处理过程分析 15.4.1 添加资产设备处理过程分析 15.4.2 计提折旧处理过程分析 15.5 程序框架设计 15.6 封装数据库操作 15.6.1 导入ADO动态链接库 15.6.2 封装ADO对象 15.7 菜单设计 15.8 设计状态栏 15.9 设计工具栏 15.10 主窗体设计 15.11 程序设计与编码 15.11.1 资产别程序设计 15.11.2 添加资产设备程序设计 15.11.3 修改资产设备程序设计 15.11.4 计提折旧程序设计 15.11.5 数据备份程序设计 15.11.6 数据还原程序设计 15.12 疑难问题分析解决 15.12.1 只允许输入数字的编辑框 15.12.2 更改静态文本的字体 15.12.3 为按钮控件添加图标 15.12.4 修改窗口图标 15.12.5 遍历窗口中的控件 15.12.6 固定资产基本概念 15.12.7 固定资产计算公式 15.13 程序调试及错误处理 15.14 程序设计清单 15.15 技术、经验总结 15.15.1 技术总结 15.15.2 经验总结 15.16 系统的编译与发行 第16章 Visual C++ 6.0在物资管理系统中的应用 16.1 物资管理系统概述 16.1.1 系统简介 16.1.2 实现目标 16.2 系统分析 16.2.1 系统规划 16.2.2 系统结构图 16.2.3 业务流程 16.3 数据库设计 16.3.1 数据库概念设计 16.3.2 数据库逻辑结构设计 16.4 程序设计与编码 16.4.1 基础信息查询设计 16.4.2 商品信息管理模块 16.4.3 日常业务设计 16.4.4 出库统计排行模块 16.5 对话框资源对照说明 16.6 程序的打包与发行 16.6.1 组织安装信息 16.6.2 设置目标系统 16.6.3 设置安装面 16.6.4 设置系统需求 16.6.5 安装打包程序 第17章 Visual C++ 6.0在商品采购管理系统中的应用 17.1 商品采购管理系统概述 17.1.1 开发背景 17.1.2 运行环境 17.2 系统调查 17.2.1 手工流程 17.2.2 需求分析 17.3 系统分析 17.3.1 系统功能 17.3.2 系统结构图 17.3.3 业务流程 17.4 数据库设计 17.4.1 数据库概念设计 17.4.2 数据库逻辑结构设计 17.5 数据库封装说明 17.5.1 概述 17.5.2 设计步骤 17.5.3 程序相关代码 17.6 主窗体设计 17.6.1 菜单设计 17.6.2 设计背景面 17.6.3 程序设计与编码 17.7 采购管理设计 17.7.1 概述 17.7.2 设计步骤 17.7.3 程序相关代码 17.8 疑难问题分析解决 17.8.1 怎样取得当前日期 17.8.2 怎样取得当前路径 17.9 程序调试及错误处理 17.10 技术、经验总结 17.10.1 技术总结 17.10.2 经验总结 第18章 Visual C++ 6.0在仓库管理系统中的应用 18.1 仓库管理系统概述 18.1.1 开发背景及意义 18.1.2 系统目标 18.2 系统分析 18.2.1 系统规划 18.2.2 系统结构图 18.2.3 业务流程 18.3 数据库设计 18.3.1 数据库概念设计 18.3.2 数据库逻辑结构设计 18.4 处理过程分析 18.4.1 商品入库处理过程分析 18.4.2 商品入库查询处理过程分析 18.5 程序框架设计 18.6 菜单设计 18.7 工具栏设计 18.8 主窗体设计 18.9 程序设计与编码 18.9.1 父窗口设计 18.9.2 商品入库程序设计 18.9.3 库存盘点程序设计 18.9.4 入库查询程序设计 18.10 疑难问题分析解决 18.10.1 利用表格录入商品 18.10.2 联想录入表格的实现 18.11 程序调试及错误处理 18.12 程序设计清单 18.13 技术、经验总结 18.13.1 技术总结 18.13.2 经验总结 18.14 系统的编译与发行 第19章 Visual C++ 6.0在销售管理系统中的应用 19.1 销售管理系统概述 19.1.1 开发背景及意义 19.1.2 系统目标 19.2 系统分析 19.2.1 系统规划 19.2.2 系统结构图 19.2.3 业务流程 19.3 数据库设计 19.3.1 数据库概念设计 19.3.2 数据库逻辑结构设计 19.4 处理过程分析 19.4.1 商品入库处理过程分析 19.4.2 商品销售处理过程分析 19.5 数据库封装说明 19.5.1 概述 19.5.2 设计步骤 19.5.3 程序相关代码 19.6 主窗体设计 19.6.1 菜单设计 19.6.2 设计背景面 19.6.3 程序相关代码 19.7 操作员管理程序设计 19.7.1 概述 19.7.2 设计步骤 19.7.3 程序相关代码 19.8 销售管理设计 19.8.1 概述 19.8.2 设计步骤 19.8.3 程序相关代码 19.9 疑难问题分析解决 19.9.1 不显示文字的密码编辑框 19.9.2 数据库参数 19.10 程序调试及错误处理 19.11 程序设计清单 19.12 技术、经验总结 19.12.1 技术总结 19.12.2 经验总结 19.13 系统的编译与发行 第20章 Visual C++ 6.0在图书管理系统中的应用 20.1 图书管理系统概述 20.1.1 开发背景及意义 20.1.2 系统目标 20.2 系统分析 20.2.1 系统规划 20.2.2 系统结构图 20.2.3 业务流程 20.3 数据库设计 20.3.1 数据库概念设计 20.3.2 数据库逻辑结构设计 20.4 处理过程分析 20.4.1 图书信息处理过程分析 20.4.2 销售查询处理过程分析 20.5 程序框架设计 20.6 主窗体设计 20.7 程序设计与编码 20.7.1 系统登录程序设计 20.7.2 操作员管理程序设计 20.7.3 图书信息管理程序设计 20.7.4 图书销售查询程序设计 20.8 疑难问题分析解决 20.8.1 在对话框中添加文档/视图架构 20.8.2 在基于对话框程序中实现打印及打印预览 20.9 异常处理 20.10 程序设计清单 20.11 技术、经验总结 20.11.1 技术总结 20.11.2 经验总结 20.12 系统的编译与发行 第21章 Visual C++ 6.0在学生管理系统中的应用 21.1 学生管理系统概述 21.1.1 开发背景及意义 21.1.2 系统目标 21.2 系统分析 21.2.1 系统规划 21.2.2 系统结构图 21.2.3 业务流程 21.3 数据库设计 21.3.1 数据库概念设计 21.3.2 数据库逻辑结构设计 21.4 处理过程分析 21.4.1 科室信息添加处理过程分析 21.4.2 学生违规登记处理过程分析 21.5 主窗体设计 21.6 程序设计与编码 21.6.1 科室信息管理程序设计 21.6.2 学生成绩录入程序设计 21.6.3 学生违规处理程序设计 21.6.4 学生成绩报表程序设计 21.7 疑难问题分析解决 21.7.1 导入Excel相关 21.7.2 在程序中操作Excel 21.7.3 导入Word相关 21.7.4 在程序中操作Word 21.8 系统测试 21.9 程序设计清单 21.10 技术、经验总结 21.10.1 技术总结 21.10.2 经验总结 21.11 系统的编译与发行
《Visual C++ 数据库系统开发完全手册》(目录) 第一篇 Visual C++编程篇 第1章 Visual C++ 6.0开发环境概述 1.1 Visual C++ 6.0概述 1.2 熟悉Visual C++ 6.0的集成开发环境 1.2.1 进入Visual C++ 6.0环境 1.2.2 Visual C++ 6.0的主菜单 1.2.3 Visual C++ 6.0的工具栏 1.2.4 工作区(Workspace)窗口 1.2.5 编辑窗口 1.2.6 输出(Output)窗口 第2章 C++语言基础 2.1 C++概述 2.1.1 C++主要特点 2.1.2 利用Visual C++编制C++程序 2.2 C++程序的组成 2.2.1 标识符 2.2.2 关键字 2.2.3 常量与变量 2.2.4 基本运算符 2.3 C++数据型 2.3.1 基本数据型 2.3.2 数组 2.3.3 指针 2.3.4 结构 2.3.5 枚举型 2.4 控制结构 2.4.1 顺序结构 2.4.2 分支结构 2.4.3 循环结构 2.4.4 转移语句 2.5 函数 2.5.1 函数的定义与调用 2.5.2 默认参数 2.5.3 函数重载概述 2.6 编译预处理指令 2.6.1 #include文件包含指令 2.6.2 #define宏定义指令 2.6.3 条件编译指令 第3章 面向对象的程序设计 3.1 概述 3.1.1 面向对象程序设计方法 3.1.2 面向对象程序设计特征 3.2 C++面向对象程序设计基础 3.2.1 C++的定义与实现 3.2.2 构造函数与析构函数 3.2.3 静态成员 3.2.4 this指针 3.2.5 友元函数 3.3 的继承机制 3.3.1 基与派生概念 3.3.2 单一派生 3.3.3 多重继承 3.3.4 虚基 3.4 多态性与虚函数 3.5 抽象与纯虚函数 3.6 C++模板 3.6.1 函数模板 3.6.2 模板 第4章 创建应用程序 4.1 应用程序向导 4.1.1 Visual C++ 6.0中的向导型 4.1.2 Visual C++ 6.0中的应用程序向导 4.1.3 MFC应用程序的开发流程 4.2 应用程序向导生成文件 4.2.1 文件型 4.2.2 典型文件举例 4.3 ClassWizard(向导) 4.3.1 ClassWizard的功能 4.3.2 ClassWizard的简单应用 4.3.3 为项目添加新 4.3.4 手工添加消息处理函数 第5章 文档与视图 5.1 Document与View概述 5.2 Document与View之间的相互作用 5.2.1 CView的GetDocument()成员函数 5.2.2 CDocument的UpdateAllViews()成员函数 5.2.3 CView的OnUpdate()成员函数 5.3 菜单设计 5.3.1 建立菜单资源 5.3.2 添加菜单命令处理函数 5.3.3 弹出式菜单 5.4 工具栏和状态栏设计 5.4.1 建立工具栏资源 5.4.2 工具栏的显示 5.4.3 定制状态栏 5.5 使用不同的视图 5.5.1 滚动视图 5.5.2 网页视图 5.5.3 多文档视图 第6章 MFC原理及方法 6.1 MFC概述 6.2 Windows编程思想 6.2.1 Windows API 6.2.2 事件驱动程序 6.2.3 消息概述 6.3 MFC微软库 6.3.1 MFC发展历史 6.3.2 MFC应用程序的生与死 6.3.3 常用MFC文件及库文件 6.4 常用的MFC 6.4.1 CRuntimeClass结构 6.4.2 CObject 6.4.3 CCmdTarget 6.4.4 CWinThread 6.4.5 CWinApp 6.4.6 CWnd 6.4.7 CFrameWnd 6.4.8 CDocument和CView 6.5 MFC消息机制 6.5.1 系统定义的消息 6.5.2 用户定义的消息 6.5.3 消息映射 6.5.4 消息的发送 6.6 MFC宏 6.6.1 运行时型识别宏 6.6.2 MFC调试宏 第7章 对话框及常用控件 7.1 对话框概述 7.1.1 基于对话框的应用程序 7.1.2 对话框CDialog 7.2 向对话框中添加菜单 7.3 向对话框中添加工具栏 7.4 向对话框中添加状态栏 7.5 Windows公共对话框 7.5.1 CColorDialog对话框 7.5.2 CFileDialog对话框 7.5.3 CFontDialog对话框 7.6 常用控件 7.6.1 控件概述 7.6.2 使用控件 7.6.3 通用控件成员 7.6.4 静态文本控件(Static Text) 7.6.5 按钮控件(Button) 7.6.6 编辑控件(Edit Box) 7.6.7 列表框控件(List Box) 7.6.8 组合框控件(Combo Box) 7.6.9 树视图控件(Tree Control) 7.6.10 列表视图控件(List Control) 7.6.11 标签控件(Tab Control) 7.7 ActiveX控件 7.8 制作ActiveX控件 7.8.1 制作ActiveX控件的方法 7.8.2 ActiveX控件创建实例 第8章 图形图像及打印技术 8.1 图形设备接口概述 8.2 设备环境CDC 8.2.1 设备环境简介 8.2.2 设备环境CDC 8.2.3 设置场景CDC的简单应用 8.3 CPen 8.4 CBrush 8.5 字体CFont 8.6 位图CBitmap 8.7 打印基础 8.8 如何打印表格 8.8.1 打印流程 8.8.2 怎样打印表格 第9章 程序调试与错误处理 9.1 概述 9.2 断点跟踪 9.3 调试窗口 9.3.1 Watch窗口 9.3.2 Call Stack窗口 9.3.3 Memory窗口 9.3.4 Variables窗口 9.3.5 Registers窗口 9.3.6 Disassembly窗口 9.4 错误处理 9.4.1 捕捉错误 9.4.2 C++中的错误处理 9.4.3 编制错误处理程序 第二篇 数据库应用篇 第10章 管理SQL Server 2000 10.1 安装SQL Server 10.2 配置服务器 10.2.1 启动、暂停和停止SQL Server服务器 10.2.2 注册SQL Server 2000服务器 10.2.3 编辑SQL Server 2000注册信息 10.3 脚本概述 10.3.1 将数据库生成脚本 10.3.2 将指定表生成脚本 10.3.3 执行脚本 10.4 备份和还原数据库 10.4.1 备份和还原的概念 10.4.2 数据库备份 10.4.3 数据库还原 10.5 分离和附加数据库 10.5.1 分离数据库 10.5.2 附加数据库 10.6 导入、导出数据表 10.6.1 导入数据库 10.6.2 导入SQL Server数据表 10.6.3 导入其他数据源的数据表 10.6.4 导出数据库 10.6.5 导出SQL Server数据表 第11章 SQL Server 2000数据库设计与操作 11.1 关系数据库 11.1.1 数据库及关系数据库概述 11.1.2 数据库发展历史 11.1.3 关系型数据库 11.2 分析数据库 11.2.1 分析数据库结构 11.2.2 设计数据库 11.3 使用数据库 11.3.1 创建数据库 11.3.2 创建数据表 11.3.3 SQL Server中的数据型 11.3.4 向数据表中添加数据 11.4 建立索引 11.4.1 建立和删除惟一索引 11.4.2 定义主键索引 11.5 关系的建立与维护 11.5.1 建立一对一关系 11.5.2 建立一对多关系 11.5.3 删除关系 11.6 使用Visual C++ 6.0与数据库连接 11.6.1 ADO简介 11.6.2 使用ADO连接数据源前的准备工作 11.6.3 Connection与Recordset 11.6.4 打开数据与关闭数据连接 11.7 如何使用ADO 11.7.1 如何打开记录集 11.7.2 怎样使用记录集 11.8 重新封装ADO 11.8.1 RxADO的制作方法 11.8.2 RxRecordset的制作方法 第12章 数据查询技巧 12.1 SQL简介 12.2 查询命令SELECT 12.2.1 SELECT命令简介 12.2.2 SELECT子句 12.2.3 FROM子句 12.2.4 WHERE子句 12.2.5 使用ORDER BY排序查询结果 12.2.6 聚合函数 12.2.7 GROUP BY子句 12.2.8 HAVING子句 12.2.9 复杂查询 12.3 插入命令INSERT 12.3.1 INSERT命令简介 12.3.2 简单的INSERT命令 12.3.3 在插入命令中使用SELECT 12.4 更新命令UPDATE 12.4.1 UPDATE命令简介 12.4.2 简单的UPDATE命令 12.4.3 在UPDATE更新命令中使用子查询 12.5 删除命令DELETE 12.5.1 DELETE命令简介 12.5.2 简单的DELETE命令 12.5.3 在删除中使用子查询 12.6 数据备份与数据还原 12.6.1 数据备份命令BACKUP 12.6.2 数据还原命令RESTORE 第13章 存储过程、触发器与视图 13.1 存储过程概述 13.2 存储过程的应用 13.2.1 新建存储过程 13.2.2 修改存储过程 13.2.3 删除存储过程 13.2.4 获取数据库中存储过程 13.2.5 获取指定存储过程语句 13.2.6 存储过程的调用 13.3 触发器介绍 13.4 使用触发器 13.4.1 新建触发器 13.4.2 修改触发器 13.4.3 删除触发器 13.5 视图介绍 13.6 视图应用 13.6.1 新建视图 13.6.2 修改视图 13.6.3 删除视图 13.6.4 获得数据库中所有的视图 13.6.5 获得指定视图语句 第三篇 实例开发篇 第14章 定制自己的工作环境 14.1 工具环境设置介绍 14.1.1 Editor 14.1.2 Tabs 14.1.3 Debug 14.1.4 Compatibility 14.1.5 Build 14.1.6 Directories 14.1.7 Source Control 14.1.8 Workspace 14.1.9 Macros 14.1.10 Format 14.2 定制自己的工作环境 14.3 常用快捷键 第15章 Visual C++ 6.0在资产设备管理系统中的应用 15.1 资产设备管理系统概述 15.1.1 开发背景及意义 15.1.2 系统目标 15.2 系统分析 15.2.1 系统规划 15.2.2 系统结构图 15.2.3 业务流程 15.3 数据库设计 15.3.1 数据库概念设计 15.3.2 数据库逻辑结构设计 15.4 处理过程分析 15.4.1 添加资产设备处理过程分析 15.4.2 计提折旧处理过程分析 15.5 程序框架设计 15.6 封装数据库操作 15.6.1 导入ADO动态链接库 15.6.2 封装ADO对象 15.7 菜单设计 15.8 设计状态栏 15.9 设计工具栏 15.10 主窗体设计 15.11 程序设计与编码 15.11.1 资产别程序设计 15.11.2 添加资产设备程序设计 15.11.3 修改资产设备程序设计 15.11.4 计提折旧程序设计 15.11.5 数据备份程序设计 15.11.6 数据还原程序设计 15.12 疑难问题分析解决 15.12.1 只允许输入数字的编辑框 15.12.2 更改静态文本的字体 15.12.3 为按钮控件添加图标 15.12.4 修改窗口图标 15.12.5 遍历窗口中的控件 15.12.6 固定资产基本概念 15.12.7 固定资产计算公式 15.13 程序调试及错误处理 15.14 程序设计清单 15.15 技术、经验总结 15.15.1 技术总结 15.15.2 经验总结 15.16 系统的编译与发行 第16章 Visual C++ 6.0在物资管理系统中的应用 16.1 物资管理系统概述 16.1.1 系统简介 16.1.2 实现目标 16.2 系统分析 16.2.1 系统规划 16.2.2 系统结构图 16.2.3 业务流程 16.3 数据库设计 16.3.1 数据库概念设计 16.3.2 数据库逻辑结构设计 16.4 程序设计与编码 16.4.1 基础信息查询设计 16.4.2 商品信息管理模块 16.4.3 日常业务设计 16.4.4 出库统计排行模块 16.5 对话框资源对照说明 16.6 程序的打包与发行 16.6.1 组织安装信息 16.6.2 设置目标系统 16.6.3 设置安装面 16.6.4 设置系统需求 16.6.5 安装打包程序 第17章 Visual C++ 6.0在商品采购管理系统中的应用 17.1 商品采购管理系统概述 17.1.1 开发背景 17.1.2 运行环境 17.2 系统调查 17.2.1 手工流程 17.2.2 需求分析 17.3 系统分析 17.3.1 系统功能 17.3.2 系统结构图 17.3.3 业务流程 17.4 数据库设计 17.4.1 数据库概念设计 17.4.2 数据库逻辑结构设计 17.5 数据库封装说明 17.5.1 概述 17.5.2 设计步骤 17.5.3 程序相关代码 17.6 主窗体设计 17.6.1 菜单设计 17.6.2 设计背景面 17.6.3 程序设计与编码 17.7 采购管理设计 17.7.1 概述 17.7.2 设计步骤 17.7.3 程序相关代码 17.8 疑难问题分析解决 17.8.1 怎样取得当前日期 17.8.2 怎样取得当前路径 17.9 程序调试及错误处理 17.10 技术、经验总结 17.10.1 技术总结 17.10.2 经验总结 第18章 Visual C++ 6.0在仓库管理系统中的应用 18.1 仓库管理系统概述 18.1.1 开发背景及意义 18.1.2 系统目标 18.2 系统分析 18.2.1 系统规划 18.2.2 系统结构图 18.2.3 业务流程 18.3 数据库设计 18.3.1 数据库概念设计 18.3.2 数据库逻辑结构设计 18.4 处理过程分析 18.4.1 商品入库处理过程分析 18.4.2 商品入库查询处理过程分析 18.5 程序框架设计 18.6 菜单设计 18.7 工具栏设计 18.8 主窗体设计 18.9 程序设计与编码 18.9.1 父窗口设计 18.9.2 商品入库程序设计 18.9.3 库存盘点程序设计 18.9.4 入库查询程序设计 18.10 疑难问题分析解决 18.10.1 利用表格录入商品 18.10.2 联想录入表格的实现 18.11 程序调试及错误处理 18.12 程序设计清单 18.13 技术、经验总结 18.13.1 技术总结 18.13.2 经验总结 18.14 系统的编译与发行 第19章 Visual C++ 6.0在销售管理系统中的应用 19.1 销售管理系统概述 19.1.1 开发背景及意义 19.1.2 系统目标 19.2 系统分析 19.2.1 系统规划 19.2.2 系统结构图 19.2.3 业务流程 19.3 数据库设计 19.3.1 数据库概念设计 19.3.2 数据库逻辑结构设计 19.4 处理过程分析 19.4.1 商品入库处理过程分析 19.4.2 商品销售处理过程分析 19.5 数据库封装说明 19.5.1 概述 19.5.2 设计步骤 19.5.3 程序相关代码 19.6 主窗体设计 19.6.1 菜单设计 19.6.2 设计背景面 19.6.3 程序相关代码 19.7 操作员管理程序设计 19.7.1 概述 19.7.2 设计步骤 19.7.3 程序相关代码 19.8 销售管理设计 19.8.1 概述 19.8.2 设计步骤 19.8.3 程序相关代码 19.9 疑难问题分析解决 19.9.1 不显示文字的密码编辑框 19.9.2 数据库参数 19.10 程序调试及错误处理 19.11 程序设计清单 19.12 技术、经验总结 19.12.1 技术总结 19.12.2 经验总结 19.13 系统的编译与发行 第20章 Visual C++ 6.0在图书管理系统中的应用 20.1 图书管理系统概述 20.1.1 开发背景及意义 20.1.2 系统目标 20.2 系统分析 20.2.1 系统规划 20.2.2 系统结构图 20.2.3 业务流程 20.3 数据库设计 20.3.1 数据库概念设计 20.3.2 数据库逻辑结构设计 20.4 处理过程分析 20.4.1 图书信息处理过程分析 20.4.2 销售查询处理过程分析 20.5 程序框架设计 20.6 主窗体设计 20.7 程序设计与编码 20.7.1 系统登录程序设计 20.7.2 操作员管理程序设计 20.7.3 图书信息管理程序设计 20.7.4 图书销售查询程序设计 20.8 疑难问题分析解决 20.8.1 在对话框中添加文档/视图架构 20.8.2 在基于对话框程序中实现打印及打印预览 20.9 异常处理 20.10 程序设计清单 20.11 技术、经验总结 20.11.1 技术总结 20.11.2 经验总结 20.12 系统的编译与发行 第21章 Visual C++ 6.0在学生管理系统中的应用 21.1 学生管理系统概述 21.1.1 开发背景及意义 21.1.2 系统目标 21.2 系统分析 21.2.1 系统规划 21.2.2 系统结构图 21.2.3 业务流程 21.3 数据库设计 21.3.1 数据库概念设计 21.3.2 数据库逻辑结构设计 21.4 处理过程分析 21.4.1 科室信息添加处理过程分析 21.4.2 学生违规登记处理过程分析 21.5 主窗体设计 21.6 程序设计与编码 21.6.1 科室信息管理程序设计 21.6.2 学生成绩录入程序设计 21.6.3 学生违规处理程序设计 21.6.4 学生成绩报表程序设计 21.7 疑难问题分析解决 21.7.1 导入Excel相关 21.7.2 在程序中操作Excel 21.7.3 导入Word相关 21.7.4 在程序中操作Word 21.8 系统测试 21.9 程序设计清单 21.10 技术、经验总结 21.10.1 技术总结 21.10.2 经验总结 21.11 系统的编译与发行
学习以c#的必备书 本书介绍了如何使用Visual C++ 6.0编写Windows应用程序。全书内容全面、结构清晰、由浅入深、注重实用,并结合了大量的实例,以方便读者理解。本书既包含菜单、鼠标、键盘等基本操作,又包含图形编程、Internet程序设计、数据库编程等高级主题。每章讲述一个主题,在展示知识点的同时,提供具体的演示实例,最后两章详细讲解了两个综合实例,以使读者对Visual C++编程技术有整体的认识。 目 录 第一篇 Visual C++基础 第1章 Visual C++集成开发环境 2 1.1 Visual C++的版本 2 1.2 安装Visual C++ 6.0 3 1.3 Visual C++集成开发环境 6 1.3.1 菜单栏 7 1.3.2 工具栏 11 1.3.3 工作区窗口 13 1.3.4 输出窗口 14 1.4 编写第一个程序Hello World 14 1.4.1 创建Hello World工程 15 1.4.2 编译并执行程序 16 1.5 小结 16 第2章 使用Visual C++创建基本应用程序 17 2.1 理解Visual C++工程 17 2.2 Visual C++中应用程序的型 18 2.2.1 控制台应用程序 18 2.2.2 基于对话框的应用程序 19 2.2.3 单文档应用程序 19 2.2.4 多文档应用程序 19 2.2.5 基于HTML文档的应用程序 19 2.3 创建应用程序框架 20 2.3.1 创建基于对话框的应用程序 20 2.3.2 创建单文档应用程序 21 2.3.3 创建多文档应用程序 23 2.3.4 创建基于HTML的应用程序 24 2.4 小结 25 第3章 面向对象程序设计基础 26 3.1 面向过程与面向对象 26 3.1.1 面向过程的问题 26 3.1.2 面向对象的特性 27 3.2 C++的基本概念 27 3.2.1 结构体与 27 3.2.2 与对象 29 3.2.3 的声明、定义和实现 29 3.2.4 成员变量 31 3.2.5 成员函数 32 3.2.6 静态成员 34 3.2.7 this指针 35 3.3 构造函数 37 3.3.1 使用构造函数的原因 37 3.3.2 构造函数的使用 37 3.3.3 重载构造函数 40 3.3.4 析构函数 41 3.4 继承 43 3.4.1 继承的概念 43 3.4.2 继承的工作机制 43 3.4.3 公有继承 44 3.4.4 私有继承 46 3.4.5 保护继承 47 3.4.6 多重继承 49 3.5 异常处理 51 3.5.1 异常的概念 51 3.5.2 异常处理机制 51 3.5.3 基本异常处理方法 52 3.5.4 多个异常处理方法 54 3.6 小结 56 第4章 Visual C++调试技术 57 4.1 Debug与Release 57 4.2 调试的过程 58 4.2.1 设置断点 58 4.2.2 控制程序的运行 60 4.3 使用查看工具 60 4.3.1 弹出式调试信息泡泡 61 4.3.2 变量窗口 61 4.3.3 观察窗口 61 4.3.4 快速查看窗口 62 4.3.5 内存查看窗口 62 4.3.6 寄存器窗口 62 4.3.7 调用堆栈窗口 63 4.4 其他调试技术 63 4.4.1 TRACE宏 63 4.4.2 ASSERT宏 64 4.4.3 VERIFY宏 64 4.5 小结 64 第二篇 Windows编程 第5章 Windows程序设计 66 5.1 Windows编程简介 66 5.1.1 Windows API概述 66 5.1.2 Windows应用程序中的常用术语 69 5.2 Windows应用程序运行机制 71 5.2.1 生成Windows应用程序框架 71 5.2.2 在Windows应用程序中添加代码 71 5.2.3 编译并执行程序 74 5.3 程序入口:WinMain()函数 74 5.3.1 WinMain()函数的定义 75 5.3.2 定义和注册窗口 76 5.3.3 创建窗口 77 5.3.4 显示和更新窗口 78 5.3.5 消息循环 78 5.4 窗口过程函数和消息处理 80 5.4.1 窗口过程函数 80 5.4.2 常用消息的处理 82 5.5 小结 84 第6章 MFC编程概述 85 6.1 MFC概述 85 6.1.1 MFC设计原理 85 6.1.2 MFC特点 86 6.1.3 MFC AppWizard向导 86 6.2 MFC层次结构设计 88 6.2.1 单文档应用程序的构成 88 6.2.2 CObject 90 6.2.3 CCmdTarget

16,467

社区成员

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

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

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