改變HTML中的光標問題

ARM Cortex-A9处理器优化包(POP)技术解析与应用 在SoC设计中,处理器性能优化与功耗控制是核心挑战。ARM Cortex-A9处理器优化包(POP)通过物理IP三件套(高性能标准单元库、快速缓存实例、电源管理套件)实现性能与功耗的平衡。其多阈值电压设计和多电压域支持,配合专业基准测试方法,可提升20-30%性能同时降低15%功耗。这种优化方案广泛应用于移动计算和嵌入式系统,如4K视频解码SoC和平板电脑方案,显著缩短开发周期并提升产品竞争力。POP技术为芯片设计提供了可靠的性能加速方案。 阅读详情
改變HTML中的光標問題,我在網上找到這一段代碼,用來改變當前光標位置

HRESULT hr;
CComPtr<IHTMLTxtRange> txtRange;
CComPtr<IHTMLSelectionObject> pSelection;
spDoc->get_selection(&pSelection);
if (pSelection)
{
  CComPtr<IDispatch> pDispRange;
  pSelection->createRange(&pDispRange);
  if (pDispRange)
  {
  hr = pDispRange->QueryInterface(IID_IHTMLTxtRange, (void**)&txtRange);
  if ( SUCCEEDED(hr) && txtRange )
  { 
  txtRange->collapse(VARIANT_TRUE);
  if (pElem)
  {
  if (SUCCEEDED(txtRange->moveToElementText(pElem)))
  { 
  txtRange->select();
  txtRange->scrollIntoView();
  }
  }
  txtRange.Release();
  }
  pDispRange.Release();
  }
  pSelection.Release();  // http://www.wzszf.com/
}

其中,pElem 是指定要跳到的元素(我的情況下,它是一個 <div>&nbsp;</div>,這段代碼可以使光標移到那個元素上,而且那個空位也被選上。但是我衹想要光標移動,不想要文字被選取,我嘗試去掉 txtRange->select() 這一段,但那樣光標又不移動

我是利用 IHTMLDocument2.createElement 來生成新的元素,然後用 IHTMLDOMNode.appendChild插入到指定位置上,插入元素沒有問題。但光標就是移不過去。我後來改用下面的代碼,但還是沒效

HRESULT hr;
CComPtr<IMarkupServices> pMS;
CComPtr<IMarkupContainer> pMarkup;
CComPtr<IMarkupPointer> pPtr;
CComPtr<IDisplayPointer> dpPtr;
CComPtr<IDisplayServices> pDispServices;
CComPtr<IHTMLCaret> spCaret; 

hr = spDoc->QueryInterface(IID_IMarkupContainer, (void **)&pMarkup);
if (hr==S_OK)
{ 
  hr = spDoc->QueryInterface(IID_IMarkupServices, (void **)&pMS);
  if (hr==S_OK) 
  { 
  pMS->CreateMarkupPointer(&pPtr);
  hr = spDoc->QueryInterface(IID_IDisplayServices, (void **)&pDispServices);
  if (hr==S_OK)
  { 
  pDispServices->CreateDisplayPointer(&dpPtr);
  pDispServices->GetCaret(&spCaret);
  pMS->CreateMarkupPointer(&pPtr);
  pPtr->MoveAdjacentToElement( pElem, ELEM_ADJ_AfterEnd);
  dpPtr->MoveToMarkupPointer(pPtr, dpPtr);
  spCaret->MoveCaretToPointer(dpPtr, TRUE, CARET_DIRECTION_SAME);
  }
  }
}

上面的代碼中,pElem 是我新插入的元素

實在想不到好辦法,最後衹好用下面這個笨方法

HRESULT hr; 
CComPtr <IHTMLTxtRange> txtRange; 
CComPtr <IHTMLSelectionObject> pSelection; 
spDoc->get_selection(&pSelection); 
if (pSelection) 
{ 
  CComPtr <IDispatch> pDispRange; 
  pSelection->createRange(&pDispRange); 
  if (pDispRange) 
  { 
  hr = pDispRange->QueryInterface(IID_IHTMLTxtRange, (void**)&txtRange); 
  if ( SUCCEEDED(hr) && txtRange ) 
  { 
  txtRange->collapse(VARIANT_TRUE); 
  if (pElem) 
  { 
  if (SUCCEEDED(txtRange->moveToElementText(pElem))) 
  { long n;
  txtRange->move(L"character", 1, &n); // 向前進一步
  txtRange->move(L"character", -1, &n); // 然後退回去,這樣就移動了光標 
  txtRange->select(); 
  txtRange->scrollIntoView(); 
  } 
  } 
  txtRange.Release(); 
  } 
  pDispRange.Release(); 
  } 
  pSelection.Release(); 
}

Qt开发中一下小细节问题 对于Qt开发过程中,做一个项目在一个大的对话框上锁话的时间相对来说较少,但是花在细节处理的方向上往往占用了很多时间,这次就来个好好的总结一下,自己项目开发中遇到的一些小问题,好让自己更好的记忆,提高自己开发的效率,同时也提供大家参考下,当然如果有错误的地方,还希望大家指出来,我好进行验证并修改,好啦!废话不多说,直接上代码。(开始的时候不进行划分,等有空了,内容duol) 阅读详情

相关推荐

contentEditable,window.getSelection详解---可编辑div,容器,设置/获取光标位置,光标处插入内容及光标的操作

这周碰到一个骚东西,contentEditable ,它是用来指定一个元素是否是可编辑的,这也是富文本编辑器实现的底层支持,网上关于这部分东西的资料比较少或者不全,所以我来整理下关于这个属性,和可编辑区域的一些操作吧,比如获取光标位置,设置光标,往可编辑区域光标处插入内容等等 HTML中的contentEditable的属性可以打开某些元素的可编辑状态.也许你没用过contentEditable属性.甚至从未听说过.contentEditable的作用相当神奇.可以让div或整个网页,以及span等等元素

codingWeb的博客 9743

HTML5 contenteditable=“plaintext-only“ 在富文本混合输入模式下的光标漂移问题如何解决?

前端世界就像一座永不停歇的技术迷宫,每天都有新的挑战冒出来。最近,不少前端小伙伴在面试和项目开发中,都被一个“幽灵”问题缠上了——HTML5 `contenteditable="plaintext-only"` 在富文本混合输入模式下的光标漂移。这个问题就像布洛芬没及时起效的头疼,看似不起眼,却能分分钟把你的代码逻辑搅得一团糟。今天,咱们就来彻底拆解这个面试高频难题,用简单直接的方法,给你的代码“打上止痛针”。

前端大白话 1329

Windows Server+SqlServer Always On实战:5步搞定高可用集群搭建

本文详细介绍了在Windows Server环境中,通过5个关键步骤搭建SQL Server Always On高可用集群的实战指南。内容涵盖从底层故障转移集群配置、SQL Server实例启用Always On功能,到创建可用性组和侦听器的完整流程,并提供了核心运维与故障排查思路,帮助企业构建稳定可靠的数据库高可用架构。

milk5的博客 859

基于ie内核的网页高亮查找

采用ie内核做浏览器,很多时候需要增加一个查找网页内容,然后高亮的功能。这个功能可以采用微软的com接口来完成。      最基本的步骤就是先通过IWebBrowser2获取到IHTMLDocument2,然后通过IHTMLDocument2获取到IMarkupContainer,IMarkupServices。通过IMarkupServices创建2个IMarkupPointer指针,这两个IMarkupPointer需要放到IMarkupContainer中去,调用接口IMarkupCont

yujiankk的专栏 1365

时序数据库避坑指南:TDengine与IoTDB在车联网场景的7个关键对比

本文对比了时序数据库TDengine与IoTDB在车联网场景下的7个关键差异,包括数据模型设计、边缘-云端协同能力、车规级函数库、存储压缩算法等。通过真实案例和性能测试,帮助企业在新能源汽车大数据处理中选择合适的时序数据库,优化存储成本和实时告警性能。

rust6ferris的博客 454

Rstan下载安装攻略

准备把Rtools删掉,重新下载(胡乱猜测是安装顺序的问题),但是卸载时显示Rtools被占用,但我已经把该关的都关了。这一问题的出现,直接让我卸载掉了Rstudio,又重新安装了一个,不过这次安装在另一个磁盘,因为原来的内存不多了。或者参考知乎,使用清华镜像网址进行下载:(知乎链接)https://zhuanlan.zhihu.com/p/346947595(清华下载链接)https://mirrors.tuna.tsinghua.edu.cn/CRAN/bin/windows/Rtools/

m0_64643017的博客 3101

当IHTMLTxtRange::findText Method查找不到字符串的时候

/*程序中的源码*/ HRESULT    CContentBehavior::InternalFindTextImpl(CComBSTR bstrText, DWORD dwFlag, BOOL  bSelected, DWORD *dwRet, BOOL bReplaceFind) {  if( dwRet)   *dwRet =0;  CStringW strText(bstrTe

hellochenlian的专栏 2202

从零开始:用Neo4j构建你的第一个知识图谱(附完整代码示例)

本文提供了一份从零开始的Neo4j知识图谱构建实战指南。通过一个“经典科幻电影宇宙”的具体案例,手把手教你安装环境、设计图谱模式,并使用Cypher查询语言完成节点与关系的创建、数据查询及可视化,帮助你快速掌握自下而上构建知识图谱的核心技能。

weixin_29053073的博客 475

改变输入框光标的颜色

参考:张鑫旭技术博客–CSS改变插入光标颜色caret-color简介及其它变色方法 使用caret-color属性 input { color: #333; caret-color: red; } caret-color属性不仅对于原生的输入表单控件有效,设置contenteditable的普通HTML标签也适用。 <div contenteditable="tr...

kivet的博客 1181

AI颠覆市场调研:生成式智能体如何重构商业决策?

AI正在将市场调研从"成本中心"转变为"战略武器"。当企业能够用生成式智能体实时模拟百万级虚拟用户时,传统调研的样本偏差、时间滞后、成本高昂等问题将不复存在。对于开发者而言,这不仅是技术的狂欢,更是参与商业规则重构的历史机遇。行动建议立即体验Simile/Aaru的智能体平台,验证虚拟样本效果参与LLM持续性记忆架构的开源项目(如Memory Llama)关注AI调研API的标准化进程(如Hugging Face的Market Research Toolkit)

这里汇聚了前沿的技术分享与实用的开发技巧,带你探索从创意到企业的技术创业之路。 617

到底什么是指令集?什么是微架构?他们是什么关系?

指令集、处理器架构、芯片厂商、ARM、x86,其间关系还在迷糊吗?一文迅速理清!!

车载系统攻城狮 7813

CSS3改变表单控件光标的颜色

场景还原先来看一段代码<html lang="en"> <head> <meta charset="UTF-8"> <title>表单光标</title> <style> #text1{ color: red; } </style> </head> <body> <input id="text1" typ

coder丶东的博客 1562

YOLO26 vs YOLOv12 vs YOLOv10:工业场景性能实测,速度/精度/部署难度全对比(附完整测试代码)

YOLO26:工业场景全能型选手,无NMS+无DFL设计让部署和推理都省心,小目标精度优势明显,CPU推理速度提升43%,适合大多数生产线场景YOLOv12:中大型目标检测专家,Area Attention在复杂背景下表现出色,适合汽车、家电等大型零部件检测YOLOv10:速度狂魔,GPU上性能领先,轻量化版本适合边缘部署,但小目标精度略逊,适合对实时性要求极高的分拣线场景。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 625

iOS 上,fixed 元素内的输入元素,获取焦点时的光标错位问题

转自:http://web.blued.cn/2017/12/15/ios-fixed-input-cursor-position/ RT,如果一个输入元素(input, textarea …)的父容器设置了 position: fixed,当这个元素获取焦点时,会触发底部键盘的弹起。这时在输入框内打字的时候,会发现其光标错位了,一般会跑到下方。 当你专注于一个输入时,浏览器会自动向下滚动...

邓波的博客 3513

《八》:玩家位置同步(玩家防碰撞)

在VR大空间体验中,由于玩家佩戴头显设备无法直接观察彼此位置,容易发生碰撞。因此,需要将玩家的实时位置信息绘制在虚拟空间中,实现位置可视化。通过获取头显的位置和旋转角度等数据,可以推算出玩家的移动状态和位置。使用可序列化的玩家结构体,通过UDP将玩家数据发送到服务器,服务器接收并反序列化数据后,同步所有玩家的最新信息至各客户端。客户端根据接收到的数据渲染虚拟人物模型,实现动态位置更新。这一过程涉及数据序列化、反序列化、网络通信和实时渲染等技术,确保玩家在虚拟空间中的位置同步和可视化。

unitygroup的博客 413

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

邮件中html格式转换,如何在宏中将邮件格式更改为html?

使用Outlook宏从Plain Text更改回复邮件格式时的行为与使用格式文本/格式/ HTML菜单时不同。如何在宏中将邮件格式更改为html?我最初的外发邮件,击中回复按钮看起来刚过如下: 如果我再点击HTML按钮,然后它仍然exactly same,除了改变格式的HTML之后我可以改变字体,大小等但是,如果我使用...BodyFormat = olFormatHTML代替改变格式在宏(见底部...

weixin_33334733的博客 467

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

web developer tips (50):在 Visual Studio 的设计视图绝对定位控件

原文地址:How to absolute position the controls in Visual Studio Designer在设计视图,控件绝对定位看起来比较混乱直到你了解可视化的相关提示。在设计视图里,你可以通过拖动控件进行如下两个操作之一:1、改变控件的起始。 2、改变控件的位置。http://www.watch-life.net/visual-studio/absol

守望轩 1396

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

搞笑的textarea标签

        很久没有用这个textarea玩意了,因为要设计一些页面,硬是从记忆的最底层挖出了这个标签,结果折腾了老半天,等到发现问题所在之后,真的令我哭笑不得。        一开始,由于习惯了写XML,就随手写下了这样的HTML代码: &lt;textarea name="test" cols="20" rows="4" /&gt;结果是,textarea后面的HTML都当作内容出现在...

perhaps 109

html好看鼠标光标特效

html好看鼠标光标特效,包括自定义鼠标指针图案,和自定义鼠标点击特效(鼠标点击出现爱心特效,每次颜色不一样。),好看的鼠标特效,好看的鼠标指针,自定义光标样式。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 1万+

HTML样式中移动鼠标到指定位置改变光标形状

要设置鼠标指针放在一个元素边界范围内时所用的光标形状,需要对元素的css属性cursor进行设置。cursor属性可能的值 1、default 默认光标(通常是一个箭头) 2、auto 默认。浏览器设置的光标。 3、crosshair 光标呈现为十字线。 4、pointer 光标呈现为指示链接的指针(一只手) 5、move 此光标指示某对象可被移动。 6、e-resize ...

jwpython的博客 5136

html元素contenteditable属性如何定位光标和设置光标

最近在山寨一款网页微信的产品,对于div用contenteditable属性做的编辑框有不少心得,希望可以帮到入坑的同学。 废话不多说了,我们先来理解一下HTML的光标对象是如何工作的,后面我会贴完整的DEMO代码,不用急,先去理解,才能做出更加好的输入体验。 在HTML里面,光标是一个对象,光标对象是只有当你选中某个元素的时候才会出现的。 当我们去点击一个输入框的时候,实际上它会产生一个选中对象-selection(就是我们可以看到的文字变成蓝色的那个区域),selection在火狐浏览器可以直接用

嘿嘿 6998

如何在HTML中修改光标的位置(全面版)

通过本文的讲解,我们全面了解了表单元素和元素中光标位置的操作方法。在表单元素中可以使用和,而在元素中则需要使用Selection和RangeAPI。无论是表单输入校验、富文本编辑器开发,还是增强用户体验,操作光标位置都是一项重要的技术,希望本文能够帮助您在项目中灵活运用。

2301_79858914的博客 2088

css表单光标宽度设置,如何改变表单控件光标颜色

表单大家应该不陌生,当然了,今天并不是来聊怎么做表单或者处理表单的样式网格。而是来聊聊怎么改变表单控件中光标的颜色。不知道在大家心中,表单控件的光标颜色是根据color属性来控制的。那么如果需要用CSS来改变表单控件,比如说input或者textarea元素的光标颜色,应该怎么处理呢?先来上张图吧,我们要的效果类似这样的:默认光标颜色为了节省时间,直接用Bootstrap表单组件为例。.form-...

weixin_42168902的博客 1793

html获取文本框光标位置,html 在编辑框中如何定位光标和获取光标最后位置

在HTML里面,光标是一个对象,光标对象是只有当你选中某个元素的时候才会出现的。当我们去点击一个输入框的时候,实际上它会产生一个选中对象-selection(就是我们可以看到的文字变成蓝色的那个区域),selection在火狐浏览器可以直接用 window.getSelection()获取,在HTML里面,selection只有一个的,并且selection是一个区域,你可以想象成一个长方形,它是...

weixin_35513425的博客 2389

html光标自动定位到文本框,html元素contenteditable属性如何定位光标和设置光标

最近在山寨一款网页微信的产品,对于div用contenteditable属性做的编辑框有不少心得,希望可以帮到入坑的同学。废话不多说了,我们先来理解一下HTML的光标对象是如何工作的,后面我会贴完整的DEMO代码,不用急,先去理解,才能做出更加好的输入体验。在HTML里面,光标是一个对象,光标对象是只有当你选中某个元素的时候才会出现的。当我们去点击一个输入框的时候,实际上它会产生一个选中对象-se...

weixin_32736623的博客 1620
上一篇: 从 VC7 的 CHtmlView 不能正常退出谈 CComPtr 使用中的一个误区
下一篇: 用CComPtr吧,COM接口指针很危险
普通网友
博客等级 码龄22年 1万+粉丝 3156原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值