c++ - 在 MFC 中使用发送消息最小化和恢复窗口

标签 c++ visual-studio mfc

我正在学习 MFC,我正在尝试学习发送消息。我已经搜索了好几天,但一直无法弄清楚我到底需要什么。

我有两个对话框,其中一个有一个按钮,可以最小化或恢复另一个窗口。我已经能够弄清楚如何使用指针来完成此操作,但我想将其转换为 SendMessage 函数。

这是我使用指针的当前代码...

Window2.cpp

void CWindow2::OnBnClickedButton1()
{
    // TODO: Add your control notification handler code here
    if (m_windowOne != NULL) {
        if (buttonstate == 0) {
            m_windowOne->ShowWindow(SW_MINIMIZE);
            buttonstate = 1;
        }
        else {
            m_windowOne->ShowWindow(SW_RESTORE);
            buttonstate = 0;
        }
    }
}

如果有人可以解释如何通过使用消息而不是指针来获得类似的功能,我们将不胜感激。

最佳答案

这是一个略有不同的上下文,但它传达了原则:

void CSomeDialog::OnSysCommand(UINT nID, LPARAM lParam)
{
    if ((nID & 0x0000FFF0) == SC_MINIMIZE)
    {
        // Minimizing, post to main dialogue also.
        AfxGetMainWnd()->ShowWindow(SW_MINIMIZE);
    }
    else if ((nID & 0x0000FFF0) == SC_RESTORE && IsIconic())
    {
        // Restoring, post to main dialogue also.
        AfxGetMainWnd()->ShowWindow(SW_RESTORE);
    }

    CDialogEx::OnSysCommand(nID, lParam);
}

在上述场景中,每当对话框 CSomeDialog 被最小化或恢复时,它也会将其提供给主应用程序窗口。

如果您将相关对话框作为类中的变量,那么 ShowWindow(...) 就足够了。

关于c++ - 在 MFC 中使用发送消息最小化和恢复窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37141166/

相关文章:

C++ 生成文件。 .o 在不同的子目录中

visual-studio - ctrl+shift+space 在 Visual Studio 中不起作用

c++ - 在 MFC 中创建属性网格

c++ - MFC CScrollView 滚动不工作

c++ - 仅允许某些派生类访问基类的成员函数

c++ - STL 按多个参数排序 C++

c# - Visual Studio : can't find "resource file" in list of items to add to project

c++ - CStdioFile::WriteString 为换行添加额外的回车?

C++ 纯虚多重继承?

c++ - 如何使用 CMake 创建具有多个 Visual Studio 项目的 Visual Studio 解决方案?