用mfc默认的方法肯定是不行的了
CMainDlg dlg;
dlg.DoModal();这样是不行的了。因为它用了默认的对话框资源
enum { IDD = IDD_CHECKNET_SERVERDIALOG };如果用
::DialogBox(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDD_CHECKNET_SERVERDIALOG),NULL,NULL);
它又没有消息循环,自己处理是不是很麻烦。
我看核心编程上 源代码是针对每个控件的每个消息处理的,这样很麻烦,我不想用这种纯sdk的方式请问怎么处理,能不能给出完整的结构
CMainDlg dlg;
dlg.DoModal();这样是不行的了。因为它用了默认的对话框资源
enum { IDD = IDD_CHECKNET_SERVERDIALOG };如果用
::DialogBox(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDD_CHECKNET_SERVERDIALOG),NULL,NULL);
它又没有消息循环,自己处理是不是很麻烦。
我看核心编程上 源代码是针对每个控件的每个消息处理的,这样很麻烦,我不想用这种纯sdk的方式请问怎么处理,能不能给出完整的结构
if(条件A成立)
{
CDialog1 dlg1;
m_pMainWnd = &dlg1;
dlg1.DoModal();
}
else if(条件B成立)
{
CDialog2 dlg2;
m_pMainWnd=&dlg2;
dlg2.DoModal();
}
enum { IDD = IDD_CHECKNET_SERVERDIALOG }; 不同而已你没明白我的意思。
到,我给你写一个。
我的信箱是 [email protected]期待中
把两个类别的控件分别放在不同的非主窗口的窗口中了。我想知道的是功能是:
利用mfc的CDialog类已经有的消息,但是还可以改变它的对话框资源。
dlg.DoModal();
CDialog dlg(IDD_DIALOG2,this);
dlg.DoModal();
就可以了
CTestDlg::CTestDlg(UINT nIDTemPlate,CWnd* pParent /*=NULL*/)
:CDialog(nIDTemPlate, pParent)
{
}调用:
CTestDlg dlg(IDD_DIALOG1);
dlg.DoModal();
CTestDlg dlg(IDD_DIALOG2);
dlg.DoModal();
还是三角多的人厉害那时候已经快12点了,而且还犹豫是否要23:35之前走,否则就没有电梯坐了。
从下午5点多我就开始解决这个问题。一直到12点,才发现可以自己覆盖构造函数,
其实自己覆盖也是多余,你的方法最标准,最好。
直接传参数给构造函数。
我觉得我解决问题的方式和思维有问题,对一个思维正确的人来说解决这个问题应该不费吹灰之力
另外,那个贴子我是删除了,删除之前,我特意看了一下是没有人回复的,莫非你正在打字??不知道删除贴子会不会扣分。
在app.ini中CCheckNetServerDlg* dlg=new CCheckNetServerDlg(IDD_CHECKNET_CLIENTDIALOG);
或者
CCheckNetServerDlg* dlg=new CCheckNetServerDlg(IDD_CHECKNET_SERVERDIALOG);dlg->DoModal();不过,如果一个类有两个对话框资源,好像再用类象导就不好用了。不知道别人是不是也是这样