• 您的位置我爱Aspx >> VC.Net >> <b>Visual C++中位图按钮的新颖设计</b>
  • <b>Visual C++中位图按钮的新颖设计</b>

  • 作者:aspxer  来源:internet  日期:2007-5-21 23:13:26  关键字:
  • lpszBitmapResource是位图按钮正常状态(U)下的位图文件名。

    lpszBitmapResourceSel 是位图按钮按下状态(D)下的位图文件名。

    lpszBitmapResourceFocus 是位图按钮获得输入状态(F)下的位图文件名。

    lpszBitmapResourceDisabled 是位图按钮禁止状态(X)下的位图文件名。

    SetCapture( )和 ReleaseCapture( )

    SetCapture()对鼠标进行”捕捉”,即使鼠标光标已经移出该窗口,窗口仍能够接受到所有有关鼠标的消息。ReleaseCapture( )则用来释放对鼠标的捕捉。

    当鼠标触及但尚未按下时,并不对应其中任何一种状态,可见VC++并不提供相应的机制,以解决本文所提出的问题。本程序利用鼠标在该位图按钮所在范围移动时,将其设置成获得输入状态,调入第三资源文件“F”位图文件加以实现。在鼠标触及该位图时,使之“浮现”出来,并将鼠标光标变成小手形状,再加以振铃以示提醒。同时由于使用SetCapture()函数,故需要对鼠标的各种操作进行设计。主要程序段如下。

    三、主要程序段

    笔者编写了一个小演示程序,简单模拟电器开关功能。它有两个位图按钮和一个用作状态显示屏的编辑控制框。当鼠标位于位图按钮之上时,状态显示屏均显示"鼠标的光标在位图按钮上"。电源开关开时,按“喇叭”位图按钮则会发声;否则“喇叭”位图按钮变灰,不起作用。

    void CBmpDlg::OnMouseMove(UINT nFlags, CPoint point)

    {

    CWnd * pWnd;

    HCURSOR MyCursor;

    CRgn m_regionPower; //Region of POWER Button

    CRgn m_regionPlay; //Region of PLAY Button

    我对这篇文章有话说?
  • 广告位招租,广告代号:content_468_15
  • 上一篇:<b>在VC中怎样实现软件的注册机制</b>
    下一篇:<b>为CListBox加上智能水平滚动条</b>
  • 相关文章