home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Komputer 1996 February
/
PCWK0296.iso
/
sharewar
/
win95nt
/
program
/
msgblast
/
data.z
/
SMALLCAP.FRM
< prev
next >
Wrap
Text File
|
1995-09-07
|
8KB
|
253 lines
VERSION 4.00
Begin VB.Form frmMain
BorderStyle = 1 'Fixed Single
ClientHeight = 3000
ClientLeft = 3060
ClientTop = 1560
ClientWidth = 3180
ClipControls = 0 'False
ControlBox = 0 'False
BeginProperty Font
name = "MS Sans Serif"
charset = 0
weight = 700
size = 8.25
underline = 0 'False
italic = 0 'False
strikethrough = 0 'False
EndProperty
Height = 3345
Icon = "SMALLCAP.frx":0000
KeyPreview = -1 'True
Left = 3030
LinkTopic = "Form1"
MaxButton = 0 'False
MinButton = 0 'False
ScaleHeight = 3000
ScaleWidth = 3180
Top = 1245
Width = 3240
Begin VB.CommandButton Command1
Caption = "Quit"
Height = 372
Left = 1860
TabIndex = 0
Top = 2520
Width = 972
End
Begin MessageBlaster.MsgBlaster MsgBlaster1
Left = 240
Top = 2460
_version = 65536
_extentx = 847
_extenty = 847
_stockprops = 0
enabled = -1 'True
voodoo = "SMALLCAP.frx":000C
End
Begin VB.Label Label3
Caption = "Try using the system menu. You'll find the about box there."
Height = 375
Left = 120
TabIndex = 3
Top = 1980
Width = 3015
End
Begin VB.Label Label2
Caption = "How to create a small caption in Visual Basic"
Height = 435
Left = 120
TabIndex = 2
Top = 180
Width = 3015
End
Begin VB.Label Label1
Caption = $"SMALLCAP.frx":12DC
Height = 1215
Left = 120
TabIndex = 1
Top = 660
Width = 3015
End
End
Attribute VB_Name = "frmMain"
Attribute VB_Creatable = False
Attribute VB_Exposed = False
Option Explicit
'Virtual Key values
Const VK_ESCAPE = &H1B
'System Metrics Constants
Const SM_CYMENU = 15
'SysCommand, wParam values
Const SC_MOVE = &HF010
Const SC_CLOSE = &HF060
'Menu Function values
Const MF_SEPARATOR = &H800
Const MF_ENABLED = 0
Const MF_STRING = 0
Const MF_BmyPosITION = 400
'Menu ID's
Const IDM_SYSMOVE = 101
Const IDM_SYSCLOSE = 102
Const IDM_ABOUT = 103
'MsgBlaster property values
Const PREPROCESS = -1
Const EATMESSAGE = 0
Const POSTPROCESS = 1
'WM_NCHITTEST return values
Const HTCLIENT = 1
Const HTCAPTION = 2
Const HTSYSMENU = 3
Dim mFormTop%
Dim mFormLeft%
Dim mxPos%
Dim myPos%
Dim mCaptionColor&
Dim mhSysMenu As Long
Dim mScreenRect As RECT
Dim mInSysMenu As Integer
Private Sub Command1_Click()
End
End Sub
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
If (KeyCode = 115) And (Shift = 4) Then End
If (KeyCode = 18) And (Shift = 0) Then ShowSysMenu
If (KeyCode = 27) And (Shift = 0) Then mInSysMenu = False
End Sub
Private Sub Form_Load()
Dim rc%
Me.ScaleMode = 3
mCaptionColor& = GetSysColor(COLOR_ACTIVECAPTION) And &HFFFFFF
mhSysMenu = CreatePopupMenu()
rc% = AppendMenu(mhSysMenu, MF_ENABLED Or MF_STRING, IDM_SYSMOVE, "&Move")
rc% = AppendMenu(mhSysMenu, MF_ENABLED Or MF_STRING, IDM_SYSCLOSE, "&Close Alt+F4")
rc% = AppendMenu(mhSysMenu, MF_SEPARATOR, 0, "")
rc% = AppendMenu(mhSysMenu, MF_ENABLED Or MF_STRING, IDM_ABOUT, "&About")
mScreenRect.left = 0
mScreenRect.right = Screen.Width / Screen.TwipsPerPixelX
mScreenRect.top = 0
mScreenRect.bottom = Screen.Height / Screen.TwipsPerPixelY
Msgblaster1.hWndTarget = frmMain.hWnd
Msgblaster1.AddMessage WM_CLOSE, POSTPROCESS
Msgblaster1.AddMessage WM_COMMAND, POSTPROCESS
Msgblaster1.AddMessage WM_NCACTIVATE, POSTPROCESS
Msgblaster1.AddMessage WM_NCHITTEST, EATMESSAGE
Msgblaster1.AddMessage WM_NCLBUTTONDBLCLK, EATMESSAGE
Msgblaster1.AddMessage WM_NCLBUTTONDOWN, POSTPROCESS
End Sub
Private Sub Form_Paint()
'Paint caption background
Line (0, -1)-Step(Me.Width, 9), mCaptionColor&, BF
'Horizontal line under caption
Line (0, 8)-Step(Me.ScaleWidth, 0), QBColor(0)
'Vertical line beteen control menu and caption
Line (10, 0)-Step(0, 8), QBColor(0)
'Background for control menu
Line (0, 0)-Step(9, 7), QBColor(7), BF
'Box for bar in control menu
Line (2, 2)-Step(5, 2), QBColor(0), B
'Line inside bar in control menu
Line (3, 3)-Step(4, 0), QBColor(15)
'Vertical shadow on bar in control menu
Line (8, 3)-Step(0, 3), QBColor(8)
'Horizontal shadow on bar in control menu
Line (3, 5)-Step(5, 0), QBColor(8)
End Sub
Private Sub ShowSysMenu()
Dim InPixels%
Dim x%, y%, rc%
InPixels = Me.ScaleWidth
Me.ScaleMode = 1
x = (left) \ (Me.ScaleWidth \ InPixels)
y = (9 * Screen.TwipsPerPixelY + (Me.top + (Me.Height - Me.ScaleHeight - (Me.Width - Me.ScaleWidth)))) \ (Me.ScaleWidth \ InPixels)
ScaleMode = 3
If (y + (3 * GetSystemMetrics(SM_CYMENU))) > (Screen.Height / Screen.TwipsPerPixelY) Then
rc% = TrackPopupMenu(mhSysMenu, 0, x, y - (3 * GetSystemMetrics(SM_CYMENU)) - 9, 0, Me.hWnd, mScreenRect)
Else
rc% = TrackPopupMenu(mhSysMenu, 0, x, y, 0, Me.hWnd, mScreenRect)
End If
mInSysMenu = True
End Sub
Private Sub Msgblaster1_Message(ByVal hWnd As Long, ByVal Msg As Long, wParam As Long, lParam As Long, nPassage As Integer, lReturnValue As Long)
Dim rc&
Select Case Msg
Case WM_NCACTIVATE
If wParam Then
mCaptionColor = GetSysColor(COLOR_ACTIVECAPTION) And &HFFFFFF
Else
mCaptionColor = GetSysColor(COLOR_INACTIVECAPTION) And &HFFFFFF
End If
Me.Refresh
Case WM_CLOSE
End
Case WM_NCHITTEST
mxPos = (lParam And &HFFFF&)
myPos = (lParam / 65536)
mFormTop = top / Screen.TwipsPerPixelY
mFormLeft = left / Screen.TwipsPerPixelX
If (myPos - mFormTop < 10) And (mxPos - mFormLeft > 10) Then
lReturnValue = HTCAPTION
mInSysMenu = False
ElseIf (myPos - mFormTop < 10) And (mxPos - mFormLeft < 10) Then
lReturnValue = HTSYSMENU
'mInSysMenu = True
Else
lReturnValue = HTCLIENT
mInSysMenu = False
End If
Case WM_NCLBUTTONDBLCLK
If wParam = HTSYSMENU Then
End
End If
Case WM_NCLBUTTONDOWN
If wParam = HTSYSMENU Then
If mInSysMenu Then
mInSysMenu = False
Exit Sub
Else
ShowSysMenu
End If
End If
Case WM_COMMAND
Select Case wParam
Case IDM_SYSMOVE
rc& = SendMessage(hWnd, WM_SYSCOMMAND, SC_MOVE, 0)
Case IDM_SYSCLOSE
End
Case IDM_ABOUT
frmAbout.Show vbModal
End Select
End Select
End Sub