设置innerText和innerHTML属性
DDX_DHtml_ElementInnerText( CDataExchange* dx, LPCTSTR name, CString& var ) 和 DDX_DHtml_ElementInnerHtml( CDataExchange* dx, LPCTSTR name, CString& var ) 相当与前面提到的设置和获取innerText,innerHTML属性。
获取和设置控件中的值 在DHTML中利用“对象名程.value”可以得到控件中输入的值,利用DDX也同样可以得到。 DDX_DHtml_ElementValue( CDataExchange* dx, LPCTSTR name, var ) 用于在控件和对象之间交换数据。
使用方法 假设HTML文件中代码如下
<p id="p4"><b>p4 for ddx</b></p> <input type="text" ID="input1" size="20" value="input1 for ddx" NAME="input1"> <input type="text" ID="input2" size="20" value="101" NAME="input2">
在H文件中添加变量定义: public: //DDX CString m_szP4,m_szInput1; int m_iInput2;
在类的构造函数中赋初值: CmydhtmlDlg::CmydhtmlDlg(CWnd* pParent /*=NULL*/) : CDHtmlDialog(CmydhtmlDlg::IDD, CmydhtmlDlg::IDH, pParent) { m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); m_szP4 = "test for p4"; m_szInput1= "test for input1"; m_iInput2 = 101; }
在CPP文件中的void CmydhtmlDlg::DoDataExchange(CDataExchange* pDX)函数中添加代码: void CmydhtmlDlg::DoDataExchange(CDataExchange* pDX) { CDHtmlDialog::DoDataExchange(pDX); //// for html ddx DDX_DHtml_ElementInnerHtml(pDX,"p4",m_szP4); //对应 p4 DDX_DHtml_ElementValue(pDX,"input1",m_szInput1); //对应 input1 DDX_DHtml_ElementValue(pDX,"input2",m_iInput2); //对应 input2 } 使用是与CDialog一样利用UpdateData。 HRESULT CmydhtmlDlg::OnButtonTest4(IHTMLElement* /*pElement*/) { UpdateData(); TRACE("p4=%s\n",m_szP4); CString szTemp=m_szP4; m_szP4 =m_szInput1; m_szInput1=szTemp; //对换p4和input1中内容 m_iInput2 ++; //将input2中数字加一 UpdateData(FALSE); return S_OK; }
|