SftTree/DLL 7.5 - Tree Control
SftBox/OCX 5.0 - Combo Box Control
SftButton/OCX 3.0 - Button Control
SftMask/OCX 7.0 - Masked Edit Control
SftTabs/OCX 6.5 - Tab Control (VB6 only)
SftTree/OCX 7.5 - Tree Control
SftPrintPreview/DLL 2.0 - Print Preview Control (discontinued)
SftTree/DLL 7.5 - Tree Control
SftBox/OCX 5.0 - Combo Box Control
SftButton/OCX 3.0 - Button Control
SftDirectory 3.5 - File/Folder Control (discontinued)
SftMask/OCX 7.0 - Masked Edit Control
SftOptions 1.0 - Registry/INI Control (discontinued)
SftPrintPreview/OCX 1.0 - Print Preview Control (discontinued)
SftTabs/OCX 6.5 - Tab Control (VB6 only)
SftTree/OCX 7.5 - Tree Control
SftTabs/NET 6.0 - Tab Control (discontinued)
SftTree/NET 2.0 - Tree Control
This sample illustrates a font dialog for font selection.
The source code is located at C:\Program Files (x86)\Softelvdm\SftBox OCX 5.0\Samples\VB6\FontDlg\Form1.frm or C:\Program Files\Softelvdm\SftBox OCX 5.0\Samples\VB6\FontDlg\Form1.frm (on 32-bit Windows versions).
Option Explicit
Private Sub Form_Load()
CondHeaders.Value = 1
' set sort order
FontNames.Header(0).Image.Appearance = sftImageSortAsc
FontStyles.Header(0).Image.Appearance = sftImageSortAsc
FontSizes.Header(0).Image.Appearance = sftImageSortAsc
' add all font information
UpdateFontNames
End Sub
Private Sub ReverseSortOrder(SftBoxCtrl As SftBox)
If SftBoxCtrl.Header(0).Image.Appearance = sftImageSortAsc Then
SftBoxCtrl.Header(0).Image.Appearance = sftImageSortDesc
Else
SftBoxCtrl.Header(0).Image.Appearance = sftImageSortAsc
End If
End Sub
Private Sub PerformCellValueSort(SftBoxCtrl As SftBox)
' Font sizes are sorted according to numeric Cell.Data property
If SftBoxCtrl.Header(0).Image.Appearance = sftImageSortAsc Then
SftBoxCtrl.Items.Sort -1, 0, sortSftBoxCellValueAscending
Else
SftBoxCtrl.Items.Sort -1, 0, sortSftBoxCellValueDescending
End If
End Sub
Private Sub PerformSort(SftBoxCtrl As SftBox)
' Font styles and font names are sorted by Cell.Text property
If SftBoxCtrl.Header(0).Image.Appearance = sftImageSortAsc Then
SftBoxCtrl.Items.Sort -1, 0, sortSftBoxAscending
Else
SftBoxCtrl.Items.Sort -1, 0, sortSftBoxDescending
End If
End Sub
Private Sub UpdateFontNames()
' add all font names
FontNames.BulkUpdate = True
FontNames.Items.Clear
FontNames.Items.AddFontNames -1, fontSftBoxAll, True, 0
FontNames.Items.Selection = 0
PerformSort FontNames
FontNames.BulkUpdate = False
FontNames.Columns.MakeOptimal 0
FontNames.Items.RecalcHorizontalExtent 0
End Sub
Private Sub FontNames_SelectionChange()
UpdateStyles
End Sub
Private Sub FontNames_ItemClick(ByVal Part As SftBoxLib50.SftBoxPortionConstants, ByVal AreaType As SftBoxLib50.SftBoxAreaConstants, ByVal ItemIndex As Long, ByVal ColNum As Integer, ByVal Button As Integer, ByVal Shift As Integer)
If AreaType = areaSftBoxColumn Then
ReverseSortOrder FontNames
PerformSort FontNames
End If
End Sub
Private Sub FontNames_ItemDblClk(ByVal Part As SftBoxLib50.SftBoxPortionConstants, ByVal AreaType As SftBoxLib50.SftBoxAreaConstants, ByVal ItemIndex As Long, ByVal ColNum As Integer, ByVal Button As Integer, ByVal Shift As Integer)
If AreaType = areaSftBoxColumn Then
ReverseSortOrder FontNames
PerformSort FontNames
End If
End Sub
Private Sub UpdateStyles()
Dim OldText As String, Index As Long
' add all styles for the current font name
If FontNames.Items.Selection >= 0 Then
OldText = FontStyles.Edit.Text
FontStyles.Items.AddFontStyles FontNames.Cell(FontNames.Items.Selection, 0).Text, 0, "", ""
Index = FontStyles.Items.Find(OldText, 0, 0, False, True, True)
If Index < 0 Then Index = 0
FontStyles.Items.Selection = Index
Else
FontStyles.Items.Clear
End If
PerformSort FontStyles
FontStyles.Columns.MakeOptimal 0
FontStyles.Items.RecalcHorizontalExtent 0
UpdateSizes
End Sub
Private Sub FontStyles_SelectionChange()
UpdateSizes
End Sub
Private Sub FontStyles_ItemClick(ByVal Part As SftBoxLib50.SftBoxPortionConstants, ByVal AreaType As SftBoxLib50.SftBoxAreaConstants, ByVal ItemIndex As Long, ByVal ColNum As Integer, ByVal Button As Integer, ByVal Shift As Integer)
If AreaType = areaSftBoxColumn Then
ReverseSortOrder FontStyles
PerformSort FontStyles
End If
End Sub
Private Sub FontStyles_ItemDblClk(ByVal Part As SftBoxLib50.SftBoxPortionConstants, ByVal AreaType As SftBoxLib50.SftBoxAreaConstants, ByVal ItemIndex As Long, ByVal ColNum As Integer, ByVal Button As Integer, ByVal Shift As Integer)
If Part = partSftBoxStatic Then
If AreaType = areaSftBoxColumn Then
ReverseSortOrder FontStyles
PerformSort FontStyles
End If
End If
End Sub
Private Sub UpdateSizes()
Dim OldText As String, Index As Long
' add all sizes for the current font name
If FontNames.Items.Selection >= 0 Then
OldText = FontSizes.Edit.Text
FontSizes.Items.AddFontSizes FontNames.Cell(FontNames.Items.Selection, 0).Text, 0
Index = FontSizes.Items.Find(OldText, 0, 0, False, True, True)
If Index < 0 Then Index = 0
FontSizes.Items.Selection = Index
Else
FontSizes.Items.Clear
End If
PerformCellValueSort FontSizes
FontSizes.Columns.MakeOptimal 0
FontSizes.Items.RecalcHorizontalExtent 0
UpdateSample
End Sub
Private Sub FontSizes_SelectionChange()
UpdateSample
End Sub
Private Sub FontSizes_ItemClick(ByVal Part As SftBoxLib50.SftBoxPortionConstants, ByVal AreaType As SftBoxLib50.SftBoxAreaConstants, ByVal ItemIndex As Long, ByVal ColNum As Integer, ByVal Button As Integer, ByVal Shift As Integer)
If AreaType = areaSftBoxColumn Then
ReverseSortOrder FontSizes
PerformCellValueSort FontSizes
End If
End Sub
Private Sub FontSizes_ItemDblClk(ByVal Part As SftBoxLib50.SftBoxPortionConstants, ByVal AreaType As SftBoxLib50.SftBoxAreaConstants, ByVal ItemIndex As Long, ByVal ColNum As Integer, ByVal Button As Integer, ByVal Shift As Integer)
If AreaType = areaSftBoxColumn Then
ReverseSortOrder FontSizes
PerformCellValueSort FontSizes
End If
End Sub
Private Sub UpdateSample()
Dim Weight As Integer
Dim Italic As Boolean
Dim SelItem As Long
SelItem = FontStyles.Items.Selection
If SelItem >= 0 And FontSizes.Edit.Text <> "" Then
SampleText.Caption = "AaBbCcYyZz"
SampleText.Font.Name = FontNames.Edit.Text
Italic = (FontStyles.Cell(SelItem, 0).Data And &H80000000)
SampleText.Font.Italic = Italic
Weight = (FontStyles.Cell(SelItem, 0).Data And &H7FFFFFFF)
SampleText.Font.Bold = (Weight > 400) ' FW_NORMAL
SampleText.Font.Size = FontSizes.Edit.Text
Else
SampleText.Caption = ""
End If
End Sub
Private Sub Command1_Click()
Unload Form1
End Sub
Private Sub CondHeaders_Click()
If CondHeaders.Value = 0 Then
FontNames.Headers.Main = False
FontNames.Headers.DropDown = True
FontStyles.Headers.Main = False
FontStyles.Headers.DropDown = True
FontSizes.Headers.Main = False
FontSizes.Headers.DropDown = True
Else
FontNames.Headers.Main = True
FontNames.Headers.DropDown = False
FontStyles.Headers.Main = True
FontStyles.Headers.DropDown = False
FontSizes.Headers.Main = True
FontSizes.Headers.DropDown = False
End If
End Sub