vbAccelerator - Contents of code file: frmCMYAndCMYK.frm

VERSION 5.00
Begin VB.Form frmCMYandCMYK 
   Caption         =   "vbAccelerator CMY and CMYK Colour Model Demonstration"
   ClientHeight    =   4845
   ClientLeft      =   3180
   ClientTop       =   2430
   ClientWidth     =   6105
   BeginProperty Font 
      Name            =   "Tahoma"
      Size            =   8.25
      Charset         =   0
      Weight          =   400
      Underline       =   0   'False
      Italic          =   0   'False
      Strikethrough   =   0   'False
   EndProperty
   Icon            =   "frmCMYAndCMYK.frx":0000
   LinkTopic       =   "Form1"
   ScaleHeight     =   4845
   ScaleWidth      =   6105
   Begin VB.OptionButton optType 
      Caption         =   "CMYK"
      Height          =   315
      Index           =   1
      Left            =   1440
      Style           =   1  'Graphical
      TabIndex        =   16
      Top             =   120
      Width           =   1335
   End
   Begin VB.OptionButton optType 
      Caption         =   "CMY"
      Height          =   315
      Index           =   0
      Left            =   60
      Style           =   1  'Graphical
      TabIndex        =   15
      Top             =   120
      Value           =   -1  'True
      Width           =   1335
   End
   Begin VB.PictureBox picCMY 
      AutoRedraw      =   -1  'True
      Height          =   4215
      Left            =   60
      ScaleHeight     =   277
      ScaleMode       =   3  'Pixel
      ScaleWidth      =   393
      TabIndex        =   0
      Top             =   480
      Width           =   5955
      Begin VB.HScrollBar hscBlack 
         Height          =   255
         LargeChange     =   32
         Left            =   900
         Max             =   255
         SmallChange     =   8
         TabIndex        =   13
         Top             =   3840
         Value           =   255
         Visible         =   0   'False
         Width           =   1515
      End
      Begin VB.HScrollBar hscBlue 
         Height          =   255
         LargeChange     =   32
         Left            =   3960
         Max             =   255
         SmallChange     =   8
         TabIndex        =   12
         Top             =   3540
         Value           =   255
         Width           =   1515
      End
      Begin VB.HScrollBar hscGreen 
         Height          =   255
         LargeChange     =   32
         Left            =   3960
         Max             =   255
         SmallChange     =   8
         TabIndex        =   11
         Top             =   3240
         Value           =   255
         Width           =   1515
      End
      Begin VB.HScrollBar hscRed 
         Height          =   255
         LargeChange     =   32
         Left            =   3960
         Max             =   255
         SmallChange     =   8
         TabIndex        =   10
         Top             =   2940
         Value           =   255
         Width           =   1515
      End
      Begin VB.HScrollBar hscYellow 
         Height          =   255
         LargeChange     =   32
         Left            =   900
         Max             =   255
         SmallChange     =   8
         TabIndex        =   6
         Top             =   3540
         Value           =   255
         Width           =   1515
      End
      Begin VB.HScrollBar hscMagenta 
         Height          =   255
         LargeChange     =   32
         Left            =   900
         Max             =   255
         SmallChange     =   8
         TabIndex        =   5
         Top             =   3240
         Value           =   255
         Width           =   1515
      End
      Begin VB.HScrollBar hscCyan 
         Height          =   255
         LargeChange     =   32
         Left            =   900
         Max             =   255
         SmallChange     =   8
         TabIndex        =   4
         Top             =   2940
         Value           =   255
         Width           =   1515
      End
      Begin VB.Label lblBlack 
         Caption         =   "Blac&k:"
         Height          =   255
         Left            =   60
         TabIndex        =   14
         Top             =   3840
         Visible         =   0   'False
         Width           =   855
      End
      Begin VB.Label lblBlue 
         Caption         =   "&Blue"
         Height          =   255
         Left            =   3120
         TabIndex        =   9
         Top             =   3540
         Width           =   855
      End
      Begin VB.Label lblGreen 
         Caption         =   "&Green:"
         Height          =   255
         Left            =   3120
         TabIndex        =   8
         Top             =   3240
         Width           =   855
      End
      Begin VB.Label lblRed 
         Caption         =   "&Red:"
         Height          =   255
         Left            =   3120
         TabIndex        =   7
         Top             =   2940
         Width           =   855
      End
      Begin VB.Label lblYellow 
         Caption         =   "&Yellow:"
         Height          =   255
         Left            =   60
         TabIndex        =   3
         Top             =   3540
         Width           =   855
      End
      Begin VB.Label lblMagenta 
         Caption         =   "&Magenta:"
         Height          =   255
         Left            =   60
         TabIndex        =   2
         Top             =   3240
         Width           =   855
      End
      Begin VB.Label lblC 
         Caption         =   "&Cyan:"
         Height          =   255
         Left            =   60
         TabIndex        =   1
         Top             =   2940
         Width           =   855
      End
   End
End
Attribute VB_Name = "frmCMYandCMYK"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit

Private m_cCMY As cCMY
Private m_cCMYK As cCMYK

Private Sub setCMYOrCMYKValues()
   If (optType(0).value) Then
      setCMYValues
   Else
      setCMYKValues
   End If
End Sub

Private Sub setCMYValues()
   
   hscCyan.Tag = "INTERLOCK"
   hscMagenta.Tag = "INTERLOCK"
   hscYellow.Tag = "INTERLOCK"
   
   hscCyan.value = m_cCMY.C
   hscMagenta.value = m_cCMY.M
   hscYellow.value = m_cCMY.y
   
   hscCyan.Tag = ""
   hscMagenta.Tag = ""
   hscYellow.Tag = ""
   
End Sub

Private Sub setCMYKValues()
   
   hscCyan.Tag = "INTERLOCK"
   hscMagenta.Tag = "INTERLOCK"
   hscYellow.Tag = "INTERLOCK"
   hscBlack.Tag = "INTERLOCK"
   
   hscCyan.value = m_cCMYK.C
   hscMagenta.value = m_cCMYK.M
   hscYellow.value = m_cCMYK.y
   hscBlack.value = m_cCMYK.K
   
   hscCyan.Tag = ""
   hscMagenta.Tag = ""
   hscYellow.Tag = ""
   hscBlack.Tag = ""
   
End Sub

Private Sub setRGBValues()
   If (optType(0).value) Then
      setCMYRGBValues
   Else
      setCMYKRGBValues
   End If
End Sub

Private Sub setCMYRGBValues()

   hscRed.Tag = "INTERLOCK"
   hscGreen.Tag = "INTERLOCK"
   hscBlue.Tag = "INTERLOCK"
   
   hscRed.value = m_cCMY.R
   hscGreen.value = m_cCMY.G
   hscBlue.value = m_cCMY.B
   
   hscRed.Tag = ""
   hscGreen.Tag = ""
   hscBlue.Tag = ""

End Sub

Private Sub setCMYKRGBValues()

   hscRed.Tag = "INTERLOCK"
   hscGreen.Tag = "INTERLOCK"
   hscBlue.Tag = "INTERLOCK"
   
   hscRed.value = m_cCMYK.R
   hscGreen.value = m_cCMYK.G
   hscBlue.value = m_cCMYK.B
   
   hscRed.Tag = ""
   hscGreen.Tag = ""
   hscBlue.Tag = ""

End Sub

Private Sub render()
   If (optType(0).value) Then
      renderCMY
   Else
      renderCMYK
   End If
End Sub

Private Sub renderCMY()
   
   picCMY.Cls
      
   Dim x As Long
   Dim y As Long
   Dim cCMYCalc As New cCMY
      
   x = (picCMY.ScaleWidth - 112) \ 2
   y = 16
      
   ' Draw magenta box:
   cCMYCalc.FromCMY 0, m_cCMY.M, 0
   picCMY.Line (x, y + 112)-(x + 64, y + 48), cCMYCalc.RGB, BF
   
   ' Draw yellow box:
   cCMYCalc.FromCMY 0, 0, m_cCMY.y
   picCMY.Line (x + 48, y + 112)-(x + 112, y + 48), cCMYCalc.RGB, BF
   
   ' Draw cyan box:
   cCMYCalc.FromCMY m_cCMY.C, 0, 0
   picCMY.Line (x + 24, y)-(x + 88, y + 64), cCMYCalc.RGB, BF
   
   ' Draw C-M box:
   cCMYCalc.FromCMY m_cCMY.C, m_cCMY.M, 0
   picCMY.Line (x + 24, y + 48)-(x + 48, y + 64), cCMYCalc.RGB, BF
   
   ' Draw M-Y box
   cCMYCalc.FromCMY 0, m_cCMY.M, m_cCMY.y
   picCMY.Line (x + 48, y + 48)-(x + 64, y + 112), cCMYCalc.RGB, BF
      
   ' Draw C-Y box:
   cCMYCalc.FromCMY m_cCMY.C, 0, m_cCMY.y
   picCMY.Line (x + 64, y + 48)-(x + 88, y + 64), cCMYCalc.RGB, BF
      
   ' Draw CMY box:
   picCMY.Line (x + 48, y + 48)-(x + 64, y + 64), m_cCMY.RGB, BF
      
   picCMY.Refresh
   
End Sub

Private Sub renderCMYK()

   ' This rendering does not display C-K or M-Y.
   
   picCMY.Cls
   
   Dim cCMYKCalc As New cCMYK
   Dim x As Long
   Dim y As Long
      
   x = (picCMY.ScaleWidth - 112) \ 2
   y = 16
   
   ' Draw C box:
   cCMYKCalc.FromCMYK m_cCMYK.C, 0, 0, 0
   picCMY.Line (x, y)-(x + 48, y + 48), cCMYKCalc.RGB, BF
   
   ' Draw M box:
   cCMYKCalc.FromCMYK 0, m_cCMYK.M, 0, 0
   picCMY.Line (x + 64, y)-(x + 112, y + 48), cCMYKCalc.RGB, BF
   
   ' Draw Y box:
   cCMYKCalc.FromCMYK 0, 0, m_cCMYK.y, 0
   picCMY.Line (x, y + 64)-(x + 48, y + 112), cCMYKCalc.RGB, BF
   
   ' Draw K box:
   cCMYKCalc.FromCMYK 0, 0, 0, m_cCMYK.K
   picCMY.Line (x + 64, y + 64)-(x + 112, y + 112), cCMYKCalc.RGB, BF
   
   ' Draw CY:
   cCMYKCalc.FromCMYK m_cCMYK.C, 0, m_cCMYK.y, 0
   picCMY.Line (x, y + 48)-(x + 48, y + 64), cCMYKCalc.RGB, BF
   
   ' Draw CM:
   cCMYKCalc.FromCMYK m_cCMYK.C, m_cCMYK.M, 0, 0
   picCMY.Line (x + 48, y)-(x + 64, y + 48), cCMYKCalc.RGB, BF
      
   ' Draw MK:
   cCMYKCalc.FromCMYK 0, m_cCMYK.M, 0, m_cCMYK.K
   picCMY.Line (x + 64, y + 48)-(x + 112, y + 64), cCMYKCalc.RGB, BF
   
   ' Draw YK:
   cCMYKCalc.FromCMYK 0, 0, m_cCMYK.y, m_cCMYK.K
   picCMY.Line (x + 48, y + 64)-(x + 64, y + 112), cCMYKCalc.RGB, BF
   
   
   ' Draw CMYK:
   picCMY.Line (x + 48, y + 48)-(x + 64, y + 64), m_cCMYK.RGB, BF
   
   picCMY.Refresh

End Sub

Private Sub Form_Load()
   
   Set m_cCMY = New cCMY
   m_cCMY.RGB = &H0
   setCMYValues
   setCMYRGBValues
   renderCMY
   
   Set m_cCMYK = New cCMYK
   m_cCMYK.RGB = &H0
   
End Sub

Private Sub hscBlack_Change()
   If Len(hscBlack.Tag) = 0 Then
      m_cCMYK.K = hscBlack.value
      setCMYKRGBValues
      render
   End If
End Sub

Private Sub hscBlack_Scroll()
   hscBlack_Change
End Sub

Private Sub hscBlue_Change()
   If Len(hscBlue.Tag) = 0 Then
      m_cCMY.B = hscBlue.value
      m_cCMYK.B = hscBlue.value
      setCMYOrCMYKValues
      render
   End If
End Sub

Private Sub hscBlue_Scroll()
   hscBlue_Change
End Sub

Private Sub hscCyan_Change()
   If Len(hscCyan.Tag) = 0 Then
      m_cCMY.C = hscCyan.value
      m_cCMYK.C = hscCyan.value
      setCMYRGBValues
      render
   End If
End Sub

Private Sub hscCyan_Scroll()
   hscCyan_Change
End Sub

Private Sub hscGreen_Change()
   If Len(hscGreen.Tag) = 0 Then
      m_cCMY.G = hscGreen.value
      m_cCMYK.G = hscGreen.value
      setCMYOrCMYKValues
      render
   End If
End Sub

Private Sub hscGreen_Scroll()
   hscGreen_Change
End Sub

Private Sub hscMagenta_Change()
   If Len(hscMagenta.Tag) = 0 Then
      m_cCMY.M = hscMagenta.value
      m_cCMYK.M = hscMagenta.value
      setRGBValues
      render
   End If
End Sub

Private Sub hscMagenta_Scroll()
   hscMagenta_Change
End Sub

Private Sub hscRed_Change()
   If Len(hscRed.Tag) = 0 Then
      m_cCMY.R = hscRed.value
      m_cCMYK.R = hscRed.value
      setCMYOrCMYKValues
      render
   End If
End Sub

Private Sub hscRed_Scroll()
   hscRed_Change
End Sub

Private Sub hscYellow_Change()
   If Len(hscYellow.Tag) = 0 Then
      m_cCMY.y = hscYellow.value
      m_cCMYK.y = hscYellow.value
      setRGBValues
      render
   End If
End Sub

Private Sub hscYellow_Scroll()
   hscYellow_Change
End Sub

Private Sub optType_Click(Index As Integer)
   If (optType(0).value) Then
      lblBlack.Visible = False
      hscBlack.Visible = False
      setRGBValues
      setCMYValues
      render
   Else
      lblBlack.Visible = True
      hscBlack.Visible = True
      setCMYKRGBValues
      setCMYKValues
      render
   End If
End Sub