轻松实现类VC界面
VS2010-MFC编程入门
VS2010/MFC编程入门之前言分类标签: 编程入门VC++VS2010MFC鸡啄米的C++编程入门系列给大家讲了C++的编程入门知识,大家对C++语言在语法和设计思想上应该有了一定的了解了。
但是教程中讲的例子只是一个个简单的例程,并没有可视化窗口。
鸡啄米在这套VS2010/MFC编程入门教程中将会给大家讲解怎样使用VS2010进行可视化编程,也就是基于窗口的程序。
C++编程入门系列主要偏重于理论方面的知识,目的是让大家打好底子,练好内功,在使用VC++编程时不至于丈二和尚摸不着头脑。
本套教程也会涉及到VC++的原理性的东西,同样更重视实用性,让大家学完本套教程以后,基本的界面程序都能很容易编写出来。
VC++简介VC++全称是Visual C++,是由微软提供的C++开发工具,它与C++的根本区别就在于,C ++是语言,而VC++是用C++语言编写程序的工具平台。
VC++不仅是一个编译器更是一个集成开发环境,包括编辑器、调试器和编译器等,一般它包含在Visual Studio中。
Visual Studio包含了VB、VC++、C#等编译环境。
当然我们在使用VC++ 6.0的时候为了轻便,总是只单独安装VC++ 6.0。
但自微软2002年发布Visual 以来,微软建立了在. NET框架上的代码托管机制,一个项目可以支持多种语言开发的组件,VC++同样被扩展为支持代码托管机制的开发环境,所以.NET Framework是必须的,也就不再有VC++的独立安装程序,不过可以在安装Visual Studio时只选择VC++进行安装。
VC++版本的选择:VS2010因为VC++ 6.0以后的版本不再有独立的安装程序,所以鸡啄米在教程中将不会称VC++ 6. 0以后的版本为VC++ 7.0等等,而是用VC++所属的Visual Studio的版本名称代替,比如VS2003。
近些年VC++主要的版本包括:VC++ 6.0、VS2003、VS2005、VS2008和VS2010。
Synology DiskStation DS218play 用户手册说明书
Synology DiskStation DS218play 是一款功能丰富的双槽塔,配备 64 位四核处理器。
DS218play 拥有强大的多媒体处理功能,支持实时转码 4K 高清源内容,非常适合多媒体串流和家庭用户共享文件。
Synology DS218play 享有 Synology 的 2 年有限保修服务。
DiskStationDS218play优势• 2 槽式 NAS ,配有良好的多媒体解决方案,适合家庭用户• 动态 4K 视频转码,支持 10 位 H.265 编解码器• 高达 每秒 112 MB 的连续读取通量以及高达每秒 112 MB 的连续写入通量。
• 每秒 112 MB 以上的加密连续读取通量以及每秒 112 MB 以上的加密连续写入通量• 采用 64 位 1.4 GHz 四核处理器和 1 GB DDR4 RAM• 单个存储空间原始容量可达 20TB 以上• 支持多达 15 台网络摄像机4K 高清娱乐中心Synology DS218play 是一种经过多媒体优化的 2 槽式网络连接存储解决方案,配备 64 位四核 1.4 GHz 处理器以及 1 GB RAM ,在 RAID 1 配置下的连续读取通量可达每秒 112 MB 以上,连续写入通量可达每秒 112 MB 以上。
加密的连续数据传输性能优越,读取速度可达每秒 112 MB 以上,写入速度可达每秒 112 MB 以上 。
DS218play 还支持实时 4K 高清 (4096 x 2160) 视频转码,带来高达 10 位 H.265 (HEVC) 内容 。
个人多媒体库DS218play 可让您轻松管理多媒体内容,并在 Windows 、Mac® 和 Linux® 等平台上分享。
利用 Video Station ,您可通过综合的媒体信息来轻松整理和排序个人数字视频库,观看 4K 高清电影和影片。
Photo Station 使您能够轻松地将照片按自定义的类别、智能相册及博客文章进行分类整理,只需点击几下即可将文件链接分享到社交网站。
VisualStudioC++2018-MFC编程入门.pdf
Visual Studio C++ 2010-MFC编程入门之前言鸡啄米的C++编程入门系列给大家讲了C++的编程入门知识,大家对C++语言在语法和设计思想上应该有了一定的了解了。
但是教程中讲的例子只是一个个简单的例程,并没有可视化窗口。
鸡啄米在这套VS2010/MFC编程入门教程中将会给大家讲解怎样使用VS2010进行可视化编程,也就是基于窗口的程序。
C++编程入门系列主要偏重于理论方面的知识,目的是让大家打好底子,练好内功,在使用VC++编程时不至于丈二和尚摸不着头脑。
本套教程也会涉及到VC++的原理性的东西,同样更重视实用性,让大家学完本套教程以后,基本的界面程序都能很容易编写出来。
VC++简介VC++全称是Visual C++,是由微软提供的C++开发工具,它与C++的根本区别就在于,C++是语言,而VC++是用C++语言编写程序的工具平台。
VC++不仅是一个编译器更是一个集成开发环境,包括编辑器、调试器和编译器等,一般它包含在Visual Studio中。
Visual Studio包含了VB、VC++、C#等编译环境。
当然我们在使用VC++ 6.0的时候为了轻便,总是只单独安装VC++ 6.0。
但自微软2002年发布Visual 以来,微软建立了在.NET框架上的代码托管机制,一个项目可以支持多种语言开发的组件,VC++同样被扩展为支持代码托管机制的开发环境,所以.NET Framework是必须的,也就不再有VC++的独立安装程序,不过可以在安装Visual Studio时只选择VC++进行安装。
VC++版本的选择:VS2010因为VC++ 6.0以后的版本不再有独立的安装程序,所以鸡啄米在教程中将不会称VC++ 6.0以后的版本为VC++ 7.0等等,而是用VC++所属的Visual Studio的版本名称代替,比如VS2003。
近些年VC++主要的版本包括:VC++ 6.0、VS2003、VS2005、VS2008和VS2010。
如何在MFC单文档中创建多视图
u 一个文档可以有多个视图,由Document中成员变量CPtrList m_ViewList维护。
u CFrameWnd拥有一个成员变量CView* m_pActiveView指向当前活动的View。
u CView中拥有一个成员变量CDocument* m_pDocument指向该视图相关的Document。
!m_wndSplitter2.CreateView(1, 0, RUNTIME_CLASS(BottomLView), CSize(350, 240), pContext) ||
!m_wndSplitter2.CreateView(0, 1, RUNTIME_CLASS(TopRView), CSize(350, 240), pContext) ||
/wang_qingyuan/blog/item/60870400275c5b087bec2cbd.html
深入分析MFC文档视图结构
2008-10-16 19:40
文档视图结构(Document/View Architecture)是MFC的精髓,也是Observer模式的具体实现框架之一,Document/View Architecture通过将数据和其表示分开,提供了很好的数据层次和表现层次的解耦。然而,虽然我们使用MFC AppWizard就可以很轻松地获得一个支持Document/View Architecture的MFC程序框架,Document/View Architecture本身的复杂性加上VC产生的一系列代码足够让我们眼花缭乱,一时陷入云里雾里不可自拔。加上我们更多的人都没有经过Windows SDK Programming 的学习和经历就直接进行MFC Programming的学习和开发,更是面对一堆的代码不知所措。
VF简介
计算机编程语言:数据库软件,全名为:Visual Foxpro。
vf是推出的数据库软件visual foxpro的简称,又叫VFP。
是数据库管理系统,集成编程语言,是开发小型数据库的前端工具。
Visual FoxPro中的Visual的意思是“可视化”,该技术使得在Windows环境下设计的应用程序达到即看即得的效果。
Visual FoxPro面向对象的开发环境使得无论是组织信息、运行、查询、创建集成的关系型数据库系统,还是编写数据库管理应用程序,都变得十分轻松。
作为市场上最灵活和功能最强大的数据库管理系统,Visual FoxPro拥有悠久而辉煌的发展历史。
它初创时是Fox Software公司的FoxBASE产品,“Fox”(这是国际编程界对它的称呼)一种可靠、便捷和高效的程序员用的数据库产品而名闻遐迩。
世界上没有一种产品像 Visual FoxPro 那样运行,它是独一无二的!许多人在享受了Visual FoxPro的服务后却说不清它是什么。
就让我们沿着它的发展轨迹了解了解它吧!这会使您能对它有更深刻的认识。
FoxPro隶属于一种名为Xbase的DBMS类别。
Xbase这个术语很常见,他表示诸如FoxPro、dBASEIII PLUS、dBASEIV、FoxBASE+以及ARAGO的语言。
Xbase最初起源于一个大型机使用的DBMS,这个DBMS叫做JPLDIS(喷射推动实验室数据库管理和信息检索系统)。
这个DBMS 是由美国人Jeb Long在1972年开发成功的。
到目前为止全世界的开发者和程序员已经编写了几千万行的Xbase代码。
追溯到80年代末,FoxBASE是dBase的克隆系统。
只要是dBASEIII能做的工作,FoxBASE 就能做得更好更快。
FoxBASE虽然拥有某些全新的特征,但它并没有真正重大的技术突破,只是为了运行得更快更好,而更重要的是它与dBASEIII兼容。
FoxPro 1.0首先背离了与兼容的原则。
NAVIGATOR说明书
navigator使用说明书第一步:设备连接笔记本用网线连接到ptn950/910的eth/oam,打开”optix navigator.exe”软件。
第二步:设置主机ip点search按钮可以搜索网关网元的ip地址,所有搜索到的ip地址都在ne ip address组合框中,点最右边的下拉箭头可以查看搜索到的所有网关网元的ip地址,点connect将和显示在ne ip address编辑框中的ip地址建立通信连接。
(事先在网管上查找该ptn950/910网元ip,设置主机ip与网元ip同一网段,如果不知道,可以查找该网元所在上下相邻网元ip,例如设置笔记本ip为129.9.108.177)第一栏是要登录的网元id ,第二栏要登录的用户名,第三栏是要登录的密码,点击”ok”,进入配置界面。
如下图:显示网元id,名称,当前时间等。
第三步:配置数据(下面全用会展中心2的eg3-1端口举例说明)1、查询当前dcn端口状态:输入命令“:cm-get-pppoeinfo;”回车键运行。
2、 bid当前槽位号,subcard默认255,pid为对应端口号,pppoestat显示当前dcn端口状态,ready表示为使能状态,如果无该端口说明为禁止状态。
例如:会展中心2的3-1端口没有显示,说明该端口为禁止状态。
3、可以用“:dcn-cfg-get-dcnifen:3,255,1,0,ethdcnif;”命令查询当前端口状态,“disable”为禁止状态,“enable”为使能状态。
例如:会展中心3-1当前为“disable”为禁止状态。
4、输入“:dcn-cfg-set-dcnifen:3,255,1,0,ethdcnif,enable;”调整当前端口为使能状态,调整后用命令“:cm-get-pppoeinfo;”查询如下:3-1端口显示,说明该端口已经为使能状态。
5、再次输入“:dcn-cfg-get-dcnifen:3,255,1,0,ethdcnif;”命令查询当前端口状态。
C教程
C#入门经典第三版清晰版(PDF)面向对象程序设计与VC++实践Visual C++ 案例教程面向对象的理论与C++实践C++到VC++精彩100例(新版)C++实训教程C++实用培训教程Borland C++3.1入门教程高质量程序设计指南 c++/c语言(第三版)《C/C++嵌入式系统编程》英文版C程序设计与错误分析(修订版)钱能C++程序设计第二版数据结构各种算法实现(C++模板)数字信号处理c语言程序集C++ Builder 5 实践与提高C++实践之路C语言学习100例实例程序更多更新(2008年11月3日更新)新编C语言大全Effective C++ 第2版侯捷Turbo C实用高级编程技巧Teach Yourself C++ in One Hour a DayC++参考大全第四版Visual C++编程技巧280例Visual C++ 6.0编程经典博览Visual C++视频_音频开发实用工程案例精选Visual C++ 6.0 实例精通Visual C++ 2005入门经典中文版ArcObjects GIS应用开发—基于C#.NET插图详解C# 2008C#大学教程C#编程语言详解C语言C语言程序设计题典Microsoft编写优质无错C程序秘诀STL轻松入门很基础性的文章(译文)深入浅出MFC C语言库函数速查directshow开发指南及代码网络环境下的C编程技巧及实例自已动手写操作系统C语言大全第4版+源码C.Primer.Plus.PDF C语言程序设计与实践C语言标准与实现C函数浏览数据结构习题与解析(C语言篇)Windows via C/C++数据结构C语言版C语言试题集C语言高级编程及实例部析Advanced C 数据结构与算法分析—C语言描述编程精粹-Microsoft编写优质无错C程序秘诀Turbo C2.0实用大全一本全面的C语言入门教程C plus plus Programming CookbookC程序设计:现代方法C语言参考手册(原书第5版)算法与数据结构c与c++描述数据结构C语言描述C 语言编程精粹经典编程900例(C语言)C程序100例经典C语言教程 C 专业项目实例开发C 语言编程要点C专家编程 C sharp 中对注册表的操作C语言编程宝典大全C语言实例教程1.72 C语言程序基础及应用实例C语言学习和精华文摘经典编程900例(C语言) C语言100例及教程C语言完美演绎C语言实例教程C程序设计培训C语言学习300例C语言图象处理方法实用C语言详解C语言经典编程C语言编程实例C语言程序设计及应用实例C语言核心编程C语言书打包下载C语言程序宝典C语言趣味程序百例精解集成学习环境(C语言) C语言教程C语言数值算法程序大全(第二版)C语言圣经 1.0 《C语言编程宝典》用C实现面向对象C语言常用函数手册C常用算法程序集C语言常用算法源代码C语言高级实用编程技巧C语言学习系统C语言编程技巧程序集C语言最新编程技巧200例C语言技术文章微软C编程精粹C 语言高级程序员编程指南C程序设计:现代方法C++语言Effective C++ Thingking C++经典编程900例(C语言)The C++ Programming Language Special EditionC++语言ISO标准文档高质量C++&C编程指南C++程序设计例解学OpenGL编3D游戏_CAI 白话C++COM 技术内幕——微软组件对象模型C++ Primer中文版Essential C++中文版(全)C++Builder6彻底研究C++Primer习题解答C++.Primer.Plus.PDFC++Primer中文版(第4版)完整版C++ Primer 3rd Edition 中文完美版C++程序开发例题与习题用面向对象方法与C++语言描述叙述讲解C++编程C++ProgrammingLanguageC++ CLI标准说明C++程序设计语言特别版(中文版+英文原版)c++builder6编程实例精讲C++沉思录完整版(中文版)编译器与编译器生成器(C++版C++到VC++精彩100例面向对象程序设计与C++教程C/C++指针经验总结C/C++与数据结构C/C++程序设计导论(第二版)C++ GUI Programming with Qt 4C++ Effective STLc++ neural networks and fuzzyC和C++实务精选 C和指针实用C++编程大全C++小型企业工资管理系统C++多范型设计C++编程艺术C++Builder精彩编程实例集锦Starting Out with C++ Early Objects 5th editionC++ Builder PPT 课件共35章C++ Primer Plus (5th Edition)数据结构的c++伪码实现C++经典教程C++编程金典(第三版) 数据结构的c++伪码实现算法与数据结构c与c++描述C++程序设计例解C++标准程序库自修教程与参考手册C++核心编程技术C和C++代码锦囊C++程序设计教程实验书C++基础知识C++大学基础教程C++大学教程(第二版) C++ Templates 全览C++语言的设计和演化高质量程序设计指南 C++_C语言C++代码设计与重用Inside C++ Object ModelBorland C++ 3.0自学培训教程C++Builder学习大全中文版C++ 入门基础教程经典 C++ 语言教程C&C++深层探索C++和面向对象的数值计算C++Builder自学培训教程C++ 设计新思维经典C++语言教程Borland C++ Builder高级编程经典C++图书下载 1C++编程实例详解高质量C_C++编程指南经典C++图书下载 2C_C++深层探索C++程序设计培训教程C++ 常见问题问与答C_C++程序设计C++程序设计教程C++程序设计讲义C++输入输出流及本地化C++Builder核心program C++ 面向对象多线程编程经典 C++语言教程C++Builder基础进阶嵌入式系统中C的开发C++ Primer 3rd Edition创世纪的C++ Builder教程用 C++ 开发 Web 商用程序C++_Primer_Plus_4th C++Builder30开发指南C++名家对话C++应用编程200例21天学会C++ C++实践之路C++面向对象高效编程C++程序调试实用手册C++bulider参考手册 1.1 C#语言C#应用程序开发全程演练c#2008从入门到精通C#2008和.NET 3.5平台Accelerated C# 2008 Cambridge University Press (Mar2007)OReilly.Designing.Embedded.Hardware.May.2005.eBook-DDU零基础学Visual C# 2005 电子教程Beginning C#2008 DatabasesC#记事本完全手册:C#2.0程序设计详解电子教程完全手册C# 2005+SQL Server数据库与网络开发C#入门经典(第三版) C# in Depth_ What you needDATA STRUCTURES AND ALGORITHMS USING C#C#宝典美国计算机宝典丛书Visual C# 2008 Step by StepC# 2005 NET3.0高级编程(第5版)Pro LINQ Object Relational Mapping in C# 2008C#软件项目开发全程剖析C# 3.0 Unleashed_ With the .NETC#技术揭秘C#高级编程(第三版)数据库入门经典--C#编程篇C#软件项目开发全程剖析C#设计模式C#编程思想精通C#数据库开发C#网络应用编程C#线程手册(英文)C#知识类库C#Web应用程序入门经典C#编程从入门到精通C#类设计手册C# COM+ Programming C#进阶手册C# Primer Plus中文版新一代C#与权威指南C#文档中文版(微软)C# 开发编码规范C#与.NET技术平台实演练C#教程C#深入浅出全接触C#程序员参考手册C#高级编程Design Pattern In C# C#入门经典MS Press Inside C#C#实现的俄罗斯方块程序 C#教程C#实例程序C#高级编程第2版C#.NET中文版Web服务开发基础Windows应用高级编程-C#编程篇C#百例精通C#与程序设计C#与.NET技术平台实战演练C#.NET 开发者手册C#英文手册C#语言参考CSharp程序员参考手册精通C#简体中文版C#.NET编程培训教程C#程序100实例C# 参考手册C# WINDOWS程序设计C#系列教程C#语言规范C# 程序员介绍C# 程序员参考手册VC++语言Visual C++应用技巧与常见问题你问我答vchome_graph Programming Windows with MFC西交大吕军VC++程序设计课程Visual 编程实例Visual.C.实践与提高数据库篇西交大吕军VC++程序设计课程Visual C++高级界面特效制作百例VC知识库5周年精华版数据结构算法:VisualC++6.0程序集Visual C++网络通信编程实用案例精选跟着实例学Visual C++6.0访问数据库绘图制表VC知识库电子杂志41-45期深入浅出MFC简体中文版(附源码)专家门诊 Visual C++开发答疑300问VisualC++网络高级编程Visual C++ 6.0职业技能培训教程Visual C++ /MATLAB图像处理与识别实用案例精选零基础学Visual C++ 电子教程vc++技术内幕第四版(清华版)深入编程内幕——Visual C++最新Visual C++使用手册Programming Visual C++ (5th)Visual C++ 6.0 应用开发教程新编Visual C++6.0教程Visual C++ 6.0 数据库开发技术Visual C++ 编程基础与实践Visual C++开发GIS系统(第2版)C/C++编程精选集锦-关键技术精解分册C/C++编程精选集锦-数据库及图形图像分册Sams.Teach.Yourself.Visual.C.Sharp.200824小时自学VC#2008 2008最新版VC++ 编程指南(CHM)Visual C++串口通信工程开发实例导航精彩C++Builder 6程序设计VC++.NET开发驱动程序详解Visual C++6.0运行库参考手册Visual C++ STL中文版Visual C# 2005从入门到精通练习文件Visual.C++程序设计技巧与实例Visual C++_Turbo C串口通信编程VisualC++6_0编程技巧与实例分析VISUAL C++MFC扩展编程提示Visual C++ 数字图像处理VC++6编程方法VC++与Matlab混合编程的快速实现VC++6.0 运行库参考手册用VC开发CGIVC++编程指南VC++5.0易学活用用VC开发win应用VC++6.0 类库参考手册Visual C++6.0从入门到精通Visual C++ 6-24学时学习教程VC++database编程大全Visual C++ 6.0 教程Visual C++ 6.0 编程实例与技巧VC++6.0培训教程Visual C++ 6.0 开发宝典VC使用大全VC++编程技巧与范例Visual C++ 6.0实例Visual C++ 6.0 程序员指南VC++网络教程VISUAL C++扩展编程实例跟我学 VISUAL C++ 6.0VC++面向对象入门Visual C++6.0高级编程技巧与实例精通VisualC++图像编程VC++扩展编程实例Visual C++ 6.0用户开发手册Visual C++.NET应用编程150例用VC++编写USB接口通信程序疯狂VC技巧集Visual C++ 6.0 高级编程VC++6.0 语言参考手册VC模板库手册Visual C++ 6—24学时学习教程VC++6.0内幕用VC开发Activex Visual C++高级编程技巧与实例Visual C++ 设计WIN32应用程序Visual C++6.0运行库参考手册C视频下载C++语言程序设计视频教学西北工业大学C语言程序设计视频电子科技大学--面向对象C++ 视频教程C语言概述视频共14讲数据库相关电子书专题下载Oracle数据库管理员教程VB编程技术电子书下载ASP/电子书下载Delphi程序设计电子书下载JAVA系列电子书专题下载C/C++系列电子书专题下载。
VC 程序设计
VC 程序设计VC程序设计介绍VC(Visual C++)是一种用于Windows操作系统的集成开辟环境(IDE),它使用C++编程语言进行程序设计和开辟。
VC程序设计是一门强大而灵便的技术,可以用于开辟各种类型的应用程序,包括桌面应用程序、图形用户界面(GUI)应用程序和游戏等。
本文档将介绍VC程序设计的基本概念、工具和技术,匡助读者了解VC程序设计的基本原理和应用。
内容1. 什么是VC程序设计VC程序设计是指使用Visual C++开辟环境进行程序设计的过程。
Visual C++是微软公司推出的一款C++编程语言的集成开辟环境,它提供了一系列开辟工具和库,用于开辟Windows操作系统下的应用程序。
VC程序设计可以用于开辟各种类型的应用程序,包括桌面应用程序、图形用户界面(GUI)应用程序和游戏等。
它具有强大的功能和灵便的操控性,是开辟高性能、可靠和可扩展应用程序的理想选择。
2. VC程序设计的基本原理VC程序设计的基本原理是使用C++编程语言进行程序开辟。
C++是一种面向对象的编程语言,它结合了C语言的高效性和C++的面向对象特性,可用于开辟高性能和可维护的应用程序。
在VC程序设计中,我们使用Visual C++开辟环境中的工具和库来简化开辟过程。
Visual C++提供了一系列的集成开辟工具,包括代码编辑器、调试器、图形界面设计器等,可以匡助开辟者高效地进行程序开辟和调试。
3. VC程序设计的应用领域VC程序设计广泛应用于各种领域,包括企业软件开辟、科学计算、游戏开辟等。
由于其强大的功能和灵便的操控性,VC程序设计在开辟大型应用程序和性能关键型应用程序方面具有优势。
例如,在企业软件开辟中,VC程序设计可以用于开辟高性能的数据库应用程序、图象处理软件和实时数据处理系统等。
在科学计算领域,VC程序设计可以用于开辟复杂的数学模型和算法,并实现高效的计算性能。
此外,VC程序设计还常用于游戏开辟。
第7章:MFC编程基础知识
Visual C++
概述
VC开发应用程序的最常用的模式就是利用MFC进行Win32应 用程序的设计。简单来说,MFC就是利用面向对象的思想,将 Windows大部分API函数封装起来的一个浩瀚的类库,利用MFC 编写程序本质上就是选择该类库中合适的类,并调用其下相 应成员函数来完成某个功能。虽然MFC编程相对于API编程简 单了(入门是简单了,但作到胸中丘壑自成却不容易),但 初学者却常常忘不了学习MFC的艰难。其主要原因有:(1) MFC采用的是C++语言,对C++本身的技术没有掌握。因此想学 好MFC,必须把第一篇的内容搞清楚;(2)MFC庞大的类库中 类的命名及成员变量或成员函数的命名没有清楚,其实很简 单,MFC中的类及其成员的命名都采用的是匈牙利命名法,把 这些名字的英文直接翻译过来,就知道它是什么意思。(3) MFC编程,首先生成的是一个应用程序架构,对这个架构的不 了解导致生成的代码不知其为何如此。本章就是要给大家一 个架构的概貌;(4)传统的API编程的步骤统统不见了,使人 们不知道编写的Windows程序什么时候建立起来 、什么时候 消亡. 事实上,MFC的应用程序架构把类似于API编程所要求 的步骤都隐藏了,都封装到架构中了。
Visual C++
*7.1.5 使用C++和MFC的好处
从本书的第一篇,我们已经看出了面向对象程序设计的好处,如 可复用性、代码和数据紧密地绑定等。类是面向对象程序设计的核心 概念,程序中不仅可以使用自己建立的类,还可以使用系统所提供的 类,一个好的类库可以大大减少编码的数量。MFC成功之处在于,它是 一个类库、一个包罗计算机系统方方面面的类库、一个集MicroSoft 各路软件高手之大成的类库。通过从MFC继承自己所需要的类,可以充 分利用基类所具有的各种功能。 MFC将类、类的继承、动态约束、类的关系和相互作用等应用程序 概念封装起来,可以使开发者高效、轻松地建立Windows应用程序,而 不受设备限制并且由事件进行驱动。 MFC具有良好的通用性和可移植性,它定义了应用程序的轮廓,并 提供了用户接口的标准实现方法,程序员所要做的工作就是通过VC所 提供的各种工具来完成这个工作。
软件界面设计
例如一个控件双击可以执行某些动作,而同样控件,双击却没有任何反映
一个控件只做单一功能,不复用
很多人为了写程序方便,喜欢把一个控件在不同情况下做不同功能用,这些对用户初次 理解增加难度,只有用户熟悉后才能理解。 例如 :改变红色选项,左边的参数代表 不同的设置,可能由于为了节省控件或者编程量,但是只有熟练用户才回使用,这种情 况下解决方法: 1:分组,使用双份控件. 2:使用TABLE页,给用户很明显的视觉 变化
五:(Text)文字表达
提示信息、帮助文档文字表达遵循以下准则:
1:口语化、客气、多用您、请,不要用或少用专业术语,杜绝错别字 2:断句逗号 句号顿号分号的用法,\r\n 提示信息比较多的话,应该分段, 3:警告、信息、错误 使用对应的表示方法 4:使用统一的语言描述,例如一个关闭功能按钮,可以描述为 退出、返回、关闭,则应该统一规定。 5: 根据用户不同采用相应的词语语气语调,
Onsize的时候做控件位置、大小的相应改变。 BCB/DELPHI的VCL中,大部分控件 有布局属性: 某些控件拥有alignment属性,可以用来做布局调节:TcustomPanel, Tmemo等,考左靠右靠上靠下以及撑满(Client)属性,用 来根据版面自动调节。 大 部分控件有属性Anchors,里面上下左右akLeft, akTop等如果为true,则表示相对各个边 缘的距离是否改变。这个可以进一步设计好排版工作。
2:区域排列 一行控件,纵向中对齐, 控件间距基本保持一致 行与行之间间距相 同,靠窗体Border距离应大于行间间距(间距加边缘留空)。 当屏幕有多个编辑区域, 要以视觉效果和效率来组织这些区域。 3:数据对齐要适当 说明文字,中文版应 使用中文全角冒号,纵向对齐时,并按冒号右对其,如图。 纵向控件宽度尽量保持 相通。并左对齐。 例如金额等字符穿应根据小数点对齐,或者右对齐 4:有效组 合 逻辑上相关联的控件应当加以组合,以表示其关联性,反之,任何不想光的项目 应当风格开,在项目集合间,用间隔对其进行分组,或者使用方框划分各自区域。 例如: 以下界面,选择搜索方式来判断号码范围是表示主叫号码范围还是被叫号码范 围,和入帐方式无关, 则应该修改为: 搜索方式和入帐方式调换位置。以免用户产 生误解。 5:窗口缩放时,控件位置、布局: 为了使界面不出现跑版或者难看的 局面,解决方法: 1:固定窗口大小,不允许改变尺寸, 2:改变尺寸辨率的大小,缩放时的状态和原则,并且为将来设 计 的按钮,菜单,标签,滚动条及状态栏预留位置。设计中将整体色彩组合进行合理 搭配,将软件商标放在显著位置,主菜单应放在左边或上边,滚动条放在右边,状 态 栏放在下边,以符合视觉流程和用户使用心理
Visualizer模块快速入门教程
Visualizer 模块快速入门教程下面的教程将示范如何使用 Visualizer。
z 管理 Project: 介绍 MS Modeling 中的 Project,并示范如何使用它们管理工作 流文件。
z 绘制简单分子: 介绍用于绘制链和环的绘制工具,编辑键级和元素类型并且 测量不同的几何性质。
z 绘制卟啉分子: 显示如何操纵片断并使用 Display Style 对话框。
z 绘制有机金属结构: 介绍片断浏览并示范如何使用 Find Symeetry 工具。
z 将分子对接到表面: 介绍了用于连接晶体结构的表面模建。
z 使用聚合物模建工具: 介绍了构建多种类型聚合物结构的聚合物模建工具。
z 使用层模建工具: 先是如何使用层模建工具来构造一个界面和金属-聚合物金属分层结构。
z 使用晶体模建工具: 介绍用于构造并可视化 3D 周期结构的晶体模建工具。
1.管理 Project背景 当你正在运行一些高级的操作,例如 Discover 或者 Amporphous Cell 工作的时候,会生 成具有不同文件名的不同文档。
要使管理这些文档变得更简单,MS Modeling 有一个叫做 Project Explorer 的文件管理器。
它与一些高级程序程序语言包如 VC++的文档管理系统相似。
与程序可以生成文档和文件夹相同, 你也可以生成自己的文件夹和文档来订制文档组织并帮 助你纪录所作的工作。
介绍 本教程分为两个部分。
第一部分描述了一个简单的 Project,在这里你会看到如何执行 计算,例如能量的最小化。
第二和以后的部分将通过生成自己的 Project 来进行指导。
因为 处理 Project 是 MS Modeling 中的一个基本部分,也是进行其它教程的参考部分。
(1).例子 Project 的示范性细目分类 此部分由一个例子 Project 的细目分类组成。
只用于示范目的,不牵涉到任何要完成的 工作。
c语言学习心得c语言程序设计心得2c语言程序设计课程设计心得体会(7篇)
c语言学习心得c语言程序设计心得2c语言程序设计课程设计心得体会(7篇)推举c语言学习心得c语言程序设计心得2(推举)一由于是英文版,所以读起来很流畅,丝毫没有中文翻译书籍蹩脚的感觉。
下面说说我读这本书的感受,和我个人对c#的一点看法。
这本书是一本入门书籍,读这本书根本不需要什么根底学问,对编程一点都不懂的人也可以看,适合入门用。
但假如有肯定的编程根底,特殊是面对对象,或以前具有window native编程阅历,或web编程阅历,sql server阅历,读起来就很快,我用了一个星期的时间,便读完了,将书中的练习都在自己的机器上实现了一遍。
对书中的内容不能说100%,至少90%都有了肯定的了解。
下面说一下我之前的阅历:由于我之前有肯定的c语言编程阅历(谭浩强的c语言那本书,全部题目都拿下)c++阅历(c++primer把握大局部内容,并把握了c++的高级内容,比方模板库,泛型编程,抽象类,虚函数,多重继承,自己实现过一些简单的类,比方大数类,计算1万的阶乘等)肯定的算法和编程阅历(学习了简洁的算法,在oj上ac过肯定数量的题目(约100多题))java阅历(约一个月,主要通过视频教学学习了一些内容)web编程阅历(了解html, css, xml ,ajax,php,tomcat,可以写一些简洁的php页面,jsp页面等)访问数据库(了解sql语言(特地看完了《head first sql》英文版,对于高级查询,合并查询等比拟高级的sql内容有肯定的了解) 有一些vc阅历(编写过简洁的图像处理程序,变色,腐蚀,膨胀算法),对mfc的框架初步了解。
win32 阅历(可以直接调用win32 sdk写一些简洁的程序) 肯定的英文阅历(cet6,读过一些英文原版的技术书籍和文献)之前对c#有肯定的了解,用c#写过一些win form。
之所以总结自己的阅历,是由于有人可能不信任我能一个星期读完这本厚厚的英文技术书籍,并完成里面的练习。
推荐8款常用的PythonGUI图形界面开发框架
推荐8款常⽤的PythonGUI图形界⾯开发框架作为Python开发者,你迟早都会⽤到图形⽤户界⾯来开发应⽤。
本⽂将推荐⼀些 Python GUI 框架,希望对你有所帮助,如果你有其他更好的选择,欢迎在评论区留⾔。
Python 的 UI 开发⼯具包 KivyKivy是⼀个开源⼯具包能够让使⽤相同源代码创建的程序能跨平台运⾏。
它主要关注创新型⽤户界⾯开发,如:多点触摸应⽤程序。
Kivy还提供⼀个多点触摸⿏标模拟器。
当前⽀持的平台包括:Linux、Windows、Mac OS X和Android。
Kivy拥有能够处理动画、缓存、⼿势、绘图等功能。
它还内置许多⽤户界⾯控件如:按纽、摄影机、表格、Slider和树形控件等。
Python 的 GUI 开发⼯具 FlexxFlexx 是⼀个纯 Python ⼯具包,⽤来创建图形化界⾯应⽤程序。
其使⽤ Web 技术进⾏界⾯的渲染。
你可以⽤ Flexx 来创建桌⾯应⽤,同时也可以导出⼀个应⽤到独⽴的 HTML ⽂档。
因为使⽤纯 Python 开发,所以 Flexx 是跨平台的。
只需要有Python 和浏览器就可以运⾏。
如果是使⽤桌⾯模式运⾏,推荐使⽤ Firefox 。
Qt库的Python绑定 PyQtPyQt是Qt库的Python版本。
PyQt3⽀持Qt1到Qt3。
PyQt4⽀持Qt4。
它的⾸次发布也是在1998年,但是当时它叫 PyKDE,因为开始的时候SIP和PyQt没有分开。
PyQt是⽤SIP写的。
PyQt 提供 GPL版和商业版。
Python图形开发包 wxPythonwxPython 是 Python 语⾔的⼀套优秀的 GUI 图形库,允许 Python 程序员很⽅便的创建完整的、功能键全的 GUI ⽤户界⾯。
wxPython 是作为优秀的跨平台 GUI 库 wxWidgets 的 Python 封装和 Python 模块的⽅式提供给⽤户的。
就如同Python和wxWidgets⼀样,wxPython也是⼀款开源软件,并且具有⾮常优秀的跨平台能⼒,能够运⾏在32位windows、绝⼤多数的Unix或类Unix系统、Macintosh OS X上。
Qt教程
GUI简介图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户接口。
与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于接受。
1.1 MFC微软基础类库(Microsoft Foundation Classes,简称MFC)是一个微软公司提供的类库(class libraries),以C++类的形式封装了Windows API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。
其中包含的类包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。
MFC的主要优点是可以用面向对象的方法来调用Windows API,以及应用程序开发的便捷。
MFC将很多应用程序开发中常用的功能自动化,并且提供了文档框架视图结构和活动文档这样的便于自定义的应用程序框架。
缺点:虽然MFC的源代码对用户是完全开放的,但是MFC的一些封装过程过于复杂,以致于新用户很难迅速掌握MFC的应用程序框架,以及在调试中定位问题的位置。
/zh-CN/vstudio/参考书:《VC++深入详解》,孙鑫。
1.2 wxWidgetswxWidgets is a C++ library that lets developers create applications for Windows, Mac OS X, Linux and UNIX on 32-bit and 64-bit architectures as well as several mobile platforms including Windows Mobile, iPhone SDK and embedded GTK+./about/screensh.htm1.3 MiniGUIMiniGUI is one of the world famous free software projects. MiniGUI aims to providea lightweight graphics user interface (GUI) support system for real-time embedded systems. Since the first release under the GPL license at the beginning of 1999, MiniGUI has been widely used in handheld terminals (mobile phones and PDAs), settop boxes, industry control systems, industry instruments, portable media players, andso on.MiniGUI has become a cross-operating-system GUI system; it can run on Linux/uClinux, eCos, VxWorks, pSOS, ThreadX, Nucleus, and even uC/OS-II; The hardware platforms tested include Intel x86, ARM (ARM7/ARM9/StrongARM/xScale), PowerPC, MIPS, BlackFin, DragonBall, and ColdFire.At present, the latest GPL version of MiniGUI is 1.6.10. This version provides support for Linux/uClinux and eCos operating systems.The following figure are the MiniGUI-based application interfaces for a WiFi phone. This device is based on the eCos operating system./en/introduction/application/1.4 μC/GUIμC/GUI is universal graphical software for embedded applications that provides an efficient processor and LCD controller-independent GUI to applications using a graphical LCD. Designed for single and multi-task environments, μC/GUI is adaptable to nearly any size physical or virtual display with an LCD controller and CPU, and is delivered with all source code.μC/GUI is compatible with nearly all CPUs and, unlike other GUIs that require a C++ compiler, μC/GUI is written entirely in ANSI-C. Processors ranging from 8- to 32-bitsrun μC/GUI. 16-bit CPUs (or better) achieve optimal performance./rtos/ucgui/overview/1.5 Qt●参考书:《C++GUI Qt4编程(第2版)》,布兰切特(Jasmin Blanchette) (作者), 萨默菲尔德 (Mark Summerfield) (作者), 闫锋欣(译者), 曾泉人(译者), 张志强(译者)●/一、Qt与Qt Creator介绍1.1 Qt与Qt Creator简介Qt 是一个跨平台应用程序和UI 开发框架。
C语言到底能干什么(用C写QQ)
C 语言究竟能干什么序言鉴于现在已经大三了,很多同学很迷茫,自己学的东西到底能做什么,将来自己到底能干什么?我不想看着同学迷茫的面孔,特别是几个好兄弟,有几个想学习编程,但又苦苦找不到门路的兄弟,所以想写点东西,希望对大家又点略微的帮助,以尽兄弟我的微薄之力。
很多同学学了C语言之后,可能难免会有所感叹:这就是C语言!总是感觉C语言竟然能写出Windows、Linux?为了解除同学们的疑惑,也愿为同学们指点编程之道吧。
我写的这些东西采用C语言,计划通过编程实例来讲解C编程的一些知识,让大家对C能又更深一层的理解和认识。
当然,大家不要指望看了这些之后会写出一个操作系统来,但是我想,如果你认真看了的话,写一个类似与QQ的聊天程序应该不难。
本来书是假期里照顾妈妈时写的,原想是1、不让自己的水平停滞不前,温故知新(两个月的假期是很长的)2. 帮助一些同学,解决编程上的困惑3.希望妈妈快点康复4.让母亲和家里人知道自己一直都很努力,我是好样的但现在母亲已经能够不在了,所以第三点,就改为原母亲在天之灵得到慰藉,早日放下烦恼,不用惦记我们。
C语言的基本语法我是不打算再提了,很多C语言编程的书,就是将一些基本的数据类型、数据结构、语法,然后就是一些数值计算的实例,大多数都是雷同的,难免有抄袭之嫌,而且页没有多少实用价值。
本书以实用实例作为编程指导,指引大家编写真正实用的程序。
了解到大家对黑客程序、病毒、窗口类程序比较感兴趣,因此我就拿这些实例进行讲解。
基于大家基本都用Windows XP SP3,我也就在这个系统上把程序调试成功后再给大家讲解。
编程环境,我还是喜欢V isual C++ 6.0本书计划从四个大的方面来讲,这四个方面是:窗口类、文件操作类、网络类、数据库类。
都是时下流行的编程必备技术,也是软件开发者,必须掌握的技术。
中间以实例讲解,逐步学习,相信大家看完后会有很大的提高的。
第一章窗口类程序的编写这一章就先来讲解下窗口类程序的编写。
VC 界面库皮肤库
VC 界面库皮肤库CJLib(mfc扩展开发包,是xtreme toolkit的前生,但xtreme toolkit 收费了)/BCGControlBar(收费,mfc扩展开发包,功能很强大)SkinMagic(收费,看起来像Office)/html/download.htmlAppFace(收费,支持mfc ,VCL,ATL , WTL 框架)/chs/index.htmSKin++(收费,界面很好看)/USkin(收费,界面很好看)/SYGUI(收费,mfc扩展框架)/LibUIDK(部分免费,不开源,效果好,适合贴图)/download.htmGuiToolkit(开源,mfc扩展框架)/default.htmGardenUI(免费,界面效果挺好的,XML,代码界面分离)/几种免费的界面库及其用法MFC的标准界面给程序员带来了一定的便利,但也使得用户总是抱怨Windows的界面非常的糟糕,于是各种各样的界面库诞生了,从金山瑞星等公司的一系列的软件来看,他们就有自己的界面库。
好的界面库使用起来非常简单,就如QQ的换肤功能,转眼间使得软件面貌一新。
一个好的界面库可以大大降低编程的复杂程度,提高开发速度,保证软件风格的一致性。
为了DVBAres的开发,我考察了几种(免费)界面库。
1。
AppFace。
AppFace在一部分软件开发者的好评,因为它的使用实在是简单,而且稳定性和效率都不错,而且对于个人用户还有免费条款,因此中文页面上的介绍比较多。
这一款软件在其0.x版本上还是免费的,到目前的版本上已经不免费了,只提供90天的试用期。
2。
MenuXPMenuXP这个界面库只能作出仿OfficeXp风格的界面,使用起来也算简单,而且很关键的一条,它是免费的。
参考网址:/menu/menuxp2.asp3。
CJ60。
CJ60原名为MFC的扩展库,是世界著名的界面库,网上有较多的源代码下载,不过这个扩展库的使用是针对MFC标准控件的,如果要研究这个界面库,则可以参考《VC++界面一揽子方案》,其中的说明文档对这些界面控件有较好的描述。
vc tab控件的用法
vc tab控件的用法VC++中的Tab控件是一种常见的界面控件,用于创建多页式的界面布局。
Tab控件通常用于将多个相关的控件或页面分组显示,以便用户可以通过切换选项卡来轻松切换内容。
使用Tab控件需要进行以下步骤:1.在资源编辑器中添加一个Tab控件。
选择项目中的对话框文件,然后在工具箱中选择Tab控件,并拖动到对话框上。
2.添加多个对话框资源作为选项卡中的各个页。
在资源编辑器中,右击Tab控件,选择添加页。
可以在每个页上放置需要的控件。
3.在代码中关联Tab控件的变量。
在对话框类的头文件中,添加一个成员变量,类型为CTabCtrl,用于表示Tab控件。
4.通过DDX_Control宏或手动获取对Tab控件的指针。
在对话框的DoDataExchange函数中,通过DDX_Control宏将对Tab控件的关联,或者使用GetDlgItem函数手动获取Tab控件的指针。
5.在初始化对话框时,添加选项卡页。
在OnInitDialog函数中,使用Tab控件的InsertItem函数添加选项卡页,并设置选项卡的文本。
6.处理选项卡切换事件。
可以在Tab控件的响应函数中处理选项卡切换事件,通过GetCurSel函数获取当前选中的页索引,然后根据索引显示相应的页内容。
拓展:Tab控件还可以进行一些其他的设置和操作,例如设置选项卡的颜色、字体、图标等,显示或隐藏选项卡的边框,禁用某个选项卡等。
此外,还可以通过自定义页控件实现更灵活的界面布局。
通过继承CDialog或CFormView类,并在资源编辑器中添加自定义的对话框资源作为选项卡页,可以自由地设计和布局每个选项卡的内容。
总之,Tab控件是一种方便实现多页式界面布局的控件,通过在资源编辑器中添加多个对话框作为选项卡页,然后在代码中进行关联和处理,可以实现切换选项卡来切换内容的功能。
必备实验总结心得体会
必备实验总结心得体会实验总结心得体会1一维数组是计算机编程中常见且重要的数据结构之一,其应用广泛。
在我所参与的实验中,我们通过实践操作和理论探索,深入了解了一维数组的特点和使用方式。
以下是我对这次实验的心得体会。
在实验过程中,我们首先学习了一维数组的定义和声明方法,以及常见的操作技巧。
通过编写简单的程序,我们成功创建了一维数组,并且能够对数组进行初始化和访问。
在实验中,我使用了一维数组来存储学生的成绩,通过遍历数组和计算平均值来进行分析和评估学生的学术表现。
我发现,使用一维数组能够极大地简化数据的管理和操作,使得程序更加高效和灵活。
在实验过程中,我遇到了一些困难。
首先是对数组下标的理解和运用。
在初期的实验中,我经常出现数组越界的情况,导致程序运行出错甚至崩溃。
经过老师的指导和同学的帮助,我逐渐学会了正确使用数组下标,并且注意边界条件的判断,避免了类似的错误。
此外,我还遇到了数组的`长度问题。
在某些情况下,数组的长度需要根据实际需求动态分配,这就需要灵活运用一维数组的操作方法来实现。
通过查阅资料和向老师请教,我学会了使用动态内存分配的方法来解决这个问题。
通过这次实验,我不仅学到了一维数组的使用方法,更深入理解了计算机编程中的数据结构和算法。
一维数组的应用不仅仅局限于存储和操作数据,还可以用来解决更复杂的问题。
例如,我们可以使用一维数组来实现队列、栈等数据结构,从而提高程序的效率和可读性。
此外,一维数组在图像处理、数值计算、排序算法等领域也有着广泛的应用。
因此,掌握一维数组的使用方法对于学习和实践计算机编程具有重要意义。
通过这次实验,我不仅增加了对计算机编程的兴趣,更加深了对一维数组的理解。
一维数组作为计算机编程中不可或缺的数据结构之一,掌握其使用方法对于提高编程效率和解决实际问题有着重要作用。
我也深深意识到,理论知识的学习和实践探索的结合是提升技能水平的有效途径。
我将继续努力学习和实践,提高自己的计算机编程能力,为将来的职业发展打下坚实基础。
cef3嵌入mfc的代码
cef3嵌入mfc的代码全文共四篇示例,供读者参考第一篇示例:CEF3是一个开源的用于构建浏览器的框架,而MFC是微软的一种视窗类库,用于构建Windows平台下的图形用户界面。
将CEF3嵌入到MFC程序中可以让程序拥有更强大的浏览器功能,同时保持原有的用户界面。
一般来说,将CEF3嵌入到MFC程序中需要经历以下几个步骤:1. 下载CEF3库文件:首先需要从CEF官方网站上下载CEF3的库文件,这些文件包括CEF3的动态链接库、头文件、资源文件等。
2. 导入CEF3库文件:将下载的CEF3库文件导入到MFC工程中,这样程序才能调用CEF3的相关函数和资源。
3. 初始化CEF3:在MFC程序中初始化CEF3,包括创建CEF3的主界面窗口、设置CEF3的参数等。
4. 加载网页:通过CEF3提供的接口加载网页,在MFC程序中显示网页内容。
5. 处理CEF3消息:处理CEF3发送的消息,以实现与CEF3的交互。
6. 释放CEF3资源:在程序结束时释放CEF3占用的资源,以确保程序正常退出。
```cpp#include "stdafx.h"#include "MyApp.h"CMyApp::CMyApp(){}BOOL CMyApp::InitInstance(){CWinAppEx::InitInstance();return TRUE;}在上面的示例中,我们首先在InitInstance函数中初始化CEF3,然后创建一个MFC的主窗口,并在主窗口中显示CEF3加载的网页内容。
在ExitInstance函数中,我们释放CEF3的资源,保证程序正常退出。
通过以上步骤,我们可以将CEF3成功嵌入到MFC程序中,并实现一个具有浏览器功能的Windows应用。
要实现更复杂的功能还需要进一步学习CEF3的使用方法和MFC的开发技巧。
希望本文对读者有所帮助,谢谢!第二篇示例:CEF3(Chromium Embedded Framework)是一个开源的用于嵌入Chromium浏览器的框架,可以在第三方应用程序中实现浏览器功能。
C语言也能干大事
《C语言也能干大事》第一节板书:1、C语言不是只能开发黑底白字的控制台界面程序。
学习本课的基础:本课程不讲C语言基础知识,C语言考及格,学的过程中配合复习,有不懂的回去翻书。
2、学完本课程以后同学们做的一些作品赏析:计算器、俄罗斯方块、音乐播放器、学生管理系统(/forum/thread-2487-1-1.html),邮件客户端(/forum/thread-3697-1-1-uid7.html),Web论坛(/forum/thread-3991-1-1-uid7.html)可以开发游戏、网络程序、网站程序等。
C语言什么都可以开发3、准备工作,安装VC6(在网上搜“Visual C++ 6”,找合适的地址下载)。
VC6在Vista、Windows下启动可能有兼容性提示。
3、开始做第一个C语言的程序【文件】→【新建】,打开【工程】选项页,选择【Win32 Application】(不要选错了),在“位置”中修改工程保存的路径。
(以前用Tubor C的同学会问“什么叫工程?”。
在以前大家用TurboC写的程序一般也就是一个文件,但是用C语言写大程序的时候不可能把所有的代码都写在一个文件中,肯定要写很多文件。
“工程(Project)”就是这些文件的一个集合。
)在“工程名”中写入你为这个工程取的名字,最好有一定意义。
下一步【一个简单的Windows程序】4、向Windows的世界问好MessageBox(NULL,TEXT("世界你好"),TEXT("问好"),MB_OK);VC6在Vista、Windows下编译调试时可能有兼容性提示。
5、学本课程常见问题(1)为什么不用TurboC?Turbo C(Win-TC)太老了,界面还是DOS界面,库也是DOS的库,没有网络开发包、没有Windows界面开发包。
TC只能用来学C的基础,要进行实际开发必须使用先进一点的工具。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
轻松实现类VC界面
下图是一个类似VC的界面,左边、底下有两个可浮动、可变大小的控制窗口。
许多朋友都希望在自己的程序中实现类似的界面,因为此种类型的界面用途很广、通用性很强,所以笔者总结了一下实现的步骤,辑此一文,并提供源代码供大家参考!
下载本文示例工程
一、实现原理
图中两个窗口的实现类是从CControlBar派生出来的,我们并不需要从头到尾实现该类,因为Cristi Posea 先生已经为我们实现了一个称为CSizingControlBar的类,而且做得相当完美!我们所要做的便是好好地利用该类,为了尽可能地简洁,笔者将CSizingControlBar类修改了一下并命名为CCoolBar,接下来我们将详细介绍如何利用该类实现我们所需的界面。
二、实现步骤示例
[1]前期准备
新建一个名为BarDemo的MFC工程,SDI界面,其它选项默认。
将本文示例代码中的sizecbar.h sizecbar.cpp scbarg.h scbarg.cpp 四个文件复制到工程目录下。
在菜单Project->Add to project->Files将四个文件加入工程中,此时在ClassView中将出现了一个称为CCoolBar的类。
在stdafx.h文件中加上
#include "sizecbar.h"
#include "scbarg.h"
[2]开始编码
2.1 为CMainFrame增加成员变量
CCoolBar m_wndMyBar1;///我们将它作为左边的窗口
CCoolBar m_wndMyBar2;///停靠在下方的窗口
以下代码需要添加到CMainFrame::OnCreate中,方法与普通工具条的创建没有太大的区别!
2.2 创建ControlBar
if (!m_wndMyBar1.Create(_T("我的控制条"),this,123))
{ TRACE0("Failed to create mybar\n"); return -1; }
if (!m_wndMyBar2.Create(_T("我的控制条2"),this,CSize(100,100),TRUE,124))
{ TRACE0("Failed to create mybar\n"); return -1; }
2.3 停靠控制
m_wndMyBar1.SetBarStyle(m_wndMyBar1.GetBarStyle() | CBRS_TOOLTIPS |
CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
m_wndMyBar2.SetBarStyle(m_wndMyBar2.GetBarStyle() | CBRS_TOOLTIPS |
CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
m_wndMyBar1.EnableDocking(CBRS_ALIGN_ANY);
m_wndMyBar2.EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndMyBar1, AFX_IDW_DOCKBAR_LEFT);///停靠在左边
DockControlBar(&m_wndMyBar2, AFX_IDW_DOCKBAR_BOTTOM);///停靠在右边
此时我们已经生成了两个控制条窗口,但窗口中还没有任何东西!让我们来做最后一件事情:往窗口添加所需部件!
2.4 添加我的控件
这个问题看似有些麻烦其实相当简单:我们只要在创建这些控件时将控制条窗口指针作为父窗口指针赋值给这些控件即可!
请看如下例子
(1)将编辑控件放入下面那个控制条窗口中
在CMainFrame类中添加成员变量CEdit m_wndEdit;在创建ControlBar后创建编辑控件
m_wndEdit.Create(WS_VSCROLL|WS_CHILD|WS_VISIBLE|ES_AUTOVSCROLL|
ES_MULTILINE|ES_WANTRETURN,CRect(0,0,0,0),&m_wndMyBar2,101);
m_wndEdit.ModifyStyleEx(0,WS_EX_CLIENTEDGE);
(2)将树型控件放入左边那个控制条窗口中 在CMainFrame类中添加成员变量 CTreeCtrl m_wndTree;;在创建ControlBar后创建树型控件
/////////////这一段代码创建树型控件////////////
if (!m_wndTree.Create(WS_CHILD|WS_VISIBLE|
TVS_HASLINES|TVS_HASBUTTONS|TVS_LINESATROOT,
CRect(0, 0, 0, 0), &m_wndMyBar1, 100))
{
TRACE0("Failed to create instant bar child\n");
return -1;
}
m_wndTree.ModifyStyleEx(0, WS_EX_CLIENTEDGE);
////往树型控件添加内容///
HTREEITEM hti = m_wndTree.InsertItem(_T("VC知识库在线杂志"));
m_wndTree.InsertItem(_T("电子文档"));
m_wndTree.InsertItem(_T("在线杂志第一期"), hti);
m_wndTree.InsertItem(_T("在线杂志第二期"), hti);
(3)将对话框放入控制条中
首先在资源编辑器里制作一个CHILD类型的无BORDER对话框,ID为IDD_DIALOGBAR,并以此作为模板生成CVCKBASEDlg类,
并在CMainFrame中添加成员变量 CVCKBASEDlg m_wndVCKBASE;然后在创建ControlBar后用如下代码创建对话框
m_wndVCKBASE.Create(IDD_DIALOGBAR,&m_wndMyBar1);
m_wndVCKBASE.ShowWindow(SW_SHOW);
至此我们已经大功告成!我们可以编译运行一下看看两个控制条有没有创建成功。
哇噻!只用这几行代码就实现了梦寐以求的界面!
三、更加高级的话题
3.1 该ControlBar在浮动的时候顶部的把手会消失,变成了普通的ToolWindow类型的标题栏。
为了避免这种情况,我们需要在CMainFrame::OnCreate()中,在EnableDocking()后加入:
#ifdef _SCB_REPLACE_MINIFRAME
m_pFloatingFrameClass = RUNTIME_CLASS(CSCBMiniDockFrameWnd);
#endif //_SCB_REPLACE_MINIFRAME
并在stdafx.h中加上#define _SCB_REPLACE_MINIFRAME
3.2 该类的另外一种风格可以在stdafx.h中加上 #define _SCB_STYLE_FLAT 产生,您不妨试试!
3.3 如何将两个ControlBar停靠在同一行中
DockControlBar(&m_wndMyBar1, AFX_IDW_DOCKBAR_BOTTOM);///停靠在底部
RecalcLayout();
CRect rect;
m_wndMyBar1.GetWindowRect(rect);
rect.OffsetRect(1, 0);//偏移一个位置
DockControlBar(&m_wndMyBar2, AFX_IDW_DOCKBAR_BOTTOM,rect);///也停靠在底部
3.4 如何将两个ControlBar停靠在同一列中
DockControlBar(&m_wndMyBar1, AFX_IDW_DOCKBAR_RIGHT);///停靠在右边
RecalcLayout();
CRect rect;
m_wndMyBar1.GetWindowRect(rect);
rect.OffsetRect(0, 1);//看到这里的区别了吗
DockControlBar(&m_wndMyBar2, AFX_IDW_DOCKBAR_RIGHT,rect);///也停靠在右边
(作者:王骏)。