怎样屏蔽掉开始按钮? (转)
怎样屏蔽掉开始按钮? (转)[@more@]procedure TForm1.Button1Click(Sender: Tobject); begin {Disable the start button} EnableWindow(FindWindowEx(FindWindow('shell_TrayWnd', nil),0, 'Button', nil),false); end; procedure TForm1.Button2Click(Sender: TObject); begin {Enable the start button} EnableWindow(FindWindowEx(FindWindow('Shell_TrayWnd', nil),0,'Button',nil),true); end; 注意:如果按win键还是可以弹出开始菜单的。
回调函数、消息和事件例程 (转)
回调函数、消息和事件例程 (转)[@more@]回调函数、消息和事件例程 调用(calling)机制从汇编时代起已经大量使用:准备一段现成的代码,调用者可以随时跳转至此段代码的起始地址,执行完后再返回跳转时的后续地址。cpu为此准备了现成的调用指令,调用时可以压栈保护现场,调用结束后从堆栈中弹出现场地址,以便自动返回。借堆栈保护现场真是一项绝妙的发明,它使调用者和被调者可以互不相识,于是才有了后来的函数和构件,使吾辈编程者如此轻松愉快。若评选对人类影响最大之发明,在火与车轮之后,笔者当推压栈调用。 话虽这样
避免因在类中使用静态函数而大量使用静态变量 (转)
避免因在类中使用静态函数而大量使用静态变量 (转)[@more@]拿来最常见的例子:线程函数。 线程函数要么是全局函数,要是是类里的静态函数。 作为全局函数的时候破坏了类的封装 而作为类的静态函数的话,又必须把静态函数中用到的成员变量、函数都改为静态、、、 总的来说就是-----用之不爽! 有什么办法既不破坏类的封装又不因为静态函数使用大量静态变量和静态函数呢? 答案:使含有静态函数的类的实例作为全局变量出现(其实这样做还是用全局、、什么道理我也讲不清,管它呢~) 举个例子吧,我要在CMainFrame里加一个ThreadProc线
VB程序员眼中的C# 9 (转)
VB程序员眼中的C# 9 (转)[@more@] 在C# 中Switch 是分支判断语句,它类似于vb 中的‘Case’语句。比如: 在VB中: select Case X Case 1 Func1 Case 2 Func 2 End Select 在C#中: switch (x); { case 1: func1(); break; case 2: func2(0); break; }
VB程序员眼中的C# 8 (转)
VB程序员眼中的C# 8 (转)[@more@]通过使用ReadOnly,我们可以在构造器或初始数中设置一个值,这个值以后就不能再被修改。 比如,我们将一个叫做Color 的属性设定为ReadOnly: public static readonly Color Red; Structs C# 中的Struct 是一种合成数据类型,由一些元素或数据类型组成。我们可以将它与 vb 中的用户定义类型相比较。比如: struct Point { public int x; public int y; } 然后就可以象下面一样引用这个struct: Point p1; p1.x=10; p1.y=1
VB程序员眼中的C# 7 (转)
VB程序员眼中的C# 7 (转)[@more@] public sealed class x { } Internal 如果将Internal 修饰符放在一个类或成员上,那么这个类或成员就只能被同一个汇编中的其它类使用。这与 vb 中的 Friend 修饰符相同。 Protected Protected修饰符用于准许对从这个类中派生出来的类进行访问。 Internal Protected Internal Protected 表示允许Internal 或 Protected 访问。 初始化 在C# 中,声明一个成员的同时就可以设置其初始值,从而简化代码。比如: public int counter=10
VB程序员眼中的C# 5 (转)
VB程序员眼中的C# 5 (转)[@more@]基础类是那些继承来的类。派生类是那些继承了一个基础类的类。 Constructor(构造器) Constructor是一个方法,当构造一个类的一个对象时调用它,通常在初始化一个类时被使用。一个Constructor方法与类的名字相同、没有返回类型而且不返回任何值。 Ref 和 Out 将一个参数标记为 Ref 类型意味着对其值进行的任何修改都会维持,这与 vb 的‘By Reference’相似。比如下面的例程代码执行后,p 的值将被改变: void refMethod(ref int n) { n += 3; }
VB程序员眼中的C# 3 (转)
VB程序员眼中的C# 3 (转)[@more@] C# 中的事件与VB中的事件作用相同。但是在C# 中,任何类都可以产生一套事件,并且任何对象都可以捆绑这些事件。C# 中的事件是以Delegates为基础的。设计事件时,通常认为Delegates要接受两个参数:第一个参数是引起事件的对象,第二个参数是以个包含事件自变量的对象。 现在我们为一个事件定义一个Delegates,当有新邮件到来时将激活这个事件: ===delegate声明============= pubic delegate void NewMailEventHandler(object Sender, NewMailEventArgs e); ===事件声明====
VB程序员眼中的C# 6 (转)
VB程序员眼中的C# 6 (转)[@more@]虚拟函数就是指:在要确定究竟调用哪个方法(一个基本类或派生类中的一个)的地方被延迟的函数。根据类型不同,函数将延迟到运行时间。比如说,有一个类‘CivilEngineer’,它含有一个方法叫做‘Charge’。这个类是从Engineer 中派生出来的,而且Engineer也有一个方法叫做‘Charge’。这时,一个虚拟函数将允许运行时间判断对象是一个 Engineer还是一个CivilEngineer,然后执行合适的函数。 Override 修饰符 Override 与继承有关系。比方说,类‘A’和类‘B’都有一个函数叫做‘SaveAllRecor
类似网络蚂蚁的悬浮窗体 (转)
类似网络蚂蚁的悬浮窗体 (转)[@more@]源码: protected: virtual void __fastcall CreateParams(TCreateParams & Param); void __fastcall TForm2::CreateParams(TCreateParams & Param){ //调用基类 TForm::CreateParams(Param); //去掉窗口标题区 Param.Style=Param.Style & ~WS_CAPTION; Param.Style=Param.Style | WS_POPUP; //设为总在最上面 Param.ExStyle=Param.ExStyle | WS_EX_TOPMOST; //设windows Owner为Desktop Window Param.WndParent
borland c++ bulder的文件操作总结-2 (转)
borland c++ bulder的文件操作总结-2 (转)[@more@]二、直接I/O文件操作 这是C提供的另一种文件操作,它是通过直接存/取文件来完成对文件的处理,而上篇所说流式文件操作是通过缓冲区来进行;流式文件操作是围绕一个FILE指针来进行,而此类文件操作是围绕一个文件的“句柄”来进行,什么是句柄呢?它是一个整数,是系统用来标识一个文件(在windows中,句柄的概念扩展到所有设备资源的标识)的唯一的记号。此类文件操作常用的函数如下表,这些函数及其所用的一些符号在io.h和fcntl.h中定义,在使用时要加入相应的头文件。 函数 说明 open
续: 关于ISO, CMM的误区. (精彩精彩!!@!!!!!!)不要错过 (转)
续: 关于ISO, CMM的误区. (精彩精彩!!@!!!!!!)不要错过 (转)[@more@] 误区:1:CMM比ISO9000好:CMM和ISO9000都只是一种标准,前者只是根据一个研究所的研究报告制订的一套标准,必然有很多不完善的地方.ISO9000是一个国际标准,通用性强.就软件企业来说,两者在对企业的质量管理的指导原则上的要求是差不多的.而实现和表述上是不同的,不能笼统的说谁比谁好. CMM注重过程要求,它的每一级对所要实现的关键过程域都有详细的要求,并且强制企业能自我更新和持续改进,以实现缺陷预防.这对于推动软件企业自身质量管理素质是非常有利的.ISO9000的
Borland C++ Builder的API后门 (转)
Borland C++ Builder的API后门 (转)[@more@]拦截windows消息需要以下几步: 在表单头文件内(如Unit1.h) 1. 在类声明中建立消息映射表,把某条消息的处理权交给自定义的消息处理函数。 BEGIN_MESSAGE_MAP MESSAGE_HANDLER(Windows消息名,TMessage,消息处理函数名) MESSAGE_HANDLER(...) END_MESSAGE_MAP(TForm) 2. 在类声明的private区内声明消息处理函数。 private: // User declarations void __fastcall 消息处理函数名(TMessage &Message); 在表单文件内(如Unit1.cpp) 3. 写出消息处理函数,在这里实
用C++Builder在WINNT下编制一个Service (转)
用C++Builder在WINNT下编制一个Service (转)[@more@] ---- windows NT与Windows 9x有一个非常重要的区别,即Windows NT提供了很多功能强大的Service(服务)。这些Service可以随着NT的启动而自启动,也可以让用户通过控制面板启动,还可以被win32应用程序起停。甚至在没有用户登录系统的情况下,这些Service也能执行。许多FTP、WWW服务器和数据库就是以Service的形式存在于NT上,从而实现了无人值守。就连最新版的“黑客”程序Back Orifice 2000也是以Service形式在NT上藏身的。由于Service的编程较复杂,许多开发者想开
标准模板库STL (转)
标准模板库STL (转)[@more@]标准模板库介绍 标准模板库,也叫 STL,是一个 C++ 容器类库,算法和迭代器。他提供许多基本算法,数据结构。STL 是一个通用库,即可以充份定制:几乎所有的 STL 组件都是模板。在你使用 STL 前,你必须了解模板的工作情况。 容器和算法 和许多类库一样,STL 包含容器类 - 可以包含其他对象的类。STL 包含向量类,链表类,双向队列类,集合类,图类,等等。他们中的每个类都是模板,能包含各种类型的对象。例如,你可以用 vector<int> ,就象常规的 C 语言中的数组,除了 vector 不要你象数组那样考
unix 2 windows 的C++程序移植的一些常见问题 (转)
unix 2 windows 的C++程序移植的一些常见问题 (转)[@more@]unix 2 windows 的C++程序移植的一些常见问题 unix下的编译器我已经记不清楚了, 总之因为原来的程序是用makefile的形式编译的, 虽然VC也支持makefile的形式, 但是无论如何在给原来的unix的编译器用的 makefile文件是不可能直接给VC的编译器用, 而想去了解 makefile 文件的语法和如何实现相当的功能是一件吃力不讨好的事。所以我最后在VC下用了win32 Console 程序的形式 来完成程序的移植工作, 当然用其它的形式如 MFC AppWized ...也是可以的, 反
给错误提示框加上中文的标题 (转)
给错误提示框加上中文的标题 (转)[@more@]给错误提示框加上中文的标题在数据窗口中,PowerBuilder提供了强大的数据校验的功能,使你不用在程序中写额外的代码,就可以对数据进行校验。但是,美中不足的是如果你用数据窗口缺生活上的错误提示框,它的标题总是“DataWindow error”。这样就给中文用户带来很大的不便。有没有将标题改为中文的方法呢?有,那就是修改数据窗口的属性。方法如下:在对数据窗口操作之前,在窗口open事件中写入下列代码(假设你的数据窗口控件名为dw_1):dw_1.object.Datawindow.Message.Title="错误提示" 这样,
用VB“破解”有时间限制的程序 (转)
用VB“破解”有时间限制的程序 (转)[@more@]用VB“破解”有时间限制的程序张 胜 你是否经常遇到有时间限制的程序?我等懒人尤其对此特别反感,可惜囊中羞涩,只好反复修改其系统日期而使自己多用几次此软件——实在是辛苦!于是使用“Anyday32”,可惜也太麻烦了;再后使用“时光倒流”,也不好用,而且——居然还有bugs!......看样子只好自己动手做“VB软件DIY”了。 一、问题所在 有时间限制的程序大都是依靠在启动过程中检测系统日期,再与其记录的第一次使用日期(放于注册表或特殊文件中)进行对比检测是否试用期已到,若试用期
亚马逊的八条出路 (中) (转)
亚马逊的八条出路 (中) (转)[@more@]亚马逊的八条出路 (中) 田晖宁 Roland Berger策略咨询公司的合作伙伴艾力克·金特茨称:“亚马逊在线销售很有潜力。亚马逊可以成为一个专门为其它公司提供在线销售服务的公司。如果亚马逊在各个商品零售领域都成为领先者,亚马逊将非常强大,这将真正让亚马逊所有的潜力都发挥出来。” 出路二:放弃“做成全球最大”的目标 亚马逊注册的商标对投资人刺激不小。很多分析家认为亚马逊到了摆脱全方位作战模式的时候了,亚马逊目前甚至在做木工工具的广告,还有其它的一切。亚马逊夸耀在
嵌入式系统设计和Windows CE (转)
嵌入式系统设计和Windows CE (转)[@more@] 正是CE和其它全功能的嵌入式系統的時候了。利用相應較高級別的集成、較低的成本來減少任務,以及增加的性能都使得全新的應用成為可能。 在PDA上咝械