好文档 - 专业文书写作范文服务资料分享网站

MFC教程

天下 分享 时间: 加入收藏 我要投稿 点赞

“解决方案资源管理器”中显示项目中的所有文件,如果要删除一个既存的程序,或添加一个新程序或头文件等,都是利用这个工具来完成。

“资源视图”中包含菜单、鼠标光标、对话框、图标、工具条、字符串常量表、版本信息表、快捷键、HTML等,在“解

决方案资源管理器”中鼠标双击后缀为rc的文件便可打开“资源视图”。添加、修改、删除“资源”都是在“资源视图”中操作。

这些“资源”文件其实都是文本文件,内容基本上是资源的定义(图标等除外),完全可以直接手动编写,但手动编写既容易出错,也不方便。另外,对话框的设计还需要和“属性”工具一起使用,这些都是微软Visual Studio集成工具的基本使用常识,MFC教程中不再详细叙述。

“类视图”是学习MFC最重要的工具,小雅认为初学者要学会或者说习惯这个工具的使用。一个很简单的程序,经过MFC生成之后,便是一个“庞大”的程序,初学者如果一行一行地去读,往往头晕目眩,越看越烦。而通过“类视图”从整体上来分析,能很好地把握整个的设计思路,通过“类视图”能很准确地定位到你想编程的“位置”。例如,添加类成员变量或成员函数,消息处理等,利用工具,多个地方的程序将被同进更新。

通过“类视图”还可以很方便地看到父类的全部信息,从而了解当前的类还有哪些功能可以使用。同时可以看到想相关类的全部信息。这比Java的集成环境(如:Websphere等)不知要方便多少倍。

“属性”使用该窗口查看和更改位于编辑器和设计器中的选定对象的设计时属性及事件。也可以使用“属性”窗口编辑和查看文件、项目及解决方案属性。 “属性”窗口显示编辑字段的不同类型,这取决于特定属性的需要。这些编辑字段包括编辑框、下拉列表以及到自定义编辑器对话框的链接。属性以灰色显示且是只读的。

元素 对象名 按分类顺序 按字母顺序 属性 图形 说明 列出当前选定的一个或多个对象。只有活动编辑器或设计器中的对象可见。 当选择多个对象时,只出现所有选定对象的通用属性。 按类别列出选定对象的所有属性及属性值。可以折叠类别以减少可见属性数。展开或折叠类别时,可以在类别名左边看到加号 (+) 或减号 (-)。类别按字母顺序列出。 按字母顺序对选定对象的所有设计时属性和事件排序。若要编辑可用的属性,请在它右边的单元格中单击并输入更改内容。 显示对象的属性。很多对象的事件也可以使用“属性”窗口来查看。 显示对象的事件。仅当窗体或控件设计器在一个 Visual C# 项目或 C++ 项事件 目托管扩展的上下文中处于活动状态时,此“属性”窗口工具栏控件才可用。 列出所有 Windows 消息。为选定类的消息添加或删除指定处理函数。此“属VC消息 性”窗口工具栏控件仅当“类视图”在 Visual C++ 项目的上下文中为活动窗口时才可用。 为选定类列出所有虚函数并允许添加或删除重写函数。此“属性”窗口工具VC重写 栏控件仅当“类视图”在 Visual C++ 项目的上下文中为活动窗口时才可用。 显示选定项的“属性页”对话框。“属性页”显示“属性”窗口中的可用属属性页 性的子集、同集或超集。使用该按钮可查看和编辑与项目的活动配置相关的属性。 “说明”窗格 N/A 显示属性的属性类型和简短说明。可以使用快捷菜单上的“说明”命令关闭和打开属性的说明。 03章 初始大小、标题和图标的改变

一、直接修改现有图标

在上一章生成的基础上,打开资源视图,选择唯一的图标“IDR_MAINFRAME”双击,然后将图标“擦除”,画一个自己喜欢的图形并保存。“Ctrl+F5”重新编译生成运行,你将会和小雅一样惊奇地发现,运行出来的程序的图标并没有改变。 小雅是个喜欢钻牛角尖的人,将源程序前前后后地研究了很长时间,未得其解,只好不耻下问。身边的人问了、论坛上也发贴了,仍未找到答案。不免有几句牢骚,中国许多人在招聘时个个都说自己能力很强,问他会不会VC++,他会举出很多做过VC++的项目,进了单位之后,让他编一个很简单的程序,费了九牛二虎之力生成一堆废代码。如果给他一个sample的话,倒能发挥发挥。

这种现象决不是小雅有意要攻击哪个人,在国内如此,在国外更是如此。而许多编程人员,明明技术很差,却个个自以为了不起,一点没有想学的念头。不仅如此,许多人都象穷疯了一样,都想通过一两次生意、或一两年奋斗来“暴发”一下。这种好大喜功的心理在中国很普遍,国家领导也将经济增长的数目作为政绩,而不注重实实在在的技术、生产能力,靠出卖廉价劳动带来的经济增长,这有什么好吹的。

那么原因出在哪儿呢,原因出在MFC生成的图标上,我们自己新建一个图标,无论怎样画大小也只有1K左右,而MFC生成的图标竟有22K之多。小雅将MFC生成的图标一个象素一个象素地在新建的图标上画了一遍,大小也只有1K左右,新画的图标在Windows的资源管理器里面,无论大图标还是小图标,画错了的地方都能立即显示出来,而MFC生成的图标,无论怎样修改,在Windows的资源管理器里面,无论大图标还是小图标都没有任何改变。

小雅知识有限,对图象方面了解不多,记得看过一篇文章,介绍如何通过调色板控制BMP,使其颜色不能被修改。图标也应该有类似的功能,小雅既然不会,就介绍一下更换图标的笨方法。这个笨办法对第1章和第2章生成的程序都适用。

1. 在资源视图中“Icon”下选择“IDR_MAINFRAME”图标,然后用“Delete”

键删除。

2. 在Windows的资源管理器里面,打开当前项目下的“res”子目录,删除相

应的图标文件。

3. 在资源视图中“~.rc”下,用右键菜单的“插入资源(A)...”,然后在对话框

中选择“Icon”新建一个图标。

4. 在属性工具中,将新建的图标的ID改为“IDR_MAINFRAME”(默认为

“IDI_ICON1”)。

5. 在属性工具中,将新建的图标的Filename改为上面删除的文件名。注意

应保存在“res”子目录下。

如果你事先已经有一个自己的图标,那最简单了,在VC++中什么也不需要修改,直接在资源管理器里面将那个22K的图标文件删除,然后用你自己的图标换成被删除的文件名。

二、改变窗口的标题和初始大小

在资源视图中打开“String Table”,IDR_MAINFRAME的值为

“test2\\n\\ntest2\\n\\n\\ntest2.Document”,将之改为:“yaer\\n小雅\\ntest2\\n\\n\\ntest2.Document”,窗口的标题就改完了。

初始大小的更改,对于第2章生成的基于对话框的程序来说很简单,只要在资源视图中选择主窗口后打开,直接用鼠标改变大小就可以了。

对于第1章生成的文档类程序不忙于修改,先用类视图来看一下MFC生成的单文档程序和对话框程序的类有什么相同和不同。

单文档 对话框 “关于”对话框类。无CAboutDlg “关于”对话框类。无须修改。 CAboutDlg 须修改。 CTest2App 主应用程序类,调用框架类、文档主应用程序类,调用主CTest3App 类、视图类。无须修改。 对话框类。无须修改。 主框架类,即主窗口。很少需要修CMainFrame 改。 CTest2Doc 文档类,即存放数据主要在这儿编写代码。 Ctest3Dlg 主对话框类。 视图类,即用于屏幕显示的类,文CTest2view 字显示和画图主要在这儿编写代码。 修改窗口的初始大小在CMainFrame类的PreCreateWindow()成员函数中,通过修改 CREATESTRUCT cs 来修改窗口类或样式。

typedef struct tagCREATESTRUCTW { LPVOID lpCreateParams; //指向创建窗口用的数据的指针 HANDLE hInstance; //窗口的实例句柄 HMENU hMenu; //窗口的菜单句柄 HWND hwndParent; //窗口句柄 int cy; //窗口的高度 int cx; //窗口的宽度 int y; //窗口的左上角的y座标 int x; //窗口的左上角的x座标 LONG style; //窗口的类型 LPCSTR lpszName; //指向窗口的名称的指针 LPCSTR lpszClass; //指向窗口类的名称的指针 DWORD dwExStyle; //窗口的扩展类型 } CREATESTRUCTW, *PCREATESTRUCTW, *LPCREATESTRUCTW; BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) { if( !CFrameWnd::PreCreateWindow(cs) ) return FALSE; // TODO: 在此处通过修改 CREATESTRUCT cs 来修改窗口类或样式 cs.cx = 220; cs.cy = 150; return TRUE; }

三、框架类、文档类、视图类的关系

框架类主要处理窗口的类型、边框、位置、大小以及子窗口(对于多文档来说)等内容,工具条、状态条也是这个类的成员变量。如果要添加成员变量时,初始化要在CMainFrame()构造函数中添加代码;OnCreate()成员函数是消息WM_CREATE的处理函数,这里面根据需要修改代码(一般不需要);PreCreateWindow()成员函数是创建主窗口前的设置,调整窗口位置、大小 、类型等都是在这儿修改代码。 文档类主要用来处理数据。例如画一个图,图的各节点座标、颜色、线条的粗细等都有文档类来处理,文件的保存和打开等当然也是文档类来处理。视图类主要处理数据的显示,例如:文字在窗口中显示、键盘鼠标操作等都是由视图类来处理。视图类不断地从文档类取数据,不断地对文档类传送数据。当文档类数据较多时,视图类显示的数据只是文档类的一部分。

MFC教程

“解决方案资源管理器”中显示项目中的所有文件,如果要删除一个既存的程序,或添加一个新程序或头文件等,都是利用这个工具来完成。“资源视图”中包含菜单、鼠标光标、对话框、图标、工具条、字符串常量表、版本信息表、快捷键、HTML等,在“解决方案资源管理器”中鼠标双击后缀为rc的文件便可打开“资源视图”。添加、修改、删除“资源”都是在“资
推荐度:
点击下载文档文档为doc格式
65d4x6qtdf553972zwtu
领取福利

微信扫码领取福利

微信扫码分享