CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  控件

如何设置编辑控件中某几个字的背景色?

楼主eileendl(默默)2004-09-04 09:35:06 在 VB / 控件 提问

我现在用的编辑控件是richtextbox,但怎么也没有找到设置某几个字背景色的方法。  
   
  分不够可以再加! 问题点数:0、回复次数:13Top

1 楼kmzs(.:RNPA:.山水岿濛)回复于 2004-09-04 10:35:57 得分 0

不可能!Top

2 楼eileendl(默默)回复于 2004-09-04 22:48:13 得分 0

那请问很多的编辑器让某些字符背景色变化是如何做的?  
  比如ultraedit每行都可以高亮,sourceinsight中字符串都是淡黄色背景....Top

3 楼BlueBeer(1win)回复于 2004-09-05 06:17:31 得分 0

Private   Sub   Command1_Click()  
  RichTextBox1.SelStart   =   6  
  RichTextBox1.SelLength   =   5  
  RichTextBox1.SelColor   =   vbBlue  
  End   Sub  
   
  Private   Sub   Form_Load()  
  RichTextBox1.Text   =   "测试测试测试这里是标注再测试测试测试"  
  End   SubTop

4 楼BlueBeer(1win)回复于 2004-09-05 06:19:37 得分 0

不好意思,审错题:)Top

5 楼eileendl(默默)回复于 2004-09-05 08:59:38 得分 0

selcolor只是前景色变了,我想的是背景色改变。Top

6 楼zhujiechang(小朱)回复于 2004-09-09 10:24:51 得分 0

没有这样的功能.真的,实现起来难.  
  你自己写个文本框实现起来就容易些.不过还是比较难.Top

7 楼rainstormmaster(暴风雨 v2.0)回复于 2004-10-03 10:27:22 得分 0

//没有这样的功能.真的,实现起来难.  
   
  是这样的  
   
  想设置文字背景色,需要自绘richtextbox,在自绘时调用api函数setbkcolor设置文字的背景色Top

8 楼eileendl(默默)回复于 2004-10-05 14:37:36 得分 0

怎么样“自绘richtextbox”,又如何“在自绘时调用api函数setbkcolor设置文字的背景色”?能给个实际的例子吗?Top

9 楼laviewpbt(人一定要靠自己)回复于 2004-10-05 14:45:57 得分 0

我这有一个自绘listbox的例子,希望对你有帮助  
  模块中  
  Option   Explicit  
   
  Private   Type   RECT  
                  Left   As   Long  
                  Top   As   Long  
                  Right   As   Long  
                  Bottom   As   Long  
  End   Type  
  Private   Type   DRAWITEMSTRUCT  
                  CtlType   As   Long           '控件类型  
                  CtlID   As   Long               '控件ID  
                  itemID   As   Long             '菜单项、列表框或组合框中某一项的索引值  
                  itemAction   As   Long     '控件行为  
                  itemState   As   Long       '控件状态  
                  hwndItem   As   Long         '父窗口句柄或菜单句柄  
                  hdc   As   Long                   '控件对应的绘图设备句柄  
                  rcItem   As   RECT             '控件所占据的矩形区域  
                  itemData   As   Long         '列表框或组合框中某一项的值  
  End   Type  
   
  Private   Declare   Sub   CopyMemory   Lib   "kernel32"   Alias   "RtlMoveMemory"   (Destination   As   Any,   Source   As   Any,   ByVal   Length   As   Long)  
  Private   Declare   Function   SetWindowLong   Lib   "user32"   Alias   "SetWindowLongA"   (ByVal   hWnd   As   Long,   ByVal   nIndex   As   Long,   ByVal   dwNewLong   As   Long)   As   Long  
  Private   Declare   Function   CallWindowProc   Lib   "user32"   Alias   "CallWindowProcA"   (ByVal   lpPrevWndFunc   As   Long,   ByVal   hWnd   As   Long,   ByVal   Msg   As   Long,   ByVal   wParam   As   Long,   ByVal   lParam   As   Long)   As   Long  
  Private   Declare   Function   SendMessage   Lib   "user32"   Alias   "SendMessageA"   (ByVal   hWnd   As   Long,   ByVal   wMsg   As   Long,   ByVal   wParam   As   Long,   lParam   As   Any)   As   Long  
  Private   Declare   Function   CreateSolidBrush   Lib   "gdi32"   (ByVal   crColor   As   Long)   As   Long  
  Private   Declare   Function   FillRect   Lib   "user32"   (ByVal   hdc   As   Long,   lpRect   As   RECT,   ByVal   hBrush   As   Long)   As   Long  
  Private   Declare   Function   DeleteObject   Lib   "gdi32"   (ByVal   hObject   As   Long)   As   Long  
  Private   Declare   Function   SetBkColor   Lib   "gdi32"   (ByVal   hdc   As   Long,   ByVal   crColor   As   Long)   As   Long  
  Private   Declare   Function   SetTextColor   Lib   "gdi32"   (ByVal   hdc   As   Long,   ByVal   crColor   As   Long)   As   Long  
  Private   Declare   Function   TextOut   Lib   "gdi32"   Alias   "TextOutA"   (ByVal   hdc   As   Long,   ByVal   x   As   Long,   ByVal   y   As   Long,   ByVal   lpString   As   String,   ByVal   nCount   As   Long)   As   Long  
  Private   Declare   Function   DrawFocusRect   Lib   "user32"   (ByVal   hdc   As   Long,   lpRect   As   RECT)   As   Long  
  Private   Declare   Function   GetSysColor   Lib   "user32"   (ByVal   nIndex   As   Long)   As   Long  
   
  Private   Const   COLOR_HIGHLIGHT   =   13  
  Private   Const   COLOR_HIGHLIGHTTEXT   =   14  
  Private   Const   COLOR_WINDOW   =   5  
  Private   Const   COLOR_WINDOWTEXT   =   8  
  Private   Const   LB_GETTEXT   =   &H189  
  Private   Const   WM_DRAWITEM   =   &H2B  
  Private   Const   GWL_WNDPROC   =   (-4)  
  Private   Const   ODS_FOCUS   =   &H10  
  Private   Const   ODT_LISTBOX   =   2  
   
  Private   lPrevWndProc   As   Long  
   
  Private   Function   SubClassedList(ByVal   hWnd   As   Long,   ByVal   Msg   As   Long,   ByVal   wParam   As   Long,   ByVal   lParam   As   Long)   As   Long  
          Dim   tItem   As   DRAWITEMSTRUCT  
          Dim   sBuff   As   String   *   255  
          Dim   sItem   As   String  
          Dim   lBack   As   Long  
          If   Msg   =   WM_DRAWITEM   Then       '绘制菜单消息  
          Call   CopyMemory(tItem,   ByVal   lParam,   Len(tItem))  
                  If   tItem.CtlType   =   ODT_LISTBOX   Then     '只处理控件类型为listbox的控件  
                  Call   SendMessage(tItem.hwndItem,   LB_GETTEXT,   tItem.itemID,   ByVal   sBuff)   '获得具体值  
                            sItem   =   Left(sBuff,   InStr(sBuff,   Chr(0))   -   1)  
                          If   (tItem.itemState   And   ODS_FOCUS)   Then     '判断某项是否具有焦点  
                                lBack   =   CreateSolidBrush(GetSysColor(COLOR_HIGHLIGHT))  
                                  Call   FillRect(tItem.hdc,   tItem.rcItem,   lBack)  
                                  Call   SetBkColor(tItem.hdc,   GetSysColor(COLOR_HIGHLIGHT))  
                                  Call   SetTextColor(tItem.hdc,   GetSysColor(COLOR_HIGHLIGHTTEXT))  
                                  TextOut   tItem.hdc,   tItem.rcItem.Left,   tItem.rcItem.Top,   ByVal   sItem,   Len(sItem)  
                                  DrawFocusRect   tItem.hdc,   tItem.rcItem  
                          Else     '如果没有焦点,则  
                                  lBack   =   CreateSolidBrush(GetSysColor(COLOR_WINDOW))  
                                  Call   FillRect(tItem.hdc,   tItem.rcItem,   lBack)  
                                  Call   SetBkColor(tItem.hdc,   GetSysColor(COLOR_WINDOW))  
                                  Call   SetTextColor(tItem.hdc,   tItem.itemData)  
                                  TextOut   tItem.hdc,   tItem.rcItem.Left,   tItem.rcItem.Top,   ByVal   sItem,   Len(sItem)  
                          End   If  
                          Call   DeleteObject(lBack)  
                          SubClassedList   =   0  
                          Exit   Function  
                                            End   If  
                            End   If  
          SubClassedList   =   CallWindowProc(lPrevWndProc,   hWnd,   Msg,   wParam,   lParam)  
  End   Function  
   
  Public   Sub   SubLists(ByVal   hWnd   As   Long)  
          lPrevWndProc   =   SetWindowLong(hWnd,   GWL_WNDPROC,   AddressOf   SubClassedList)  
  End   Sub  
   
  Public   Sub   RemoveSubLists(ByVal   hWnd   As   Long)  
          Call   SetWindowLong(hWnd,   GWL_WNDPROC,   lPrevWndProc)  
  End   Sub  
  窗体中  
  Private   Sub   Form_Load()  
          Dim   I   As   Integer  
          For   I   =   0   To   15  
                  List1.AddItem   "Color   "   &   I  
                  List1.itemData(List1.NewIndex)   =   QBColor(I)  
          Next  
          SubLists   hWnd  
  End   Sub  
   
  Private   Sub   Form_Unload(Cancel   As   Integer)  
          RemoveSubLists   hWnd  
  End   Sub  
  Top

10 楼eileendl(默默)回复于 2004-10-05 18:09:51 得分 0

比较晕。看不太懂:(  
  Top

11 楼hdhai9451(☆新人类☆)回复于 2004-10-05 18:54:22 得分 0

完全可以﹐以前我也做過﹐但現在記不起代碼了。Top

12 楼eileendl(默默)回复于 2004-10-10 21:19:19 得分 0

upTop

13 楼bhw1985(劢垦)回复于 2004-10-24 18:13:08 得分 0

up呵呵Top

相关问题

  • 如何给按钮设置背景和字体颜色(不用ActiveX控件)
  • 设置编辑控件的部分字体的背景颜色的问题?
  • 控件字体设置
  • 关于控件背景和字体颜色设置的疑惑,只要70分,一问题35分
  • 如何设置静态文本控件的前、背景色?
  • 如何在在TMemo控件中设置为透明背景
  • 关于属性页控件背景设置问题
  • CTreeView控件的背景能设置为一图片吗?
  • 怎样设置picture控件的背景色?
  • 如何给ListView控件设置背景图片?

关键词

  • 控件
  • 测试
  • 文字
  • 背景色
  • richtextbox
  • 句柄
  • 设置
  • as long
  • byval
  • alias

得分解答快速导航

  • 帖主:eileendl

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

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