CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

文本是怎样选定的?

楼主forestwind(森林之风)2005-11-15 09:51:23 在 .NET技术 / C# 提问

遇到这样一个问题:用DrawString画出了一串文本(含不同的字体),现在想实现用鼠标选定这些文本,请问怎样可以实现光标浮动、鼠标拖动、一行字变黑这些东西呢?有没有什么开源的软件里面有这种实现?  
  顺便问一句,有没有可能不用API实现? 问题点数:200、回复次数:8Top

1 楼xujiaoxiang(翱翔)回复于 2005-11-15 10:40:58 得分 30

判断鼠标位置,绘制光标。绑定鼠标移动事件,计算选取范围。绘制选中文字。  
  调用API实现容易些。  
  CreateCaret,   DestroyCaret,   GetCaretPos,   SetCaretPos,   ShowCaret,HideCaret   控制光标。  
  SetROP2   ,GetROP2设置绘制方式。绘制。Top

2 楼forestwind(森林之风)回复于 2005-11-15 11:04:34 得分 0

谢谢。发现闪动厉害,有没有方法可以每次只刷新一小块地方呢?Top

3 楼JasonHeung(拥有一切不过就这样笑着哭)回复于 2005-11-15 11:09:13 得分 30

先画到位图,再将位图画到屏幕。Top

4 楼xujiaoxiang(翱翔)回复于 2005-11-15 11:13:12 得分 50

this.SetStyle(ControlStyles.DoubleBuffer   |    
              ControlStyles.UserPaint   |    
              ControlStyles.AllPaintingInWmPaint,  
              true);  
        this.UpdateStyles();  
  设置在绘制窗体的构造函数中。  
  参见Control.SetStyle   方法。  
   
  还有绘制时最好不要重绘文字部分。  
  使用API   的SetROP2   ,GetROP2设置绘制方式,可以按异或方式绘制。Top

5 楼jh8848(哦)回复于 2005-11-15 11:18:33 得分 50

>>JasonHeung(拥有一切也不过就这样笑着哭)    
   
  LZ的要求是要求可以光标浮动、鼠标拖动、一行字变黑(我理解为选中)。。如果这样的一串动作都去先生成位图,再去替换指定位置的图片是不是太慢了呀~~~  
   
  >>   forestwind(森林之风)  
  用GDI+画的东东处理起来都会有一点闪烁。。因为你的要求其实是对Paint的String不断的进行刷新,不断的更换。不过你可以指定刷新的部分的大小。尽量保证只对需要更改的部分进行刷新。  
  如果每做一个操作都对整个FROM哪怕是整个载体进行刷新闪烁都会比较严重的哦。Top

6 楼forestwind(森林之风)回复于 2005-11-15 14:37:26 得分 0

多谢各位!可我怎么才能只对文字的部分刷新呢?Top

7 楼s5689412(华君)回复于 2005-11-15 14:43:59 得分 40

要做这些,建议可以好好看看Charles   Petzold的《Windows   程序设计》中的“文字和字体”一章,虽然讲的是GDI,但是GDI+同样可以受益。  
  另外,不调用API几乎是不可能的,除非你可以写出自己的GDI32.dll。Top

8 楼forestwind(森林之风)回复于 2005-11-15 15:14:39 得分 0

多谢多谢,up一下,GDI+中能不能只对文字的部分刷新呢?Top

相关问题

  • 怎样显示被选定的文本?
  • 文本框是richtextbox,有多行文本,当选定某行文本时,单击删除按扭将其删除,该怎么样写代码?
  • 大家是怎样分页的?(文本)
  • 如何获取showModalDialog窗口中dropdownlist所选定的项的文本(不是value,而是text)
  • 怎样判断光标是在文本最后或在文本之间?
  • 怎样在选定一个对话框中的值后,把这个值在一个文本框中显示出来?(B/S)
  • 选定文本反色显示如何实现?
  • 如何用memo显示选定的文本?
  • 菜问题:如何获取listbox中选定行的文本.
  • 取得多行文本框的选定的内容

关键词

  • gdi+
  • 文本
  • 鼠标
  • 文字
  • api
  • 绘制
  • 刷新
  • 光标
  • controlstyles
  • 多谢

得分解答快速导航

  • 帖主:forestwind
  • xujiaoxiang
  • JasonHeung
  • xujiaoxiang
  • jh8848
  • s5689412

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo