我正在学习 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/