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

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

2013-11-23 17:25:34  來源: PB編程 
  本文介紹在PowerBuilder中實現IE風格的圖標按鈕的技巧在C++ Builder開發工具中有一種圖標按鈕(SpeedButton)這種按鈕可以在鼠標移入按鈕後在圖片的周圍會出現凸出的邊框鼠標移出按鈕後邊框消失而在PowerBuilder中沒有提供這種功能的按鈕為了使開發的應用程序界面更豐富我們使用自定義圖形控件(Picture)擴展並實現了此功能這種方法設計出的程序簡潔實用

  實現功能

  按鈕可以顯示四種狀態圖形
  Normal狀態
  Disabled狀態
  MouseOver狀態(鼠標進入按鈕區)
  ClickDown狀態(鼠標按下)

  關鍵方法

  當鼠標進入按鈕區域時控件圖片改換成MouseOver狀態的圖片並設置狀態信號

  鼠標滑入按鈕區域後用Windows API函數SetCapture來捕獲鼠標輸入消息跟蹤鼠標位置

  當監測到鼠標滑出按鈕區域時用ReleaseCapture函數釋放鼠標捕獲恢復按鈕圖片到Normal狀態並設置狀態信號

  改變控件的圖片(PictureName)前先用ReleaseCapture釋放鼠標捕獲然後改變PictureName屬性值接著重新調用SetCapture函數因為改變圖片後PowerBuilder重新建立了控件窗口窗口的句柄(hWnd)也隨之改變了

  設計過程

  新建User Object 〉選擇Visual的Standard類 〉選擇Picture

  定義全局的或局部的外部函數

    // Declare External Functions
    
    function ulong SetCapture
    (ulong hwnd) library userdll
    function boolean ReleaseCapture
    (ulong hwnd) library userdll
    function boolean DrawEdge(ulong hdc
    ref rect qrc uint edge uint grfFlags)
    library userdll
      
      定義結構數據類型

    RECT
    { 
      long left 
      long top 
      long right 
      long bottom
    }
     定義控件共享變量
    
    // Declare Shared Variables
    
    boolean sb_SuppressHoverBorder

[]  []  []  []  


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