Option Explicit
Private Declare Function BitBlt& Lib "gdi32" (ByVal hDestDC&, ByVal x1&, ByVal y1&, ByVal nWidth&, ByVal nHeight&, ByVal hSrcDC&, ByVal xSrc&, ByVal ySrc&, ByVal dwRop&) Private Const PI As Double = 3.1415926535898 Private Sub Form_Load() Dim K% For K = 0 To 89 CboDegrees.AddItem K Next CboDegrees.ListIndex = 30 Move (Screen.Width - Width) \ 2, (Screen.Height - Height) \ 3 End Sub Private Sub CboDegrees_Click() Dim K% Dim N# Dim Deg% Dim PW%, PH% Dim NewLeft# Dim NewTop# Dim Inc# PW = Pic.Width - 1 PH = Pic.Height - 1 Deg = CboDegrees.Text Inc = Tan((PI / 180) * Deg) Cls If OptOrientation(0).Value Then Line (0, 0)-(Inc * PH + PW, PH), &HFFFFFF, BF For K = PH To 0 Step -1 BitBlt hDC, NewLeft, K, PW + 1, 1, Pic.hDC, 0, K, vbSrcCopy NewLeft = NewLeft + Inc Next Refresh Else Line (0, 0)-(PW, Inc * PW + PH), &HFFFFFF, BF For K = PW To 0 Step -1 BitBlt hDC, K, NewTop, 1, PH + 1, Pic.hDC, K, 0, vbSrcCopy NewTop = NewTop + Inc Next End If Refresh End Sub Private Sub OptOrientation_Click(Idx%) CboDegrees.SetFocus CboDegrees_Click End Sub Option Explicit Private Declare Function BitBlt& Lib "gdi32" (ByVal hDestDC&, ByVal x1&, ByVal y1&, ByVal nWidth&, ByVal nHeight&, ByVal hSrcDC&, ByVal xSrc&, ByVal ySrc&, ByVal dwRop&) Private Const PI As Double = 3.1415926535898 Private Sub Form_Load() Dim K% For K = 0 To 89 CboDegrees.AddItem K Next CboDegrees.ListIndex = 30 Move (Screen.Width - Width) \ 2, (Screen.Height - Height) \ 3 End Sub Private Sub CboDegrees_Click() Dim K% Dim N# Dim Deg% Dim PW%, PH% Dim NewLeft# Dim NewTop# Dim Inc# PW = Pic.Width - 1 PH = Pic.Height - 1 Deg = CboDegrees.Text Inc = Tan((PI / 180) * Deg) Cls If OptOrientation(0).Value Then Line (0, 0)-(Inc * PH + PW, PH), &HFFFFFF, BF For K = PH To 0 Step -1 BitBlt hDC, NewLeft, K, PW + 1, 1, Pic.hDC, 0, K, vbSrcCopy NewLeft = NewLeft + Inc Next Refresh Else Line (0, 0)-(PW, Inc * PW + PH), &HFFFFFF, BF For K = PW To 0 Step -1 BitBlt hDC, K, NewTop, 1, PH + 1, Pic.hDC, K, 0, vbSrcCopy NewTop = NewTop + Inc Next End If Refresh End Sub Private Sub OptOrientation_Click(Idx%) CboDegrees.SetFocus CboDegrees_Click End Sub |