社区
ATL
帖子详情
另一怪问题?在线等待
Semigod
2003-07-11 10:04:38
我的WTL对话框中,包含了一个多行Edit控件,一个IE控件,我在Edit控件的EN_CHANGE消息中将Edit控件的内容写入到IE控件。
在这一过程中出现的怪问题是:一但通过鼠标等方式使IE控件得到了输入焦点,然后再将输入焦点切换回Edit控件后,每输入一个字符,Edit控件的输入焦点就丢失了
问:如何解决这一问题?(最好不通过SetFocus()来完成,对话框中还有其它Edit控件)
...全文
48
6
打赏
收藏
另一怪问题?在线等待
我的WTL对话框中,包含了一个多行Edit控件,一个IE控件,我在Edit控件的EN_CHANGE消息中将Edit控件的内容写入到IE控件。 在这一过程中出现的怪问题是:一但通过鼠标等方式使IE控件得到了输入焦点,然后再将输入焦点切换回Edit控件后,每输入一个字符,Edit控件的输入焦点就丢失了 问:如何解决这一问题?(最好不通过SetFocus()来完成,对话框中还有其它Edit控件)
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lop5712
2003-12-25
打赏
举报
回复
我觉得可能是pWebBrowser->Refresh();导致夺走焦点,楼主可以试下暂时将它去掉,看是否还会出现那种效果,如果Refresh是必须的,那么可暂时用另外的途径更新(如用一个菜单项或按钮)。
我从没用过这个组件,所以上面的仅是猜测,如果真是由于Refresh,我也不知道如何处理,查了下这个接口的类型信息,发现它有一个Refresh2,带一个long的参数,参数名为level,楼主可查下相关资料看Refresh2是否能够有用。
Semigod
2003-07-17
打赏
举报
回复
up
Semigod
2003-07-15
打赏
举报
回复
大家帮忙找找原因啦
Semigod
2003-07-11
打赏
举报
回复
写入操作的原代码:
CString tmp;
GetDlgItemText(IDC_EDIT_MSG, tmp);
{
IWebBrowser2 * pWebBrowser;
if (SUCCEEDED(m_wndWebBrowser.QueryControl(IID_IWebBrowser2, (void **)&pWebBrowser)))
{
IDispatch * pDisp;
if (SUCCEEDED(pWebBrowser->get_Document(&pDisp)))
{
IHTMLDocument2 * pHtmlDoc;
if (SUCCEEDED(pDisp->QueryInterface(IID_IHTMLDocument2, (void **)&pHtmlDoc)))
{
//pHtmlDoc->write(
static bool bFirstInit = true;
BSTR readyState;
if (bFirstInit == false && SUCCEEDED(pHtmlDoc->get_readyState(&readyState)))
{
if (CString(readyState) != _T("complete") && CString(readyState) != _T("uninitialized"))
{
SysFreeString(readyState);
return;
}
SysFreeString(readyState);
}
bFirstInit = false;
VARIANT *param;
SAFEARRAY *sfArray;
CString html = _T("<html><head></head><body leftMargin='5' topMargin='5' rightMargin='5'>") +tmp;
html+= _T("</body></html>");
BSTR bstr = SysAllocString(html);
pHtmlDoc->clear();
// Creates a new one-dimensional array
sfArray = SafeArrayCreateVector(VT_VARIANT, 0, 1);
if (bstr == NULL
|| sfArray == NULL
|| FAILED(SafeArrayAccessData(sfArray,(LPVOID*) & param)))
goto cleanup;
// 写入新的HTML文档内容
param->vt = VT_BSTR;
param->bstrVal = bstr;
if (SUCCEEDED(SafeArrayUnaccessData(sfArray)))
{
pHtmlDoc->write(sfArray);
pWebBrowser->Refresh();
}
cleanup:
if (bstr)
SysFreeString(bstr);
if (sfArray != NULL)
{
SafeArrayDestroy(sfArray);
}
pHtmlDoc->Release();
}
pDisp->Release();
}
pWebBrowser->Release();
}
}
rtdb
2003-07-11
打赏
举报
回复
原因可能是在这里吧:
》我在Edit控件的EN_CHANGE消息中将Edit控件的内容写入到IE控件
不知是怎么写入IE的结果让IE获得输入焦点。
多半还得用SetFocus(), 不过就在EN_CHANGE消息中用应该能简单点,
你可以从该消息中获得EDIT的句柄进行操作。
Semigod
2003-07-11
打赏
举报
回复
补充一句:Edit控件丢失的输入焦点后是IE控件得到了输入焦点
你必须知道的495个C语言
问题
1.24 我在一个文件中定义了一个extern数组,然后在另一个文件中使用,为什么sizeof取不到数组的大小? 声明
问题
1.25 函数只定义了一次,调用了一次,但编译器提示非法重声明了。 *1.26 main的正确定义是什么...
java接口
等待
几秒再返回_Java调用应用程序接口需要
等待
一段时间,该接口调用应用程序结果之前需要不确定的时间,sleep被调用几秒钟一次并返回结果,这会影响 效率。 有什么更好的方法?...
Java 调用一个三方申请接口需要等一段时间,时间不确定再调用申请结果查询接口,...这种接口服务应该设计为异步Java调用一个三方应用程序接口需要
等待
一段时间,时间不确定,然后调用应用程序结果查询接口,如果s...
游戏编程新手教程:怪物AI设计简述
怪物AI应该说是这是一个程序
问题
,如果从策划的角度来说,作为设计者,则需要了解怪物AI整体的设计流程,这样才能提出自己的需求,从而让游戏战斗的整体体验符合设计预期,毕竟怪物AI也是属于战斗和体验的重要部分。...
Unity3D面试题整合
题目归类区(看题目字体颜色识第几部分)ps:下面题目可能稍有点多,翻页会较麻烦,根据题目的颜色辨别是第几部分吧(超链接功能不会,也懒得做了) 第一部分1.请简述值类型与引用类型的区别2.C#中所有引用类型的...
util 100% 怪异
问题
分析
环境 1. DB: Server version: 5.7.18-log MySQL Community Server (GPL) 2. OS: CentOS release 6.6 (Final)
问题
描述
问题
要害 1. 不定时的磁盘util 100% ...1. 看到这个
问题
,我的第一反应就是去看看mysq...
ATL
3,245
社区成员
48,539
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章