摘要: StringMEDIA_BAD_REMOVAL在没有挂载前存储媒体已经被移除。StringMEDIA_CHECKING正在检查存储媒体。StringMEDIA_MOUNTED存储媒体已经挂载,并且挂载点可读/写。StringMEDIA_MOUNTED_READ_ONLY存储媒体已经挂载,挂载点只读。StringMEDIA_NOFS存储媒体是空白或是不支持的文件系统。StringMEDIA_REMOVED存储媒体被移除。StringMEDIA_SHARED存储媒体正在通过USB共享。StringMEDIA_UNMOUNTABLE存储媒体无法挂载。StringMEDIA_UNMOUNTED存储媒体 阅读全文
posted @ 2013-05-08 18:24 lucky2011 阅读(233) 评论(0) 推荐(0) 编辑
摘要: delphi 渐现 窗体 阅读全文
posted @ 2013-04-18 14:49 lucky2011 阅读(451) 评论(0) 推荐(0) 编辑
摘要: 对于操作系统原理比较了解的朋友都会知道,一个完备的操作系统都会提供了一个外壳(shell),以方便普通的用户使用操作系统提供的各种功能。windows(在这里指的是windows 95\windows nt4.0以上版本的操作系统)的外壳不但提供了方便美观的gui图形界面,而且还提供了强大的外壳扩展功能,大家可能在很多软件中看到这些外壳扩展了。例如在你的系统中安装了winzip的话,当你在windows explore中鼠标右键点击文件夹或者文件后,在弹出菜单中就会出现winzip的压缩菜单。又或者bullet ftp中在windows资源管理器中出现的ftp站点文件夹。 windows支持七 阅读全文
posted @ 2011-04-13 11:56 lucky2011 阅读(1469) 评论(0) 推荐(0) 编辑
摘要: 当你的系统安装了Winzip之后,当把任意一个文件拖放到ZIP文件上后,你会发现鼠标的光标变成了一个+字符号样,你一松开鼠标,就会调用Winzip询问你是否要把拖放的文件加入当前的Zip文件里去,可是我们试了一下别的文件却没有这种功能,这表明缺省情况下,文件不是拖放目标,那么Winzip是如何做到的? 实际上只要实现一个被拖放的文件类的拖放扩展就可以很简单地做到了。当一个文件类型注册了一个拖放扩展后,任何时候一个外壳对象被拖放到文件类型的一个成员上时,外壳管理器都会自动调用扩展的IDropTarget的相应方法。注册扩展 拖放扩展注册只需要在子键HKEY_CLASSES_ROOT\ProgID 阅读全文
posted @ 2011-04-12 10:44 lucky2011 阅读(418) 评论(0) 推荐(0) 编辑
摘要: 一般介绍 很多人一定用过ZipMagic,对它能把一个压缩文件映射成文件夹感到很奇怪,不知道它使用了什么技术,实际上它用到的技术就是实现了一个外壳的命名空间扩展(Shell Namespace Extention)。文件夹和视图:资源管理器的基本结构 资源管理器的界面显示为两部分:左边显示的是对象在外壳命名空间的位置,它们是以树结构显示的,通常认为左边显示的应该是文件目录树,但事实上,左边还显示了很多并不是文件目录的外壳对象,比如控制面板、打印机等,事实上在资源管理器中看到的文件夹、控制面板、网上邻居等广义上来说都是命名空间;管理器右边显示了当前被选对象的详细内容,当选择目录时,右边显示目录中 阅读全文
posted @ 2011-04-12 10:22 lucky2011 阅读(530) 评论(0) 推荐(0) 编辑
摘要: 摘要:本文利用Windows名空间所提供的IShellFolder接口,用Delphi实现了文件夹管理树的生成。 关键字:文件夹 接口 Delphi 一、概述 Windows95/98视觉感观上区别Windows3.1的一个重要方面就是大量采用了树形视图控件,资源管理器左侧的文件夹管理树便是如此,它将本地和网络上的文件夹和文件等资源以层次树的方式罗列出来,为用户集中管理计算机提供了极大便利,同时在外貌上也焕然一新。Delphi为我们提供了大量Windows标准控件,但遗憾的是在目录浏览方面却只提供了一个Windows3.1样式的DirectoryListBox(Delphi5的测试版也是如此. 阅读全文
posted @ 2011-04-12 09:42 lucky2011 阅读(2462) 评论(0) 推荐(0) 编辑
摘要: 所谓动态菜单是指菜单项随着程序的操作变化而变化。现在,我们用Delphi来实现这一功能,具体步骤如下: 1.首先,确定动态菜单的数据来源,即要确定动态菜单标题是来自Windows的系统注册表,还是来自一个数据库,或者是来自一个子目录,主要由程序的功能而定。这里假设主窗口名为MainForm,上面已有主菜单,其动态菜单的数据源是一个String(字符串)类型的变量,名称为SubMenuItemSource。 2.确定生成的动态菜单的功能,即定义动态菜单的OnClick()事件,例如,动态菜单标题来自一个磁盘文件名时,那么程序在响应OnClick()事件时,可能的操作是要打开选中的文件。因此,对菜 阅读全文
posted @ 2011-04-08 16:38 lucky2011 阅读(1290) 评论(0) 推荐(1) 编辑
摘要: 1 unit PopupMenuShell; 2 3 interface 4 5 uses 6 Windows, Messages, SysUtils, StrUtils, ComObj, ShlObj, ActiveX; 7 8 function DisplayContextMenu(const Handle: THandle; const FileName: string; Pos: TPoint): Boolean; 9 10 implementation 11 12 type 13 TUnicodePath = array[0..MAX_PATH - 1] of WideChar; . 阅读全文
posted @ 2011-04-08 15:04 lucky2011 阅读(3396) 评论(1) 推荐(1) 编辑
摘要: 当ListView 设置OwnerData := True 时,再调用ListView.Items.delete(I),是不起作用的。在使用很多方法和查询资料的方法的也没有解决这个问题。但是在我仔细研究listView源码后发现可以利用消息的方法删除某个节点,SendMessage(hWnd, LVM_DELETEITEM, i, 0);在CommCtrl单元里面封装好了对listView的所有消息的的接口;本例用到的接口如下:function ListView_DeleteItem(hWnd: HWND; i: Integer): Bool; 阅读全文
posted @ 2011-04-06 10:31 lucky2011 阅读(1004) 评论(0) 推荐(1) 编辑
摘要: 因项目需要准备对LISTVIEW的滚动条进行自绘。于是在网上搜了一下,问题没解决,却搜出一篇令人不愉快的帖子。确实,那时候实力是不够的,但现在应该是没问题了,为这个目的才不断磨练自己的。LISTVIEW控件的滚动条是系统自带的,它不创建窗口。对LISTVIEW窗口本身进行子类化后,要处理一些跟滚动条有关的消息。首先是要骗过WM_NCPAINT消息。这个十分容易。WM_NCPAINT消息的wParam是一个区域的句柄。当它不为1时,从它里面CLIP掉滚动条的区域,再传给原窗口过程即可。当它为1时,创建一个包含控件全客户区域的Region,再从中CLIP掉滚动条的区域,传给原窗口过程。然后是WM_ 阅读全文
posted @ 2011-04-01 14:38 lucky2011 阅读(5800) 评论(7) 推荐(2) 编辑
摘要: http://devbean.blog.51cto.com/http://www.devbean.info/ 阅读全文
posted @ 2011-03-29 10:20 lucky2011 阅读(246) 评论(0) 推荐(0) 编辑
摘要: QT中静态库的生成与使用一. 静态库的生成 1. 测试目录: lib 2. 源码文件名: mywindow.h, mywindow.cpp, 类MyWindow继承于QPushButton, 并将文字设置为"I'm in class MyWindow"; 3. 编写项目文件: mywindow.pro 注意两点: TEMPLATE = lib CONFIG += staticlib 4. 生成Makefile: qmake 5. 编译生成静态库libmywindow.a make二. 静态库的使用 1. 测试目录: test 2. 将mywindow.h与libmy 阅读全文
posted @ 2011-03-29 10:15 lucky2011 阅读(1027) 评论(0) 推荐(0) 编辑
摘要: 首先:语言上,你选择的 C++ ,这点应该可以确定其次,界面库的选择,你在犹豫 MFC 还是 Qt ?再次,IDE的选择上,你在犹豫 Visual Studio 还是 QtCreator ?假定,你界面库选择 Qt,IDE选择了 QtCreator?那么你面临编译器的选择(准备在QtCreator下用哪个编译器来编译你的程序): 微软的MSVC、开源的MinGW、Intel的C++编译器、还是...不要单独把 VC 拉出来说,特别在你不清楚这几个概念的情况下:在不同的语境下有不同的含义,有人指代Visual Studio 的IDE、有人指代类库 MFC、有人指代其编译器 cl.exe,有人.. 阅读全文
posted @ 2011-03-29 10:06 lucky2011 阅读(1925) 评论(0) 推荐(0) 编辑
摘要: http://www.delphifans.com/infoview/Article_629.html日期:2005年9月6日 作者:arhaha{==================== 满天星共享软件注册服务中心 申明 ======================本软件由满天星共享软件注册服务中心(http://www.star-reg.com/)赞助冠名发布,目的在于促进技术交流,促进中国软件产业的发展与进步。本软件的版权以及其他所有权益归原作者所有,满天星共享软件注册服务中心不承担任何由本软件的发布带来的权益纠纷和责任。欢迎软件作者加盟满天星共享软件注册服务中心(http://www. 阅读全文
posted @ 2011-03-25 14:18 lucky2011 阅读(542) 评论(2) 推荐(1) 编辑
摘要: Stream对象,又称流式对象,是TStream、THandleStream、TFileStream、TMemoryStream、TResourceStream和TBlobStream等的统称。它们分别代表了在各种媒介上存储数据的能力,它们将各种数据类型(包括对象和部件)在内存、外存和数据库字段中的管理操作抽象为对象方法,并且充分利用了面向对象技术的优点,应用程序可以相当容易地在各种Stream对象中拷贝数据。 下面介绍各种对象的数据和方法及使用方法。TStream对象 TStream对象是能在各种媒介中存储二进制数据的对象的抽象对象。从TStream 对象继承的对象用于在内存、Windows 阅读全文
posted @ 2011-05-20 13:51 lucky2011 阅读(10130) 评论(0) 推荐(1) 编辑
摘要: //type// TListView = class(ComCtrls.TListView)// procedure WMCopy(var Message: TWMCopy); message WM_COPY;// procedure WMCut(var Message: TWMCut); message WM_CUT;// procedure WMContextMenu(var Message: TWMContextMenu); message WM_CONTEXTMENU;// procedure WMRButtonUp(var Message: TWMRButtonUp); messag 阅读全文
posted @ 2011-04-18 13:56 lucky2011 阅读(213) 评论(0) 推荐(0) 编辑