我想将焦点放在使用 doModal()
调用的 CDHtmlDialog
框中的输入字段上。
我创建了以下代码:
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/