博文

Windows 窗体之创建动态上下文菜单(快捷菜单)(2005-05-13 17:00:00)

摘要: 若要节省创建应用程序所需的时间并减少代码量,可以让多个控件共享单个上下文菜单对象。利用一个只包含该控件必需菜单项的“动态”上下文菜单(或快捷方式菜单),可以减少应用程序中控件所需的上下文菜单总数。以下演练显示如何更改每个控件的菜单项。

  创建应用程序

  以下步骤将创建一个 Windows 应用程序,它具有包含两个控件的窗体。在运行时,如果右击每个控件(只要它具有焦点,即被选定),将显示相应的上下文菜单。RadioButton 控件的上下文菜单将包含两个项;CheckBox 控件的上下文菜单将包含三个项。

  在 Windows 窗体上创建动态上下文菜单

  1.创建新的 Windows 应用程序。

  2.将一个“复选框”(CheckBox) 控件和一个“RadioButton”控件从“工具箱”拖到窗体上。

  虽然任何两个(或更多个)控件都可以共享一个上下文菜单,但使具有类似命令的控件共享上下文菜单也是有好处的,因为这样可以减少必需动态显示及隐藏的量。

  3.双击“工具箱”中的“ContextMenu”组件,将其添加到窗体中。它将成为共享的上下文菜单。

  4.在“属性”窗口中,将 CheckBox 控件和 RadioButton 控件的 ContextMenu 属性设置为 ContextMenu1(在 C# 中为 contextMenu1)。

  5.在“属性”窗口中,将 CheckBox 控件的 ThreeState 属性设置为 true。

  6.从设计器中双击 ContextMenu 组件,为该组件的 Popup 事件创建默认的处理程序。在事件处理程序中插入执行以下任务的代码:

  ·添加两个菜单项,一个表示控件的 Checked 状态,另一个表示 Unchecked 状态。

  ·用 If 语句检验 CheckBox 控件是否为窗体上的 SourceControl。根据检验结果,动态地添加第三个菜单项,该菜单项表示控件的 Indeterminate 状态。

  以下示例显示如何使用 Add 方......

阅读全文(4912) | 评论:0

微软Windows产品有非常低级的错误!(务看,务做)(2005-05-13 16:19:00)

摘要: 1 微软Windows产品有一个非常低级的错误!该错误来自微软Windows附带的计算器(开始 附件 计算器)。当你尝试用9216除以96并按下=按钮时,计算器竟然没有反应!!! 而9216处以97,98却能正常。
  2 还有一个错误,当你尝试用48000除以192并按下’=’按钮时,计算机竟然显示出你的名字!  
......

阅读全文(4107) | 评论:0

微软最高机密——Windows 98 源代码(特别版)(2005-05-12 17:22:00)

摘要:/*微软最高机密——Windows 98 源代码 项目:Chicago(tm) 项目发行日期:1998年夏天*/

#include "win31.h"
#include "win95.h"
#include "evenmore.h"
#include "oldstuff.h"
#include "billrulz.h"
#define INSTALL = HARD
char make_prog_look_big[1600000]; /*使程序看起来很大*/
void main()
{
while(!CRASHED) {  /*如果不崩溃*/
 display_copyright_message();  /*显示版权信息*/
 display_bill_rules_message();  /*显示比尔的规则的信息*/
 do_nothing_loop();        /*进行空循环*/
 if (first_time_installation) {  /*如果是第一次安装*/
  make_50_megabyte_swapfile();   /*创建50M的交换文件*/
  do_nothing_loop();        /*进行空循环*/
  totally_screw_up_HPFS_file_system(); /*将HPFS文件系统完全搞乱*/
  search_and_destroy_the_rest_of_OS/2(); /*搜寻并删除OS/2的所有残余信息*/
  hang_system();  /*挂起系统*/
  }
 write_something(anything); /*随便写一些信息*/
 display_copyright_message(); /*显示版权信息*/
 do_nothing_loop();  /*进行空循环*/
 do_some_stuff();
 if (sti......

阅读全文(4306) | 评论:0

在Visual C#中运用API函数获取系统信息(2005-05-12 15:26:00)

摘要:API函数是构筑Windows应用程序的基石,是Windows编程的必备利器。每一种Windows应用程序开发工具都提供了间接或直接调用了Windows API函数的方法,或者是调用Windows API函数的接口,也就是说具备调用动态连接库的能力。Visual C#和其它开发工具一样也能够调用动态链接库的API函数。本文中笔者就结合实例向大家介绍在Visual C#中如何调用各种返回值的API,该实例就是一个通过API函数调用获取系统信息的程序。

  在Visual C#中调用API的基本过程:

  首先,在调用API之前,你必须先导入System.Runtime.InteropServices这个名称空间。该名称空间包含了在Visual C#中调用API的一些必要集合,具体的方法如下:

   using System.Runtime.InteropServices;

  在导入了名称空间后,我们要声明在程序中所要用到的API函数。我们的程序主要是获取系统的相关信息,所以用到的API函数都是返回系统信息的。先给出在Visual C#中声明API的方法:

[DllImport("kernel32")]
public static extern void GetWindowsDirectory(StringBuilder WinDir,int count);


  其中,"DllImport"属性用来从不可控代码中调用一个方法,它指定了DLL的位置,该DLL中包含调用的外部方法;"kernel32"设定了类库名;"public"指明函数的访问类型为公有的;"static"修饰符声明一个静态元素,而该元素属于类型本身而不是指定的对象;"extern"表示该方法将在工程外部执行,同时使用DllImport导入的方法必须使用"extern"修饰符;最后GetWindowsDirectory函数包含了两个参数,一个为StringBuilder类型的,另一个为int类型的,该方法返回的内容存在于StringBuil......

阅读全文(2916) | 评论:0

c# 调用windowsAPI注意!(2005-05-12 13:49:00)

摘要:   Api函数是构筑Windws应用程序的基石,每一种Windows应用程序开发工具,它提供的底层函数都间接或直接地调用了Windows API函数,同时为了实现功能扩展,一般也都提供了调用WindowsAPI函数的接口, 也就是说具备调用动态连接库的能力。Visual C#和其它开发工具一样也能够调用动态链接库的API函数。.NET框架本身提供了这样一种服务,允许受管辖的代码调用动态链接库中实现的非受管辖函数,包括操作系统提供的Windows API函数。它能够定位和调用输出函数,根据需要,组织其各个参数(整型、字符串类型、数组、和结构等等)跨越互操作边界。
动态链接库函数使用前必须声明,相对于VB,C#函数声明显得更加罗嗦,前者通过 Api Viewer粘贴以后,可以直接使用,而后者则需要对参数作些额外的变化工作。
 动态链接库函数声明部分一般由下列两部分组成,一是函数名或索引号,二是动态链接库的文件名。
  譬如,你想调用User32.DLL中的MessageBox函数,我们必须指明函数的名字MessageBoxA或MessageBoxW,以及库名字User32.dll,我们知道Win32 API对每一个涉及字符串和字符的函数一般都存在两个版本,单字节字符的ANSI版本和双字节字符的UNICODE版本。

   需要提醒的是,每一种方法使用前必须在文件头加上:
  using System.Runtime.InteropServices;
 做为程序员,我们需要了解API从字面上了解便是编程接口,因此,做为开发者,需要了解的只是API的使用方法。

  API根据操作系统、处理器及功能性的不同而拥有很多不同的类型。   操作系统特用的API:

  每种操作系统都有许多通用的API以及一些特用的API,这些特用的API只能在当前操作系统中执行。

  例如:

  Windows NT 支持 MS-DOS, Win16, Win32, POSIX (Portable Operating System Interface), OS/2 console API; ......

阅读全文(3715) | 评论:0

网易老板丁磊之谜(转)(2005-05-10 15:00:00)

摘要: 1995年,当24岁的丁磊放弃电信局的优厚工作条件,一人孤身下广州的时候,没有人知道丁磊这个名字。也许,直到今天几个网迷朋友聚在一起侃大山,冷不丁提到“丁磊”,还有人会不知所云。可是提到网易、Yeah.net、163.net……你一定会想“难道丁磊和这些与你网络生活息息相关的东西有着千丝万缕的联系”?
  从一个普通的网民到大名鼎鼎的网易老板,年纪轻轻的丁磊无疑使人们再一次看到了Internet的神奇。28岁的丁磊,是个迷。

丁 磊 是 谁

  丁磊就是丁磊,网易的创始人兼老板,如果你连网易都不知道,那么你大可不必问“丁磊是谁”。事实上,丁磊并不出名,出名的是网易、是Yeah.net、是163.net……不信你用丁磊开发出的中文搜索引擎yeah.net搜索“丁磊”这两个字,你会发现搜索结果中除了一条以外,其他都是关于中国足球甲级球队武汉雅琪俱乐部一位同名球员的信息。然而那唯一的一条信息让笔者感觉收获颇丰,因为通过它,笔者找到了丁磊的个人主页。
  丁磊的个人主页不是位于大名鼎鼎的网易,而是在广州飞捷。笔者本不敢确定是否真是他的主页,因为那个主页有个大大咧咧“粗俗”得和一般网友主页没有区别的名字 网络大少爷的家。直到读了他的个人简历,才敢断定他就是网易的老板丁磊。
  “网络大少爷的家”对丁磊来说具有相当的纪念意义,但他可能已经淡忘了,毕竟那是1996年的事情了,那时候丁磊还没有网易。用今天的审美眼光来看,丁磊的主页真的是非常糟糕。浏览过程中我不得不使用CTRL+A将字体加为高亮才能看清楚内容,页面也相当的简单,我仅仅看到一个页面,点唯一的链接却报告“HTTP 404 - 未找到文件”。主页的内容虽然只是他个人的简介,却是弥足珍贵的资料,要知道想挖出一个躲在网络背后的人的“老底”不太容易。
  笔者并非那种会突然对某一事物、动物、人物产生莫名其妙的崇拜的那种人,自然不会费尽心思去挖某名人的老底、编制其花边新闻等等。特别提到丁磊的主页、个人简介的意义在于,大家从中读到了他骨子里的网民色彩(他现在也强调自己骨子里就是网民),读到了他曾经普通的一面。相信网络大少爷格言里那句“呜……男人的心,女人怎么会了解”,一定会让不少人大跌眼镜吧!
  疯狂解谜手册 :要做一个成功的网民,得从普通的网民做起。做......

阅读全文(4013) | 评论:0

比尔盖茨其人其事(2005-05-10 14:58:00)

摘要:威廉(比尔)H.盖茨是全球个人计算机软件的领先供应商-微软公司的创始人、前任董事长和首席执行官,盖茨的资产净值:564 亿美元。

  盖茨出生于1955年10月28日,他和两个姐妹一起在西雅图长大。他们的父亲William H.GatesII是西雅图的一名律师。他们的已故母亲Mary   Gates曾任中学教师、华盛顿大学的校务委员以及United WayInternational的女主席。

  盖茨曾就读于西雅图的公立小学和私立湖滨中学,在那里,他开始了自己个人计算机软件的职业经历,13岁就开始编写计算机程序。

  1973年,盖茨进入哈佛大学一年级,在那里他与Steve Ballmer住在同一楼层,后者目前是微软公司总裁。在哈佛期间,盖茨为第一台微型计算机-MITSAltair开发了BASIC编程语言。BASIC语言是John Kemeny和Thomas Kurtz于六十年代中期在Dartmouth学院开发的一种计算机语言。

  三年级时,盖茨从哈佛退学,全身心投入其与童年伙伴Paul Allen一起于1975年组建的微软公司。他们深信个人计算机将是每一部办公桌面系统以及每一家庭的非常有价值的工具,并为这一信念所指引,开始为个人计算机开发软件。

  盖茨有关个人计算机的远见和洞察力一直是微软公司和软件业界成功的关键。盖茨积极地参与微软公司的关键管理和战略性决策,并在新产品的技术开发中发挥着重要的作用。他的相当一部分时间用于会见客户和通过电子邮件与微软公司的全球雇员保持接触。

  在盖茨的领导下,微软的使命是不断地提高和改进软件技术,并使人们更加轻松、更经济有效而且更有趣味地使用计算机。微软公司拥有长期的发展战略,这一点可以从本财政年度26亿美元的研究与开发投资中得到反映。

  1995年,盖茨编写了《未来之路书》,在书中,他认为信息技术将带动社会的进步。该书的作者还包括微软公司首席技术官Nathan Myhrvold以及PeterRinearson,它在《纽约时报》的最畅销书排名中连续7周位列第一,并在榜上停留了18周之久。

  《未来之路》在20多个国家出版,仅在中国就售出40多万册。 1996年,为充分......

阅读全文(4208) | 评论:0

我国软件产业进成熟期 六大关键领域机会多 (2005-05-10 14:00:00)

摘要: 目前,中国软件产业还处于成长期,其市场潜力还远远没有挖掘出来。2005年中国软件市场总体规模将达到907亿元,增长率达到33%。2010年左右,中国软件产业将步入成熟期。安全软件、管理软件、中间件、协同软件、软件外包、开源软件是2005年软件市场中最值得关注的领域,它们的机会最多。

  ——安全软件:2005年,用户对安全软件的需求将呈现一个非常鲜明的特点,即用户需要一个完整的信息安全框架,而不是一个单纯的安全软件产品。

  ——管理软件:以ERP为代表的管理软件是中国软件产业中的最主要力量,2005年,它在整个软件市场所占的比例依然最大。用户对管理软件的需求将会有两方面的特点:第一,对个性化要求越来越高;第二,他们希望实施集成的套件产品。

  ——中间件:中间件软件将会在2005年出现新的局面。在技术层面,业务基础软件平台的表现会更为突出,也会有越来越多的软件提供商开发出相应的产品。在用户层面,2004年以前,用户对中间件基本上处于概念接受阶段。经过10多年的教育,用户现在不仅从概念上接受了中间件,也在IT系统的建设中将中间件纳入其中。

  ——协同软件:2005年,协同软件还会处在产业的导入期。用户对协同软件的需求特点是,人们对协同的理念普遍认同,但用户对协同理念具体体现在什么地方并不清楚。因此,他们希望看到一些更实在的、既能充分体现协同理念又能帮他们解决在管理软件中所遇到问题的协同软件产品。

  ——软件外包、开源软件:它们将是2005年软件市场最具潜力的领域,尤其是软件外包,在中国更有巨大的发展前景。计世资讯预计,2005年,软件外包市场的增长率将达到52%,在与印度的竞争方面也会有更加出色的表现。

......

阅读全文(3690) | 评论:0

中国专业软件开发人员将每年递增25.6% (2005-05-10 14:00:00)

摘要:计世网消息 4月19日消息,据市场研究公司IDC最新发表的研究报告称,从2003年至2008年,中国和印度的专业软件开发人员将分别以平均每年25.6%和 24.5%的速度快速增长。从2006年开始,亚太地区的专业软件开发人员的数量将超过北美。中东和非洲地区的专业软件开发人员的数量从2003年至 2008年将以平均每年18.3%的速度增长,是全球各大地区中增长速度最快的。北美地区的专业软件开发人员的数量是全球普及率最高的。

  IDC负责应用程序开发和应用研究部门的副总裁Stephen Hendrick表示,考虑到中国和印度的人口超过了全球人口的三分之一,以及许多厂商都预计亚太地区的IT开支将增长等因素,亚太地区的专业软件开发人员占统治地位是可以预期的。对于北美的经济大国来说,北美一直是大多数软件开发人员的家园。然而,程序开发自动化技术、海外外包和日益提高的生产效率将对北美地区软件开发人员数量的增长率带来下降的压力。

  IDC预测,从2003年至2008年,全球专业软件开发人员的数量将以平均每年9.8%的速度增长。到2008年,全球专业软件开发人员的数量将达到1490万人。这个预测的数字是以全球人口统计、文化水平的变化和IT开支的增长等因素为依据的。

  IDC称,全球专业软件开发人员数量最多的十个国家依次是美国、俄罗斯、印度、日本、加拿大、德国、中国、英国、法国和意大利。
......

阅读全文(4479) | 评论:0

“.NET时代”改变微软 (2005-05-10 13:59:00)

摘要:  质疑和迷惑从来都没有真正远离过.NET。于是,越来越以成熟商人姿态出现的微软,做出把.NET一步步带入务实阶段的选择,也就愈发成为了一种必然
  “.NET是一项伟大的技术,我只是觉得,微软迷失了方向。”Richard Grimes在今年3月末接受媒体采访时说道。作为微软在技术方面最重要的几位代言人之一,拥有半导体物理博士学位的英国人Richard是当今享誉世界的COM/.NET技术专家。然而今年2月1日,就是这位资深的微软技术人士,却在其开设于DDJ网站的专栏中发表了一篇名为《Mr. Grimes' Farewell》的文章,以“告别.NET”的态度列举了微软推行.NET过程中种种技术层面的失误,表达了自己对.NET技术的失望。此举立刻在整个微软技术社区内引起了轩然大波。

  微软公司主管Visual C#的产品经理Dan Fernandez很快就在他的Blog上对Richard的文章做出了正面回应。“Richard明确宣称该文章是‘自己的观点’,也就是说,他的文章应该被看作是他自己对于.NET现状的看法,而不是讨论我们走了多远、要到哪里去。”针对Richard所提出的三个论点—.NET框架组件太大了以至于妨碍了它的应用、.NET框架组件的设计问题,以及对Visual Basic的抨击,Dan逐条进行了反驳。

  Richard在随后接受CSDN采访时则明确表示:“我现在也仍然非常赞赏.NET是一个伟大的技术”,“我不反对.NET,我只是反对微软对于.NET的态度的变化。现在的微软,一切都是销售和市场决策优先,技术上的因素被放在了后面考虑。我希望看到的是微软在技术上的创新,对销售数字不感兴趣。”Richard因此选择了一种较为极端的表达方式:“我不能眼看着一些不足阻碍着.NET的发展而沉默不语。”

  遭遇信任危机?

  实际上,类似Richard观点的质疑和迷惑,从来都没有真正远离过.NET。“微软花了很大力气向大家解释.NET是什么,却没有意识到,这种解释本身恰恰说明了.NET最大的弱点:目标模糊。”CSDN的观点颇具代表性。从某种角度看,这其实也正反映了微软自己的困惑。作为一个规模庞大的技术战略,.NET身上承载了太多的内涵和盖茨的期望,而在短时间内,要完成一个崭新平台的迁移......

阅读全文(5191) | 评论:0