宣告函式如下:
FUNCTION ulong GetDC(ulong hwnd) LIBRARY "user32.dll"
FUNCTION ulong DeleteDC(ulong hdc) LIBRARY "gdi32.dll"
FUNCTION ulong CreateRectRgn(ulong X1,ulong Y1,ulong X2,ulong Y2) LIBRARY "gdi32.dll"
FUNCTION ulong CreateRoundRectRgn(ulong X1,ulong Y1,ulong X2,ulong Y2,ulong X3,ulong Y3) LIBRARY "gdi32.dll"
FUNCTION ulong SetWindowRgn(ulong hWnd,ulong hRgn,boolean bRedraw) LIBRARY "user32.dll"
FUNCTION ulong CombineRgn(ulong hDestRgn,ulong hSrcRgn1,ulong hSrcRgn2,ulong nCombineMode) LIBRARY "gdi32.dll"
FUNCTION ulong CreatePolygonRgn(ref st_Point lpPoint[],ulong nCount,ulong nPolyFillMode) LIBRARY "gdi32.dll"
FUNCTION ulong CreateEllipticRgn(ulong X1,ulong Y1,ulong X2,ulong Y2) LIBRARY "gdi32.dll"
FUNCTION ulong FrameRgn(ulong hdc,ulong hRgn,ulong hBrush,ulong nWidth,ulong nHeight) LIBRARY "gdi32.dll"
Function ulong CreateSolidBrush(ulong crColor) LIBRARY "gdi32.dll"
function Integer ReleaseDC ( long hwnd, long hdc ) library "user32"
function long DeleteObject ( long hobject ) library "gdi32"
FUNCTION ulong GetWindowRgn(ulong hWnd,ulong hRgn) LIBRARY "user32.dll"
用PB新建了一個視窗,在視窗的OPEN事件中:
Constant integer CORNER = 16
long hwnd,hdc,ll_FullRgn,ll_PointRgn,w,h
st_point shapev[]
long hbrush
//// 變數初始化
hwnd = Handle(this)
hdc = GetDC(hwnd)
w = UnitsToPixels(this.Width , XUnitsToPixels!)
h = UnitsToPixels(this.Height , YUnitsToPixels!)
ll_fullrgn = CreateRectRgn(0, 0, 100,100)//建立矩形剪裁區域。
hBrush = CreateSolidBrush(16479614)
FrameRgn(hdc,ll_FullRgn,hBrush,3,3)//這里,用了畫邊框的函式,但是視窗打開后,仍舊沒有邊框,不知什么原因
SetWindowRgn(hwnd, ll_FullRgn,FALSE)
DeleteObject(ll_FullRgn)
ReleaseDC(hwnd,hdc)
uj5u.com熱心網友回復:
沒有人知道嗎?uj5u.com熱心網友回復:
手上沒MSDN,隨便說說。這東西我以前弄過,但是用VC做的。
記憶中這些函式貌似要傳指標,可能是因為這個問題引起的,PB不支持指標。
uj5u.com熱心網友回復:
邊框畫好之后由于視窗重繪所以又被擦掉了~~uj5u.com熱心網友回復:
方法一:放到resize事件中;方法二:放到postevent的事件中,可以看到一次,在視窗重繪的時候就會被擦掉的~~
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/82578.html
標籤:API 調用
上一篇:跪求高手解答,急!急!急!
下一篇:sybase 資料庫連接錯誤
