MFC 最小化窗口消息回调
时间: 2023-07-12 16:48:27 浏览: 39
MFC 中最小化窗口消息的回调函数是 OnSize,具体来说,当窗口接收到 WM_SIZE 消息时,MFC 就会调用 OnSize 函数。在 OnSize 函数中,可以通过判断 wParam 参数的值来确定窗口的状态,如果 wParam 的值为 SIZE_MINIMIZED,则表示窗口被最小化了。因此,在 OnSize 函数中,可以添加对窗口最小化消息的处理代码。例如,可以在窗口最小化时将窗口隐藏或者显示系统托盘图标等操作。下面是一个简单的示例代码:
```
void CMyWnd::OnSize(UINT nType, int cx, int cy)
{
CWnd::OnSize(nType, cx, cy);
if (nType == SIZE_MINIMIZED)
{
// 窗口被最小化了,添加处理代码
}
}
```
相关问题
mfc最小化窗口时单选按钮被选中
在 MFC 中,当一个窗口被最小化时,窗口的客户区域将不再可见,所以单选按钮也会被隐藏。如果单选按钮仍然处于选中状态,这可能是因为在窗口的 OnSize 函数中没有正确处理最小化事件。
为了确保单选按钮在最小化窗口时被正确处理,您可以在窗口类的 OnSize 函数中添加以下代码:
```cpp
void CMyWnd::OnSize(UINT nType, int cx, int cy)
{
CWnd::OnSize(nType, cx, cy);
if (nType == SIZE_MINIMIZED)
{
// 取消选中单选按钮
m_radioBtn.SetCheck(FALSE);
}
}
```
在这个例子中,窗口类 CMyWnd 中有一个名为 m_radioBtn 的单选按钮控件。当窗口被最小化时,OnSize 函数将检查窗口大小变化的类型是否为 SIZE_MINIMIZED,如果是,则取消选中单选按钮。这样,当您最小化窗口时,单选按钮将自动取消选中状态。
MFC 设置窗口最小化
要设置MFC窗口最小化,可以通过以下步骤:
1. 打开MFC窗口的类视图,找到该窗口的对应类(如CMainFrame)。
2. 在该类的头文件中添加以下代码:
```cpp
protected:
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
```
3. 在该类的源文件中添加以下代码:
```cpp
BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
ON_WM_SYSCOMMAND()
END_MESSAGE_MAP()
void CMainFrame::OnSysCommand(UINT nID, LPARAM lParam)
{
if (nID == SC_MINIMIZE)
{
// 最小化窗口
ShowWindow(SW_MINIMIZE);
}
else
{
CFrameWnd::OnSysCommand(nID, lParam);
}
}
```
4. 最后,在窗口的OnInitInstance()函数中调用以下函数:
```cpp
m_wndStatusBar.EnablePaneProgressBar(0, 100);
```
这样就可以使窗口最小化了。