c++如何用一个窗口程序打开另一个窗口

如题所述

你的问题表述的并不清楚。而且我好像没像你一样写过代码……
如果你的意思是在你现在的这个进程里面创建一个窗口,那很容易。我注意到你似乎想定义一个按钮事件,那就在按钮消息的响应函数里面打开窗口。你的Form2应该是一个类,基类可能是CDialog或者别的什么吧。你使用dlg.DoModal的方法打开窗口属于模态对话框,这个dlg对象就对应了你打开的窗口对象。你也可以这样定义,Form2* dlg,然后dlg->create(...),这样属于非模态对话框,在dlg关闭之前你可以在原窗口干别的事情。

如果你是想在当前进程打开已有的窗口,那只能使用findwindow,找到窗口句柄,给窗口发消息,然后在对应进程的消息响应函数里面SW_SHOW将原来隐藏的窗口显示出来。如果这个进程现在没有在后台的话那当然显示不出来。追问

如果就是打开这个模态对话框,代码应该怎么写呢?

create 里面应该写什么呢?

Form2类 是已经写好了的

追答

一般习惯用MFC写界面的一些东西,但是看起来你并没有用。
非模态对话框我在MFC里面是这样写的:

CConfig* m_ConfigDlg;
m_ConfigDlg = new CConfig;
m_ConfigDlg->Create(IDD_DIALOG1,NULL);
m_ConfigDlg->ShowWindow(SW_SHOW);
这里Create函数里面的IDD_DIALOG1是CConfig类的资源的一个ID,没有这个资源你可以在resource头文件里#define IDD_DIALOG1 xxxx一样的。我不确定在非MFC框架下能否实现。

模态对话框很简单,你的写法照理说是没问题的,如果From2是基类是CDialog那应该没问题。

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答