WEB开发网
开发学院软件开发VC 在VC中透明浮动按键的实现 阅读

在VC中透明浮动按键的实现

 2008-11-13 19:34:27 来源:WEB开发网   
核心提示: 这个类还必须具有三个成员变量:CFont* m_pFont;CBitmap* m_pBitmap;UINT mBtnStats;在构造函数中初始化这些变量m_pBitmap=0;m_pFont=0;//赋予0是可以的mBtnStats=BTN_NORMAL;在折构函数中拆除位图if(m_p

这个类还必须具有三个成员变量:

CFont* m_pFont;

CBitmap* m_pBitmap;

UINT mBtnStats;

在构造函数中初始化这些变量

  m_pBitmap=0;
  m_pFont=0;
  //赋予0是可以的
  mBtnStats=BTN_NORMAL;

在折构函数中拆除位图

if(m_pBitmap!=0) delete m_pBitmap;

这样,一个透明的浮动式按键类就做好了,具体实现方法以下:

1.接管对话框的BUTTON,首先在对话框上画一个BUTTON,再加一个PICTURE图片,BUTTON的风格必须加入OWNER DRAW及去掉VISIBLE,把BUTTON移到PICTURE上适当的位置,在对话框类加入CDrawButton类成员m_myButton,由于按键初始化时必须保存对话框的图象,而对话框在运行InitDialog()或第一次运行OnPaint()时对话框的控件还没有真正显示出来,我们只好在OnMouseMove()中进行初始化:

m_myButton.AutoLoad(IDC_BUTTON1,this);

AutoLoad()只运行一次。

2.动态建立CDrawButton,在对话框类或CxxxView类加入CDrawButton类成员m_myButton,可以在对话框的InitDialog()或CxxxView类的InitialUpdate()中加入:m_myButton.Create()函数,必须包含BS_OWNERDRAW而不能有WS_VISIBLE风格,然后在OnMouseMove()或OnDraw()中进行初始化:m_myButton.LoadBack(this);注意应加在OnDraw()的最后。

同样地,LoadBack()只运行一次。

(如果按键比背景的图片迟建立而具有可见(Visible)属性,则会把图片抹掉,所以必须去掉VISIBLE属性或不能加入WS_VISIBLE风格)

·当鼠标移到按键区域时,改变鼠标

这个很容易实现,不在这里多说了。

上一页  1 2 3 4 5 6 

Tags:VC 透明 浮动

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接