CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
英特尔®游戏设计大赛100美元现金周周送 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  VCL组件使用和开发

如何实现更改图标的“对话框”效果?

楼主szwang1(小骑士)2003-12-02 13:57:18 在 C++ Builder / VCL组件使用和开发 提问

就象Windows中的更改图标对话框一样:  
  右击桌面上某一快捷方式-->属性-->”快捷方式“选项卡-->点“更改图标”按钮,这时出现“更改图标”对话框...停,我要的就是这个对话框,  
  这时点击“浏览”按钮,谢谢了帮我写这个的“浏览”按钮的点击事件吧。拉兄弟一把吧,呜呜呜哇~ 问题点数:80、回复次数:7Top

1 楼ccrun(老妖)(www.ccrun.com)回复于 2003-12-02 14:08:15 得分 0

那个Windows中的更改图标对话框中显示图标的框是个ListBox,你是要弹出系统的那个对话框?还是要在自己的程序中实现这样的效果?Top

2 楼szwang1(小骑士)回复于 2003-12-02 14:22:34 得分 0

要弹出系统的那个对话框,我不求甚解,呵呵,只要能达到那个效果就行!  
  我要我要我要Top

3 楼songhtao(三十年孤独)回复于 2003-12-02 14:35:04 得分 5

做个Form模拟呀ListBox可以用TListView代替  
  浏览就是一个TButton点击后调用SelectDirectry函数。Top

4 楼szwang1(小骑士)回复于 2003-12-02 14:39:38 得分 0

谢谢你,成功后我会在我的程序包(1.0版已被华军软件园收录)中放上感谢之语的,并放上你的主页链接介绍,www.ccrun.com是吗?  
  方便的话邮箱给我也行(按你方便来),我的邮箱是szwang@163.com  
  2小时后我回来等好消息。急切盼望!Top

5 楼ccrun(老妖)(www.ccrun.com)回复于 2003-12-02 14:47:52 得分 0

你等着,我给你写代码去。Top

6 楼ccrun(老妖)(www.ccrun.com)回复于 2003-12-02 15:00:40 得分 75

用ListBox实现更改图标时的对话框效果:  
   
  在Form上加一个ListBox,一个Edit,一个Button,一个ImageList  
   
  主要代码如下:  
   
  //---------------------------------------------------------------------------  
  __fastcall   TForm1::TForm1(TComponent*   Owner)  
                  :   TForm(Owner)  
  {  
          SetWindowLong(ListBox1->Handle,   GWL_EXSTYLE,   0x204);  
          ListBox1->Columns   =   ListBox1->Width   /   35;   //如果觉的太挤,可以将35改成40  
          ImageList1->Width   =   32;  
          ImageList1->Height   =   32;  
          ListBox1->ItemHeight   =   35;  
          ListBox1->Style   =   lbOwnerDrawFixed;  
  }  
  //---------------------------------------------------------------------------  
  void   __fastcall   TForm1::ListBox1DrawItem(TWinControl   *Control,   int   Index,  
              TRect   &Rect,   TOwnerDrawState   State)  
  {  
          //   填充背景.  
          ListBox1->Canvas->FillRect   (Rect)   ;  
          //   画出图像.  
          ImageList1->Draw(ListBox1->Canvas,   Rect.Left,   Rect.Top,   Index)   ;  
  }  
  //---------------------------------------------------------------------------  
  void   __fastcall   TForm1::Button1Click(TObject   *Sender)  
  {  
          TOpenDialog   *dialog   =   new   TOpenDialog(Form1);  
          dialog->Filter   =   "图标文件|*.exe;*.dll;*.ico";  
          if(dialog->Execute())  
          {  
                  String   strFileName   =   dialog->FileName;  
                  HANDLE   hIcon   =   ExtractIcon(Handle,   strFileName.c_str(),   -1);  
                  if(hIcon   ==   NULL)  
                          ShowMessage("该文件不包含图标");  
                  for(int   i=0;   i<(int)(hIcon);   i++)  
                  {  
                          TIcon   *icon   =   new   TIcon();  
                          icon->Handle   =   ExtractIcon(Handle,   strFileName.c_str(),   i);  
                          ImageList1->AddIcon(icon);  
                          delete   icon;  
                          ListBox1->Items->Add("");  
                  }  
                  Edit1->Text   =   strFileName;  
          }  
          delete   dialog;  
          ListBox1->Invalidate();  
  }  
  //---------------------------------------------------------------------------  
   
  至于显示出来图标,选择图标的自己看着添加代码就可以了。呵呵。  
  源程序给你发信箱了。Good   luck.Top

7 楼szwang1(小骑士)回复于 2003-12-02 20:48:57 得分 0

首先,感谢老妖  
  其次,对您说抱歉,这时候才结帖,你一定认为我不守信义。原因:下午不能上网,线被人掐了!!!(苦命)。请原谅,我不是故意的,交友在第一印象,但愿没给你留下不好的感觉。  
  给分!!  
  我现在就去邮箱看看去。  
  再次感谢,程序好后我冒昧到your   page上给你个一个下载链接。  
  另:你的工作效率挺高的:13分钟就写好程序了呵,这段码压了我半年了哇。  
  Top

相关问题

  • 对话框图标问题
  • 如何设置对话框的子对话框的图标?
  • 怎么样给对话框加图标?
  • 怎么给对话框加图标?
  • 使用API,如何在对话框中显示/更换图标?
  • 对话框怎么没有地方设置图标呀?
  • 如何在对话框的标题前加一个图标?
  • 如何获得对话框程序窗口的图标?
  • 如何在创建的对话框左上角添加图标?
  • 怎样在对话框的任意位置显示图标?

关键词

  • 效果
  • 浏览
  • 邮箱
  • 对话框
  • 更改图标
  • listbox
  • 图标
  • imagelist
  • tform
  • 实现

得分解答快速导航

  • 帖主:szwang1
  • songhtao
  • ccrun

相关链接

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

广告也精彩

反馈

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