c++ - CDHtmlDialog 将焦点设置在输入字段上

标签 c++ windows user-interface msdn

我想将焦点放在使用 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/

相关文章:

c++ - 如何使用 pion 进行异步 HTTP 请求?

c++ - 哪个编译器首先评估最左边的参数

c++ - 来自 CreateWindow/CreateDialog 的 HWND 可以从另一个线程获取消息吗?

c++ - 数组索引从非 0 开始

c++ - 如何在鼠标点处找到 mfc 控件的句柄但位于其他控件下?

c++ - 如何在 Qt 中为我们可以使用 Windows Narrator 阅读的任何 QLabel 设置可访问的名称

c++ - 生成最快的可执行文件

objective-c - 写入 USB 设备时 NSTextView 未循环更新

java - 使用 GUI 输入添加到 ArrayList

线程执行时 Python GUI 没有响应