CDHtmlDialog把htm中的input设置为disabled

sunjor 2011-09-29 12:44:45
<input id=btn_ok type="button" value="登陆"/>


在满足一定条件时按钮灰化,我查了下msdn,发现了SetElementPropetry函数,于是:

VARIANT var;
ZeroMemory(&var,sizeof(VARIANT));
var.vt=11; //设置var的值是根据GetElementPropetry的返回值推测出来的
var.boolVal=TRUE;
SetElementPropetry(_T("btn_ok"),DISPID_IHTMLINPUTELEMENT_DISABLED,&var);

但是ID为btn_ok的按钮没有变灰!请高手指教!
...全文
177 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunjor 2011-09-29
  • 打赏
  • 举报
回复
我做了一个实验,调用
VARIANT GetElementProperty(
LPCTSTR szElementId,
DISPID dispid
);
返回值查看VARIANT的值的情况
VARIANT var=GetElementPropetry(_T("btn_ok"),DISPID_IHTMLINPUTELEMENT_DISABLED);
1.<input id=btn_ok type="button" value="登陆"/>
得到 var.vt=11,var.BOOL=0;
2..<input id=btn_ok type="button" disabled="disabled" value="登陆"/>
得到var.vt=11,var BOOL=-1;
WaistCoat08 2011-09-29
  • 打赏
  • 举报
回复
VARIANT var;
ZeroMemory(&var,sizeof(VARIANT));
var.vt= VT_BOOL;

var.boolVal= VARIANT_TRUE;
SetElementPropetry(_T("btn_ok"),DISPID_IHTMLINPUTELEMENT_DISABLED,&var);

不好意思,刚才回复有问题,这样试试行不?
sunjor 2011-09-29
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 oyljerry 的回复:]
把下面这段js写到一个文件,test.js, 实现异步可插入协议(http://www.codeguru.com/cpp/com-tech/atl/misc/article.php/c37),把test.js插入CDHtmlDialog

JScript code
document.getElementById("btn_ok").disabled=true;
[/Quote]

恩 我试试
supercllc 2011-09-29
  • 打赏
  • 举报
回复
IHTMLElement* pElem = NULL;
GetElement(_T("btn_ok"), &pElem);
if (pElem)
{
CComVariant oAttr;
oAttr = TRUE;
pElem->setAttribute(L"disabled", oAttr);
}
supercllc 2011-09-29
  • 打赏
  • 举报
回复
HRESULT GetElement(LPCTSTR szElementId, IHTMLElement **pphtmlElement);

IHTMLElement : public IDispatch
{
public:
virtual /* [id] */ HRESULT STDMETHODCALLTYPE setAttribute(
/* [in] */ BSTR strAttributeName,
/* [in] */ VARIANT AttributeValue,
/* [in][defaultvalue] */ LONG lFlags = 1) = 0;

这两个函数结合使用呢?
oyljerry 2011-09-29
  • 打赏
  • 举报
回复
把下面这段js写到一个文件,test.js, 实现异步可插入协议(http://www.codeguru.com/cpp/com-tech/atl/misc/article.php/c37),把test.js插入CDHtmlDialog

document.getElementById("btn_ok").disabled=true;
sunjor 2011-09-29
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 waistcoat08 的回复:]

C/C++ code
VARIANT var;
ZeroMemory(&var,sizeof(VARIANT));
var.vt= VT_BOOL;

var.boolVal= VARIANT_FALSE;
SetElementPropetry(_T("btn_ok"),DISPID_IHTMLINPUTELEMENT_DISABLED,&var);
[/Quote]
是我引用的地方错了,不好意思,谢谢,谢谢!
sunjor 2011-09-29
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 waistcoat08 的回复:]

C/C++ code
VARIANT var;
ZeroMemory(&var,sizeof(VARIANT));
var.vt= VT_BOOL;

var.boolVal= VARIANT_FALSE;
SetElementPropetry(_T("btn_ok"),DISPID_IHTMLINPUTELEMENT_DISABLED,&var);
[/Quote]

谢谢你的回复,试了一下按钮还是没有灰化
sunjor 2011-09-29
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 oyljerry 的回复:]

CDhtmlDialog差距JS,然后调用JS function来置灰按钮
[/Quote]

能详细说明一下么,我没做过js,完全摸不着头脑
WaistCoat08 2011-09-29
  • 打赏
  • 举报
回复
VARIANT var;
ZeroMemory(&var,sizeof(VARIANT));
var.vt= VT_BOOL;

var.boolVal= VARIANT_FALSE;
SetElementPropetry(_T("btn_ok"),DISPID_IHTMLINPUTELEMENT_DISABLED,&var);
oyljerry 2011-09-29
  • 打赏
  • 举报
回复
CDhtmlDialog差距JS,然后调用JS function来置灰按钮
sunjor 2011-09-29
  • 打赏
  • 举报
回复
或者有什么其他的方法把html的按钮置灰呢?求求各位大侠啦!!!
sunjor 2011-09-29
  • 打赏
  • 举报
回复
先顶一下

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧