CDHtmlDialog将焦点设置在Input字段上

时间:2013-07-03 09:01:32

标签: c++ windows user-interface msdn

我希望将重点放在使用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();

但是当我运行我的应用程序时,焦点未设置为输入字段。选择了该字段:光标在其中,所以乍一看我们可能认为我们可以在输入字段中写入,但是当我们在字段中写入没有任何内容发生时!

有人知道我做错了吗?

1 个答案:

答案 0 :(得分:1)

你不能在你的HTML代码中使用javascript吗? 像document.getElementById('pincode').focus();之类的东西,它可能是一个简单的解决方法。

我总是喜欢使用javascript直接在HTML中执行与UI相关的代码,(我认为CDHtmlDialog有时会有一些深奥的行为)。

我的两分钱

我希望这会有所帮助