我想重点放在使用CDHtmlDialog
调用的doModal()
框中的“输入”字段。
我创建了以下代码:
CComPtr<IHTMLInputElement> pincode;
GetElementInterface(_T("pincode"),
IID_IHTMLInputElement, (void **) &pincode);
if (pincode == NULL) {
return;
}
pincode->select();
//set the focus
CComPtr<IHTMLElement2> pincode2;
GetElementInterface(_T("pincode"),
IID_IHTMLElement2 , (void **) &pincode2);
if (pincode2 == NULL) {
return;
}
pincode2->focus();
但是,当我运行我的应用程序时,焦点未设置为输入字段。该字段被选中:光标位于其中,因此乍一看我们可能会认为我们可以在输入字段中进行写操作,但是当我们在该字段中写任何内容时,都不会发生!
有人知道我在做什么错吗?
最佳答案
您不能在HTML代码中使用javascript吗?
像document.getElementById('pincode').focus();
之类的东西,可能是一个简单的解决方法。
我总是更喜欢直接使用javascript在HTML中执行与UI相关的代码(我认为CDHtmlDialog
有时具有某种神秘的行为)。
我的两分钱
我希望这有帮助
关于c++ - CDHtmlDialog将焦点放在“输入”字段上,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17443837/