处理MDI的关闭过程(仿MFC程序):
MDI窗口关闭是需要遍历关闭子窗口,在子窗口中须判断是否关闭。
MDI主框架和Child子窗口,一般都是继承类
在基类中会有一些框架的基本操作函数,用虚函数可以隐藏固定的中间调用过程
WM_QUERYENDSESSION 消息响应 OnQueryEndSession
WM_CLOSE 消息响应 OnClose
基类框架用EnumChildWindows函数枚举子窗口,并在回调函数中发WM_QUERYENDSESSION给子窗口查询是否可以关闭
OnQueryEndSession调用OnClose,用法固定,OnClose的内容取决于用户子类
所以OnQueryEndSession不必定义成虚函数, OnClose则定义成虚函数。
这样子类中不需要OnQueryEndSession函数,
在消息映射中,子类没有的处理的消息WM_QUERYENDSESSION,顺着消息表走向父类,调用父类的OnQueryEndSession,并调用OnClose,而OnClose是虚函数,因此父类执行子类函数
效果就是子类中完全没有OnQueryEndSession相关定义。
标签:窗口,函数,一个,子类,OnClose,实例,关闭,OnQueryEndSession From: https://www.cnblogs.com/xgz21/p/17591198.html