熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> PB編程 >> 正文

PowerBuilder制作IE風格的圖標按鈕[4]

2013-11-23 17:25:29  來源: PB編程 

      DrawEdge(GetDC(handle(this)) 
      lr_Border +++)
    end if

    return
    //
    // *** end lbuttondown event ***

    // LButtonUp 事件代碼
    // *** begin lbuttonup event ***
    //
    rect lr_Border

    if ib_MouseCaptured then 
      ib_MouseCaptured = FALSE 
      ReleaseCapture()
    end if

    if (XPos < or YPos < ) or (XPos > 
      thisWidth or YPos > thisHeight) then 
      in_State =  
      thisPictureName = is_PicNormal

    else 
      in_State =  
      thisPictureName = is_PicHover

      SetCapture(handle(this)) 
      ib_MouseCaptured = TRUE

      if not sb_SuppressHoverBorder then 
        lr_Borderleft =  
        lr_Bordertop =  
        lr_Borderright = UnitsToPixels 
        (thisWidth XUnitsToPixels!) 
        lr_Borderbottom = UnitsToPixels 
        (thisHeight YUnitsToPixels!) 
        DrawEdge(GetDC(handle(this)) 
        lr_Border +++
      end if 
    end if 
    // 產生Clicked事件
    thisevent post clicked()
    return  
    //
    // *** end lbuttonup event *** 
    // Other 事件代碼
    // *** begin other event ***
    //
    if messagenumber = and ib_MouseCaptured then 
      // wm_CaptureChanged
      ib_MouseCaptured = FALSE 
      in_State =  
      thisPictureName = is_PicNormal 
      return
    end if
  return
  //
  // *** end other event ***

  簡要說明

  ib_MouseCaptured變量是作為MouseMove事件的刷新控件圖片的信號燈及判斷是否已安裝了鼠標捕捉器

  sb_SuppressHoverBorder變量默認值為FALSE當值為TRUE時控件不繪制凸或凹邊框

  Other事件當鼠標捕捉器被釋放或被替換時會觸發WM_CAPTURECHANGED事件例如您在Clicked事件中調用MessageBox函數時將觸發WM_CAPTURECHANGED事件在此事件代碼中恢復按鈕到Normal狀態

[]  []  []  []  


From:http://tw.wingwit.com/Article/program/PB/201311/24554.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.