Private Declare Function FrameRgn Lib "gdi32" (ByVal hdc As Long, ByVal hRgn As Long, ByVal hBrush As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long
Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
Private Declare Function CreateSolidBrush Lib "gdi32" (ByVal crColor As Long) As Long
Private Declare Function PaintRgn Lib "gdi32" (ByVal hdc As Long, ByVal hRgn As Long) As Long
Private Sub Form_Load()
Dim kl As Long
hBrush = CreateSolidBrush(QBColor(0)) '創建涮子
Me.Picture1.FillColor = QBColor(9) '設定填充色
kl = FrameRgn(Picture1.hdc, Picture1.hWnd, hBrush, 20, 20) '繪制一個邊框
Print kl '如果FrameRGN繪制成功就回傳非0
Me.Picture1.Refresh '涮新
DeleteObject (hBrush) '洗掉涮子
End Sub

以下是原檔案http://pan.baidu.com/s/1mg6YSek
以下是API的解
FrameRgn
編輯
VB宣告 Declare Function FrameRgn Lib "gdi32" Alias "FrameRgn"
(ByVal hdc As Long, ByVal hRgn As Long, ByVal hBrush As Long
, ByVal nWidth As Long, ByVal nHeight As Long) As Long
說明
用指定刷子 圍繞指定區域 畫一個外框
回傳值 Long,
執行成功回傳非零值,
失敗為0
引數表
引數 型別及說明
hdc Long,設備場景句柄
hRgn Long,將資料設備坐標填充的區域句柄
hBrush Long,將用的刷子句柄
nWidth Long,垂直邊框寬度(以設備單元為單位)
nHeight Long,水平邊框高度(以設備單元為單位)
uj5u.com熱心網友回復:
后來我改為這樣還是不行Dim kl As Long
hBrush = CreateSolidBrush(QBColor(0)) '創建涮子
Me.Picture1.FillColor = QBColor(9) '設定填充色
kl = FrameRgn(Picture1.hdc,Picture1.hWnd, hBrush, 20, 20) '繪制一個邊框
Print kl '如果FrameRGN繪制成功就回傳非0
SetWindowRgn Picture1.hdc, kl, True '############################
Me.Picture1.Refresh '涮新
DeleteObject (hBrush) '洗掉涮子
uj5u.com熱心網友回復:
FrameRgn第二個引數賦值錯誤uj5u.com熱心網友回復:
幫下手,怎設轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/131270.html
標籤:API
