HTControl之CHTButton按钮控件类
一 实现机制及适用范围
此类是完全独立的,没有任何基类。直接由WIN32 API实现。这样就决定了此类不局限于windows平台下任何框架,比如:你可以在SDK,MFC,wxWidget等等方式下使用它。支持各种类型的按钮,比如:普通按钮,PNG透明按钮,复选框按钮,单选按钮等。窗体必须动态创建,代码段如下:
m_HTBtnClose.Create(758, 0, 39, 20,m_hWnd,iChildId++);
m_HTBtnClose.SetAllBitmap(m_hBmpBtnCloseNormal,m_hBmpBtnCloseDown,m_hBmpBtnCloseHover);
m_HTBtnClose.SetParentBgMemDC(m_hdcMemBuf);
二 简易的使用方式
一个窗口就是一个C++对象,要想实现某功能直接呼叫接口即可,没有附加的代码。减轻开发者负担。
三 窗体任意透明度
此类支持窗体以任意透明度显示,操作很简单,使用下面接口即可实现:
void SetTransparency(int iTransparency);
四 PNG透明按钮
系统默认按钮都是矩形或圆角矩形的,但是很多软件都有一些各种形状的按钮,实现方式可能都不同。
先说明一种比较笨拙的方式:把表现出来的按钮形状以外的区域绘制成与框架窗体一样,这样看上去就是异形按钮了。但是要是框架窗体背景更换了,那就麻烦了,按钮也得重画。
比较好的想法就是使用PNG透明按钮:腾讯qq,迅雷等软件的关闭,最小化等按钮就是透明PNG绘图(当然他们整个界面机制很可能是目前所谓的DirectUI无子窗口句柄),这样做的好处是,无论框架窗体背景如何变化,按钮的绘制都不需要改变。CHTButton类实现了这种PNG透明按钮。 |