您当前的位置:《可视化编程》听课笔记:04
《可视化编程》听课笔记:04

回顾:  消息机制

CView 类的OnDraw()函数可以截获视窗改变大小或者位置时系统发出的OnPaint()这个消息,以此来重画窗口。

本节:

一、分形论

对没有特征长度但具有自相似性的图形和结构的总称。利用分形论使用c语言算法可以很方便的在应用程序里画出漂亮的图形来。

二、其他功能

1、拖放功能

在应用程序初始化函数(App->InitInstance->最后return前)里加如代码:

m_pMainWnd->DragAcceptFiles();//接收拖放文件

2、Shell注册

Shell注册过的应用程序可以双击鼠标打开,即操作系统默认打开特定文件的应用程序关联。步骤:

——1、在应用程序初始化函数(App->InitInstance->最后return前)里加如代码:
EnableShellOpen();//修改注册表

RegisterShellFileType(TRUE);
——2、指定应用程序扩展名

————方法1:资源视图—》String Table—》双击打开IDR_XXTYPE串表

——————     串表7个参数包括:

——————                WindowTitle //标题栏中的应用程序名

——————                DocName     //默认程序文件名的固定部分

——————                 FileNewName//多文档情况时文档类型的名字

——————                 FilerName      //文档类型和通配符过滤器描述

——————                 FleterExt        //文档文件的扩展名

——————                 RegFileTypeld//注册表中登记的文档类型

——————                 RegFileTyprName //注册表中登记的文档类型的名字
——————     修改一个扩展名  完成。

————方法2:使用MFC向导建立工程时,最近打开文档数后面的高级选项——中进行串表参数设置  完成。

3、消息与命令 (截获消息,封装消息,发送消息)

消息内容包括:目标窗口,消息类型,参数1,参数2

消息种类:(1)标准Windows消息:WM_XXXX

                               由Windows给其发送消息的那个窗口处理

                  (2)控件消息

                  (3)命令消息:来自用户界面对象的通知消息

                              命令被发送给标准命令目标链,每个命令对象都将检查自

                              己的消息映射看能否处理相应消息

截获消息:类视图右击要用来截获消息的类,为其添加消息句柄,在生成的函

                 数里处编辑消息处理代码。

删除消息:在类视图里找到消息函数,右击—>delete 删除,这样能完整地删除

                  目标;在函数向导里删除时只能删除.h中的代码,还需要手工

                 从.cpp文件中删除实现函数功能的代码(注:删除时由于VC的漏

                 洞,类视图中的整个类都不再显示,这不影响应用程序本身,

                 JUST A BUG)。

                                                                                标准Window消息            ---------------------------------------------------------------------------------------------

命令消息:

              命令消息许多窗口都可以接收。

              View类最先收到消息,然后是文档类,子边框窗口类,App应用程序

              窗口类,MainFrame主边框窗口类。

----------------------------------------------------------------------------------------

详细讲解部分消息:

X、窗口消息:

WM_PAINT消息:只要窗口发生变化操作系统就会向应用程序发送

                             WM_PAINT给CXxxView的消息循环,由CXxxView的

                             CView::OnPaint()选择截获该消息,OnPaint函数调用

                             CXxxView::OnDraw函数重画窗口

1、鼠标消息:当用户对鼠标进行操作时系统产生鼠标消息并发送给应用程序

     WM_LBUTTONDOWN

     WM_RBUTTONDOWN

     WM_MOUSEMOVE

其他补充细节:

             1)根据变量的使用范围,可在CXxxView类的定义.h文件中添加变量

                   定义,最好将变量定义代码添加在类定义的最后,以免影响到其

                   他成员变量和成员函数的公有、私有型。 同时将变量声明为私有

                   private: int m_nNum;

                 //根据提高程序可读性的变量命名规则(匈牙利命名法),m表示是

                   变量,n表示是整数类型,Num是变量名的区分部分。

               2)变量定义后要养成初始化的习惯,如果是类中定义的变量,则在

                   类的构造函数里进行变量初始化

                3)类成员变量的添加也可以右击目标类—>Add Member Variable,添

                     加完成后同样要在这个类的构造函数里进行变量初始化。

                 4)注:某个构造函数的构造函数就在类视图中这个类的函数中,与

                     类同名

                 5)Invalidate()函数可使窗口失效,即发送WM_PAINT消息使窗口立

                    刻重画。example:   InvalidateRect(CRect(50,50,200,200),true);//使

                    窗口一部分失效重画,用于程序优化

收藏状态
收藏本课程的同学
相关课程