序 本文旨在 打造可复用的 duilib 模态对话框 基类
所谓模态对话,就是模态对话框出现时,主窗口不能进行任何操作。
duilib中的Msgbox就是模态对话框
模态对话框的核心实现很简单
但本文关注点在于打造 可服用的模态基类
构造一个自己的 模态框基类, 有具体模态显示需求时,只需由此基类,派生下就可以了。
0)模态对话框核心代码
模态对话框显示的时候 ,使得此模态对话框的 拥有者窗口,通常是父窗口 禁止响应
::EnableWindow(hwnd, FALSE);
模态对话框销毁的时候, 重新使得拥有者窗口 进行响应
::EnableWindow(hWndParent, TRUE);
一 模态对话框设计
1.1)返回值
当模态对话框销毁时,要告诉调用者 返回值信息, 比如点击的是 确定还是取消
这可通过枚举来实现
enum ModalRet
{
MB_YES_Modal,
MB_NO_Modal
};
1.2)模态对话框需要有一个CALLBACK ,返回给调用者相关信息
typedef std::function<void(Moda
来源:oschina
链接:https://my.oschina.net/u/4387680/blog/4626830