WIN上的C++编程很多人采用VC/MFC,不少人自认为精通MFC编程.现在,我想就MFC应用做一个小调查.我以前有过多年的CB编程经验,在CB中MDI编程中,可以在任何窗口中非常容易地实现所见即所得的可视化编程设计,也是最重要最基本的开发技术之一.最近我打算在MFC中也采用MDI程序,由于窗口中涉及到多种控件的设计和使用,因此有必要在子窗口中实现象对话框中一样的所见即所得的设计方式,经过反复衡量后,我决定采用对话框,当打开一个对话框时,显示的就象一个子窗体一样.经过查找资料发现MS根本就没有这样的资料和范例,就是Word和Exce的设计开发也没有用到这种技术,至于各种VC编程书籍更是肤浅得不值得一提.但反复查找资料后我还是找到了将对话框变成子窗体的方法.现在我的问题是:您是否有过将对话框作为子窗体显示的开发经验? 谢谢您参与调查.
对话框作为子窗口没有任何问题,wizard或标签式对话框就是最典型的例子,看看CPropertySheet和CPropertyPage类如何使用。
完全自己实现也没有问题,按照标准方式创建对话框窗口,父窗口设置成期待的窗口,但是跟创建普通子窗口有几个小的不同:
1、不能用DoModal,只能用Create方式创建窗口
2、对话框模板资源中通常预先定义了窗口样式,不同类型的模板使用了不同的样式,创建窗口时要调整这些样式
3、必须处理某些对话框特有的消息,比如回车键、ESC键、OnOK、OnCancel等等,以免发生一些不合适的行为
4、必须让这个作为子窗口的对话框有机会预处理某些键盘消息,比如TAB/SHIFT-TAB等等
要做的工作其实很少。书上的例子少,说明对话框通常仅作为“对话框”用途,绝大部分需求都可以满足。看这些书的通常也是在提高中的程序员。真正精通MFC的人不会再纠缠这些概念,对他们来说,所有的窗口都是一样的,只因为个体行为的不同而采用不同的名称。
同意11楼,建议看看CPropertySheet和CPropertyPage类如何使用。个人认为:
程序优劣的关键是功能健全,界面明朗实用。至于用多少个界面,多少个窗口什么的,都是些末节。
后来被否了,人说你干嘛用VC做出来看起来像VB做的?缺心眼啊?改回去了。
转移到QT、以及WEBKIT上了。
word以及excel不是用MFC开发的。
无非就是写消息处理得完全自己写,麻烦了点
为什么允许对话框上直接添控件呢?
嘿嘿,一直拿对话框当子窗体来用。