當前位置:編程學習大全網 - 編程語言 - vb設計壹個程序,使任意位置的壹個矩形以其左下角為中心旋轉15度。

vb設計壹個程序,使任意位置的壹個矩形以其左下角為中心旋轉15度。

這是壹個可讓矩形沿任意角度旋轉的代碼,在窗體上放壹個標簽,壹個文本框,壹個水平滾動條控件,如圖所示,然後將下列代碼復制進去即可:

Private?Declare?Function?CreateSolidBrush?Lib?"gdi32"?(ByVal?crColor?As?Long)?As?Long

'----------創建Region所需的函數、結構和常數-------------

Private?Declare?Function?CreateRectRgn?Lib?"gdi32"?(ByVal?x1?As?Long,?ByVal?y1?As?Long,?ByVal?x2?As?Long,?ByVal?y2?As?Long)?As?Long

Private?Declare?Function?FillRgn?Lib?"gdi32"?(ByVal?hdc?As?Long,?ByVal?hRgn?As?Long,?ByVal?hBrush?As?Long)?As?Long

Private?Declare?Function?DeleteObject?Lib?"gdi32"?(ByVal?hObject?As?Long)?As?Long

'------------旋轉、翻轉或縮放Region所需的函數、結構和常數-------------

Private?Declare?Function?ExtCreateRegion?Lib?"gdi32"?(lpXform?As?XFORM,?ByVal?nCount?As?Long,?lpRgnData?As?Any)?As?Long

Private?Declare?Function?GetRegionData?Lib?"gdi32"?(ByVal?hRgn?As?Long,?ByVal?dwCount?As?Long,?lpRgnData?As?Any)?As?Long

Private?Declare?Function?OffsetRgn?Lib?"gdi32"?(ByVal?hRgn?As?Long,?ByVal?X?As?Long,?ByVal?Y?As?Long)?As?Long

Private?Type?XFORM

eM11?As?Single

eM12?As?Single

eM21?As?Single

eM22?As?Single

eDx?As?Single

eDy?As?Single

End?Type

Const?pi?As?Single?=?3.1415926

Private?Sub?Form_Load()

HScroll1.Min?=?0

HScroll1.Max?=?360

HScroll1.Value?=?0

HScroll1.LargeChange?=?5

Text1.Text?=?0

Text1.Locked?=?True

End?Sub

Private?Sub?HScroll1_Change()

Text1.Text?=?HScroll1.Value

Dim?hRgn?As?Long

Dim?hBrush?As?Long

Dim?bytRegionData()?As?Byte

Dim?nSize?As?Long

Dim?xFrm?As?XFORM

Dim?nDegree?As?Long

nDegree?=?HScroll1.Value

hBrush?=?CreateSolidBrush(QBColor(CInt(Rnd()?*?15)))

hRgn?=?CreateRectRgn(0,?-100,?200,?0)

nSize?=?GetRegionData(hRgn,?0,?ByVal?0)

nSize?=?GetRegionData(hRgn,?0,?ByVal?0)

ReDim?bytRegionData(1?To?nSize)?As?Byte

nSize?=?GetRegionData(hRgn,?nSize,?bytRegionData(1))

With?xFrm

.eM11?=?Cos(nDegree?*?pi?/?180)

.eM12?=?-Sin(nDegree?*?pi?/?180)

.eM21?=?-.eM12

.eM22?=?.eM11

.eDx?=?0

.eDy?=?0

End?With

DeleteObject?hRgn

hRgn?=?ExtCreateRegion(xFrm,?nSize,?bytRegionData(1))

OffsetRgn?hRgn,?300,?300

FillRgn?Me.hdc,?hRgn,?hBrush

DeleteObject?hRgn

DeleteObject?hBrush

End?Sub

  • 上一篇:怎麽搭建linux centos服務器
  • 下一篇:按鈕編程語法
  • copyright 2024編程學習大全網