TN024:MFC中定义的消息和资源

备注

以下技术声明,则它在联机文档,首先包括了不更新。因此,某些过程和主题可能已过时或不正确。有关最新信息,建议您搜索议题在联机文档的索引。

此说明描述了 MFC 和资源格式使用的内部 windows 消息。 此信息解释 framework 实现和帮助您调试的应用程序。 对于 adventure,因此,即使所有这些信息正式不受支持,可能会高级实现使用一些此信息。

此说明包含 MFC 私有实现详细信息;所有内容在将来可能会发生更改。 MFC 私有 windows 消息只有含义在一个应用程序的范围内,但在将来更改包含系统消息。

MFC 私有 windows 消息的大小和资源类型在 Microsoft Windows 中预留的保留的 “系统”范围。 目前不是使用在范围内的所有数字,并且可能,在将来,使用该范围内的新数目。 可以更改当前使用的数字。

MFC 私有 windows 消息在范围 0x360->0x37F。

MFC 私有资源类型在范围 0xF0->0xFF。

MFC 私有 windows 消息

这些窗口消息。相对松耦合需要在窗口对象之间的 C++ 虚函数位置使用,并且 c. C++ 虚函数不适当的位置。

这些专用 windows 消息和关联的参数结构在私有 MFC 头 “AFXPRIV.H 声明。 请将警告您的任何代码将此头 MFC 中的未来版本中可能依赖于未记录的行为,并且可以中断。

在极少数情况下需要处理这些消息类型,则在泛型 LRESULT/WPARAM/LPARAM 格式应使用 ON_MESSAGE 消息映射宏和处理消息。

WM_QUERYAFXWNDPROC

此信息发送到所创建的窗口。 这很早在创建发送处理作为方法确定 WndProc 是否 AfxWndProc.AfxWndProc 返回 1。

wParam

未使用

lParam

未使用

返回

1,如果处理 AfxWndProc

WM_SIZEPARENT

框架窗口发送此消息给其直接子项。 (CFrameWnd::OnSize 调用 CWnd::RepositionBars) 的 CFrameWnd::RecalcLayout 重新定位期间控件条的调整大小。帧周围的。 AFX_SIZEPARENTPARAMS 结构包含可能为空) 调用 DeferWindowPos 最小化重新绘制的当前可用客户端矩形父和 HDWP (。

wParam

未使用

lParam

AFX_SIZEPARENTPARAMS 结构的地址

返回

不使用 (0)

忽略该消息指示窗口布局在不参与。

WM_SETMESSAGESTRING

此信息发送到框架窗口请求更新在状态栏中显示消息行。 字符串 ID 或 LPCSTR 可以指定 (,而不是两个字符)。

wParam

字符串 ID (或零)

lParam

字符串 (或 NULL) LPCSTR

返回

不使用 (0)

WM_IDLEUPDATECMDUI

此信息在空闲时间发送实现更新命令 UI 处理程序空闲时间更新。 如果窗口 (通常控制条) 处理消息,将创建一 CCmdUI 对象 (或派生类的对象),并调用每个的 CCmdUI::DoUpdate “项目”窗口中。 这与将检查对象的一 ON_UPDATE_COMMAND_UI 处理程序在命令处理程序链。

wParam

BOOL bDisableIfNoHandler

lParam

不使用 (0)

返回

不使用 (0)

bDisableIfNoHandler 是非零禁用用户界面对象是否不 ON_UPDATE_COMMAND_UION_COMMAND 处理程序。

WM_EXITHELPMODE

此消息已传递到退出区分上下文的帮助模式的 CFrameWnd 。 此消息的收货停止 **CFrameWnd::OnContextHelp.**启动该模式循环

wParam

不使用 (0)

lParam

不使用 (0)

返回

未使用

WM_INITIALUPDATE

,在执行其初始更新时,它们是安全的文档模板将此信息添加到框架窗口的所有子代。 映射到调用 CView::OnInitialUpdate ,但可以在其他 CWnd- 另一次更新的派生类。

wParam

不使用 (0)

lParam

不使用 (0)

返回

不使用 (0)

WM_RECALCPARENT

视图发送此消息给其父窗口 (获取通过 GetParent) 强制布局计算 (通常,父将调用 RecalcLayout)。 用于的大小增大的 OLE 服务器应用程序框架是必需的,因为视图的总大小增大。

如果父窗口处理此消息应该返回 TRUE,并将新加载在 lParam 传递的 RECT 调整工作区。 这正确用于处理滚动条 (封送处理 CScrollView 然后窗口的外部的,则会添加) 时,就地激活时的服务器对象。

wParam

不使用 (0)

lParam

rectClient 的 LPRECT,可以为空

返回

TRUE,则新客户端矩形返回,否则 FALSE

WM_SIZECHILD

COleResizeBar 发送此消息给它的所有者窗口 (通过 GetOwner),当用户调整的大小调整句柄时的大小调整条。 COleIPFrameWnd 响应此消息传递尝试重新定位框架窗口,用户请求。

新矩形将在客户端协调相对于包含调整条框架窗口,则点在 lParam。

wParam

不使用 (0)

lParam

LPRECT rectNew

返回

不使用 (0)

WM_DISABLEMODAL

此信息发送到停用的框架窗口拥有的所有弹出窗口。 框架窗口是否使用该结果确定禁用弹出窗口。

您在弹出窗口可以使用此执行特殊处理,这些帧进入模式状态或保留从失败的某些弹出窗口。 工具提示使用此消息可以在销毁,当框架窗口进入模式状态时,例如。

wParam

不使用 (0)

lParam

不使用 (0)

返回

非零到 NOT 禁用窗口, 0 表示窗口将被禁用。

WM_FLOATSTATUS

,这些帧激活或另一个顶级框架窗口时,停用此信息发送到框架窗口拥有的所有弹出窗口。 这是通过 MFS_SYNCACTIVE 的实现用于在 CMiniFrameWnd,保留这些弹出窗口的开始使用顶级框架窗口的启动同步。

wParam

为下列值之一:

FS_SHOW

FS_HIDE

FS_ACTIVATE

FS_DEACTIVATE

FS_ENABLEFS_DISABLE

FS_SYNCACTIVE

lParam

不使用 (0)

返回值应为非零,则 FS_SYNCACTIVE 设置,以及窗口 syncronizes 其与父帧的激活。 ,该样式设置为 **MFS_SYNCACTIVE.**时,CMiniFrameWnd 返回非零

有关更多信息,请参见 CMiniFrameWnd的实现。

WM_ACTIVATETOPLEVEL

,在其 “top-level 组中”激活一个窗口或停用时,此信息发送到顶级窗口。 窗口是顶级组的一部分,如果它是顶级窗口 (没有父或所有者),也由此类窗口拥有。 此消息是类似正在使用对 WM_ACTIVATEAPP, ,但在属于不同的窗口操作的情况下工作在一个窗口层次结构组合 (常见在 OLE 应用程序)。

WM_COMMANDHELP, WM_HELPHITTEST, WM_EXITHELPMODE

这些消息用于区分上下文的帮助的实现。 请参见 技术说明 28 更多信息。

MFC 私有资源格式

目前, MFC 定义两个私有资源格式: RT_TOOLBARRT_DLGINIT

RT_TOOLBAR 资源格式

AppWizard 提供的默认工具栏根据 RT_TOOLBAR 自定义资源,在 MFC 4.0 版中引入的。 使用工具栏编辑器,可以编辑此资源。

RT_DLGINIT 资源格式

一个私有 MFC 资源格式用于存储额外的对话框初始化信息。 这包括在组合框中存储的初始字符串。 此资源格式并非旨在手动编辑,但是,由 Visual C++ 处理。

,因为使用 API 替代使用信息在资源中,不需要 Visual C++ 和此 RT_DLGINIT 资源使用 MFC 相关功能。 使用 Visual C++ 可以轻松地编写,维护,并从+长远+看将您的应用程序。

RT_DLGINIT 资源的基本结构如下所示:

+---------------+                    \
| Control ID    |   UINT             |
+---------------+                    |
| Message #     |   UINT             |
+---------------+                    |
|length of data |   DWORD            |
+---------------+                    |   Repeated
|   Data        |   Variable Length  |   for each control
|   ...         |   and Format       |   and message
+---------------+                    /
|     0         |   BYTE
+---------------+

一个重复的节包含控件 ID 发送消息至消息, # 发送 (标准窗口消息) 和变长数据。 窗口发送窗体:

SendDlgItemMessage(<Control ID>, <Message #>, 0, &<Data>);

这是一个非常常规格式,这允许任何 windows 消息和数据内容。 Visual C++ 资源编辑器和 MFC 仅支持 windows 消息的一个受子集:初始列表中选择的 CB_ADDSTRING 组合框 (该数据是文本字符串)。

请参见

其他资源

由Number "技术说明

技术说明按类别