中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > Visual C++ > 按钮
如何在标题栏上增加按钮
作者:jeffreyren 时间:2001-10-18 10:22 出处:互联网 责编:chinaitpower
              摘要:如何在标题栏上增加按钮
如何在标题栏上增加按钮

作者:浙大快威邮电开发部 陈勇
 

    大家在使用某些软件的过程中,有没有注意到有些软件有一些很有趣的 东西。比如说在主
窗口的标题栏上居然有一个按钮。在Internet中随处可见这样的小控件。按钮怎么可以加入到
非客户区(Client)呢? 

    在这里,最关键的一点就是,大家不要被传统知识误导:真的认为它是 一个按钮。有名柄
(handle)的控件当然不能放在标题栏上了。有经验的程序员 用Spy++跟踪一下的话,马上就会
发现其中的秘密。它并不是一个按钮,只不 过是处理成按钮的样子罢了。 

    既然知道了所以然,那么我们为什么不能自己来做一个呢,当然没问题,下面我们就用
Delphi来实现它,讲注意我的注解。 

    在具体实例之前,我们应该知道几个关于标题栏的重要的消息: 

    WM_NCPAINT:重画标题栏消息。我们必须截住它,可以在这里重画按钮; 

    WM_NCLBUTTONDOWN:在标题栏上按下鼠标左键消息。我们可以截住它,在标题栏上画出按
钮按下的样子,并且可以在其中进行自已的单击事件的处理,使得它像一个按钮; 

    WM_NCLBUTTONUP:在标题栏上释放鼠标左键消息。我们可以截住它,在标题栏上画出按钮
弹起的样子; 

    WM_NCLBUTTONDBLCLK:在标题栏上双击鼠标左键消息。我们可以截住它,当在按钮区域双
击时,我们就该使其无效,从而避免窗体执行最大化和还原操作。 

    WM_NCRBUTTONDOWN:在标题栏上按下鼠标右键消息。我们可以截住它,当在按钮区域双击
时,我们就该使其无效,从而避免弹出窗体按制菜单。 

    WM_NCMOUSEMOVE:在标题栏上移动鼠标消息。我们可以截住它,当鼠标移出按钮区域时,
我们就必须画出按钮没有被按下,即凸起时的样子。 

    WM_NCACTIVATE:当标题栏在激活与非激活之间切换时收到该消息。我们可以截住它,当该
窗口处理激活状态时,我们可以做一些事情,比如说将我们的标题栏按钮上的字体变灰或变黑
来指示该窗口的当前状态。下面我没有加入该项功能,如果大家感兴趣的话,可以自己完成。 

    (大家从这里可以发现,标题栏的消息都是WM_NC开头的) 

    知道了原理之后,相信大家一定可以做出更漂亮的按钮来。

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有