home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 5_2007-2008.ISO / data / Zips / Realtime_I2062144242007.psc / meu.frm < prev    next >
Text File  |  2007-04-24  |  16KB  |  569 lines

  1. VERSION 5.00
  2. Object = "{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0"; "comdlg32.ocx"
  3. Begin VB.Form Form1 
  4.    AutoRedraw      =   -1  'True
  5.    BackColor       =   &H00000000&
  6.    BorderStyle     =   0  'None
  7.    Caption         =   "Realtime Image Rotation"
  8.    ClientHeight    =   8310
  9.    ClientLeft      =   0
  10.    ClientTop       =   0
  11.    ClientWidth     =   8520
  12.    KeyPreview      =   -1  'True
  13.    LinkTopic       =   "Form1"
  14.    ScaleHeight     =   554
  15.    ScaleMode       =   3  'Pixel
  16.    ScaleWidth      =   568
  17.    ShowInTaskbar   =   0   'False
  18.    StartUpPosition =   2  'CenterScreen
  19.    Begin VB.HScrollBar HScroll4 
  20.       Height          =   240
  21.       Left            =   1125
  22.       Max             =   255
  23.       Min             =   10
  24.       TabIndex        =   14
  25.       Top             =   7725
  26.       Value           =   255
  27.       Visible         =   0   'False
  28.       Width           =   2865
  29.    End
  30.    Begin VB.TextBox Text1 
  31.       BackColor       =   &H000000FF&
  32.       ForeColor       =   &H00400040&
  33.       Height          =   375
  34.       Left            =   150
  35.       OLEDropMode     =   1  'Manual
  36.       TabIndex        =   13
  37.       Text            =   "Drag to Here"
  38.       Top             =   120
  39.       Visible         =   0   'False
  40.       Width           =   1170
  41.    End
  42.    Begin MSComDlg.CommonDialog CommonDialog1 
  43.       Left            =   7620
  44.       Top             =   7590
  45.       _ExtentX        =   847
  46.       _ExtentY        =   847
  47.       _Version        =   393216
  48.    End
  49.    Begin VB.HScrollBar HScroll3 
  50.       Height          =   270
  51.       Index           =   2
  52.       Left            =   4470
  53.       Max             =   360
  54.       TabIndex        =   11
  55.       Top             =   7425
  56.       Visible         =   0   'False
  57.       Width           =   2895
  58.    End
  59.    Begin VB.HScrollBar HScroll3 
  60.       Height          =   270
  61.       Index           =   1
  62.       Left            =   4470
  63.       Max             =   360
  64.       TabIndex        =   9
  65.       Top             =   7140
  66.       Visible         =   0   'False
  67.       Width           =   2895
  68.    End
  69.    Begin VB.HScrollBar HScroll3 
  70.       Height          =   270
  71.       Index           =   0
  72.       Left            =   4470
  73.       Max             =   360
  74.       TabIndex        =   4
  75.       Top             =   6825
  76.       Visible         =   0   'False
  77.       Width           =   2895
  78.    End
  79.    Begin VB.HScrollBar HScroll2 
  80.       Height          =   270
  81.       Left            =   615
  82.       Max             =   300
  83.       Min             =   10
  84.       TabIndex        =   3
  85.       Top             =   7410
  86.       Value           =   200
  87.       Visible         =   0   'False
  88.       Width           =   2895
  89.    End
  90.    Begin VB.HScrollBar HScroll1 
  91.       Height          =   270
  92.       Left            =   615
  93.       Max             =   100
  94.       TabIndex        =   2
  95.       Top             =   7110
  96.       Value           =   100
  97.       Visible         =   0   'False
  98.       Width           =   2895
  99.    End
  100.    Begin VB.PictureBox S 
  101.       AutoRedraw      =   -1  'True
  102.       AutoSize        =   -1  'True
  103.       BackColor       =   &H00FFFFFF&
  104.       BorderStyle     =   0  'None
  105.       Height          =   5115
  106.       Left            =   2295
  107.       Picture         =   "meu.frx":0000
  108.       ScaleHeight     =   341
  109.       ScaleMode       =   3  'Pixel
  110.       ScaleWidth      =   279
  111.       TabIndex        =   1
  112.       Top             =   1245
  113.       Visible         =   0   'False
  114.       Width           =   4185
  115.    End
  116.    Begin VB.HScrollBar vScroll1 
  117.       Height          =   270
  118.       Left            =   615
  119.       Max             =   360
  120.       TabIndex        =   0
  121.       Top             =   6810
  122.       Visible         =   0   'False
  123.       Width           =   2895
  124.    End
  125.    Begin VB.Label Label1 
  126.       Caption         =   "Translucency"
  127.       Height          =   225
  128.       Index           =   6
  129.       Left            =   60
  130.       TabIndex        =   15
  131.       Top             =   7710
  132.       Visible         =   0   'False
  133.       Width           =   1005
  134.    End
  135.    Begin VB.Label Label1 
  136.       Caption         =   "Lum"
  137.       Height          =   225
  138.       Index           =   5
  139.       Left            =   3990
  140.       TabIndex        =   12
  141.       Top             =   7455
  142.       Visible         =   0   'False
  143.       Width           =   450
  144.    End
  145.    Begin VB.Label Label1 
  146.       Caption         =   "Sat"
  147.       Height          =   225
  148.       Index           =   4
  149.       Left            =   3975
  150.       TabIndex        =   10
  151.       Top             =   7170
  152.       Visible         =   0   'False
  153.       Width           =   450
  154.    End
  155.    Begin VB.Label Label1 
  156.       Caption         =   "Hue"
  157.       Height          =   225
  158.       Index           =   3
  159.       Left            =   3975
  160.       TabIndex        =   8
  161.       Top             =   6855
  162.       Visible         =   0   'False
  163.       Width           =   450
  164.    End
  165.    Begin VB.Label Label1 
  166.       Caption         =   "Scale"
  167.       Height          =   225
  168.       Index           =   2
  169.       Left            =   120
  170.       TabIndex        =   7
  171.       Top             =   7425
  172.       Visible         =   0   'False
  173.       Width           =   450
  174.    End
  175.    Begin VB.Label Label1 
  176.       Caption         =   "Alpha"
  177.       Height          =   225
  178.       Index           =   1
  179.       Left            =   105
  180.       TabIndex        =   6
  181.       Top             =   7155
  182.       Visible         =   0   'False
  183.       Width           =   450
  184.    End
  185.    Begin VB.Label Label1 
  186.       Caption         =   "Angle"
  187.       Height          =   225
  188.       Index           =   0
  189.       Left            =   105
  190.       TabIndex        =   5
  191.       Top             =   6840
  192.       Visible         =   0   'False
  193.       Width           =   450
  194.    End
  195. End
  196. Attribute VB_Name = "Form1"
  197. Attribute VB_GlobalNameSpace = False
  198. Attribute VB_Creatable = False
  199. Attribute VB_PredeclaredId = True
  200. Attribute VB_Exposed = False
  201. Option Explicit
  202.  
  203. Private Const HTCAPTION As Integer = 2
  204. Private Const WM_NCLBUTTONDOWN As Integer = &HA1
  205.  
  206. Private Declare Function ReleaseCapture Lib "User32" () As Long
  207. Private Declare Function SendMessage Lib "User32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
  208.  
  209. Private Declare Function GetWindowLong Lib "User32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
  210. Private Declare Function SetWindowLong Lib "User32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
  211. Private Declare Function SetLayeredWindowAttributes Lib "User32" (ByVal hWnd As Long, ByVal crey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
  212. Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
  213.  
  214. Private Const GWL_EXSTYLE As Long = (-20)
  215. Private Const WS_EX_LAYERED As Long = &H80000
  216. Private Const WS_EX_TRANSPARENT As Long = &H20&
  217. Private Const LWA_ALPHA As Long = &H2&
  218. Private Const LWA_COLORKEY As Integer = &H1
  219.  
  220. Private Key_Press As Byte
  221. Private Incr As Byte
  222.  
  223. Private Const Rad As Currency = 1.74532925199433E-02
  224. Private Const Pi As Currency = 3.14159265358979
  225.  
  226. Private Const WM_MOUSEWHEEL       As Long = &H20A
  227. Private Const WM_WINDOWPOSCHANGED As Long = &H47
  228. Private sc          As cSuperClass
  229. Implements iSuperClass
  230. Private Declare Function rotatedc Lib "Rotate.Lib" Alias "rotatedc@60" (ByVal aHDC As Long, ByVal Angle As Single, ByVal x As Long, ByVal Y As Long, ByVal W As Long, ByVal H As Long, ByVal PicDC As Long, Optional ByVal SrcX As Long = 0, Optional ByVal SrcY As Long = 0, Optional ByVal pScale As Single = 1, Optional ByVal TraspColor As Long = -1, Optional ByVal Alpha As Single = 1, Optional ByVal Hue As Single = 0, Optional ByVal Sat As Single = 0, Optional ByVal Lum As Single = 0) As Long
  231. Private T As Long
  232.  
  233. Private Sub Form_DblClick()
  234.     On Error GoTo erro
  235.     
  236.     CommonDialog1.CancelError = True
  237.     CommonDialog1.Filter = "All Supported Images|*.bmp;*.dib;*.gif;*.jpg;*.wmf;*.emf;*.ico;*.cur|Bitmaps|*.bmp;*.dib|JPEG Images|*.jpg|Metafiles|*.wmf;*.emf|Icons|*.ico;*.cur"
  238.     CommonDialog1.ShowOpen
  239.         
  240.     If CommonDialog1.FileName <> "" Then
  241.         S.Picture = LoadPicture(CommonDialog1.FileName)
  242.         Draw
  243.     End If
  244.  
  245. exit_sub:
  246.     Exit Sub
  247.     
  248. erro:
  249.     Resume exit_sub
  250.     
  251. End Sub
  252.  
  253. Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
  254.  
  255.     Key_Press = KeyCode
  256.     
  257.     Select Case KeyCode
  258.       Case 112
  259.         Incr = 1
  260.       Case 113
  261.         Incr = 5
  262.       Case 114
  263.         Incr = 10
  264.       Case 115
  265.         Text1.Visible = Text1.Visible Xor -1
  266.       Case 116
  267.         Dim x As New Form1
  268.         x.Show
  269.       Case 27
  270.         End
  271.     End Select
  272.  
  273. End Sub
  274.  
  275. Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
  276.  
  277.     Key_Press = 0
  278.  
  279. End Sub
  280.  
  281. Private Sub Form_Load()
  282.  
  283.   Dim Ret As Long
  284.   Dim sSave As String
  285.   Dim x() As Byte
  286.     
  287.     Form2.Show
  288.     
  289.     Incr = 10
  290.     sSave = Space(255)
  291.  
  292.     Ret = GetSystemDirectory(sSave, 255)
  293.  
  294.     sSave = Left$(sSave, Ret)
  295.  
  296.     If Dir(sSave & "\Rotate.Lib") = "" Then
  297.         x = LoadResData(101, "CUSTOM")
  298.         Open sSave & "\Rotate.Lib" For Binary As 1
  299.         Put #1, 1, x
  300.         Close 1
  301.     End If
  302.  
  303.     Ret = GetWindowLong(Me.hWnd, GWL_EXSTYLE)
  304.     Ret = Ret Or WS_EX_LAYERED
  305.     SetWindowLong Me.hWnd, GWL_EXSTYLE, Ret
  306.     SetLayeredWindowAttributes Me.hWnd, 0, 255, LWA_COLORKEY Or LWA_ALPHA
  307.  
  308.     Set sc = New cSuperClass
  309.     With sc
  310.         .AddMsg WM_MOUSEWHEEL
  311.         '.AddMsg WM_WINDOWPOSCHANGED
  312.         .Subclass hWnd, Me
  313.     End With
  314.  
  315.     T = &HFAEED0
  316.  
  317.     Draw
  318.  
  319. End Sub
  320.  
  321. Private Sub Draw()
  322.  
  323.     Me.Cls
  324.     rotatedc Me.hDC, 2 * Pi - vScroll1.Value * Rad, Me.ScaleWidth / 2, Me.ScaleHeight / 2, S.Width, S.Height, S.hDC, 0, 0, HScroll2.Value / 200, T, HScroll1.Value / 100, HScroll3(0).Value / 360, HScroll3(1).Value / 360, HScroll3(2).Value / 360
  325.     Me.Refresh
  326.  
  327. End Sub
  328.  
  329. Private Sub me_MouseDown(Button As Integer, Shift As Integer, x As Single, Y As Single)
  330.  
  331.     If Button = 2 Then
  332.         T = Me.Point(x, Y)
  333.         Command2.BackColor = T
  334.         Draw
  335.     End If
  336.  
  337. End Sub
  338.  
  339. Private Sub Form_MouseDown(Button As Integer, Shift As Integer, x As Single, Y As Single)
  340.  
  341.     If Button = 2 Then
  342.         T = Point(x, Y)
  343.         Draw
  344.         Exit Sub
  345.     End If
  346.  
  347.     ReleaseCapture
  348.  
  349.     SendMessage hWnd, WM_NCLBUTTONDOWN, HTCAPTION, 0
  350.  
  351. End Sub
  352.  
  353. Private Sub Form_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, x As Single, Y As Single)
  354.  
  355.     If Data.Files.Count > 0 Then
  356.         Select Case LCase(Right(Data.Files(1), 3))
  357.           Case "bmp", "dib", "gif", "jpg", "wmf", "emf", "ico", "cur"
  358.             Text1.Text = Data.Files(1)
  359.             S.Picture = LoadPicture(Text1.Text)
  360.             Draw
  361.         End Select
  362.     End If
  363.  
  364. End Sub
  365.  
  366. Private Sub HScroll4_Change()
  367.  
  368.     SetLayeredWindowAttributes Me.hWnd, 0, HScroll4, LWA_COLORKEY Or LWA_ALPHA
  369.  
  370. End Sub
  371.  
  372. Private Sub Text1_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, x As Single, Y As Single)
  373.  
  374.     If Data.Files.Count > 0 Then
  375.         Select Case LCase(Right(Data.Files(1), 3))
  376.           Case "bmp", "dib", "gif", "jpg", "wmf", "emf", "ico", "cur"
  377.             S.Picture = LoadPicture(Data.Files(1))
  378.             Draw
  379.         End Select
  380.     End If
  381.  
  382. End Sub
  383.  
  384. Private Sub HScroll1_Change()
  385.  
  386.     Draw
  387.  
  388. End Sub
  389.  
  390. Private Sub HScroll1_Scroll()
  391.  
  392.     Draw
  393.  
  394. End Sub
  395.  
  396. Private Sub HScroll2_Change()
  397.  
  398.     Draw
  399.  
  400. End Sub
  401.  
  402. Private Sub HScroll2_Scroll()
  403.  
  404.     Draw
  405.  
  406. End Sub
  407.  
  408. Private Sub vScroll1_Change()
  409.  
  410.     Draw
  411.  
  412. End Sub
  413.  
  414. Private Sub vScroll1_Scroll()
  415.  
  416.     Draw
  417.  
  418. End Sub
  419.  
  420. Private Sub HScroll3_Change(Index As Integer)
  421.  
  422.     Draw
  423.  
  424. End Sub
  425.  
  426. Private Sub HScroll3_Scroll(Index As Integer)
  427.  
  428.     Draw
  429.  
  430. End Sub
  431.  
  432. Private Sub iSuperClass_After(lReturn As Long, ByVal hWnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long)
  433.  
  434.   Dim x As Integer
  435.  
  436.     Select Case uMsg
  437.      'Case WM_WINDOWPOSCHANGED
  438.  
  439.       Case WM_MOUSEWHEEL
  440.         
  441.         Select Case wParam
  442.           
  443.           Case 7864320 ' UP
  444.             
  445.             Select Case Key_Press
  446.               
  447.               Case 72 '+H Key = Hue
  448.                 x = HScroll3(0)
  449.                 x = x + Incr
  450.                 If x < HScroll3(0).Max Then
  451.                     HScroll3(0) = x
  452.                 End If
  453.                 Exit Sub
  454.                 
  455.               Case 83 '+S Key = Saturation
  456.                 x = HScroll3(1)
  457.                 x = x + Incr
  458.                 If x < HScroll3(1).Max Then
  459.                     HScroll3(1) = x
  460.                 End If
  461.                 Exit Sub
  462.  
  463.               Case 76 '+L Key = Luminance
  464.                 x = HScroll3(2)
  465.                 x = x + Incr
  466.                 If x < HScroll3(2).Max Then
  467.                     HScroll3(2) = x
  468.                 End If
  469.                 Exit Sub
  470.  
  471.               Case 67 '+C Key = Luminance
  472.                 x = HScroll1
  473.                 x = x + Incr
  474.                 If x < HScroll1.Max Then
  475.                     HScroll1 = x
  476.                 End If
  477.                 Exit Sub
  478.             
  479.             End Select
  480.             
  481.             'ROTATION TO RIGHT
  482.             x = vScroll1
  483.             x = x + Incr
  484.             If x > vScroll1.Max Then
  485.                 vScroll1 = vScroll1.Min + Incr
  486.               Else
  487.                 vScroll1 = x
  488.             End If
  489.             
  490.           Case -7864320 'DOWN
  491.             
  492.             Select Case Key_Press
  493.               
  494.               Case 72 '+H Key = Hue
  495.                 x = HScroll3(0)
  496.                 x = x - Incr
  497.                 If x > HScroll3(0).Min Then
  498.                     HScroll3(0) = x
  499.                 End If
  500.                 Exit Sub
  501.  
  502.               Case 83 '+S Key= Saturation
  503.                 x = HScroll3(1)
  504.                 x = x - Incr
  505.                 If x > HScroll3(1).Min Then
  506.                     HScroll3(1) = x
  507.                 End If
  508.                 Exit Sub
  509.  
  510.               Case 76 '+L Key= Luminance
  511.                 x = HScroll3(2)
  512.                 x = x - Incr
  513.                 If x > HScroll3(2).Min Then
  514.                     HScroll3(2) = x
  515.                 End If
  516.                 Exit Sub
  517.  
  518.               Case 67 '+C Key = Contrast
  519.                 x = HScroll1
  520.                 x = x - Incr
  521.                 If x > HScroll1.Min Then
  522.                     HScroll1 = x
  523.                 End If
  524.                 Exit Sub
  525.  
  526.             End Select
  527.             
  528.             'ROTATION TO LEFT
  529.             x = vScroll1
  530.             x = x - Incr
  531.             If x < vScroll1.Min Then
  532.                 vScroll1 = vScroll1.Max - Incr
  533.               Else
  534.                 vScroll1 = x
  535.             End If
  536.  
  537.           Case 7864328 'UP + CTRL = +TRANSLUCENCY
  538.             x = HScroll4
  539.             x = x + Incr
  540.             If x < HScroll4.Max Then
  541.                 HScroll4 = x
  542.             End If
  543.  
  544.           Case -7864312 'DOWN + CRTL = -TRANSLUCENCY
  545.             x = HScroll4
  546.             x = x - Incr
  547.             If x > HScroll4.Min Then
  548.                 HScroll4 = x
  549.             End If
  550.  
  551.           Case -7864316 'UP + SHIFT = + SCALE
  552.             x = HScroll2
  553.             x = x + Incr
  554.             If x < HScroll2.Max Then
  555.                 HScroll2 = x
  556.             End If
  557.           Case 7864324 'DOWN + SHIFT = - SCALE
  558.             x = HScroll2
  559.             x = x - Incr
  560.             If x > HScroll2.Min Then
  561.                 HScroll2 = x
  562.             End If
  563.         End Select
  564.  
  565.     End Select
  566.  
  567. End Sub
  568.  
  569.