在mfc编程中创建web风格的图形用户界面(五)

王朝other·作者佚名  2007-01-01
窄屏简体版  字體: |||超大  

用CHtmlDialog类创建dialog窗口显示html

除了主窗口之外,大部分应用程序还需要创建其它会话窗口。这些会话窗口也可能会需要设计十分复杂的界面,不仅仅是在外观上来说,还包括对于用户操作的响应也是一样繁杂。所以说,十分有必要在这些地方也使用dhtml来设计用户界面。关于如何使用CView的派生类显示会话窗口的内容,在msdn中 Paul DiLascia 已经为我们提供了解决方案。在前面对ChtmlView进行改进之后,我们现在又要用CView的派生类Chtmldialog来显示dialog窗口的内容。ChtmlClass将为我们解决两个问题:设置dialog窗口的名称和尺寸。具体参数将由html页面指出。

CHtmlDialog类的使用步骤:

♦ 将dialog插入资源文件中,并显示dialog界面中的静态元素(这些元素之后将被html的元素所取代),然后,创建一个mfc基类(派生于CDialog)。

♦ 在头文件中由CHtmlDialog中派生一个类(例如Dlg4.h)。

// inheriting the class from CHtmlDialog

class CDlg4 : public CHtmlDialog

{

// Construction

public:

♦ 在派生类CDlg4的构造函数运行时确保基类ChtmlDialog的构造函数先运行(例如Dlg4.cpp)。

CDlg4::CDlg4(CWnd* pParent /*=NULL*/)

:CHtmlDialog(CDlg4::IDD,pParent, IDR_HTML4,

IDC_STATIC1) // the HTML page resource transmission

{

//{{AFX_DATA_INIT(CDlg4)

// NOTE: the ClassWizard will add member initialization here

//}}AFX_DATA_INIT

}

ChtmlDialog类还可以允许改变会话框的大小。请看下面的两副屏幕截图。

看了之前的几篇笔记,似乎所有问题都解决了?不不,还有两个问题给我们留下一些小小的麻烦。

1、在用窗口中显示出来的html格式界面的同时,通过函数SetWindowLong设置窗口的外部属性无法生效。

2、当用户改变了IE的设置也就是说改变了html格式的显示设置之后,程序的界面就会发生变化。

如果说第一个问题大部分人还能够容忍的话,第二个问题则是让我们无法接受。这将导致我们的程序在不同的用户IE设置下呈现出不同的外观。

对于这第二个问题,当前,也已经有了更高级的解决方案,叫做Advanced Hosting Interfaces (AHI) 。Ethan Akhgari 为我们提供了很好的实例介绍这种更好的解决方案。

译者“且听风吟”注:

本人翻译这篇高手之作为了将学习界面编程的好文章与大家分享,然而事与愿违的是本人的英文水平真的太有限,也许我的译文连自己都看不明白。所以这里附上原文地址:

http://www.codeproject.com/dialog/web_gui.asp

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航