C++ CDHtmlDialog在输入字段上设置焦点
我希望将重点放在我的C++ CDHtmlDialog在输入字段上设置焦点,c++,windows,user-interface,msdn,C++,Windows,User Interface,Msdn,我希望将重点放在我的CDHtmlDialog框中的一个输入字段上,该框名为使用doModal() 我创建了以下代码: CComPtr<IHTMLInputElement> pincode; GetElementInterface(_T("pincode"), IID_IHTMLInputElement, (void **) &pincode); if (pincode == NULL) { return; } pincode-
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();
CComPtr pincode;
GetElementInterface(_T(“pincode”),
IID_IHTMLInputElement(void**)和pincode);
if(pincode==NULL){
返回;
}
pincode->select();
//设定焦点
CComPtr pincode2;
GetElementInterface(_T(“pincode”),
IID_IHTMLElement2,(无效**)和pincode2);
if(pincode2==NULL){
返回;
}
pincode2->focus();
但当我运行应用程序时,焦点并没有设置到输入字段。字段被选中:光标在其中,因此乍一看我们可能认为可以在输入字段中写入,但当我们写入时,字段中不会发生任何事情
有人知道我做错了什么吗?你不能在html代码中使用javascript吗? 类似于
document.getElementById('pincode').focus()的内容代码>,这可能是一个简单的解决方法
我总是喜欢使用javascript直接在HTML中编写与UI相关的代码(我认为CDHtmlDialog
有时会有某种深奥的行为)
我的两分钱
我希望这会有所帮助这是一个好主意,但它的作用与我使用的代码相同:字段似乎已被选中,但当我们尝试编写某些内容时,什么也没有发生。奇怪的是,好像对话框本身没有焦点?它起作用了!一件奇怪的事情发生了:当VisualStudio启动时,正是他获得了焦点,但我一关闭它,我的对话框就有了焦点!谢谢你的回答!