ModalWindow-模态窗口

模态窗口是一个阻塞父窗口消息的特殊窗口,例如:常见的 XMessageBox();

XModalWnd_DoModal()当模态窗口启用后,父窗口将处于禁用状态,不能接收到消息,只有模态窗口退出后,父窗口恢复正常.

XModalWnd_EndModal()退出模态窗口.

步骤

  1. XModalWnd_Create()创建模态窗口.
  2. XModalWnd_DoModal()启用显示模态窗口.

示例代码

#pragma comment(lib, "XCGUI.lib")
#include "xcgui.h"
class CWindow_Demo
{
public:
HWINDOW m_hWindow;
HELE m_hButton;
HWINDOW m_hWindowModal;
CWindow_Demo()
{
m_hWindowModal=NULL;
Init();
}
void Init()
{
m_hWindow = XWnd_Create(100,100,400, 300, L"炫彩界面库窗口",NULL, window_style_default);
m_hButton=XBtn_Create(20,50,120,20,L"popup-modalWindow",m_hWindow);
XEle_RegEventCPP(m_hButton,XE_BNCLICK,&CWindow_Demo::OnBtnClick);
XWnd_ShowWindow(m_hWindow,SW_SHOW);
}
int OnBtnClick(BOOL *pbHandled)
{
m_hWindowModal = XModalWnd_Create(200, 200, L"炫彩界面库窗口",XWnd_GetHWND(m_hWindow));
int nResult=XModalWnd_DoModal(m_hWindowModal);
XTRACE("exit modal %d \n",nResult);
*pbHandled=TRUE;
return 0;
}
};
int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
{
XInitXCGUI(TRUE);
CWindow_Demo MyWindow;
return TRUE;
}
#define XE_BNCLICK
按钮点击事件.
Definition: XCGUI.h:939
@ window_style_default
窗口样式-控制按钮: 居中 图标, 标题, 关闭按钮, 最大化按钮, 最小化按钮
Definition: XCGUI.h:398
HELE WINAPI XBtn_Create(int x, int y, int cx, int cy, const wchar_t *pName, HXCGUI hParent)
按钮_创建 创建按钮元素
Definition: ButtonUI.cpp:1765
void WINAPI XExitXCGUI()
炫彩_退出 退出界面库释放资源. 不可在dllmain()中卸载, 否则会死锁
Definition: App.cpp:572
void WINAPI XRunXCGUI()
炫彩_运行 运行消息循环,当炫彩窗口数量为0时退出.
Definition: App.cpp:564
BOOL WINAPI XInitXCGUI(BOOL bD2D)
炫彩_初始化 初始化界面库.
Definition: App.cpp:557
XEle_RegEventCPP(hEle, nEvent, memberFunction)
元素_注册事件CPP 注册元素事件,将类成员函数作为事件响应函数.函数省略元素自身句柄hEle.
HWINDOW WINAPI XModalWnd_Create(int nWidth, int nHeight, const wchar_t *pTitle, HWND hWndParent, int XCStyle)
模态窗口_创建 创建模态窗口;当模态窗口关闭时,会自动销毁模态窗口资源句柄.
Definition: ModalWindowUI.cpp:197
int WINAPI XModalWnd_DoModal(HWINDOW hWindow)
模态窗口_启动 启动显示模态窗口,当窗口关闭时返回.
Definition: ModalWindowUI.cpp:269
HWND WINAPI XWnd_GetHWND(HWINDOW hWindow)
窗口_取HWND 获取HWND句柄.
Definition: WindowUI.cpp:6168
HWINDOW WINAPI XWnd_Create(int x, int y, int cx, int cy, const wchar_t *pTitle, HWND hWndParent, int XCStyle)
窗口_创建 创建窗口
Definition: WindowUI.cpp:5964
BOOL WINAPI XWnd_ShowWindow(HWINDOW hWindow, int nCmdShow)
@窗口_显示扩展 显示隐藏及控制窗口最大化还原等
Definition: WindowUI.cpp:6387

代码示例(易语言)

.版本 2
.子程序 ModalWindow_模态窗口
.局部变量 炫彩, 炫彩界面库
.局部变量 窗口, 炫彩窗口
.局部变量 按钮, 炫彩按钮
炫彩.初始化 (真)
窗口.创建 (0, 0, 400, 300, “炫彩界面库”, 0, #窗口样式_默认)
按钮.创建 (20, 50, 100, 30, “模态窗口”, 窗口.取句柄 ())
按钮.注册事件C1 (#XE_BNCLICK, &按钮_点击)
窗口.显示 (真)
炫彩.运行 ()
炫彩.退出 ()
.子程序 按钮_点击, 整数型, 公开, XE_BNCLICK: int CALLBACK OnBtnClick(BOOL *pbHandled)
.参数 元素句柄, 整数型
.参数 是否拦截, 逻辑型, 参考
.局部变量 模态窗口, 炫彩模态窗口
模态窗口.创建 (300, 200, “炫彩模态窗口”, 窗口组件_取窗口句柄系统 (元素句柄), #窗口样式_模态)
模态窗口.启动 ()
返回 (0)

截图