我想继承CEdit类来打到这些功能,应该怎么做? 1.鼠标单击一个字能够反色显示并且能够知道选了哪个字2.鼠标左右拖曳某个字能够卷动这行字我不知道该如何下手,请各位达人帮忙看看,要多少我再开。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 继承ONLBUTTONDOWN,ONMOUSEMOVE 是不是讲得简单了点啊?OnLButtonDown的时候怎么判断点在了哪个字上面? 在调用CEdit::OnLButtonDown后,可以用GetSel获得当前光标的所在位置,你就知道哪个字符被选中了。不过问题是你获得的是两个字符中间的位置,比如说第一个字符字后,第n个字符之后等等。所以看你是要处理前一个字符还是后一个字符了。而且你还要处理汉字的问题喔。调用SetSel( nStartChar, nEndChar )可以把nStartChar和nEndChar之间的字符反显。你所说的”卷动“这个字是什么意思不明白。不过我估计你要实现的功能CEdit类已经给你实现了。 第2个就是说文字长过EditBox的时候拖曳一个字可以Scroll这行字,how? 创建编辑框的时候用ES_AUTOHSCROLL就行了。 我不想要它AUTOSCROOL,我需要按在某个字上面可以拖曳SCROOL,怎么做呢? 你试试看SetSel能不能实现——记住要刷新喔。如果不行,就用ScrollWindow吧。肯定行。根本就不能选中一个字,你自能鼠标按下之后拖拉一下。这是CEdit的特点,没有办法。 我想了想,我的需求觉得用CListBox是不是更合适?但是CListBox怎样才能在一行中显示并且字之间没有间隙就跟CEdit一样? 你可以在OnLButtonDown中做处理啊,检查一下point的位置,然后取得当前字符的相对座标,需要给point加点料的就加一点就行了,不过这个工作只能自己做了。 第1个搞定了,第2个还有点困难,我不清楚我按方向键scroll文字的时候发生了些什么事,不知道能不能自己控制? 第二个功能当你设置了ES_AUTOHSCROLL之后,应该是本来就具有的功能吧,你试试先。如果要自己控制就比较麻烦了。不过你可以试试用SetSel来做,void SetSel( int nStartChar, int nEndChar, BOOL bNoScroll = FALSE );第三个参数表示是否要滚动,你不需要修改该值( FALSE表示要滚动 ).如果用ScrollWindow的话,可能会比较麻烦,自能自己去研究了。 楼上的找抽!用ScrollWindow好象碰到Invalidate()就无效了嘛?CEdit好象要保证光标在Edit Control里面?我想想是不是能用CEdit自己的卷屏那一套方法,SetSel应该是可以(还没试),但是Edit Control好象是10个字一卷,不知道能不能把它改成1字一卷? 网络编程用宽字节好还是多字节好啊 有关于地图的问题 ***一个简单的问题**** 为什么我的CreateCompatibleDC没有反应呢? 初学者一个问题:句柄是个什么概念啊?请说个精确的概念和举个例子!谢谢 怎样可以将MSVCP60.DLL编译到EXE文件里? CASL哪有编译器下载???? 今天把公司极重要的硬盘删除了!!!被狂骂至精神错乱,不爽,散分!(来者有分) 如何解决“stdafx.h”的问题 请各路高手赐教 声明的公有成员变量,在一个函数里付给它值后,在另一个函数里还是没有值。为什么? 关于vc++和delphi
ONMOUSEMOVE
OnLButtonDown的时候怎么判断点在了哪个字上面?
调用SetSel( nStartChar, nEndChar )可以把nStartChar和nEndChar之间的字符反显。
你所说的”卷动“这个字是什么意思不明白。不过我估计你要实现的功能CEdit类已经给你实现了。
根本就不能选中一个字,你自能鼠标按下之后拖拉一下。这是CEdit的特点,没有办法。
如果要自己控制就比较麻烦了。不过你可以试试用SetSel来做,void SetSel( int nStartChar, int nEndChar, BOOL bNoScroll = FALSE );
第三个参数表示是否要滚动,你不需要修改该值( FALSE表示要滚动 ).如果用ScrollWindow的话,可能会比较麻烦,自能自己去研究了。