duilib窗口关闭能返回参数么
时间: 2023-11-20 16:06:33 浏览: 38
可以的,可以通过在窗口关闭时设置返回值来实现。具体来说,可以在窗口关闭事件中设置一个变量,然后在调用窗口的代码中读取这个变量。例如:
```cpp
// 窗口关闭事件
void MyWindow::OnClose() {
// 设置返回值为 123
this->SetResult(123);
// 调用父类的关闭函数
__super::OnClose();
}
// 调用窗口的代码
MyWindow wnd;
wnd.Create(NULL, _T("My Window"), WS_OVERLAPPEDWINDOW, 0, 0, 400, 300);
wnd.ShowModal(); // 显示窗口并等待关闭
int ret = wnd.GetResult(); // 获取返回值,此时 ret 的值为 123
```
在这个例子中,窗口关闭时设置了返回值为 123,然后在调用窗口的代码中通过 `wnd.GetResult()` 获取返回值。这样就可以在窗口关闭后返回参数了。
相关问题
duilib子窗口关闭能返回参数么
可以的。可以在子窗口关闭前,将需要返回的参数存储到一个变量中,然后在关闭子窗口的同时将这个变量作为参数传递给父窗口。父窗口就可以通过接收到的参数来获取子窗口中处理后的结果。具体实现可以参考以下步骤:
1. 在子窗口的类中添加一个成员变量,用于存储需要返回的参数。
2. 在子窗口的关闭函数中,将需要返回的参数存储到成员变量中。
3. 在子窗口的关闭函数中,调用父窗口的一个函数,将参数作为参数传递给父窗口。
4. 在父窗口中实现接收参数的函数,用于接收子窗口传递过来的参数,并进行相应的处理。
5. 在父窗口中创建子窗口时,可以将该接收参数的函数作为参数传递给子窗口,以便子窗口在关闭时调用该函数传递参数。
具体实现细节可以根据具体情况进行调整。
duilib窗口退出如何返回参数
在使用duilib进行窗口开发时,如果需要在窗口退出时返回参数,可以通过以下步骤实现:
1. 在窗口类中添加一个成员变量,用于保存返回参数。
```c++
class MyWindow : public WindowImplBase {
public:
MyWindow() : m_result(0) {}
int m_result; // 返回参数
// ...
};
```
2. 在窗口关闭时,将返回参数保存到成员变量中。
```c++
class MyWindow : public WindowImplBase {
public:
// ...
virtual void OnFinalMessage(HWND hWnd) {
__super::OnFinalMessage(hWnd);
m_result = 123; // 将返回参数保存到成员变量中
}
private:
int m_result; // 返回参数
};
```
3. 在调用窗口的代码中,获取返回参数。
```c++
MyWindow wnd;
if (wnd.Create(NULL, _T("My Window"), UI_WNDSTYLE_FRAME, 0, 0, 0, 0)) {
wnd.CenterWindow();
wnd.ShowModal();
int result = wnd.m_result; // 获取返回参数
}
```
在上述代码中,通过调用窗口的 ShowModal 方法来显示窗口并等待其关闭,并通过窗口的 m_result 成员变量获取返回参数。