Windows消息产生的时机 http://blog.csdn.net/Free_Sword/archive/2006/05/07/711158.aspx
来源:互联网 发布:银龙知识产权 知乎 编辑:程序博客网 时间:2024/04/29 12:17
一直都没有弄明白windows的消息究竟是什么时候产生,写程序的时候都是照“猫”而已。而其他书上的又内容太多,想找到自己要的消息产生的时机,难啊。就以此主题,开始我的Blog吧(以下内容主要来自MSDN)。
1. WM_Create 当应用程序要求初始化窗口,重绘窗口区时(需要调用CreateWindow函数时),调用此函数。此消息触发OnCreate()函数。
LRESULT CALLBACK WindowProc(
HWND hwnd, // handle to window
UINT uMsg, // WM_CREATE
WPARAM wParam, // not used
LPARAM lParam // creation data (LPCREATESTRUCT)
);
注 候在<深入浅出MFC中>说,框架一生成,就会立即触发WM_CREATE消息,比如要画工具栏、状态栏啊什么的,都要写在些函数里,然后通过显示函数显示出来。
2. WM_CLOSE 窗口或应用程序将关闭时,发此消息。(将来式?)
LRESULT CALLBACK WindowProc( HWND hwnd, // handle to window UINT uMsg, // WM_CLOSE WPARAM wParam, // not used LPARAM lParam // not used);
An application can prompt the user for confirmation, prior to destroying a window, by processing the WM_CLOSE message and calling the DestroyWindow function only if the user confirms the choice.
3. WM_DESTROY 窗口关闭中.(进行式?)
4. WM_QUIT (搞糊涂了)
2、3、4这三个消息都是与关闭窗口有关的。看微软的说明好象是说WM_DESTROY消息是在WM_CLOSE消息之后。所以,想要问用户是否真想关闭窗口,应该在CLOSE消息时提示,以防止无意关闭程序。而DESTROY消息是在窗口正在进行的过程中,产生此消息,此消息是将窗口区准备在屏幕上擦去时用的,估计除了释放内存、资源等的动作外,没有人会想在此消息里做动作了。QUIT消息就有点怪了,不知道用在哪儿,是不是想关窗口,就发此消息呢?MSDN里只说该消息在WINDOWS进程处理函数里是抓不到的,除非用GetMessage or PeekMessage 函数才可以处理此消息。
反正windows的消息也不多,就先帖出来。明天补充吧。
5. WM_ACTIVATE
好象是说想让窗口激活或失去激活时,发出此消息。如果窗口不是处于最小化时,窗口将立刻获得焦点。如果此 消息是通过点鼠标得到的。那么,窗口还会得到WM_MOUSEACTIVE
LRESULT CALLBACK WindowProc( HWND hwnd, // handle to window UINT uMsg, // WM_ACTIVATE WPARAM wParam, // activation and minimization options LPARAM lParam // handle to window (HWND));
以下消息,根椐其命名就可以大致判断其产生的时机,而且翻译MSDN也挺费劲(英文太差啊!)。用时还是看MSDN吧。
WM_ACTIVATEAPP
WM_CANCELMODE
WM_CHILDACTIVATE
WM_COMPACTING
WM_ENABLE
WM_ENTERSIZEMOVE
WM_EXITSIZEMOVE
WM_GETFONT
WM_GETICON
WM_GETMINMAXINFO
WM_GETTEXT
WM_GETTEXTLENGTH
WM_INPUTLANGCHANGE
WM_INPUTLANGCHANGEREQUEST
WM_MOVE
WM_MOVING
WM_NCACTIVATE
WM_NCCALCSIZE
WM_NCCREATE
WM_NCDESTROY
WM_NULL
WM_PARENTNOTIFY
WM_QUERYDRAGICON
WM_QUERYOPEN
WM_QUIT
WM_SETFONT
WM_SETICON
WM_SETTEXT
WM_SHOWWINDOW
WM_SIZE
WM_SIZING
WM_STYLECHANGED
WM_STYLECHANGING
WM_THEMECHANGED
WM_USERCHANGED
WM_WINDOWPOSCHANGED
WM_WINDOWPOSCHANGING
- Windows消息产生的时机 http://blog.csdn.net/Free_Sword/archive/2006/05/07/711158.aspx
- Windows消息机制http://blog.csdn.net/weixu_2008/archive/2007/09/15/1785939.aspx
- 集合的clone[转自http://blog.csdn.net/dr2tr/archive/2006/03/07/617474.aspx]
- Oracle体系结构 转自: http://blog.csdn.net/truexf/archive/2006/07/05/881726.aspx
- Oracle体系结构 转自: http://blog.csdn.net/truexf/archive/2006/07/05/881726.aspx
- http://blog.csdn.net/hbuzhang/archive/2006/01.aspx
- Windows内存管理 http://blog.csdn.net/zeroless/archive/2006/03/17/626849.aspx
- http://blog.csdn.net/HuDon/archive/2006/06/28/846043.aspx 很不错的BLOG
- [转] .NET WINFORM学习笔记 [http://blog.csdn.net/yongping8204/archive/2006/05/21/747579.aspx]
- 面向对象的程序(http://blog.csdn.net/qi_jianzhou/archive/2006/03/31/646124.aspx)
- CString 的方法(from:http://blog.csdn.net/lijuwen/archive/2006/03/13/623186.aspx)
- http://blog.csdn.net/baggio785/archive/2006/05/12/725382.aspx
- http://blog.csdn.net/bakiya/archive/2006/05/13/726837.aspx
- http://blog.csdn.net/johnsuna/archive/2006/05/11/724868.aspx
- http://blog.csdn.net/zuozuox/archive/2006/05/28/759146.aspx
- 关于Windows核心编程的编译环境http://blog.csdn.net/lihaishan/archive/2007/09/17/1788891.aspx
- windows 内存管理4 整理 (堆) http://blog.csdn.net/yaosan/archive/2006/09/10/1203851.aspx
- http://blog.csdn.net/CYRTSOFT/archive/2004/12.aspx
- Windows消息机制http://blog.csdn.net/weixu_2008/archive/2007/09/15/1785939.aspx
- Squid代理服务器之一基本配置
- 领带打法
- Linux 技巧: 用 cron 和 at 调度作业
- Window 消息大全使用详解http://www.itepub.net/html/kaifajingcui/C___VC/2006/0515/38024.html
- Windows消息产生的时机 http://blog.csdn.net/Free_Sword/archive/2006/05/07/711158.aspx
- ajax菜单级联实例
- Windows消息拦截技术的应用http://www.cnblogs.com/biqing/archive/2004/05/20/10571.html
- 逻辑卷管理
- 十大最糟糕科技现象
- VS2005SP1极速安装
- 定制您的 Shell
- Windows Forms DataGridView 中合并单元格
- 迁移和移动 UNIX 文件系统