Postup:
Do modulu zapište
následující deklarace:
'struktura pro použití
API funkcí
Public Type
MENUITEMINFO
cbSize As Long
fMask As Long
fType As Long
fState As Long
wID As Long
hSubMenu As Long
hbmpChecked As Long
hbmpUnchecked As Long
dwItemData As Long
dwTypeData As String
cch As Long
End Type
'konstanty pro API funkce
Public
Const MIIM_STATE = &H1
Public Const MIIM_ID = &H2
Public Const MIIM_SUBMENU = &H4
Public Const MIIM_CHECKMARKS = &H8
Public Const MIIM_TYPE = &H10
Public Const MIIM_DATA = &H20
Public Const MFT_RADIOCHECK = &H200&
'deklarace API funkcí
Public Declare Function
SetMenuItemInfo Lib "user32" Alias "SetMenuItemInfoA" (ByVal
hmenu As Long, ByVal uItem As Long, ByVal fByPosition As Long, lpmii As
MENUITEMINFO) As Long
Public Declare Function GetMenu Lib "user32" (ByVal hWnd As Long)
As Long
Public Declare Function GetSubMenu Lib "user32" (ByVal hmenu As
Long, ByVal nPos As Long) As Long
*každá deklarace musí
být na samostatné řádce
Do projektu vložte nový
formulář, nazvěte jej Form1.
Ve formuláři založte novou funkci SetMenuRadio:
Private Function
SetMenuRadio(Mnu As Menu, ByVal BarPos As Long, ByVal MenuPos As Long)
Dim M As
MENUITEMINFO
Dim hmenu As Long
hmenu = GetSubMenu(GetMenu(Mnu.Parent.hWnd), BarPos)
M.cbSize = Len(M)
M.fMask = MIIM_TYPE
M.fType = MFT_RADIOCHECK
M.fState = 0
M.wID = 0
M.hSubMenu = 0
M.hbmpChecked = 0
M.hbmpUnchecked = 0
M.dwItemData = 0
M.dwTypeData = Mnu.Caption & Chr$(0)
M.cch = 0
SetMenuItemInfo hmenu, MenuPos, 1, M
End Function
Ve formuláři nadefinujte
nové menu se třemi volbami, které se jmenují Menu a mají index 1-3.
Na událost Load formuláře
pak vložte následující kód:
Private Sub Form_Load()
SetMenuRadio
Menu(1), 0, 0
SetMenuRadio Menu(2), 0, 1
SetMenuRadio Menu(3), 0, 2
End Sub
|