MFC消息雏形
来源:互联网 发布:物业安装办公软件 编辑:程序博客网 时间:2024/06/05 15:07
,组织两个数组_messageEntries[ ]和_commandEntries[ ],把程序中欲处理的消息以及消息处理例程的关联性建立起来:
// 消息与处理例程之对照表
struct MSGMAP_ENTRY _messageEntries[] =
{
WM_CREATE, OnCreate,
WM_PAINT, OnPaint,
WM_SIZE, OnSize,
WM_COMMAND, OnCommand,
WM_SETFOCUS, OnSetFocus,
WM_CLOSE, OnClose,
WM_DESTROY, OnDestroy,
};这是消息 这是消息处理例程
// Command-ID 与处理例程之对照表格
struct MSGMAP_ENTRY _commandEntries =
{
IDM_ABOUT, OnAbout,
IDM_FILEOPEN, OnFileOpen,
IDM_SAVEAS, OnSaveAs,
};这是WM_COMMAND命令项 这是命令处理例程
于是窗口函数可以这么设计:
// 窗口函数
LRESULT CALLBACK WndProc(HWND hWnd, UINT message,
WPARAM wParam, LPARAM lParam)
{
int i;
for(i=0; i < dim(_messageEntries); i++) { // 消息对照表
if (message == _messageEntries[i].nMessage)
return((*_messageEntries[i].pfn)(hWnd,message,wParam,lParam));
}
return(DefWindowProc(hWnd, message, wParam, lParam));
}
// OnCommand——专门处理WM_COMMAND
LONG OnCommand(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
int i;
for(i=0; i < dim(_commandEntries); i++) { // 命令项目对照表
if (LOWORD(wParam) == _commandEntries[i].nMessage)
return((*_commandEntries[i].pfn)(hWnd, message, wParam, lParam));
}
return(DefWindowProc(hWnd, message, wParam, lParam));
}
//----------------------------------------------------------------------
LONG OnCreate(HWND hWnd, UINT wMsg, UINT wParam, LONG lParam)
{
...
}
//----------------------------------------------------------------------
LONG OnAbout(HWND hWnd, UINT wMsg, UINT wParam, LONG lParam)
{
`...
}
这么一来,WndProc和OnCommand永远不必改变,每有新要处理的消息,只要在_messageEntries[ ]和 _commandEntries[ ] 两个数组中加上新元素,并针对新消息撰写新的处理例程即可。
- MFC消息雏形
- 《深入浅出MFC》——消息映射(Message Map)的雏形
- Q001[Window消息映射的雏形]
- MFC消息
- MFC--消息
- MFC消息
- MFC 消息
- Window消息映射(Message Map)的雏形
- 告诉大家一个消息Unix.Net已有雏形了.
- 微信触发连续发送多条消息(雏形)
- 基于MFC的VC++仿QQ浏览器源码(雏形)
- MFC消息完成消息反射
- MFC消息详解 消息传递
- MFC 消息(缺自定义消息)
- MFC消息机制---消息映射
- MFC消息机制
- MFC中的消息循环
- MFC 消息映射(转载)
- x264函数说明
- 解析C++中get()和getline()的区别(二)
- Oracle学习笔记1
- Android学习之AlertDialog
- 查看DB中的index信息
- MFC消息雏形
- vs2010快捷键大集合
- 今天写了一个含配置文件的 文件分割 及 合并 的java程序。
- JavaScript 的 MVC 模式
- 分享下多年积累的对JAVA程序员成长之路的总结
- 算法竞赛入门经典2-10 用1,2,3,4,5,6,7,8,9组成3个三位数 abc:def:ghi=1:2:3
- 苏宁易购敏感信息弱口令
- •内容提示:Alt + /
- IIS提示“访问被拒绝,未能开始监视文件更改”