精华内容
下载资源
问答
  • CWnd

    千次阅读 2013-12-31 15:25:58
    CObject  └CCmdTarget ... └CWnd ...CWnd类提供了微软基础类库中所有窗口类的基本功能。...另一方面,Windows的窗口是Windows的一种内部数据结构,它是由CWnd的Create成员函数创建的,而由CWnd的虚
    CObject
     └CCmdTarget
        └CWnd


    CWnd类提供了微软基础类库中所有窗口类的基本功能。
    CWnd对象与Windows的窗口不同,但是两者有紧密联系。CWnd对象是由CWnd的构造函数和析构函数创建或销毁的。另一方面,Windows的窗口是Windows的一种内部数据结构,它是由CWnd的Create成员函数创建的,而由CWnd的虚拟析构函数销毁。DestroyWindow函数销毁Windows的窗口,但是不销毁对象。
    CWnd类和消息映射机制隐藏了WndProc函数。接收到的Windows通知消息通过消息映射被自动发送到适当的CWnd OnMessage成员函数。你可以在派生类中重载OnMessage成员函数以处理成员的特定消息。
    CWnd类同时还使你能够为应用程序创建Windows的子窗口。先从CWnd继承一个类,然后在派生类中加入成员变量以保存与你的应用程序有关的数据。在派生类中实现消息处理成员函数和消息映射,以指定当消息被发送到窗口时应该如何动作。
    你可以经过两个步骤来创建一个子窗口。首先,调用构造函数CWnd以创建一个CWnd对象,然后调用Create成员函数以创建子窗口并将它连接到CWnd对象。
    当用户关闭你的子窗口时,应销毁CWnd对象,或者调用DestroyWindow成员函数以清除窗口并销毁它的数据结构。
    在微软基础类库中,从CWnd派生了许多其它类以提供特定的窗口类型。这些类中有许多,包括CFrameWnd,CMDIFrameWnd,CMDIChildWnd,CView和CDialog,被用来进一步派生。从CWnd派生的控件类,如CButton,可以被直接使用,也可以被进一步派生出其它类来。

    #include <afxwin.h>

    请参阅:CFrameWnd, CView

    CWnd类的成员

    初始化 对话框项函数 初始化消息处理函数
    窗口状态函数 数据绑定函数 系统消息处理函数
    窗口大小和位置 菜单函数 一般消息处理函数
    窗口访问函数 工具提示函数 控件消息处理函数
    更新/绘图函数 定时器函数 输入消息处理函数
    坐标映射函数 警告函数 非客户区消息处理函数
    窗口文本函数 窗口消息函数 MDI消息处理函数
    滚动函数 剪贴板函数 剪贴板消息处理函数
    拖放函数 OLE控件 菜单循环通知
    插字符号函数 可重载函数  


    数据成员

    m_hWnd 指明与这个CWnd对象相关联的HWND句柄


    构造和析构

    CWnd 构造一个CWnd对象
    DestroyWindow 销毁相关联的Windows窗口


    初始化

    Create 创建并初始化与CWnd对象相关联的子窗口
    PreCreateWindow 在与CWnd对象相关联的窗口被创建之前调用
    CalcWindowRect 调用这个函数以计算窗口客户区的矩形
    GetStyle 返回当前的窗口风格
    GetExStyle 返回窗口的扩展风格
    Attach 将Windows句柄与CWnd对象相连接
    Detach 将一个Windows句柄从CWnd对象上分离并返回这个句柄
    PreSubclassWindow 在调用SubclassWindow之前,允许其它必要的子类化工作
    SubclassWindow 将窗口与CWnd对象相连接,并使它通过CWnd的消息映射转发消息
    UnsubclassWindow 将窗口与CWnd对象分离
    FromHandle 当给定一个窗口的句柄时,返回CWnd对象的指针。如果没有CWnd对象与这个句柄相连接,则创建一个临时的CWnd对象并与之相连接
    FromHandlePermanent 当给定一个窗口的句柄时,返回CWnd对象的指针。如果没有CWnd 对象与这个句柄相连接,则返回NULL
    DeleteTempMap CWinApp的空闲处理函数自动调用这个函数,清除由FromHandle创建的任何临时CWnd对象
    GetSafeHwnd 返回m_hWnd,如果该指针为NULL,则返回NULL
    CreateEx 创建一个Windows的可重叠窗口、弹出窗口或子窗口,并把它连接到一个CWnd对象上
    CreateControl 创建一个OLE控件,该控件在MFC程序中由一个CWnd对象代表


    窗口状态函数

    IsWindowEnabled 确定一个窗口是否允许鼠标和键盘输入
    EnableWindow 允许或禁止鼠标和键盘输入
    GetActiveWindow 获得激活的窗口
    SetActiveWindow 激活窗口
    GetCapture 获得捕获鼠标的CWnd
    SetCapture 使随后的鼠标输入都被发送到这个CWnd
    GetFocus 获得当前具有输入焦点的CWnd
    SetFocus 要求输入焦点
    GetDesktopWindow 获得Windows的桌面窗口
    GetForegroundWindow 返回前台窗口的指针(顶层窗口,用户正在其中工作)
    SetForegroundWindow 使创建窗口的线程变为前台并激活窗口
    GetIcon 获得图标的句柄
    SetIcon 设置指定图标的句柄
    GetWindowContextHelpId 获得帮助上下文的标识符
    SetWindowContextHelpId 设置帮助上下文的标识符
    ModifyStyle 修改当前的窗口风格
    ModifyStyleEx 修改窗口的扩展风格


    窗口大小和位置

    GetWindowPlacement 获得窗口的显示状态以及正常(还原)的、最大化和最小化的位置
    SetWindowPlacement 设置窗口的显示状态以及正常(还原)的、最大化和最小化的位置
    GetWindowRgn 获得窗口的窗口区域的一个拷贝
    SetWindowRgn 设置窗口的区域
    IsIconic 确定CWnd是否被最小化(图标化)
    IsZoomed 确定CWnd是否被最大化
    MoveWindow 改变CWnd的位置和大小
    SetWindowPos 改变子窗口、弹出窗口和顶层窗口的大小、位置以及顺序
    ArrangeIconicWindows 排列所有最小化(图标化)的子窗口
    BringWindowToTop 使CWnd到达重叠窗口堆栈的顶部
    GetWindowRect 获得CWnd的屏幕坐标
    GetClientRect 获得CWnd客户区域的大小


    窗口访问函数

    ChildWindowFromPoint 确定哪个子窗口包含指定的点,如果有的话
    FindWindow 返回由窗口名或窗口类标识的窗口的句柄
    GetNextWindow 返回窗口管理器列表中的下一个(或前一个)窗口
    GetOwner 获得CWnd的拥有者的指针
    SetOwner 改变CWnd的拥有者
    GetTopWindow 返回CWnd所属的第一个子窗口
    GetWindow 返回与窗口有特定关系的窗口
    GetLastActivePopup 确定CWnd拥有的弹出窗口是否最近被激活
    IsChild 指明CWnd是指定窗口的一个子窗口还是其它子对象
    GetParent 获得CWnd的父窗口(如果有)
    GetSafeOwner 获得给定窗口的安全拥有者
    SetParent 改变父窗口
    WindowFromPoint 标明包含给定点的窗口
    GetDlgItem 获得指定的对话框中具有指定ID的控件
    GetDlgCtrlID 如果CWnd是一个子窗口,则用这个函数来返回它的ID值
    SetDlgCtrlID 为窗口(可以是任意子窗口,不仅是对话框中的控件)设置窗口ID或控件ID
    GetDescendantWindow 搜索所有子窗口并返回具有指定ID的窗口
    GetParentFrame 获得CWnd对象的父框架窗口
    SendMessageToDescendants 将消息发送给窗口的所有子窗口
    GetTopLevelParent 获得窗口的顶层父窗口
    GetTopLevelOwner 获得顶层窗口
    GetParentOwner 返回子窗口的父窗口的指针
    GetTopLevelFrame 获得窗口的顶层框架窗口
    UpdateDialogControls 调用这个函数以更新对话框按钮和其它控件的状态
    UpdateData 初始化对话框或获得对话框中的数据
    CenterWindow 将窗口设置到父窗口的中央


    更新/绘图函数

    BeginPaint 为绘图准备CWnd
    EndPaint 标志着绘图结束
    Print 在指定的设备环境中画出当前窗口
    PrintClient 在指定的设备环境(通常是打印机设备环境)中画出任何窗口
    LockWindowUpdate 禁止或恢复在给定窗口中的绘图
    UnlockWindowUpdate 解锁用CWnd::LockWindowUpdate锁定的窗口
    GetDC 获得客户区的设备环境
    GetDCEx 获得客户区的显示设备环境,允许在绘图的时候进行剪裁
    RedrawWindow 更新客户区中的指定矩形或区域
    GetWindowDC 获得整个窗口的显示环境,包括标题条、菜单和滚动条
    ReleaseDC 是否客户和窗口设备环境,使其它应用程序能够使用它们
    UpdateWindow 更新客户区
    SetRedraw 使CWnd的变化能够被重画,或者禁止重画发生的变化
    GetUpdateRect 获得完全封闭了CWnd中更新区域的最小矩形的坐标
    GetUpdateRgn 获得CWnd的更新区域
    Invalidate 使整个客户区无效
    InvalidateRect 在当前的更新区域中加入给定的矩形,使客户区的给定矩形无效
    InvalidateRgn 在当前的更新区域中加入给定的区域,使客户区的给定区域无效
    ValidateRect 在当前的更新区域中删除给定的矩形,使客户区的给定矩形有效
    ValidateRgn 在当前的更新区域中删除给定的区域,使客户区的给定区域有效
    ShowWindow 显示或隐藏窗口
    IsWindowVisible 确定窗口是否可见
    ShowOwnedPopups 显示或隐藏该窗口拥有的所有弹出窗口
    EnableScrollBar 允许或禁止滚动条的一个或两个箭头


    坐标映射函数

    MapWindowPoints 将一些坐标从CWnd的坐标空间转换(映射)到其它窗口的坐标空间
    ClientToScreen 将给定点或显示器上矩形的客户区坐标转换为屏幕坐标
    ScreenToClient 将给定点或显示器上矩形的屏幕坐标转换为客户坐标


    窗口文本函数

    SetWindowText 将窗口的文本或标题文字(如果有)设为指定的文本
    GetWindowText 返回窗口的文本或标题文字(如果有)
    GetWindowTextLength 返回窗口文本或标题文字的长度
    SetFont 设置当前字体
    GetFont 获得当前字体


    滚动函数

    GetScrollPos 获得滚动块的当前位置
    GetScrollRange 复制指定滚动条的最大和最小滚动条位置
    ScrollWindow 滚动客户区的内容
    ScrollWindowEx 滚动客户区的内容,与ScrollWindow类似,还有其它功能
    GetScrollInfo 获得SCROLLINFO结构维护的滚动条信息
    GetScrollLimit 获得滚动条的限制
    SetScrollInfo 设置滚动条信息
    SetScrollPos 设置滚动块的当前位置,如果指定,并重画滚动条以反映新的位置
    SetScrollRange 设置指定滚动条的最小和最大位置值
    ShowScrollBar 显示或隐藏滚动条
    EnableScrollBarCtrl 允许或禁止一个滚动条控件
    GetScrollBarCtrl 返回滚动条控件
    RepositionBars 重新设定客户区中控制条的位置


    拖放函数

    DragAcceptFiles 指明该窗口将接收拖来的文件


    插字符号函数

    CreateCaret 为系统插字符创建一个新的形状并获得它的所有权
    CreateSolidCaret 为系统插字符创建一个实心块并获得它的所有权
    CreateGrayCaret 为系统插字符创建一个灰色块并获得它的所有权
    GetCaretPos 获得插字符当前位置的客户区坐标
    SetCaretPos 将插字符移动到指定的位置
    HideCaret 通过将插字符移出显示屏幕而隐藏它
    ShowCaret 在插字符的当前位置显示插字符。一旦被显示,插字符就会自动闪烁


    对话框项函数

    CheckDlgButton 在按钮控件旁放置或者清除检查标记
    CheckRadioButton 选中指定的单项按钮并清除指定的按钮组中其它所有单项按钮的检查标记
    GetCheckedRadioButton 返回一组按钮中当前选中的单项按钮的ID
    DlgDirList 用文件或目录列表填充一个列表框
    DlgDirListComboBox 用文件或目录列表填充一个组合框中的列表框
    DlgDirSelect 获得列表框的当前选择
    DlgDirSelectComboBox 获得组合框中列表框的当前选择
    GetDlgItemInt 将给定对话框中控件的文本转换为整数
    GetDlgItemText 获得与控件相关的标题或文本
    GetNextDlgGroupItem 在一组控件内搜索下一个(或上一个)控件
    GetNextDlgTabItem 获得指定的控件之后(或之前)具有WS_TABSTOP风格的第一个控件
    IsDlgButtonChecked 确定按钮控件是否有检查标记
    IsDialogMessage 确定给定的消息是否是送往无模式对话框的,如果是,则处理它
    SendDlgItemMessage 向指定的控件发送一条消息
    SetDlgItemInt 将控件的文本设为代表一个整数的字符串
    SetDlgItemText 设置指定的对话框中的控件的标题或文本
    SubclassDlgItem 将一个Windows控件与CWnd对象连接,然后使它通过CWnd的消息映射转发消息
    ExecuteDlgInit 初始化对话框资源
    RunModalLoop 获得、转换或分派来自模式窗口的消息
    ContinueModal 继续一个窗口的模式状态
    EndModalLoop 结束一个窗口的模式状态


    数据绑定函数

    BindDefaultProperty 像类型库中标记的那样,将调用对象的缺省的简单移动属性和与数据源控件相关的游标绑定在一起
    BindProperty 将一个游标移动属性与数据移动控件绑定在一起,然后在MFC的绑定管理器中注册这种联系
    GetDSCCursor 获得游标的指针,该游标是通过数据源控件的DataSource、UserName、Password和SQL属性定义的


    菜单函数

    GetMenu 获得指定菜单的指针
    SetMenu 将菜单设为指定的菜单
    DrawMenuBar 重画菜单条
    GetSystemMenu 允许应用程序访问控制菜单,用于拷贝和修改
    HiliteMenuItem 加亮显示一个顶层(菜单条)菜单项,或者取消加亮显示


    工具提示函数

    EnableToolTips 允许工具提示控件
    CancelToolTips 禁止工具提示控件
    FilterToolTipMessage 获得与对话框中控件相关的标题和文本
    OnToolHitTest 确定一个点是否位于指定工具的边界矩形之中并获得工具的信息


    定时器函数

    SetTimer 安装一个系统定时器,当它被激活时,发送一个WM_TIMER消息
    KillTimer 销毁一个系统定时器


    警告函数

    FlashWindow 使窗口闪烁一次
    MessageBox 创建并显示一个窗口,其中包含了应用程序提供的消息和标题


    窗口消息函数

    GetCurrentMessage 返回这个窗口当前处理的消息的指针。只应该在OnMessage消息处理函数内部调用
    Default 调用缺省的窗口过程,它提供了对应用程序没有处理的任何窗口消息的缺省处理
    PreTranslateMessage 在消息被发送到Windows函数TranslateMessage和DispatchMessage之前,CWinApp使用这个函数来过滤窗口消息
    SendMessage 向CWnd对象发送一个消息,直到这条消息被处理之后才返回
    PostMessage 将一条消息放入应用程序的消息队列,然后不等窗口处理这条消息直接返回
    SendNotifyMessage 将一条消息发送到窗口并尽快返回,返回的速度取决于该窗口是否是由调用线程所创建


    剪贴板函数

    ChangeClipboardChain 将CWnd从剪贴板观察器的链中清除
    SetClipboardViewer 将CWnd加入一个窗口链,每当剪贴板的内容发生变化时,就会通知这些窗口
    OpenClipboard 打开剪贴板。其它应用程序将不能修改剪贴板,直到调用Windows的CloseClipboard函数
    GetClipboardOwner 获得指向剪贴板的当前拥有者的指针
    GetOpenClipboardWindow 获得当前打开剪贴板的窗口的指针
    GetClipboardViewer 获得剪贴板观察器链中的第一个窗口的指针


    OLE控件

    SetProperty 设置OLE控件的属性
    OnAmbientProperty 实现周围属性值
    GetControlUnknown 获得指向未知OLE控件的指针
    GetProperty 获得OLE控件的属性
    InvokeHelper 激活OLE控件的方法或属性


    可重载函数

    WindowProc 为CWnd对象提供了窗口过程。缺省的窗口过程通过消息映射分派消息
    DefWindowProc 调用缺省的窗口过程,它提供了对应用程序没有处理的任何窗口消息的缺省处理
    PostNcDestroy 这个虚拟函数在窗口被销毁以后被缺省的OnNcDestroy函数所调用
    OnNotify 框架调用这个函数以通知父窗口,在它的一个控件发生了一个事件,或该控件需要消息
    OnChildNotify 父窗口调用这个函数,给被通知的控件一个响应控件通知消息的机会
    DoDataExchange 用于对话框数据交换和校验。由UpdateData调用


    初始化消息处理函数

    OnInitMenu 当菜单要被激活时调用这个函数
    OnInitMenuPopup 当弹出菜单要被激活时调用这个函数


    系统消息处理函数

    OnSysChar 当一次击键被转换为系统字符消息时调用这个函数
    OnSysCommand 当用户从控制菜单中选择命令,或者当用户选择了最大化或最小化按钮时,调用这个函数
    OnSysDeadChar 当一次击键被转换为系统死键(例如重音字符)消息时调用这个函数
    OnSysKeyDown 当用户按住ALT键并按下其它键时调用这个函数
    OnSysKeyUp 当用户放开一个键,而此时ALT键被按下,则调用这个函数
    OnCompacting 当Windows检测到系统内存很少时,就调用这个函数
    OnDevModeChange 当用户改变了设备模式设置时,就为顶层窗口调用这个函数
    OnFontChange 当字体资源池发生变化时调用这个函数
    OnPaletteIsChanging 当应用程序将要实现其逻辑调色板时通知其它应用程序
    OnPaletteChanged 调用这个函数时使用调色板的所有窗口能够实现它们的逻辑调色板并更新它们的客户区
    OnSysColorChange 当系统颜色设置发生改变时为所有的顶层窗口调用这个函数
    OnWindowPosChanging 由于调用了SetWindowPos函数或其它的窗口管理函数,因而窗口的大小、位置和次序将要发生变化时,就调用这个函数
    OnWindowPosChanged 由于调用了SetWindowPos函数或其它的窗口管理函数,因而当窗口的大小、位置和次序发生了变化时,就调用这个函数
    OnDropFiles 当用户在注册为可以接收拖放文件的窗口上方释放鼠标左键时,这个函数就被调用
    OnSpoolerStatus 每当一个作业被加入或移出打印管理器的队列时,打印管理器就调用这个函数
    OnTimeChange 在系统时间改变之后,为所有的顶层窗口调用这个函数
    OnWinIniChange 在Windows的初始化文件WIN.INI改变之后为所有的顶层窗口调用这个函数


    一般消息处理函数

    OnCommand 当用户选择了一个命令时调用这个函数
    OnActivate 当CWnd要被激活或退出激活状态时调用这个函数
    OnActivateApp 当应用程序要被激活或退出激活状态时调用这个函数


    一般消息处理函数

    OnCancelMode 调用这个函数以允许CWnd取消任何内部模式,比如鼠标捕获状态
    OnChildActivate 当CWnd的大小和位置发生变化或者CWnd被激活时,就为多文档界面(MDI)的子窗口调用这个函数
    OnClose 调用这个函数,作为关闭CWnd的信号
    OnCopyData 从一个应用程序复制数据到另一个应用程序
    OnCreate 作为窗口创建过程的一部分来调用
    OnCtlColor 如果CWnd是一个控件的父窗口,当控件要被重画时就调用这个函数
    OnDestroy 当CWnd要被销毁时就调用这个函数
    OnEnable 当CWnd被允许或禁止时调用这个函数
    OnEndSession 当会话将要结束时调用这个函数
    OnEnterIdle 调用这个函数以通知应用程序的主窗口过程,模式对话框或菜单正在进入空闲状态
    OnEraseBkgnd 当需要擦除窗口的背景时调用这个函数
    OnGetMinMaxInfo 每当Windows需要知道最大化的位置和大小,或者最小或最大跟踪尺寸时,就调用这个函数
    OnIconEraseBkgnd 当CWnd被最小化(图标化),并且在画出图标之前,必须填充图标的背景时调用这个函数
    OnKillFocus 当CWnd失去输入焦点时立即调用这个函数
    OnMenuChar 当用户按下一个菜单助记字符,但是不能与当前菜单中任何预定义的助记符相匹配时,就调用这个函数
    OnMenuSelect 当用户选择了一个菜单项时就调用这个函数
    OnMove 当CWnd的位置发生变化时调用这个函数
    OnMoving 指明用户正在移动CWnd对象
    OnDeviceChange 通知应用程序或设备驱动程序,设备或计算机的硬件配置发生了变化
    OnStyleChanged 指明Windows的::SetWindowLong函数已经改变了一个或多个窗口风格
    OnStyleChanging 指明Windows的::SetWindowLong函数将要改变一个或多个窗口风格
    OnPaint 调用这个函数以重画窗口的一部分
    OnParentNotify 当创建或销毁一个子窗口,或者当用户在子窗口上方点击了鼠标键时调用这个函数
    OnQueryDragIcon 当一个最小化(图标化)的CWnd要被用户拖拉时就调用这个函数
    OnQueryEndSession 当用户选择结束Windows会话时就调用这个函数
    OnQueryNewPalette 通知CWnd它将接收输入焦点
    OnQueryOpen 当CWnd是一个图标并且用户请求打开这个图标时就调用这个函数


    一般消息处理函数

    OnSetFocus 当CWnd获得输入焦点时调用这个函数
    OnShowWindow 当CWnd被隐藏或显示时调用这个函数
    OnSize 当CWnd的大小被改变以后调用这个函数
    OnSizing 指明用户正在改变矩形的大小
    OnStyleChanged 指明窗口的一个或多个风格已经被改变
    OnStyleChanging 指明窗口的一个或多个风格将被改变


    控件消息处理函数

    OnCharToItem 这个函数被具有LBS_WANTKEYBOARDINPUT风格的子列表框调用,用以响应WM_CHAR消息
    OnCompareItem 调用这个函数以确定排序的自画组合框或列表框中新项的相对位置
    OnDeleteItem 当一个自画子列表框或组合框中将被销毁时,或者从控件中删除项时调用这个函数
    OnDrawItem 当自画子按钮控件、组合框控件、列表框控件或菜单的可视部分需要被画出时调用这个函数
    OnDSCNotify 在响应数据源控件引发的事件时调用,该事件是当与数据源控件绑定的控件修改或将要修改游标时产生的
    OnGetDlgCode 为控件调用这个函数,使控件能够自己处理输入的箭头键和TAB键
    OnMeasureItem 当控件被创建时为自画子组合框,列表框或菜单项调用这个函数。CWnd通知Windows该控件的大小
    SendChildNotifyLastMsg 提供了从父窗口到子窗口的通知消息,使子窗口能够处理一个任务
    ReflectChildNotify 将消息向它的来源反映的帮助函数
    OnWndMsg 指明一个窗口消息是否已被处理
    ReflectLastMsg 将上一个消息反映到子窗口
    OnVKeyToItem 由CWnd所拥有的列表框调用,用于响应WM_KEYDOWN消息


    输入消息处理函数

    OnChar 当一次击键被转换为非系统字符时调用这个函数
    OnDeadChar 当一次击键被转换为非系统死键(例如重音字符)时调用这个函数
    OnHScroll 当用户点击了CWnd的水平滚动条时调用这个函数
    OnKeyDown 当按下了一个非系统键时调用这个函数
    OnKeyUp 当放开一个非系统键时调用这个函数
    OnLButtonDblClk 当用户双击鼠标左键时调用这个函数


    输入消息处理函数

    OnLButtonDown 当用户按下鼠标左键时调用这个函数
    OnLButtonUp 当用户放开鼠标左键时调用这个函数
    OnMButtonDblClk 当用户双击鼠标中键时调用这个函数
    OnMButtonDown 当用户按下鼠标中键时调用这个函数
    OnMButtonUp 当用户放开鼠标中键时调用这个函数
    OnMouseActivate 当鼠标位于非活动窗口,并且用户按下鼠标键时调用这个函数
    OnMouseMove 当鼠标光标移动时调用这个函数
    OnMouseWheel 当用户旋转鼠标轮时调用这个函数。使用WindowsNT4.0的消息处理
    OnRegisteredMouseWheel 当用户旋转鼠标轮的时候调用这个函数。使用Windows 95和Windows NT 3.51的消息处理
    OnRButtonDblClk 当用户双击鼠标右键时调用这个函数
    OnRButtonDown 当用户按下鼠标右键时调用这个函数
    OnRButtonUp 当用户放开鼠标右键时调用这个函数
    OnSetCursor 如果没有捕获鼠标输入并且鼠标导致光标在窗口内移动时,就调用这个函数
    OnTimer 当达到SetTimer指定的时间间隔时调用这个函数
    OnVScroll 当用户点击窗口的垂直滚动条时调用这个函数
    OnCaptureChanged 向失去鼠标捕获的窗口发送一条消息


    非客户区消息处理函数

    OnNcActivate 当需要改变非客户区以指明活动或非活动状态时调用这个函数
    OnNcCalcSize 当需要计算非客户区的大小和位置时调用这个函数
    OnNcCreate 在OnCreate之前,当要创建非客户区时调用这个函数
    OnNcDestroy 当非客户区要被销毁的时候调用这个函数
    OnNcHitTest 如果CWnd中包含了光标,或者用SetCapture捕获了鼠标输入时,每当鼠标移动时,Windows调用这个函数
    OnNcLButtonDblClk 当光标位于CWnd的非客户区,用户双击鼠标左键时,就调用这个函数
    OnNcLButtonDown 当光标位于CWnd的非客户区,用户按下鼠标左键时,就调用这个函数
    OnNcLButtonUp 当光标位于CWnd的非客户区,用户放开鼠标左键时,就调用这个函数
    OnNcMButtonDblClk 当光标位于CWnd的非客户区,用户双击鼠标中键时,就调用这个函数
    OnNcMButtonDown 当光标位于CWnd的非客户区,用户按下鼠标中键时,就调用这个函数
    OnNcMButtonUp 当光标位于CWnd的非客户区,用户放开鼠标中键时,就调用这个函数


    非客户区消息处理函数

    OnNcMouseMove 当光标在CWnd的非客户区中移动时就调用这个函数
    OnNcPaint 当非客户区需要重画时调用这个函数
    OnNcRButtonDblClk 当光标位于CWnd的非客户区,用户双击鼠标右键时,就调用这个函数
    OnNcRButtonDown 当光标位于CWnd的非客户区,用户按下鼠标右键时,就调用这个函数
    OnNcRButtonUp 当光标位于CWnd的非客户区,用户放开鼠标右键时,就调用这个函数


    MDI消息处理函数

    OnMDIActivate 当MDI子窗口被激活或失去活动状态时调用这个函数


    剪贴板消息处理函数

    OnAskCbFormatName 当剪贴板的拥有者将显示剪贴板内容时,剪贴板观察程序就调用这个函数
    OnChangeCbChain 通知指定的窗口将从链中删除
    OnDestroyClipboard 当通过Windows的EmptyClipboard函数清空剪贴板时调用这个函数
    OnDrawClipboard 当内容变化时调用这个函数
    OnHScrollClipboard 当剪贴板的拥有者要滚动剪贴板的图像、使适当的部分无效以及更新滚动条值的时候调用这个函数
    OnPaintClipboard 当剪贴板观察器的客户区需要重画的时候调用这个函数
    OnRenderAllFormats 当拥有者应用程序将被销毁且需要提交它的所有格式时调用这个函数
    OnRenderFormat 当一种延迟提交的格式需要被提交时为剪贴板拥有者调用这个函数
    OnSizeClipboard 当剪贴板观察器窗口的客户区大小发生变化时调用这个函数
    OnVScrollClipboard 当拥有者要滚动剪贴板的图像、使适当的部分无效以及更新滚动条值的时候调用这个函数

    展开全文
  • CWnd

    2019-10-01 23:10:43
    CWnd类的成员   1.数据成员 m_hWnd 指明与这个CWnd对象相关联的HWND句柄 2.构造和析构 CWnd 构造一个CWnd对象 DestroyWindow 销毁相关联的Windows窗口 3.初始化 Create 创建并初始化与CWnd对象相...
    CWnd类的成员
    
    
     
    1.数据成员
    m_hWnd
    指明与这个CWnd对象相关联的HWND句柄
    2.构造和析构
    CWnd
    构造一个CWnd对象
    DestroyWindow
    销毁相关联的Windows窗口
    3.初始化
    Create
    创建并初始化与CWnd对象相关联的子窗口
    PreCreateWindow
    在与CWnd对象相关联的窗口被创建之前调用
    CalcWindowRect
    调用这个函数以计算窗口客户区的矩形
    GetStyle
    返回当前的窗口风格
    GetExStyle
    返回窗口的扩展风格
    Attach
    将Windows句柄与CWnd对象相连接
    Detach
    将一个Windows句柄从CWnd对象上分离并返回这个句柄
    PreSubclassWindow
    在调用SubclassWindow之前,允许其它必要的子类化工作
    SubclassWindow
    将窗口与CWnd对象相连接,并使它通过CWnd的消息映射转发消息
    UnsubclassWindow
    将窗口与CWnd对象分离
    FromHandle
    当给定一个窗口的句柄时,返回CWnd对象的指针。如果没有CWnd对象与这个句柄相连接,则创建一个临时的CWnd对象并与之相连接
    FromHandlePermanent
    当给定一个窗口的句柄时,返回CWnd对象的指针。如果没有CWnd 对象与这个句柄相连接,则返回NULL
    DeleteTempMap
    CWinApp的空闲处理函数自动调用这个函数,清除由FromHandle创建的任何临时CWnd对象
    GetSafeHwnd
    返回m_hWnd,如果该指针为NULL,则返回NULL
    CreateEx
    创建一个Windows的可重叠窗口、弹出窗口或子窗口,并把它连接到一个CWnd对象上
    CreateControl
    创建一个OLE控件,该控件在MFC程序中由一个CWnd对象代表
    4.窗口状态函数
    IsWindowEnabled
    确定一个窗口是否允许鼠标和键盘输入
    EnableWindow
    允许或禁止鼠标和键盘输入
    GetActiveWindow
    获得激活的窗口
    SetActiveWindow
    激活窗口
    GetCapture
    获得捕获鼠标的CWnd
    SetCapture
    使随后的鼠标输入都被发送到这个CWnd
    GetFocus
    获得当前具有输入焦点的CWnd
    SetFocus
    要求输入焦点
    GetDesktopWindow
    获得Windows的桌面窗口
    GetForegroundWindow
    返回前台窗口的指针(顶层窗口,用户正在其中工作)
    SetForegroundWindow
    使创建窗口的线程变为前台并激活窗口
    GetIcon
    获得图标的句柄
    SetIcon
    设置指定图标的句柄
    GetWindowContextHelpId
    获得帮助上下文的标识符
    SetWindowContextHelpId
    设置帮助上下文的标识符
    ModifyStyle
    修改当前的窗口风格
    ModifyStyleEx
    修改窗口的扩展风格
    5.窗口大小和位置
    GetWindowPlacement
    获得窗口的显示状态以及正常(还原)的、最大化和最小化的位置
    SetWindowPlacement
    设置窗口的显示状态以及正常(还原)的、最大化和最小化的位置
    GetWindowRgn
    获得窗口的窗口区域的一个拷贝
    SetWindowRgn
    设置窗口的区域
    IsIconic
    确定CWnd是否被最小化(图标化)
    IsZoomed
    确定CWnd是否被最大化
    MoveWindow
    改变CWnd的位置和大小
    SetWindowPos
    改变子窗口、弹出窗口和顶层窗口的大小、位置以及顺序
    ArrangeIconicWindows
    排列所有最小化(图标化)的子窗口
    BringWindowToTop
    使CWnd到达重叠窗口堆栈的顶部
    GetWindowRect
    获得CWnd的屏幕坐标
    GetClientRect
    获得CWnd客户区域的大小
    6.窗口访问函数
    ChildWindowFromPoint
    确定哪个子窗口包含指定的点,如果有的话
    FindWindow
    返回由窗口名或窗口类标识的窗口的句柄
    GetNextWindow
    返回窗口管理器列表中的下一个(或前一个)窗口
    GetOwner
    获得CWnd的拥有者的指针
    SetOwner
    改变CWnd的拥有者
    GetTopWindow
    返回CWnd所属的第一个子窗口
    GetWindow
    返回与窗口有特定关系的窗口
    GetLastActivePopup
    确定CWnd拥有的弹出窗口是否最近被激活
    IsChild
    指明CWnd是指定窗口的一个子窗口还是其它子对象
    GetParent
    获得CWnd的父窗口(如果有)
    GetSafeOwner
    获得给定窗口的安全拥有者
    SetParent
    改变父窗口
    WindowFromPoint
    标明包含给定点的窗口
    GetDlgItem
    获得指定的对话框中具有指定ID的控件
    GetDlgCtrlID
    如果CWnd是一个子窗口,则用这个函数来返回它的ID值
    SetDlgCtrlID
    为窗口(可以是任意子窗口,不仅是对话框中的控件)设置窗口ID或控件ID
    GetDescendantWindow
    搜索所有子窗口并返回具有指定ID的窗口
    GetParentFrame
    获得CWnd对象的父框架窗口
    SendMessageToDescendants
    将消息发送给窗口的所有子窗口
    GetTopLevelParent
    获得窗口的顶层父窗口
    GetTopLevelOwner
    获得顶层窗口
    GetParentOwner
    返回子窗口的父窗口的指针
    GetTopLevelFrame
    获得窗口的顶层框架窗口
    UpdateDialogControls
    调用这个函数以更新对话框按钮和其它控件的状态
    UpdateData
    初始化对话框或获得对话框中的数据
    CenterWindow
    将窗口设置到父窗口的中央
    7.更新/绘图函数
    BeginPaint
    为绘图准备CWnd
    EndPaint
    标志着绘图结束
    Print
    在指定的设备环境中画出当前窗口
    PrintClient
    在指定的设备环境(通常是打印机设备环境)中画出任何窗口
    LockWindowUpdate
    禁止或恢复在给定窗口中的绘图
    UnlockWindowUpdate
    解锁用CWnd::LockWindowUpdate锁定的窗口
    GetDC
    获得客户区的设备环境
    GetDCEx
    获得客户区的显示设备环境,允许在绘图的时候进行剪裁
    RedrawWindow
    更新客户区中的指定矩形或区域
    GetWindowDC
    获得整个窗口的显示环境,包括标题条、菜单和滚动条
    ReleaseDC
    是否客户和窗口设备环境,使其它应用程序能够使用它们
    UpdateWindow
    更新客户区
    SetRedraw
    使CWnd的变化能够被重画,或者禁止重画发生的变化
    GetUpdateRect
    获得完全封闭了CWnd中更新区域的最小矩形的坐标
    GetUpdateRgn
    获得CWnd的更新区域
    Invalidate
    使整个客户区无效
    InvalidateRect
    在当前的更新区域中加入给定的矩形,使客户区的给定矩形无效
    InvalidateRgn
    在当前的更新区域中加入给定的区域,使客户区的给定区域无效
    ValidateRect
    在当前的更新区域中删除给定的矩形,使客户区的给定矩形有效
    ValidateRgn
    在当前的更新区域中删除给定的区域,使客户区的给定区域有效
    ShowWindow
    显示或隐藏窗口
    IsWindowVisible
    确定窗口是否可见
    ShowOwnedPopups
    显示或隐藏该窗口拥有的所有弹出窗口
    EnableScrollBar
    允许或禁止滚动条的一个或两个箭头
    8.坐标映射函数
    MapWindowPoints
    将一些坐标从CWnd的坐标空间转换(映射)到其它窗口的坐标空间
    ClientToScreen
    将给定点或显示器上矩形的客户区坐标转换为屏幕坐标
    ScreenToClient
    将给定点或显示器上矩形的屏幕坐标转换为客户坐标
    9.窗口文本函数
    SetWindowText
    将窗口的文本或标题文字(如果有)设为指定的文本
    GetWindowText
    返回窗口的文本或标题文字(如果有)
    GetWindowTextLength
    返回窗口文本或标题文字的长度
    SetFont
    设置当前字体
    GetFont
    获得当前字体
    10.滚动函数
    GetScrollPos
    获得滚动块的当前位置
    GetScrollRange
    复制指定滚动条的最大和最小滚动条位置
    ScrollWindow
    滚动客户区的内容
    ScrollWindowEx
    滚动客户区的内容,与ScrollWindow类似,还有其它功能
    GetScrollInfo
    获得SCROLLINFO结构维护的滚动条信息
    GetScrollLimit
    获得滚动条的限制
    SetScrollInfo
    设置滚动条信息
    SetScrollPos
    设置滚动块的当前位置,如果指定,并重画滚动条以反映新的位置
    SetScrollRange
    设置指定滚动条的最小和最大位置值
    ShowScrollBar
    显示或隐藏滚动条
    EnableScrollBarCtrl
    允许或禁止一个滚动条控件
    GetScrollBarCtrl
    返回滚动条控件
    RepositionBars
    重新设定客户区中控制条的位置
    11.拖放函数
    DragAcceptFiles
    指明该窗口将接收拖来的文件
    12.插字符号函数
    CreateCaret
    为系统插字符创建一个新的形状并获得它的所有权
    CreateSolidCaret
    为系统插字符创建一个实心块并获得它的所有权
    CreateGrayCaret
    为系统插字符创建一个灰色块并获得它的所有权
    GetCaretPos
    获得插字符当前位置的客户区坐标
    SetCaretPos
    将插字符移动到指定的位置
    HideCaret
    通过将插字符移出显示屏幕而隐藏它
    ShowCaret
    在插字符的当前位置显示插字符。一旦被显示,插字符就会自动闪烁
    13.对话框项函数
    CheckDlgButton
    在按钮控件旁放置或者清除检查标记
    CheckRadioButton
    选中指定的单项按钮并清除指定的按钮组中其它所有单项按钮的检查标记
    GetCheckedRadioButton
    返回一组按钮中当前选中的单项按钮的ID
    DlgDirList
    用文件或目录列表填充一个列表框
    DlgDirListComboBox
    用文件或目录列表填充一个组合框中的列表框
    DlgDirSelect
    获得列表框的当前选择
    DlgDirSelectComboBox
    获得组合框中列表框的当前选择
    GetDlgItemInt
    将给定对话框中控件的文本转换为整数
    GetDlgItemText
    获得与控件相关的标题或文本
    GetNextDlgGroupItem
    在一组控件内搜索下一个(或上一个)控件
    GetNextDlgTabItem
    获得指定的控件之后(或之前)具有WS_TABSTOP风格的第一个控件
    IsDlgButtonChecked
    确定按钮控件是否有检查标记
    IsDialogMessage
    确定给定的消息是否是送往无模式对话框的,如果是,则处理它
    SendDlgItemMessage
    向指定的控件发送一条消息
    SetDlgItemInt
    将控件的文本设为代表一个整数的字符串
    SetDlgItemText
    设置指定的对话框中的控件的标题或文本
    SubclassDlgItem
    将一个Windows控件与CWnd对象连接,然后使它通过CWnd的消息映射转发消息
    ExecuteDlgInit
    初始化对话框资源
    RunModalLoop
    获得、转换或分派来自模式窗口的消息
    ContinueModal
    继续一个窗口的模式状态
    EndModalLoop
    结束一个窗口的模式状态
    14.数据绑定函数
    BindDefaultProperty
    像类型库中标记的那样,将调用对象的缺省的简单移动属性和与数据源控件相关的游标绑定在一起
    BindProperty
    将一个游标移动属性与数据移动控件绑定在一起,然后在MFC的绑定管理器中注册这种联系
    GetDSCCursor
    获得游标的指针,该游标是通过数据源控件的DataSource、UserName、Password和SQL属性定义的
    15.菜单函数
    GetMenu
    获得指定菜单的指针
    SetMenu
    将菜单设为指定的菜单
    DrawMenuBar
    重画菜单条
    GetSystemMenu
    允许应用程序访问控制菜单,用于拷贝和修改
    HiliteMenuItem
    加亮显示一个顶层(菜单条)菜单项,或者取消加亮显示
    16.工具提示函数
    EnableToolTips
    允许工具提示控件
    CancelToolTips
    禁止工具提示控件
    FilterToolTipMessage
    获得与对话框中控件相关的标题和文本
    OnToolHitTest
    确定一个点是否位于指定工具的边界矩形之中并获得工具的信息
    17.定时器函数
    SetTimer
    安装一个系统定时器,当它被激活时,发送一个WM_TIMER消息
    KillTimer
    销毁一个系统定时器
    18.警告函数
    FlashWindow
    使窗口闪烁一次
    MessageBox
    创建并显示一个窗口,其中包含了应用程序提供的消息和标题
    19.窗口消息函数
    GetCurrentMessage
    返回这个窗口当前处理的消息的指针。只应该在OnMessage消息处理函数内部调用
    Default
    调用缺省的窗口过程,它提供了对应用程序没有处理的任何窗口消息的缺省处理
    PreTranslateMessage
    在消息被发送到Windows函数TranslateMessage和DispatchMessage之前,CWinApp使用这个函数来过滤窗口消息
    SendMessage
    向CWnd对象发送一个消息,直到这条消息被处理之后才返回
    PostMessage
    将一条消息放入应用程序的消息队列,然后不等窗口处理这条消息直接返回
    SendNotifyMessage
    将一条消息发送到窗口并尽快返回,返回的速度取决于该窗口是否是由调用线程所创建
    20.剪贴板函数
    ChangeClipboardChain
    将CWnd从剪贴板观察器的链中清除
    SetClipboardViewer
    将CWnd加入一个窗口链,每当剪贴板的内容发生变化时,就会通知这些窗口
    OpenClipboard
    打开剪贴板。其它应用程序将不能修改剪贴板,直到调用Windows的CloseClipboard函数
    GetClipboardOwner
    获得指向剪贴板的当前拥有者的指针
    GetOpenClipboardWindow
    获得当前打开剪贴板的窗口的指针
    GetClipboardViewer
    获得剪贴板观察器链中的第一个窗口的指针
    21.OLE控件
    SetProperty
    设置OLE控件的属性
    OnAmbientProperty
    实现周围属性值
    GetControlUnknown
    获得指向未知OLE控件的指针
    GetProperty
    获得OLE控件的属性
    InvokeHelper
    激活OLE控件的方法或属性
    22.可重载函数
    WindowProc
    为CWnd对象提供了窗口过程。缺省的窗口过程通过消息映射分派消息
    DefWindowProc
    调用缺省的窗口过程,它提供了对应用程序没有处理的任何窗口消息的缺省处理
    PostNcDestroy
    这个虚拟函数在窗口被销毁以后被缺省的OnNcDestroy函数所调用
    OnNotify
    框架调用这个函数以通知父窗口,在它的一个控件发生了一个事件,或该控件需要消息
    OnChildNotify
    父窗口调用这个函数,给被通知的控件一个响应控件通知消息的机会
    DoDataExchange
    用于对话框数据交换和校验。由UpdateData调用
    23.初始化消息处理函数
    OnInitMenu
    当菜单要被激活时调用这个函数
    OnInitMenuPopup
    当弹出菜单要被激活时调用这个函数
    24.系统消息处理函数
    OnSysChar
    当一次击键被转换为系统字符消息时调用这个函数
    OnSysCommand
    当用户从控制菜单中选择命令,或者当用户选择了最大化或最小化按钮时,调用这个函数
    OnSysDeadChar
    当一次击键被转换为系统死键(例如重音字符)消息时调用这个函数
    OnSysKeyDown
    当用户按住ALT键并按下其它键时调用这个函数
    OnSysKeyUp
    当用户放开一个键,而此时ALT键被按下,则调用这个函数
    OnCompacting
    当Windows检测到系统内存很少时,就调用这个函数
    OnDevModeChange
    当用户改变了设备模式设置时,就为顶层窗口调用这个函数
    OnFontChange
    当字体资源池发生变化时调用这个函数
    OnPaletteIsChanging
    当应用程序将要实现其逻辑调色板时通知其它应用程序
    OnPaletteChanged
    调用这个函数时使用调色板的所有窗口能够实现它们的逻辑调色板并更新它们的客户区
    OnSysColorChange
    当系统颜色设置发生改变时为所有的顶层窗口调用这个函数
    OnWindowPosChanging
    由于调用了SetWindowPos函数或其它的窗口管理函数,因而窗口的大小、位置和次序将要发生变化时,就调用这个函数
    OnWindowPosChanged
    由于调用了SetWindowPos函数或其它的窗口管理函数,因而当窗口的大小、位置和次序发生了变化时,就调用这个函数
    OnDropFiles
    当用户在注册为可以接收拖放文件的窗口上方释放鼠标左键时,这个函数就被调用
    OnSpoolerStatus
    每当一个作业被加入或移出打印管理器的队列时,打印管理器就调用这个函数
    OnTimeChange
    在系统时间改变之后,为所有的顶层窗口调用这个函数
    OnWinIniChange
    在Windows的初始化文件WIN.INI改变之后为所有的顶层窗口调用这个函数
    25.一般消息处理函数
    OnCommand
    当用户选择了一个命令时调用这个函数
    OnActivate
    当CWnd要被激活或退出激活状态时调用这个函数
    OnActivateApp
    当应用程序要被激活或退出激活状态时调用这个函数
    26.一般消息处理函数
    OnCancelMode
    调用这个函数以允许CWnd取消任何内部模式,比如鼠标捕获状态
    OnChildActivate
    当CWnd的大小和位置发生变化或者CWnd被激活时,就为多文档界面(MDI)的子窗口调用这个函数
    OnClose
    调用这个函数,作为关闭CWnd的信号
    OnCopyData
    从一个应用程序复制数据到另一个应用程序
    OnCreate
    作为窗口创建过程的一部分来调用
    OnCtlColor
    如果CWnd是一个控件的父窗口,当控件要被重画时就调用这个函数
    OnDestroy
    当CWnd要被销毁时就调用这个函数
    OnEnable
    当CWnd被允许或禁止时调用这个函数
    OnEndSession
    当会话将要结束时调用这个函数
    OnEnterIdle
    调用这个函数以通知应用程序的主窗口过程,模式对话框或菜单正在进入空闲状态
    OnEraseBkgnd
    当需要擦除窗口的背景时调用这个函数
    OnGetMinMaxInfo
    每当Windows需要知道最大化的位置和大小,或者最小或最大跟踪尺寸时,就调用这个函数
    OnIconEraseBkgnd
    当CWnd被最小化(图标化),并且在画出图标之前,必须填充图标的背景时调用这个函数
    OnKillFocus
    当CWnd失去输入焦点时立即调用这个函数
    OnMenuChar
    当用户按下一个菜单助记字符,但是不能与当前菜单中任何预定义的助记符相匹配时,就调用这个函数
    OnMenuSelect
    当用户选择了一个菜单项时就调用这个函数
    OnMove
    当CWnd的位置发生变化时调用这个函数
    OnMoving
    指明用户正在移动CWnd对象
    OnDeviceChange
    通知应用程序或设备驱动程序,设备或计算机的硬件配置发生了变化
    OnStyleChanged
    指明Windows的::SetWindowLong函数已经改变了一个或多个窗口风格
    OnStyleChanging
    指明Windows的::SetWindowLong函数将要改变一个或多个窗口风格
    OnPaint
    调用这个函数以重画窗口的一部分
    OnParentNotify
    当创建或销毁一个子窗口,或者当用户在子窗口上方点击了鼠标键时调用这个函数
    OnQueryDragIcon
    当一个最小化(图标化)的CWnd要被用户拖拉时就调用这个函数
    OnQueryEndSession
    当用户选择结束Windows会话时就调用这个函数
    OnQueryNewPalette
    通知CWnd它将接收输入焦点
    OnQueryOpen
    当CWnd是一个图标并且用户请求打开这个图标时就调用这个函数
    27.一般消息处理函数
    OnSetFocus
    当CWnd获得输入焦点时调用这个函数
    OnShowWindow
    当CWnd被隐藏或显示时调用这个函数
    OnSize
    当CWnd的大小被改变以后调用这个函数
    OnSizing
    指明用户正在改变矩形的大小
    OnStyleChanged
    指明窗口的一个或多个风格已经被改变
    OnStyleChanging
    指明窗口的一个或多个风格将被改变
    28.控件消息处理函数
    OnCharToItem
    这个函数被具有LBS_WANTKEYBOARDINPUT风格的子列表框调用,用以响应WM_CHAR消息
    OnCompareItem
    调用这个函数以确定排序的自画组合框或列表框中新项的相对位置
    OnDeleteItem
    当一个自画子列表框或组合框中将被销毁时,或者从控件中删除项时调用这个函数
    OnDrawItem
    当自画子按钮控件、组合框控件、列表框控件或菜单的可视部分需要被画出时调用这个函数
    OnDSCNotify
    在响应数据源控件引发的事件时调用,该事件是当与数据源控件绑定的控件修改或将要修改游标时产生的
    OnGetDlgCode
    为控件调用这个函数,使控件能够自己处理输入的箭头键和TAB键
    OnMeasureItem
    当控件被创建时为自画子组合框,列表框或菜单项调用这个函数。CWnd通知Windows该控件的大小
    SendChildNotifyLastMsg
    提供了从父窗口到子窗口的通知消息,使子窗口能够处理一个任务
    ReflectChildNotify
    将消息向它的来源反映的帮助函数
    OnWndMsg
    指明一个窗口消息是否已被处理
    ReflectLastMsg
    将上一个消息反映到子窗口
    OnVKeyToItem
    由CWnd所拥有的列表框调用,用于响应WM_KEYDOWN消息
    29.输入消息处理函数
    OnChar
    当一次击键被转换为非系统字符时调用这个函数
    OnDeadChar
    当一次击键被转换为非系统死键(例如重音字符)时调用这个函数
    OnHScroll
    当用户点击了CWnd的水平滚动条时调用这个函数
    OnKeyDown
    当按下了一个非系统键时调用这个函数
    OnKeyUp
    当放开一个非系统键时调用这个函数
    OnLButtonDblClk
    当用户双击鼠标左键时调用这个函数
    30.输入消息处理函数
    OnLButtonDown
    当用户按下鼠标左键时调用这个函数
    OnLButtonUp
    当用户放开鼠标左键时调用这个函数
    OnMButtonDblClk
    当用户双击鼠标中键时调用这个函数
    OnMButtonDown
    当用户按下鼠标中键时调用这个函数
    OnMButtonUp
    当用户放开鼠标中键时调用这个函数
    OnMouseActivate
    当鼠标位于非活动窗口,并且用户按下鼠标键时调用这个函数
    OnMouseMove
    当鼠标光标移动时调用这个函数
    OnMouseWheel
    当用户旋转鼠标轮时调用这个函数。使用WindowsNT4.0的消息处理
    OnRegisteredMouseWheel
    当用户旋转鼠标轮的时候调用这个函数。使用Windows 95和Windows NT 3.51的消息处理
    OnRButtonDblClk
    当用户双击鼠标右键时调用这个函数
    OnRButtonDown
    当用户按下鼠标右键时调用这个函数
    OnRButtonUp
    当用户放开鼠标右键时调用这个函数
    OnSetCursor
    如果没有捕获鼠标输入并且鼠标导致光标在窗口内移动时,就调用这个函数
    OnTimer
    当达到SetTimer指定的时间间隔时调用这个函数
    OnVScroll
    当用户点击窗口的垂直滚动条时调用这个函数
    OnCaptureChanged
    向失去鼠标捕获的窗口发送一条消息
    31.非客户区消息处理函数
    OnNcActivate
    当需要改变非客户区以指明活动或非活动状态时调用这个函数
    OnNcCalcSize
    当需要计算非客户区的大小和位置时调用这个函数
    OnNcCreate
    在OnCreate之前,当要创建非客户区时调用这个函数
    OnNcDestroy
    当非客户区要被销毁的时候调用这个函数
    OnNcHitTest
    如果CWnd中包含了光标,或者用SetCapture捕获了鼠标输入时,每当鼠标移动时,Windows调用这个函数
    OnNcLButtonDblClk
    当光标位于CWnd的非客户区,用户双击鼠标左键时,就调用这个函数
    OnNcLButtonDown
    当光标位于CWnd的非客户区,用户按下鼠标左键时,就调用这个函数
    OnNcLButtonUp
    当光标位于CWnd的非客户区,用户放开鼠标左键时,就调用这个函数
    OnNcMButtonDblClk
    当光标位于CWnd的非客户区,用户双击鼠标中键时,就调用这个函数
    OnNcMButtonDown
    当光标位于CWnd的非客户区,用户按下鼠标中键时,就调用这个函数
    OnNcMButtonUp
    当光标位于CWnd的非客户区,用户放开鼠标中键时,就调用这个函数
    32.非客户区消息处理函数
    OnNcMouseMove
    当光标在CWnd的非客户区中移动时就调用这个函数
    OnNcPaint
    当非客户区需要重画时调用这个函数
    OnNcRButtonDblClk
    当光标位于CWnd的非客户区,用户双击鼠标右键时,就调用这个函数
    OnNcRButtonDown
    当光标位于CWnd的非客户区,用户按下鼠标右键时,就调用这个函数
    OnNcRButtonUp
    当光标位于CWnd的非客户区,用户放开鼠标右键时,就调用这个函数
    33.MDI消息处理函数
    OnMDIActivate
    当MDI子窗口被激活或失去活动状态时调用这个函数
    34.剪贴板消息处理函数
    OnAskCbFormatName
    当剪贴板的拥有者将显示剪贴板内容时,剪贴板观察程序就调用这个函数
    OnChangeCbChain
    通知指定的窗口将从链中删除
    OnDestroyClipboard
    当通过Windows的EmptyClipboard函数清空剪贴板时调用这个函数
    OnDrawClipboard
    当内容变化时调用这个函数
    OnHScrollClipboard
    当剪贴板的拥有者要滚动剪贴板的图像、使适当的部分无效以及更新滚动条值的时候调用这个函数
    OnPaintClipboard
    当剪贴板观察器的客户区需要重画的时候调用这个函数
    OnRenderAllFormats
    当拥有者应用程序将被销毁且需要提交它的所有格式时调用这个函数
    OnRenderFormat
    当一种延迟提交的格式需要被提交时为剪贴板拥有者调用这个函数
    OnSizeClipboard
    当剪贴板观察器窗口的客户区大小发生变化时调用这个函数
    OnVScrollClipboard
    当拥有者要滚动剪贴板的图像、使适当的部分无效以及更新滚动条值的时候调用这个函数
    35.菜单循环通知
    OnEnterMenuLoop
    进入一个菜单模式的循环时调用该函数
    OnExitMenuLoop
    当退出一个菜单模式的循环时调用该函数

     

    转载于:https://www.cnblogs.com/IMyLife/p/4826104.html

    展开全文
  • CWnd 自绘实现CIPAddressCtrlCWnd 自绘实现CIPAddressCtrl
  • CWnd常用方法

    千次阅读 2018-10-03 16:41:01
    CWnd类提供了微软基础类库中所有窗口类的基本功能。 数据成员 m_hWnd 指明与这个CWnd对象相关联的HWND句柄   构造和析构 : CWnd 构造一个CWnd对象 DestroyWindow 销毁相关联的Windows窗口   获取CWnd指针...

    CWnd类提供了微软基础类库中所有窗口类的基本功能。

    数据成员

    m_hWnd 指明与这个CWnd对象相关联的HWND句柄

     

    构造和析构 :

    CWnd 构造一个CWnd对象

    DestroyWindow 销毁相关联的Windows窗口

     

    获取CWnd指针

    CWnd* h_Wnd=GetDlgItem(IDD_DXCAPTURE_DIALOG);

    获取HWND

    HWND GetSafeHwnd( ) const;

    返回值:返回窗口的句柄。如果CWnd对象没有与一个窗口连接或它使用的CWnd指针为NULL,则返回NULL。

    CWnd 常用方法

     

     

    BOOL ShowWindow( int nCmdShow );

    返回值:如果窗口原来可见,则返回非零值;如果CWnd原来是隐藏的,则返回0。

    参数:nCmdShow指定了CWnd应如何被显示。常用数值:

    SW_HIDE 隐藏窗口并将活动状态传递给其它窗口。

    SW_SHOW 激活窗口并以其当前的大小和位置显示。

     

    void Invalidate( BOOL bErase = TRUE );

    参数: bErase 指定是否要擦除更新区域内的背景。

     

    void UpdateWindow( );

    说明: 如果更新区域不为空,则发送一条WM_PAINT消息以更新客户区域。UpdateWindow成员函数直接发送一条WM_PAINT消息,越过应用程序队列。如果更新区域为空,则WM_PAINT不会被发送。

     

    窗口文本函数:

    void SetWindowText( LPCTSTR lpszString );

    参数: lpszString 指向一个CString对象或以null结尾的字符串,将被用作新的标题或控件文本。

    说明:这个函数将窗口的标题设为指定的文本。如果窗口为一个控件,则将设置控件内的文本。

    这个函数使一条WM_SETTEXT消息被发送到这个窗口。

     

    int GetWindowText( LPTSTR lpszStringBuf, int nMaxCount ) const;

    void GetWindowText( CString& rString ) const;

    返回值:指定了要拷贝的字符串的长度,以字节为单位,不包括结尾的空字符。如果CWnd没有标题或标题为空,则为0。

    参数: lpszStringBuf 指向要接收窗口标题的复制字符串的缓冲区。

    nMaxCount 指定了要拷贝的缓冲区的最大字符数目。如果字符串比nMaxCount指定的数目还要长,则被截断。

    rString 用于接收窗口标题的复制字符串的CString对象。

    说明:这个函数将CWnd的标题(如果有)拷贝到lpszStringBuf指向的缓冲区或者目的字符串rString。如果CWnd对象是一个控件,则GetWindowText成员函数将拷贝控件内的文本(而不是控件的标题)。这个成员函数会向CWnd对象发送一个WM_GETTEXT消息。

     

    void SetFont( CFont* pFont, BOOL bRedraw = TRUE );

    参数: pFont 指定了新的字体。

    bRedraw 如果为TRUE,则重画CWnd对象。

    说明:这个函数将窗口的当前字体设为指定的字体。如果bRedraw为TRUE,则窗口还会被重画。

     

    CFont* GetFont( ) const;

    返回值:指向一个CFont对象的指针,其中包含了当前的字体。

    这个指针可能是临时的,不能被保存以供将来使用。

    说明:获得窗口的当前字体

     

     

    窗体位置和大小:

    void MoveWindow( int x, int y, int nWidth, int nHeight, BOOL bRepaint = TRUE );

    void MoveWindow( LPCRECT lpRect, BOOL bRepaint = TRUE );

     

    参数: x 指定了CWnd的左边的新位置。

    y 指定了CWnd的顶部的新位置。

    nWidth 指定了CWnd的新宽度。

    nHeight 指定了CWnd的新高度。

    bRepaint 指定了是否要重画CWnd。如果为TRUE,则CWnd象通常那样在OnPaint消息处理函数中接收到一条WM_PAINT消息。如果这个参数为FALSE,则不会发生任何类型的重画操作。这应用于客户区、非客户区(包括标题条和滚动条)和由于CWnd移动而露出的父窗口的任何部分。当这个参数为FALSE的时候,应用程序必须明确地使CWnd和父窗口中必须重画的部分无效或重画。

    lpRect CRect对象或RECT结构,指定了新的大小和位置。

     

    说明:这个函数改变窗口的位置和大小。

    对于顶层的CWnd对象,x和y参数是相对于屏幕的左上角的。对于子对象,它们是相对于父窗口客户区的左上角的。

    MoveWindow函数发送一条WM_GETMINMAXINFO消息。处理这个消息时,CWnd得到一个改变最大和最小的窗口缺省值的机会。如果传递给MoveWindow成员函数的参数超过了这些值,则在WM_GETMINMAXINFO处理函数中可以用最小或最大值来代替这些值。

     

    BOOL SetWindowPos(

         const CWnd* pWndInsertAfter,

         int x, int y,

         int cx, int cy,

         UINT nFlags

        );

    返回值:如果函数成功,则返回非零值;否则返回0。

     

    注:参数和说明见:MFC类库详解

     

     

    展开全文
  • MFC CWnd

    2017-12-17 23:14:00
    CWnd //获得窗口句柄 //1 CWnd*pWnd= GetDlgItem(IDC_BIN); //2 HWNDhButton= pWnd->m_hWnd; //3 HWNDhButton= GetDlgItem(IDC_BIN)->GetSafeWnd(); //干掉窗口 CWnd*pWnd= GetDlgItem(IDC_BIN); ...

    CWnd

    //获得窗口句柄

    //1

    CWnd *pWnd = GetDlgItem(IDC_BIN);

    //2

    HWND hButton = pWnd->m_hWnd;

    //3

    HWND hButton = GetDlgItem(IDC_BIN)->GetSafeWnd();

     

    //干掉窗口

    CWnd *pWnd = GetDlgItem(IDC_BIN);

    pWnd->CloseWindow();

    pWnd->DestroyWindow();

     

    //居中

    CWnd *pWnd = GetDlgItem(IDC_BIN);

    pWnd->CenterWindow();

     

    //获得桌面句柄

    CWnd pWnd = GetDesktopWindow();

     

    //寻找

    CWnd *pWnd = FindWindow(_T("Notepad"), NULL);

    if (pWnd != NULL)

    {

    pWnd->SendMessage(WM_CLOSE, 0, 0);

    }

     

     

    从窗口指针获取句柄

    This->m_hWnd

    CWnd::Attach  附加Windows句柄 CWnd 对象。

    CWnd::operator HWND

    CWnd::GetSafeHwnd() 比如获取不存在控件的句柄

     

    从句柄获取窗口指针

    CWnd::FromHandle注意不要保存在成员变量中

    CWnd::GetDlgItem注意不要保存在成员变量中

    CWnd::Attatch

    CWnd::Detach

    CWnd::SubclassWindow

    CWnd::UnsubclassWindow

    CWnd::EnableWindow启用或禁用鼠标和键盘输入。

     

    绘图

    CWnd::BeginPaint  CWnd 用于绘制准备。

    CWnd::EndPaint标记绘制的结尾。

    CWnd::GetDC检索工作区中的显示上下文。

    CWnd::ReleaseDC版本客户端和windows设备上下文,让他们自由供其他应用程序。

     

    //剪切板

    CWnd::OpenClipboard打开剪贴板。

     

    窗口

    CWnd::Create创建并初始化子窗口与 CWnd 对象。

    CWnd::CreateEx创建Windows中的重叠,弹出或子窗口并将它附加到 CWnd 对象。

    CWnd::CloseWindow最小化窗口。

    CWnd::DestroyWindow销毁附加的Windows窗口。

     

    CWnd::CenterWindow焦点一个窗口相对于其父级。

    CWnd::ClientToScreen将给定的坐标点的客户端或在中演示的矩形到屏幕坐标。

     

     

     

    CWnd::FindWindow返回窗口的句柄,由其窗口名称和windows选件类标识。

    CWnd::FindWindowEx返回窗口的句柄,由其窗口名称和windows选件类标识。

    CWnd::FlashWindow一个闪烁窗口。

    CWnd::FlashWindowEx在具有其他功能的窗口。

     

    CWnd::GetClientRect获取 CWnd 工作区的尺寸。

    CWnd::GetDesktopWindow 检索Windows桌面窗口。

    CWnd::GetDlgCtrlID如果 CWnd 是子窗口,调用此函数返回其ID值。

    CWnd::GetDlgItem从指定的对话框检索与指定的ID的控件。

    CWnd::GetDlgItemInt将一个控件中的文本与特定对话框中为整数值。

    CWnd::GetDlgItemText检索该声明或文本与控件关联。

    CWnd::GetExStyle返回窗口的扩展的样式。

    CWnd::GetFocus检索当前具有输入焦点的 CWnd

    CWnd::GetFont检索当前字体。

    CWnd::GetIcon检索句柄图标。

    CWnd::GetActiveWindow检索活动窗口。

    CWnd::SetActiveWindow窗口被激活。

    CWnd::GetAncestor检索指定窗口的上级窗口对象。

    CWnd::GetForegroundWindow返回指向前台窗口(使用用户当前)的顶级窗口。

    CWnd::GetLastActivePopup确定 CWnd 拥有的哪个弹出窗口最近活动的。

    CWnd::GetNextWindow返回在窗口管理器的下(或先前)窗口列表。

    CWnd::GetOwner检索指向 CWnd的所有者。

    CWnd::GetParent检索父窗口 CWnd (如果有)。

    CWnd::GetParentFrame检索 CWnd 对象的父级框架窗口。

    CWnd::GetParentOwner返回指向子窗口的父窗口。

    CWnd::GetMenu检索指向所指定的菜单。

    CWnd::GetSafeHwnd如果 this 指针是 NULL,返回 m_hWnd NULL

    CWnd::GetStyle返回当前窗口样式。

    CWnd::GetTopLevelOwner检索顶级窗口。

    CWnd::GetTopLevelParent检索窗口的顶部父级。

    CWnd::GetTopWindow返回属于 CWnd的第一个子窗口

    CWnd::GetWindow返回具有指定关系的窗口到此窗口。

    CWnd::GetWindowRect获取 CWnd屏幕坐标。

    CWnd::GetWindowRgn检索窗口的windows区域的副本。

    CWnd::GetWindowText(如果有),返回窗口文本或章节标题。

    CWnd::GetWindowTextLength返回窗口的文本或章节标题的长度。

    CWnd::Invalidate无效的整个工作区。

    CWnd::InvalidateRect通过添加该矩形无效在给定矩形内的工作区到当前更新区域。

    CWnd::InvalidateRgn通过添加该区域无效在给定区域内的工作区到当前更新区域。

    CWnd::IsChild指示 CWnd 是否为子窗口或指定的其他windows直接子代。

    CWnd::IsIconic确定是否 CWnd 最小化(图标样式)。

    CWnd::IsWindowEnabled确定窗口是否为鼠标和键盘输入启用。

    CWnd::IsWindowVisible确定窗口是否可见。

    CWnd::IsZoomed确定 CWnd 是否被最大化。

    CWnd::KillTimer杀害一个系统计时器。

    CWnd::MessageBox创建并显示包含一个由应用程序提供的消息和说明的窗口。

    CWnd::ModifyStyle修改当前窗口样式。

    CWnd::ModifyStyleEx修改窗口的扩展的样式。

    CWnd::MoveWindow更改位置和尺寸 CWnd

    CWnd::ScreenToClient将给定的屏幕坐标位置或在中演示的矩形到客户端协调。

    CWnd::PostMessage在应用程序队列中放置一个消息,然后返回,而不等待窗口处理消息。

    CWnd::SetDlgItemInt设置控件的文本设置为表示整数值的字符串。

    CWnd::SetDlgItemText将控件的声明或文本在指定的对话框中。

    CWnd::SetFocus声明输入焦点。

    CWnd::SetFont设置当前字体。

    CWnd::SetForegroundWindow将创建windows到前台和激活窗口的线程。

    CWnd::SetIcon设置句柄特定图标。

    CWnd::SetMe-nu设置菜单到指定的菜单。

    CWnd::SetOwner更改 CWnd的所有者。

    CWnd::SetParent更改父窗口。

    CWnd::SetTimer安装发送 WM_TIMER 信息,在触发的系统计时器。

    CWnd::SetWindowPos更改范围,位置和排序子项、弹出窗口以及顶级窗口。

    CWnd::SetWindowRgn设置窗口的区域。

    CWnd::SetWindowText设置窗口文本或章节标题(如果有)到指定的文本。

    CWnd::ShowWindow显示或隐藏窗口。

    CWnd::SubclassDlgItem附加 Windows 控件绑定到 CWnd 对象并将CWnd 的消息映射使其路由消息。

    CWnd::SubclassWindow附加到窗口到 CWnd 对象并将CWnd的消息映射使其路由消息。

    CWnd::UnsubclassWindow分离 CWnd对象的窗口

    CWnd::UpdateData从对话框初始化或检索数据。

    CWnd::UpdateWindow更新工作区。

    CWnd::ValidateRect移除个矩形验证在给定矩形内的工作区从当前更新区域。

     

     

    CWinApp

    CWinApp::InitInstance应用程序初始化的重写,例如创建windows对象。

    CWinApp::ExitInstance清理的重写,当应用程序停止。

    CWinApp::LoadCursor加载一种光标资源。

    CWinApp::LoadIcon加载一个图标资源。

    CWinApp::PreTranslateMessage筛选器消息,并在调度到Windows之前函数 TranslateMessage DispatchMessage

    CWinApp::SetRegistryKey在注册表中导致应用程序设置中而不是.INI文件。

    CWinApp::GetProfileBinary从应用程序的.INI文件的项检索二进制数据。

    CWinApp::GetProfileInt从应用程序的.INI文件的项检索整数。

    CWinApp::GetProfileString从应用程序的.INI文件的项检索字符串。

    CWinApp::WriteProfileBinary对项的写入二进制数据在应用程序的.INI文件。

    CWinApp::WriteProfileInt编写每对项的整数在应用程序的.INI文件。

    CWinApp::WriteProfileString写入项的字符串在应用程序的.INI文件。

     

    转载于:https://www.cnblogs.com/ming-michelle/p/8053830.html

    展开全文
  • C++之CWnd窗口框架实例

    2020-09-04 02:37:34
    主要介绍了C++之CWnd窗口框架,实例分析了CWnd窗口框架的结构,如构造函数、析构函数、消息映射函数等,需要的朋友可以参考下
  • 摘要:VC/C++源码,界面编程,CWnd指针 VC++通过HWND获得CWnd指针,一个窗体编程的例子,获取CWnd指针,在示例窗口中点击按钮即可获得指针。
  • CWnd* pParentWnd

    2021-02-18 14:06:16
    @ CWnd* pParentWnd= CWnd::FromHandle((HWND)@<父窗口>);
  • CWnd助手类-源码

    2021-04-07 23:59:27
    具有静态函数的类和嵌套类,使使用CWnd派生的对象更容易
  • cwnd类介绍

    2019-12-21 20:13:31
    cwnd类提供了微软基础类库中所有窗口类的基本功能。 cwnd对象与windows的窗口不同,但是两者有紧密联系。cwnd对象是由cwnd的构造函数和析构函数创建或销毁的。另一方面,windows的窗口是windows的一种内部数据结构,...
  • MFC CWnd类成员

    2020-04-25 09:42:41
    CWnd类的成员 1.数据成员 m_hWnd指明与这个CWnd对象相关联的HWND句柄。 2.构造和析构 CWnd():构造一个CWnd对象。 DestroyWindow():销毁相关联的Windows窗口。 3.初始化 Create():创建并初始化与CWnd对象...
  • CWnd

    2014-03-11 15:57:05
    CObject └CCmdTarget ... └CWnd ...CWnd类提供了微软基础类库中所有窗口类的基本功能。...另一方面,Windows的窗口是Windows的一种内部数据结构,它是由CWnd的Create成员函数创建的,而由CWnd的虚拟
  • CWnd自绘按钮

    2016-12-12 22:55:52
    CWnd直接派生的按钮控件
  • HWND CWND 转换

    2019-09-24 21:24:07
    一、区别HWND是句柄,CWnd是MFC窗体类,CWnd中包含HWND句柄成员对象是m_hWnd.HWND是Windows系统中对所有窗口的一种标识,即窗口句柄。这是一个SDK概念。CWnd是MFC类库中所有窗口类的基类。微软在MFC中将所有窗口的...
  • CWnd 弹框

    2015-02-02 17:38:00
    //弹框 CWnd *p2 = new CWnd(); p2->CreateEx(NULL,AfxRegisterWndClass(CS_DBLCLKS | CS_HREDRAW | CS_VREDRAW, AfxGetApp()->LoadStandardCurso...
  • CWnd-AssertVaild

    2020-04-03 23:52:33
    title: CWnd-AssertVaild date: 2020-04-03 23:26:29 tags: MFC C++ Errror description MFC dll中的界面在Debug时调用UpdateData()函数,会判断窗口的运行环境是否跨线程,如果创建窗口的线程与调用该函数的线程...
  • CWnd-MFC中文手册

    2011-10-29 10:50:16
    CWnd-MFC中文手册CWnd-MFC中文手册 CWnd-MFC中文手册CWnd-MFC中文手册
  • CWnd* pParent

    2019-09-24 21:20:19
    Dlg(CWnd* pParent = NULL)的意思是:构造函数.创建对象时第一个调用的地方.CWnd* pParent=NULL是构造的参数,可以不传入,默认为NULL构造函数(constructor)是一种特殊的方法 。主要用来在创建对象时初始化对象, 即...
  • CWnd类总结

    千次阅读 2019-04-29 11:01:57
    CWnd是MFC的一个窗口类,这个类里几乎封装了所有关于窗口操作的API函数。 在Windows系统里,一个窗口的属性分两个地方存放:一部分放在“窗口类”里头,如上所述的在注册窗口时指定;另一部分放在Windows Object...
  • 21个比较重要的Cwnd类成员例子,21个比较重要的Cwnd类成员例子
  • 关于CWnd和HWND

    2017-11-06 09:29:42
    1. CWnd是MFC所有窗口类的基类.是一个类. 2. HWND窗口句柄. 3. CWnd中包含HWND的变量m_hWnd.

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 49,041
精华内容 19,616
关键字:

cwnd