我正在学习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;
}
}
}
如果有人可以通过使用消息而不是指针来解释如何获得类似的功能,那将非常感激。
答案 0 :(得分: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(...)
就足够了。