線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2399
推到 Plurk!
推到 Facebook!

網頁傳遞參數至ActiveX控制項

 
aee36900
一般會員


發表:14
回覆:22
積分:7
註冊:2009-01-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-06-03 15:07:38 IP:203.64.xxx.xxx 訂閱
網頁使用傳參數的方法是param
在activeX控制項網頁內容新增

param name="mytrans" value="12348759"


BCB的部份
1.新增ActiveX控制項


2. 選擇 View->Type Library


3.在 IActiveFormX按右鍵新增property

新增property後會新增GET跟PUT
Name我命名為mytrans
Type要選擇BSTR
新增完畢後要按上面的Refresh

在.cpp裡面就會新增以下的程式

[code cpp]

STDMETHODIMP TActiveFormXImpl::get_myturns(BSTR* Value)
{
try
{

}
catch(Exception &e)
{
return Error(e.Message.c_str(), IID_IActiveFormX);
}
return S_OK;
};

STDMETHODIMP TActiveFormXImpl::set_myturns(BSTR Value)
{
try
{

}
catch(Exception &e)
{
return Error(e.Message.c_str(), IID_IActiveFormX);
}
return S_OK;
};

[/code]
這時候只要在set.mytrans裡面寫上程式碼就可讀取網頁的參數


[code cpp]
STDMETHODIMP TActiveFormXImpl::set_mytrans(BSTR Value)
{
try
{
const DISPID dispid = 16;
if(FireOnRequestEdit(dispid) == S_FALSE)
return S_FALSE;
m_VclCtl->Edit1->Text = Value; //新增一個Edit1,要使用m_VclCtl的方式才可以命命物件
FireOnChanged(dispid);
}
catch(Exception &e)
{
return Error(e.Message.c_str(), IID_IActiveFormX);
}
return S_OK;
};
[/code]

除此之外
還需要在.h設定才可以啟動

[code cpp]
class ATL_NO_VTABLE TActiveFormXImpl:
VCLCONTROL_IMPL(TActiveFormXImpl, ActiveFormX, TActiveFormX, IActiveFormX, DIID_IActiveFormXEvents)
,public IPersistPropertyBagImpl //新增
,public IObjectSafetyImpl //新增
.....

BEGIN_COM_MAP(TActiveFormXImpl)
VCL_CONTROL_COM_INTERFACE_ENTRIES(IActiveFormX)
COM_INTERFACE_ENTRY_IMPL(IPersistPropertyBag) //新增
COM_INTERFACE_ENTRY(IObjectSafety) //新增
END_COM_MAP(
...


BEGIN_PROPERTY_MAP(TActiveFormXImpl)
// PROP_PAGE(CLSID_ActiveFormXPage)
PROP_ENTRY("mytrans",DISPID(16),CLSID_ActiveFormX) //新增,要注意是否有輸入正確的name還有DISPID
END_PROPERTY_MAP()
[/code]

這樣就可以擷取網頁所要傳遞的參數了
如有錯誤的用詞或是地方
煩請指教~
編輯記錄
aee36900 重新編輯於 2009-06-03 15:10:01, 註解 無‧
aee36900 重新編輯於 2009-06-03 15:10:56, 註解 無‧
aee36900 重新編輯於 2009-06-03 15:13:21, 註解 無‧
aee36900 重新編輯於 2009-06-03 15:22:14, 註解 無‧
aee36900 重新編輯於 2009-06-03 15:27:06, 註解 無‧
aee36900 重新編輯於 2009-06-03 15:28:24, 註解 無‧
aee36900 重新編輯於 2009-06-03 15:30:14, 註解 無‧
ddy
站務副站長


發表:262
回覆:2105
積分:1169
註冊:2002-07-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-06-15 09:05:01 IP:122.147.xxx.xxx 訂閱
很好,拍拍手~^^
系統時間:2017-10-20 7:45:35
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!