比如我的程序有A和B 2个对话框,程序启动时A对话框出现,操作之后设置B对话框的某项指定的菜单为禁止使用(这个也不知道如何实现,请大家帮帮忙),然后再隐藏自身。
然后
B *Bdlg;
Bdlg->Create(B_ID);
BDlg->Show(SW_SHOW);现在问题是我想让B对话框关闭后,已经隐藏的A对话框也关闭,于是我在B的OnClose()消息里写到:A *Adlg = new A();
Adlg->OnClose(); //这么用不行,会提示不能访问A的受保护成员
Adlg->OnCancel(); //也不行,提示跟上面一样于是我就
Adlg->Create(A_ID);
Adlg->OnCancel(); //还是不行,这样完全就是出现的一个新的对话框了,不是原来那个隐藏的了请大家帮帮忙,为这个问题我都搞了好几天了,我希望能用指针方便的操作2个对话框,最好不要用SendMessage(),如果只有用SendMessage()才能实现的话,要如何具体的使用SendMessage()。
还有那个关于操作另1个对话框菜单的问题。
求大家帮帮忙吧
然后
B *Bdlg;
Bdlg->Create(B_ID);
BDlg->Show(SW_SHOW);现在问题是我想让B对话框关闭后,已经隐藏的A对话框也关闭,于是我在B的OnClose()消息里写到:A *Adlg = new A();
Adlg->OnClose(); //这么用不行,会提示不能访问A的受保护成员
Adlg->OnCancel(); //也不行,提示跟上面一样于是我就
Adlg->Create(A_ID);
Adlg->OnCancel(); //还是不行,这样完全就是出现的一个新的对话框了,不是原来那个隐藏的了请大家帮帮忙,为这个问题我都搞了好几天了,我希望能用指针方便的操作2个对话框,最好不要用SendMessage(),如果只有用SendMessage()才能实现的话,要如何具体的使用SendMessage()。
还有那个关于操作另1个对话框菜单的问题。
求大家帮帮忙吧
B *Bdlg;
Bdlg->Create(B_ID);
BDlg->Show(SW_SHOW);
你这段代码没出问题?Bdlg没有new就Create?2.
修改菜单状态用EnableMenuItem3.
A *Adlg = new A();
Adlg->OnClose(); //这么用不行,会提示不能访问A的受保护成员
Adlg->OnCancel(); //也不行,提示跟上面一样问题太多:第一,你这个Adlg是个指针,指向的是新new出来的A,而不是被隐藏的A。
第二,OnClose和OnCancel是保护成员,不能直接调用,建议复习下C++
第三,Adlg的窗口并没有建立起来,试图做销毁窗口的操作会导致程序崩溃
A pA = new A;
pA->Create(A_ID);
pA->Show(SW_SHOW);
pA->ShowWindow(SW_HIDE); // 隐藏B *pB;
pB->Create(B_ID);
pB->m_pA = pA;
pB->Show(SW_SHOW);然后在B::OnCancel中
if (m_pA)
{
m_pA->DestroyWindow();
m_pA = NULL;
}
CDialgo::OnCancel();
两个窗口互相知道hwnd就可以了。
A要让B的某一项变虚,给它发消息,
B中要写处理该消息的代码。
B要让A关闭,给它发消息。