CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  基础类

如何用C++Builder来实现像QQ那样的上下滑动菜单啊,我没有思路,各位大侠救救我吧!

楼主Fox128(小狐狸)2001-06-27 13:22:31 在 C++ Builder / 基础类 提问

我遇到了一个难题,就是如何用BCB来实现象QQ那样的上下滑动菜单,  
  我没有思路,目前还不清楚会涉及到哪些关键技术,痛苦啊,各位大侠,救救我吧。  
  希望能指点一些思路或者明示一些关键技术。最好能有相关的程序代码。  
  十万火急哪!!!! 问题点数:20、回复次数:21Top

1 楼SSTS(铁冰)回复于 2001-06-27 13:51:10 得分 0

响应按钮的OnClick事件,  
  里面用一个循环,改变按钮的Top  
  当然你自己要判断是否已经是最上还是最上!Top

2 楼dbxmcf(刀板虾米)回复于 2001-06-27 14:12:47 得分 20

我给你一个,这是我毕业设计花了一个小时临时凑数的,不过很好用  
  //---------------------------------------------------------------------------  
   
  #include   <vcl.h>  
  #pragma   hdrstop  
   
  #include   "Unit1.h"  
  //---------------------------------------------------------------------------  
  #pragma   package(smart_init)  
  #pragma   resource   "*.dfm"  
  TForm1   *Form1;  
  //---------------------------------------------------------------------------  
  __fastcall   TForm1::TForm1(TComponent*   Owner)  
                  :   TForm(Owner)  
  {  
  }  
  //---------------------------------------------------------------------------  
   
   
  void   __fastcall   TForm1::SpeedButton1Click(TObject   *Sender)  
  {  
                  Panel3->Align=alNone;  
                  Panel4->Align=alNone;  
                  Panel5->Align=alNone;  
                  Panel4->Top=Panel1->Height-Panel4->Height;  
                  Panel3->Top=Panel4->Top-Panel3->Height;  
                  Panel5->Top=Panel2->Top+Panel2->Height;  
                  Panel4->Align=alBottom;  
                  Panel3->Align=alBottom;  
                  Panel5->Align=alClient;  
  }  
  //---------------------------------------------------------------------------  
   
  void   __fastcall   TForm1::SpeedButton2Click(TObject   *Sender)  
  {  
                  if   (Panel3->Align==alBottom)  
                  {  
                                  Panel3->Align=alNone;  
                                  Panel4->Align=alNone;  
                                  Panel5->Align=alNone;  
                                  Panel3->Top=Panel2->Top+Panel2->Height;  
                                  Panel5->Top=Panel3->Top+Panel3->Height;  
                                  Panel3->Align=alTop;  
                                  Panel4->Align=alBottom;  
                                  Panel5->Align=alClient;  
                  }  
                  else   if   (Panel3->Align==alTop)  
                  {  
                                  Panel4->Align=alNone;  
                                  Panel5->Align=alNone;  
                                  Panel5->Top=Panel3->Top+Panel3->Height;  
                                  Panel4->Align=alBottom;  
                                  Panel5->Align=alClient;  
                  }  
  }  
  //---------------------------------------------------------------------------  
  void   __fastcall   TForm1::SpeedButton3Click(TObject   *Sender)  
  {  
                  if   (Panel4->Align==alBottom)  
                  {  
                                  Panel4->Align=alNone;  
                                  Panel5->Align=alNone;  
                                  Panel4->Top=Panel3->Top+Panel3->Height;  
                                  Panel5->Top=Panel4->Top+Panel4->Height;  
                                  Panel4->Align=alTop;  
                                  Panel5->Align=alClient;  
                  }  
  }  
  //---------------------------------------------------------------------------  
  头文件如下:  
  //---------------------------------------------------------------------------  
   
  #ifndef   Unit1H  
  #define   Unit1H  
  //---------------------------------------------------------------------------  
  #include   <Classes.hpp>  
  #include   <Controls.hpp>  
  #include   <StdCtrls.hpp>  
  #include   <Forms.hpp>  
  #include   <ExtCtrls.hpp>  
  #include   <Buttons.hpp>  
  //---------------------------------------------------------------------------  
  class   TForm1   :   public   TForm  
  {  
  __published: //   IDE-managed   Components  
                  TImage   *Image1;  
                  TPanel   *Panel1;  
                  TPanel   *Panel2;  
                  TPanel   *Panel3;  
                  TPanel   *Panel4;  
                  TPanel   *Panel5;  
                  TSpeedButton   *SpeedButton1;  
                  TSpeedButton   *SpeedButton2;  
                  TSpeedButton   *SpeedButton3;  
                  void   __fastcall   SpeedButton1Click(TObject   *Sender);  
                  void   __fastcall   SpeedButton2Click(TObject   *Sender);  
                  void   __fastcall   SpeedButton3Click(TObject   *Sender);  
  private: //   User   declarations  
  public: //   User   declarations  
                  __fastcall   TForm1(TComponent*   Owner);  
  };  
  //---------------------------------------------------------------------------  
  extern   PACKAGE   TForm1   *Form1;  
  //---------------------------------------------------------------------------  
  #endif  
  放一个Panel...来不及写了,还有事,很简单但是多数人认为很烂的办法,如果要全部的例子代码给个mail,我发过去Top

3 楼dbxmcf(刀板虾米)回复于 2001-06-27 14:13:43 得分 0

晚上见Top

4 楼dbxmcf(刀板虾米)回复于 2001-06-27 14:17:30 得分 0

要是你觉得看程序眼花的话就别看了,还有Panel和SpeedButton的属性设置一大堆来不及讲了Top

5 楼songhtao(三十年孤独)回复于 2001-06-27 14:44:05 得分 0

这种东西容易呀,循环改变几个TSpeedButton加载的图片就可以造成按钮移动的假象了。根本没有什么技术可言。早就实现了。Top

6 楼songhtao(三十年孤独)回复于 2001-06-27 15:02:55 得分 0

而且通过设置flat可以造成按钮浮动、沉下的效果,这些根本不是什么技术问题。可能是因为qq的名声干扰了你的判断,所以你觉得“我遇到了一个难题,就是如何用BCB来实现象QQ那样的上下滑动菜单,我没有思路,目前还不清楚会涉及到哪些关键技术,痛苦啊,”。不要被吓着了,如果你有打倒一切反动权威的胆量,这些东西就很好解决了。Top

7 楼Sammo(三毛)回复于 2001-06-27 15:08:43 得分 0

sammochoi@china.com  
  可以的话请提供源程序学习学习!!Top

8 楼dbxmcf(刀板虾米)回复于 2001-06-27 15:34:48 得分 0

没错,十分简单的Top

9 楼sephil(NAILY Soft 【哈里波特大】)回复于 2001-06-27 17:27:13 得分 0

简单啊Top

10 楼Fox128(小狐狸)回复于 2001-06-28 10:06:06 得分 0

在下,在这里谢谢各位热心的大侠支招。  
  确如“三十年孤独”大侠所讲,我第一时间确实被“吓”傻了。  
  诚挚的表示感谢!!!——“刀板虾米”   generalhu@netease.comTop

11 楼FANGAO(凡高)回复于 2001-06-28 11:16:39 得分 0

太麻麻烦了!用1stClass控件吧,   简单至极!Top

12 楼FANGAO(凡高)回复于 2001-06-28 11:29:04 得分 0

忘了说了,下载地址:  
  http://www.woll2woll.com  
  用fcOutlookBar控件Top

13 楼c12(幸福花儿)回复于 2001-06-28 11:44:28 得分 0

dbxmcf(刀板虾米) ,可以的话请提供源程序学习学习!!    
  tansung@fm365.comTop

14 楼dbxmcf(刀板虾米)回复于 2001-07-01 09:40:09 得分 0

等一下,今天搬家没空,晚上一定发Top

15 楼Fox128(小狐狸)回复于 2001-07-01 12:35:03 得分 0

再次表示感谢——刀板虾米  
  还有我DOWN了一个InfoPower3000安装时要注册码,我找了很久但是找不到。  
  希望大侠再施以援手。Top

16 楼dbxmcf(刀板虾米)回复于 2001-07-01 13:14:45 得分 0

现在在别人的机器上上网,啊呀,还要买新的电话线  
  to   fox128:  
  InfoPower没用过,查一下以前的帖子好了  
  有一点声明,收到程序别忘了..................加分:-)  
  还有,别说我的程序很烂,呵呵Top

17 楼yinmingke(黄豆汤)回复于 2001-07-01 14:12:38 得分 0

1stClass   控件组Top

18 楼coolcalf(牛犊初生[菜牛])回复于 2001-07-01 16:14:17 得分 0

cool_calf@163.net  
   
  thanksTop

19 楼Fox128(小狐狸)回复于 2001-07-02 08:58:06 得分 0

多谢各位大侠的指点。  
  我是有分必给,千金散尽还复来吗。Top

20 楼dbxmcf(刀板虾米)回复于 2001-07-02 14:20:34 得分 0

发出去了Top

21 楼Fox128(小狐狸)回复于 2001-07-30 09:10:31 得分 0

谢谢各位大侠,经过冥思苦想之后终于解决。Top

相关问题

  • C c++ QQ群
  • C++Builder
  • C++? VC++? C++ Builder?
  • 哪里可以找到qq上的滑动的控件
  • 请问如何实现像QQ一样的滑动框!
  • 谁能提供一个类qq的滑动菜单控件?
  • Visual C++ vs C++ Builder
  • C++ Builder Vs Visual C++
  • 如何在C++Builder中实现象QQ头像那样的ComboBox啊?
  • c#:QQ学习群

关键词

  • 学习
  • 技术
  • panel
  • speedbutton
  • 大侠
  • alnone
  • tform
  • tpanel
  • fastcall
  • albottom

得分解答快速导航

  • 帖主:Fox128
  • dbxmcf

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

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