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_UI 和 ON_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_TOOLBAR 和 RT_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 组合框 (该数据是文本字符串)。