BCB控件制作和消息处理

1 前言

作为和delphi类似的rad(rapid application development)工具,c++ builder的强大功能不仅体现在数据库开发方面,也凸现于应用程序开发上(令人称绝的是这两方面结合得非常好)。仅就应用程序而言,要真正体现c++ builder的优势,开发出高质量的软件,则在拖拉拽放之外,尚需用到一些进阶技术。如消息处理、dll、ole、线程、sdk编程。c++ builder在这些方面都或多或少有独到的优势。此外,可以方便地制作自定义控件,也是c++ builder的一大特色和高级功能。本文将通过制作一个标题棒在窗口左边的对话框控件,来示范一些c++ builder中关于控件制作和消息处理的概念,同时涉及到一点sdk编程。我们将要制作的是一个对话框,就如同opendialog等一样,一调用其execute()方法,就弹出一个如图一所示的窗口。这个窗口的标题棒位于左方,绿色,文字走向为由下而上的90度字形,其功能和一般的标题棒相同,可以將鼠标移至该处来移动该窗口。

首先来完成这个窗口,然后用它来制作对话框控件。

2 利用wm_nchittest消息制作竖直标题的窗口

.wm_nchittest消息

c++builder将某些windows消息封装于事件(event)中,但无法囊括所有消息,如wm_nc**** 系列消息。wm_nchittest消息发生于游标(cursor)移动或鼠标按下、释放时,返回值指示目前游标所在位置,如返回hthscroll表示处于水平滚动条内,返回htcaption表示处于标题棒内(参见win32 sdk help)。其参数xpos、ypos分别表示游标的x、y坐标(相对于屏幕左上角),分别对应于lparam的低字和高字。如果拦截wm_nchittest消息,使得当鼠标在窗口左边按下时,人为地将返回值设为htcaption,则系统将以为是在标题棒内,于是将可以移动窗口,完成了标题棒的功能,至于颜色和文字,则与消息无关,将在下面叙述其原理。

时间: 2024-12-23 09:56:05

BCB控件制作和消息处理的相关文章

wpf日历控件制作过程分析(2) 自定义样式属性

接上篇wpf日历控件制作过程分析(1) 定义header 在header中,我们看到了定义一个自定义样式TitleStyle 1.自定义样式 看后台代码定义 Code /**//// <summary> /// The DependencyProperty for the TitleStyle property. /// Flags: none /// Default Value: null /// </summary> public static readonly Depende

C/S模式开发中如何利用WebBrowser控件制作导航窗体

原文:C/S模式开发中如何利用WebBrowser控件制作导航窗体 转自: CSDN 相信不少同学们都做过MIS系统的开发,今天这里不讨论B/S模式开发的问题.来谈谈winform开发.用过市面上常见进销存系统的同学肯定知道,在进入系统之后一般在mdi窗体中系统自动打开一个导航子窗体.将一些常见的功能以非常直观的图形展示给用户.观察市面上的此类产品,该功能基本是所有mdi窗体开发的管理系统中必备的功能窗体.下面我们就来分析一下如何在.net中实现这个功能.幸好我上次做了一个类似的系统,里面也用到

vc++6 0-用vc++6.0 利用windows media player控件制作播放器时

问题描述 用vc++6.0 利用windows media player控件制作播放器时 在win7 64位环境下 要对 播放器进行暂停 快进等操作时 调用 CWMPcontrols 函数时 显示 'CWMPcontrols.h': No such file or directory 头文件 也加了 cwmpcontrols.h 头文件换成小写也是不行的 也说不能打开 没有这个文件 cwmpcontrols.h 头文件是存在的在工程目录下: 解决方案 你的VC++版本太旧,没有这个头文件.建议你

Silverlight实用窍门系列:39.Silverlight中使用Frame和Page控件制作导航【附带实例源码】

在Silverlight中有时需要进入不同的XAML页面,但是一般情况下是不能实现"前进"和"后退"的,在这里我们可以使用Frame+Page控件制作导航功能实现上一页和下一页的跳转功能. 在本文中我们制作一个实例如下:添加一个Frame控件,然后点击"加载UC"和"加载PageShow"按钮加载UC.xaml和PageShow.xaml页面.在加载后我们可以通过鼠标右键菜单中的"上一页"和"下一

asp.net 控件制作下拉导航菜单

asp教程.net 控件制作下拉导航菜单 今天的一个小测试是老师让用.NET用控件来制作一个拉菜单要求如下: 将鼠标移到父菜单上弹出3个子菜单,而且每个子菜单都有超链接. 以下是我自己做的代码: <asp:Menu ID="Menu1" runat="server" Orientation="Horizontal" Width="100%"         Font-Size="14px" ForeC

IOS UI学习教程之使用UIImageView控件制作动画_IOS

本文实例为大家分享了IOS使用UIImageView控件制作动画的方法,供大家参考,具体内容如下 先添加40张tomcat的图片到资源列表中:名称为cat_eat0000.jpg到cat_eat0039.jpg. 1.定义所需控件 // 定义按钮,图片控件.可变数组对象 UIButton *actionbuttom; UIImageView *imageMove; NSMutableArray *imgsarray; 2.初始化各控件 // image动画 // 初始化UIImageView,大

如何用Excel控件制作简单报表

  ①报表的概念 这张报表包含了报表的基本元素,即页眉.页脚.横表头.竖表头.表头交叉区.单元格. 页 眉:位于报表的最上部分.作为报表的描述性信息,概括性的说明报表的名称.表号.批准机关.批准文号等. 页 脚:位于报表的最下部分,用于说明报表的其它信息,例如:单位负责人.部门负责人.制表人等信息. 横表头:也叫宾栏,位于报表的横方向的表头,它是统计的约束条件,也可能是描述信息.对于统计表来说横表头是可以分层的,并且上层的条件对它下面各层都起作用. 竖表头:也叫甲栏,报表竖方向的表头,它在统计表

无外部控件制作多媒体播放器(四)

控件|媒体 音乐文件列表也是个不容忽视的问题,自己定个格式当然可以,但好在大家熟悉的M3U格式并不复杂,MediaPlayer或WinAmp都支持它,通用性也好,比起wpl要简易得多,所以我就来介绍一下M3U格式文件的制作与读写 M3U是文本文件,以#EXTM3U开头,每个音乐条目占1-2行,当存在扩展信息时,首行采用#EXTINF:开头,第二行才是文件名:当没有扩展信息时,只是简单的一行,就是文件名:文件名可包含路径,也可不包含,不包含时音乐文件应该是与M3U文件在同一目录下. 整个格式就这么

无外部控件制作多媒体播放器(一)

控件|媒体 利用MCI指令制作播放器,简单实用,很适合于做为自己软件的一个附带功能或背景音乐,正是基于这点需求,我准备分几个部分来写: 1.MCI指令的简单使用:2.媒体播放的进度控制与音量调节:3.音乐信息的读取,包括MP3(ID3V1 & ID3V2)与ASF(WMA & WMV)等:4.音乐列表的建立与保存(M3U格式) 本来主要是想写播放音乐的,举个播放视频的例子,没什么别的意思,只是感觉播放音乐实在是简单,没什么可写,同时也是为了说明,MCI放视频也是可以的. Private C