我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:2019跑狗图高清彩图 > 允许重画 >

CWnd类总结

归档日期:07-08       文本归类:允许重画      文章编辑:爱尚语录

  CWnd是MFC的一个窗口类,这个类里几乎封装了所有关于窗口操作的API函数。

  在Windows系统里,一个窗口的属性分两个地方存放:一部分放在“窗口类”里头,如上所述的在注册窗口时指定;另一部分放在Windows Object本身,如:窗口的尺寸,窗口的位置(X,Y轴),窗口的Z轴顺序,窗口的状态(ACTIVE,MINIMIZED,MAXMIZED,RESTORED…),和其他窗口的关系(父窗口,子窗口…),窗口是否可以接收键盘或鼠标消息,等等。

  为了表达所有这些窗口的共性,MFC设计了一个窗口基类CWnd。有一点非常重要,那就是CWnd提供了一个标准而通用的MFC窗口过程,MFC下所有的窗口都使用这个窗口过程。至于通用的窗口过程却能为各个窗口实现不同的操作,那就是MFC消息映射机制的奥秘和作用了。

  CWnd类和消息映射机制隐藏了WndProc函数。接收到的Windows通知消息通过消息映射被自动发送到适当的CWnd OnMessage成员函数。你可以在派生类中重载OnMessage成员函数以处理成员的特定消息。

  CWnd类同时还使你能够为应用程序创建Windows的子窗口。先从CWnd继承一个类,然后在派生类中加入成员变量以保存与你的应用程序有关的数据。在派生类中实现消息处理成员函数和消息映射,以指定当消息被发送到窗口时应该如何动作。

  你可以经过两个步骤来创建一个子窗口。首先,调用构造函数CWnd以创建一个CWnd对象,然后调用Create成员函数以创建子窗口并将它连接到CWnd对象。当用户关闭你的子窗口时,应销毁CWnd对象,或者调用DestroyWindow成员函数以清除窗口并销毁它的数据结构。

  HWND是Windows系统中对所有窗口的一种标识,即窗口句柄。这是一个SDK概念。

  CWnd是MFC类库中所有窗口类的基类。微软在MFC中将所有窗口的通用操作都封装到了这个类中,如:ShowWindow等等,同时它也封装了窗口句柄即m_hWnd成员。

  1,在窗体里,直接用 this-,//this就是本窗体的窗口对象指针

  当给定一个窗口的句柄时,返回CWnd对象的指针。如果没有CWnd对象与这个句柄相连接,则创建一个临时的CWnd对象并与之相连接

  当给定一个窗口的句柄时,返回CWnd对象的指针。如果没有CWnd 对象与这个句柄相连接,则返回NULL

  CWinApp的空闲处理函数自动调用这个函数,清除由FromHandle创建的任何临时CWnd对象

  创建一个Windows的可重叠窗口、弹出窗口或子窗口,并把它连接到一个CWnd对象上

  为窗口(可以是任意子窗口,不仅是对话框中的控件)设置窗口ID或控件ID

  滚动客户区的内容,与ScrollWindow类,还有其它功能

  获得指定的控件之后(或之前)具有WS_TABSTOP风的第一个控件

  将一个Windows控件与CWnd对象连接,然后使它通过CWnd的消息映射转发消息

  像类型库中标记的那样,将调用对象的缺省的简单移动属性和与数据源控件相关的游标绑定在一起

  将一个游标移动属性与数据移动控件绑定在一起,然后在MFC的绑定管理器中注册这种联系

  获得游标的指针,该游标是通过数据源控件的DataSource、UserName、Password和SQL属性定义的

  返回这个窗口当前处理的消息的指针。只应该在OnMessage消息处理函数内部调用

  调用缺省的窗口过程,它提供了对应用程序没有处理的任何窗口消息的缺省处理

  在消息被发送到Windows函数TranslateMessage和DispatchMessage之前,CWinApp使用这个函数来过滤窗口消息

  将一条消息发送到窗口并尽快返回,返回的速度取决于该窗口是否是由调用线.剪贴板函数

  将CWnd加入一个窗口链,每当剪贴板的内容发生变化时,就会通知这些窗口

  打开剪贴板。其它应用程序将不能修改剪贴板,直到调用Windows的CloseClipboard函数

  调用缺省的窗口过程,它提供了对应用程序没有处理的任何窗口消息的缺省处理

  框架调用这个函数以通知父窗口,在它的一个控件发生了一个事件,或该控件需要消息

  当用户从控制菜单中选择命令,或者当用户选择了最大化或最小化按钮时,调用这个函数

  调用这个函数时使用调色板的所有窗口能够实现它们的逻辑调色板并更新它们的客户区

  由于调用了SetWindowPos函数或其它的窗口管理函数,因而窗口的大小、位置和次序将要发生变化时,就调用这个函数

  由于调用了SetWindowPos函数或其它的窗口管理函数,因而当窗口的大小、位置和次序发生了变化时,就调用这个函数

  当用户在注册为可以接收拖放文件的窗口上方释放鼠标左键时,这个函数就被调用

  当CWnd的大小和位置发生变化或者CWnd被激活时,就为多文档界面(MDI)的子窗口调用这个函数

  调用这个函数以通知应用程序的主窗口过程,模式对话框或菜单正在进入空闲状态

  每当Windows需要知道最大化的位置和大小,或者最小或最大跟踪尺寸时,就调用这个函数

  当CWnd被最小化(图标化),并且在画出图标之前,必须填充图标的背景时调用这个函数

  当用户按下一个菜单助记字符,但是不能与当前菜单中任何预定义的助记符相匹配时,就调用这个函数

  指明Windows的::SetWindowLong函数已经改变了一个或多个窗口风

  指明Windows的::SetWindowLong函数将要改变一个或多个窗口风

  当创建或销毁一个子窗口,或者当用户在子窗口上方点击了鼠标键时调用这个函数

  这个函数被具有LBS_WANTKEYBOARDINPUT风的子列表框调用,用以响应WM_CHAR消息

  当一个自画子列表框或组合框中将被销毁时,或者从控件中删除项时调用这个函数

  当自画子按钮控件、组合框控件、列表框控件或菜单的可视部分需要被画出时调用这个函数

  在响应数据源控件引发的事件时调用,该事件是当与数据源控件绑定的控件修改或将要修改游标时产生的

  当控件被创建时为自画子组合框,列表框或菜单项调用这个函数。CWnd通知Windows该控件的大小

  当用户旋转鼠标轮时调用这个函数。使用WindowsNT4.0的消息处理

  当用户旋转鼠标轮的时候调用这个函数。使用Windows 95和Windows NT 3.51的消息处理

  如果CWnd中包含了光标,或者用SetCapture捕获了鼠标输入时,每当鼠标移动时,Windows调用这个函数

  当通过Windows的EmptyClipboard函数清空剪贴板时调用这个函数

  当剪贴板的拥有者要滚动剪贴板的图像、使适当的部分无效以及更新滚动条的时候调用这个函数

  当拥有者应用程序将被销毁且需要提交它的所有式时调用这个函数

  当一种延迟提交的式需要被提交时为剪贴板拥有者调用这个函数

  当拥有者要滚动剪贴板的图像、使适当的部分无效以及更新滚动条的时候调用这个函数

  CWnd类提供了微软基础类库中所有窗口类的基本功能。数据成员m_hWnd指明与这个CWnd对象相关联的HWND句柄 构造和析构:CWnd构造一个CWnd对象DestroyWindow销毁相关联的Win...

本文链接:http://darwinsucks.com/yunxuzhonghua/272.html