by KICO » 2005年6月20日(月) 20:30
> タスクトレイを右クリックするとポップアップメニューが表示され、
> その中の項目にレ点(チェック)を使ってON&OFFの状態を作りたいのですが、
コード: 全て選択
'メニュー項目のチェックマークを制御
Declare Function CheckMenuItem Lib "user32" _
(hMenu As Long, wIDCheckItem As Long, wCheck As Long) As Long
'メニューのチェック状態を設定
CheckMenuItem(hMenu_IDM_TRAY, IDM_Switch, MF_BYCOMMAND Or MFS_CHECKED) 'ON
CheckMenuItem(hMenu_IDM_TRAY, IDM_Switch, MF_BYCOMMAND Or MFS_CHECKED) 'OFF
> パラメータが不正と怒られてしまいます。WorkMenuの中に値が入りません。
> メニュー項目のチェックや文字列を取得し、値の変更を行いたいのですが
> どのようにすればいいのでしょうか?
http://yokohama.cool.ne.jp/chokuto/uraw ... INFO.html] ←参照
コード: 全て選択
Dim WorkMenu As MENUITEMINFO
Dim WorkLong As Long
Dim buf[MAX_PATH] As Byte
FillMemory (VarPtr(WorkMenu), Len(WorkMenu), 0)
With WorkMenu
.cbSize=Len(WorkMenu)
.fMask=MIIM_STATE Or MIIM_TYPE
.fType=MFT_STRING
.cch=MAX_PATH
.dwTypeData=VarPtr(buf)
End With
WorkLong=GetMenuItemInfo(hMenu_IDM_TRAY, IDM_Switch, MF_BYCOMMAND, WorkMenu)
Debug
> タスクトレイを右クリックするとポップアップメニューが表示され、
> その中の項目にレ点(チェック)を使ってON&OFFの状態を作りたいのですが、
[code]'メニュー項目のチェックマークを制御
Declare Function CheckMenuItem Lib "user32" _
(hMenu As Long, wIDCheckItem As Long, wCheck As Long) As Long
'メニューのチェック状態を設定
CheckMenuItem(hMenu_IDM_TRAY, IDM_Switch, MF_BYCOMMAND Or MFS_CHECKED) 'ON
CheckMenuItem(hMenu_IDM_TRAY, IDM_Switch, MF_BYCOMMAND Or MFS_CHECKED) 'OFF
[/code]
> パラメータが不正と怒られてしまいます。WorkMenuの中に値が入りません。
> メニュー項目のチェックや文字列を取得し、値の変更を行いたいのですが
> どのようにすればいいのでしょうか?
[url]http://yokohama.cool.ne.jp/chokuto/urawaza/struct/MENUITEMINFO.html][/url] ←参照
[code]Dim WorkMenu As MENUITEMINFO
Dim WorkLong As Long
Dim buf[MAX_PATH] As Byte
FillMemory (VarPtr(WorkMenu), Len(WorkMenu), 0)
With WorkMenu
.cbSize=Len(WorkMenu)
.fMask=MIIM_STATE Or MIIM_TYPE
.fType=MFT_STRING
.cch=MAX_PATH
.dwTypeData=VarPtr(buf)
End With
WorkLong=GetMenuItemInfo(hMenu_IDM_TRAY, IDM_Switch, MF_BYCOMMAND, WorkMenu)
Debug[/code]