永发信息网

mfc 窗体间的跳转! 急 ……………………

答案:5  悬赏:80  手机版
解决时间 2021-02-12 07:52
有2个窗体 每个窗体有 个按钮, 点击A窗口的 a 按钮跳转到B 窗体,点击B 窗体的b按钮 跳转到A窗体 实现 窗体间的跳转、。。。高分 等 。追加 50分 。
最佳答案
要实现这个功能。
最少有一个为 对话框 为非模式 对话框。
方法:

新建一个对话框 程序 A 类就是 CADlg

添加一个 对话框资源B ,ID为 IDD_DIALOGB ,类为CBDlg
把 CBDlg 的头文件 bdlg.h 包含到 CADlg 的头文件,并在CADlg类中定义一个
CBDlg对象.

#include "bdlg.h" //这是新加代码。
/////////////////////////////////////////////////////////////////////////////
// CADlg dialog

class CADlg : public CDialog
{
// Construction
public:
CADlg(CWnd* pParent = NULL); // standard constructor
CBDlg bdlg; //这是新加代码。
// Dialog Data
//{{AFX_DATA(CADlg)
enum { IDD = IDD_A_DIALOG };
// NOTE: the ClassWizard will add data members here
//}}AFX_DATA

。。。。。。

在CADlg的初始化函数中加入代码
BOOL CADlg::OnInitDialog()
{
。。。。。。。
bdlg.Create(IDD_DIALOGB);//这是新加代码。
return TRUE;
}

在对话框A上放置一个按钮a,双击添加事件如下

void CADlg::OnButton1()
{
// TODO: Add your control notification handler code here
ShowWindow(0);
bdlg.ShowWindow(1);
}

以上是对A的处理。

在对话框B上放置一个按钮 ,双击添加事件如下
void CBDlg::OnButton1()
{
// TODO: Add your control notification handler code here
ShowWindow(0);
GetParent()->ShowWindow(1);
}
到这里已经可以实现切换窗口了,但是 当显示B窗口时,如果点击了 关闭按钮,那么由于A处于隐藏状态,程序就无法控制了。

最好的方法是 B窗口关闭后,发送消息 整个程序结束。

void CBDlg::OnClose()
{
// TODO: Add your message handler code here and/or call default
::PostQuitMessage(0);
CDialog::OnClose();
}

BOOL CBDlg::DestroyWindow()
{
::PostQuitMessage(0);
// TODO: Add your specialized code here and/or call the base class
return CDialog::DestroyWindow();
}

void CBDlg::OnOK()
{
// TODO: Add extra validation here
::PostQuitMessage(0);
CDialog::OnOK();
}

void CBDlg::OnCancel()
{
// TODO: Add extra cleanup here
::PostQuitMessage(0);
CDialog::OnCancel();
}
全部回答
findwinow(); showwindow();
不知道你要在什么情况下使用,如果是一个窗口中的数据要用到令一个窗口,你可以在按钮点击事件中定义窗口然后显示它并传值
你好! 在两个对话框中分别写入两个按钮的响应事件。 如下: CDialog dlg;//创建对象 if(dlg.m_hwnd==NULL)//判断创建对话框没有,如果创建了,再次创建就会出错。 dlg.creat();//创建窗口 dlg.showwindow();//显示窗口 如有疑问,请追问。
哈哈,可以肯定,你的C++水平相当的菜啊。。。。 没有C++的基础,就不来弄这些了。 你说的这个问题就是两个类之间的通信问题, 你可以构造另一个窗口类时,传一个当前类的窗口指针进去就行了啊。 好好学基础吧,虽然不懂MFC,但劝你还是去学C语言呢,C语言就没有这种问题了。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
显示器抖动怎么办,拍下就好了
1968老菜馆地址在哪,我要去那里办事
在学校学电商好些,还是学计算机系阿? 我多
【使用价值和价值的关系】使用价值、交换价值
现在女孩子在什么性质的公司上班比较好?
私自修房出售,国土管得着吗
为什么电视上对着镜子拍戏没把摄像机拍进去?
林旺超市地址有知道的么?有点事想过去
thinkpad黑将s5怎么样
【你是人间的四月天原文】可加分--林徽因你是
泰坦尼克号好感人。最感人的地方在哪?
为什么要灭商鞅族人
我收到信用卡之后,只激活信用卡,不激活那个
平安银行江岸支行在什么地方啊,我要过去处理
专业电机维修我想知道这个在什么地方
推荐资讯
窦性心律不齐算不算心电图异常
金龟子幼儿园(长青路)地址有知道的么?有点事
挫折鼓励人的成语
南传上座部佛教主要有哪些特点
【体温单的绘制及图解】体温单的绘制方法正确
邹城市北宿镇落陵中学怎么去啊,我要去那办事
make lemonade out of lemen什么意思,类似谚
36v的LED灯怎样接220v电源
金牌天纬陶瓷怎么去啊,有知道地址的么
张家口市个体劳动者协会这个地址在什么地方,
888=6怎么算
我在齐鲁证券签过创业板现要网上转到华福证券
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?