当前位置:七道奇文章资讯编程技术VC/C++编程
日期:2011-03-22 13:55:00  来源:本站整理

<b>用C++ Builder成立组合框</b>[VC/C++编程]

赞助商链接



  本文“<b>用C++ Builder成立组合框</b>[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

本文介绍了在Win 98环境下,若何操纵C++ Builder和Windows的Api函数成立满意用户特定需求的Combo框,并且通过Api函数扩大了C++ Builer尺度组件的功效.

在C++ Builder 下,其所带的Combo控件当内容发生改变时将调用OnChange的Combo1Change事件句柄.这时事件句柄将向系统发送一条基于Combo的CB_FINDSTRING消息,在消息中传送编辑字符串内容.该消息的SendMessage返回值是下拉框中第一个匹配条目的Index值,假如在下拉列表框中找到相匹配的条目,Comobo1Change句柄将发送一条基于Combo的CB_SETEDITSEL消息,该消息的参数肯定从插入点到字符串末尾的部份将被挑选.后果是被选中的部份是作为消息搜索后果显示在Combo的Text值中.

具体实现:

1、在进入C++ Builder 4.0今后,在窗体上画一个CmoboBox1,在Items中输入anlantic faloncs、China、Japanese、Amercia等字符串.

2、成立ComboBox1的OnChange句柄,并填入以下代码:

  void _fastcall TForm1::ComboBox1Change(TObject *Sender)
   {
    String value = ComboBox1->Text ;
    if (lastkey == '\b' || lastkey == VK_DELETE)// 假如用户输入的是Delete键或是Tab键,搜索不举行//
     {
      lastkey = 0 ;
     return ;
     }
    lastkey = 0 ;
    if (ComboBox1->SelStart != value.Length ())//假如用户的光标在输入字符串的中间,搜索不举行//
      return ;
    int index = SendMessage (ComboBox1->Handle, CB_FINDSTRING, -1, (LPARAM) value.c_str ()) ;
    //在下来列表框探求与用户输入字符串相匹配的字符串的索引值//
    if (index >= 0)//假如索引值>0//
     {
     ComboBox1->ItemIndex = index ;
     SendMessage (ComboBox1->Handle, CB_SETEDITSEL, 0, MAKELPARAM (value.Length (), -1)) ;//发送CB_SETEDITSEL消息//
     }
    }

3、成立ComboBox1的KeyDown句柄,并填入以下代码:

   void _fastcall TForm1::ComboBox1KeyDown(TObject *Sender, WORD &Key,TShiftState Shift)
   {
   lastkey = Key ;//保存最后的键//
   }

4、在头文件中增添以下变量:

Private:WORD LastKey;

5、编译运行.当用户输入在输入框中输入Chi时,便呈现China整个字符串.

以上办法在Pwin 98和C++Builder 4.0 Enterprise版中实现.

有时想让控件实现一些不大大概的功效,试试Windows的Api 函数,大概它可以让你幻想成真.


  以上是“<b>用C++ Builder成立组合框</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .