您的位置:首页 >> 环保项目

使用VisualCNET的WEB对话框

时间:2020-06-12 08:43:02 来源:潞城环保厂家 浏览量:4

三、WEB对话框编程

WEB对话框给了我们一个新的设置WEB应用程序的设计理念,它使得我们可以利用动态HTML的性能去优化和丰富我们的桌面程序。这里就WEB对话框中关于HTML元素的事件映射和数据交换(DDX机制)作阐述,这也是WEB对话框编程的核心内容。

1、HTML元素的事件映射

对于熟悉VC++6.0的用户来说,使用功能强大的ClassWizard可以对某个类添加某个对象(窗口、控件)的消息映射函数,而对于控件来说,可以映射其不同的通知消息,并且这个映射的过程一般是自动完成的。

与控件相类似,HTML元素的事件映射也可添加在WEB对话框类中,只不过需要手动进行。例如,下面就是为WEB对话框(设类为CMyDlg)中的一个按钮元素<input id=Button1 type=button value=Button>添加onClick(单击)的事件处理过程:

(1) 打开WEB对话框类CMyDlg文件p,在文件的前面找到BEGIN_DHTML_EVENT_MAP(CMyDlg)与END_DHTML_EVENT_MAP()之间的程序段,然后添加下列代码:

DHTML_EVENT_ONCLICK(_T("Button1"),OnButton1)

DHTML_EVENT_ONCLICK是一个事件处理宏,第一个参数是用来指定WEB对话框中HTML元素的ID名称,第二个参数是映射该事件的函数名称,注意上句代码后面没有";"号。

(2) 打开头文件MyDlg.h,在图10的位置处添加下列代码:

HRESULT OnButton1(IHTMLElement *pElement);

实际上,IHTMLElement是HTML元素的通用接口,用来调用其方法来获取和设置相关属性。所有元素的事件的映射函数都具有与上述函数相类似的格式。

(3) 再切换到p窗口,在程序的最后添加下列代码:

HRESULT CMyDlg::OnButton1(IHTMLElement* /*pElement*/)

{

MessageBox("你好!");

return S_OK; // return TRUE unless you set the focus to a control

}

(4) 这样就可以运行了,当用户单击Button时,就弹出一个"你好!"对话框。

除了DHTML_EVENT_ONCLICK,Visual C++.NET还提供了超过三十个这样的事件映射宏,在VC++但今年很多客户的订单没有提完。”郭志刚有些苦恼。.NET的MSDN中键入DHTML_EVENT关键词就可以查到,这里不再重复。

2、数据交换(DDX)

DDX/DDV机制曾为程序员带来了许多方便,它将某个变量和某个控件相关联起来,通过UpdateData使变量的值传送到控件中(参数为FALSE)或将控件中的值保存到变量中(参数为TRUE)。

同样在WEB对话框中仍然可以使用DDX技术。例如,下面就是为WEB对话框CMyDlg添加一个单行文本元素<input id=Text1 type=text value=Text1>,然后用m_strEdit的CString变量将其关联起来:

(1) 打开MyDlg.h文件「苍穹之剑3D」主打“真3D”和“真动作”,在类中添加一个成员变量:

CString m_strEdit;

(2) 打开p文件,然后添加下面的代码:

DDX_DHtml_ElementText(pDX,_T("Text1"),DISPID_A_VALUE ,m_strEdit);

这样就将m_strEdit和该元素的值关联起来了。

(3) 在CMyDlg::OnInitDialog中添加下列代码:

BOOL CMyDlg::OnInitDialog()

{

CDHtmlDialog::OnInitDialog();

m_strEdit="Hello";

UpdateData(FALSE);

return TRUE; // return TRUE unless you set the focus to a control

}

(4) 将CMyDlg::OnButton1的代码改成:

HRESULT CMyDlg::OnButton1(IHTMLElement* /*pElement*/)

{

UpdateData(TRUE);

MessageBox(m_strEdit);

return S_OK; // return TRUE unless you set the focus to a control

}

(5) 运行后就会看到:开始时,单行文本字段中显示的是"hello",当用户键入其他字符后,再单击Button按钮,就会弹出一个对话框,显示出m_strEdit内容。

实际上,CDHtmlDialog还提供DDX_DHtml_CheckBox(用于复选框)、DDX_DHtml_ElementText(设置或获取元素的任意属性)、DDX_DHtml_Radio(用于单选框)、DDX_DHtml_SelectIndex(设置或获取列表框当前项的索引值)、DDX_DHtml_SelectString(设置或获取列表框当前选项的文本)、 DDX_DHtml_SelectValue(设置或获取列表框当前选项的值)等。

至此,对如何使用WEB对话框就有一个较为全面的了解。当然,这里还没有对CMultiPageDHtmlDialog以及HTML元素的深入编程和CSS样式的设置还没有讨论,期待下一次与大家见面。查看本文来源

宜昌治疗白癜风好的医院
鹤岗治疗白癜风哪家医院好
阳痿引起的原因都有哪些
相关阅读
怎样饲养哈士奇健康成长位置

怎样饲养哈士奇健康成长怎样饲养哈士奇健康成长 14:56:03出处:络点击:506 导读:   很多主人在选择狗狗的时...[详细]

2022-06-10
怎样预防西高地中暑位置

怎样预防西高地中暑怎样预防西高地中暑 16:11:59出处:络点击:1183 导读: 预防西高地中暑可以从几个方面着手...[详细]

2022-06-10
怎样限制犬乱吠叫位置

怎样限制犬乱吠叫怎样限制犬乱吠叫 16:11:59出处:络点击:1146 导读: 一般在幼犬时期,犬除了肚子饿和惊吓、...[详细]

2022-06-10
恐龙有哪些种类史前生物科普下位置

恐龙有哪些种类?史前生物科普下恐龙有哪些种类?史前生物科普下恐龙的种类是非常的多的,科学家一般都是依据它们的骨骼化石的形状来将恐龙进行...[详细]

2022-06-10
怪不得邻居阿姨总没好颜色给金毛看到这一幕位置

怪不得邻居阿姨总没好颜色给金毛,看到这一幕,主人都觉得羞愧其实以前我挺不解的,明明都是 的人,还都是养金毛的人,隔壁家的阿姨怎么总是对我...[详细]

2022-06-10
性格好的狗狗有哪些位置

性格好的狗狗有哪些性格好的狗狗有哪些  什么样的狗狗性格好?什么样的狗狗不咬人?一起来跟有宠君看看那些性格好的狗狗吧。  世界三大无攻击...[详细]

2022-06-10
友情链接