ページ 1 / 1
メニューのレ点
Posted: 2005年6月18日(土) 11:54
by Canalime
タスクトレイを右クリックするとポップアップメニューが表示され、
その中の項目にレ点(チェック)を使ってON&OFFの状態を作りたいのですが、
コード: 全て選択
Sub MainWnd_IDM_Switch_MenuClick()
Dim WorkMenu As MENUITEMINFO
Dim WorkLong As Long
WorkLong=GetMenuItemInfo(hMenu_IDM_TRAY,IDM_Switch,MF_BYCOMMAND,WorkMenu)
GetLastErr("Test") ’過去ロブにあったエラーメッセージ確認ルーチン
DEBUG
'SetMenuItemInfo(hMenu_IDM_TRAY,IDM_Switch,MF_BYCOMMAND,WorkMenu)
End Sub
パラメータが不正と怒られてしまいます。WorkMenuの中に値が入りません。
メニュー項目のチェックや文字列を取得し、値の変更を行いたいのですが
どのようにすればいいのでしょうか?
Re: メニューのレ印
Posted: 2005年6月20日(月) 20:30
by KICO
> タスクトレイを右クリックするとポップアップメニューが表示され、
> その中の項目にレ点(チェック)を使って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
Re: メニューのレ印
Posted: 2005年6月20日(月) 20:41
by KICO
ゴメンなさい、訂正します。
コード: 全て選択
[誤]
CheckMenuItem(hMenu_IDM_TRAY, IDM_Switch, MF_BYCOMMAND Or MFS_CHECKED) 'OFF
[正]
CheckMenuItem(hMenu_IDM_TRAY, IDM_Switch, MF_BYCOMMAND Or MFS_UNCHECKED) 'OFF
以上。
ID登録していないので、修正出来ませんでした。
Posted: 2005年6月21日(火) 01:06
by Canalime
http://yokohama.cool.ne.jp/chokuto/uraw ... uItem.html
上記のサイトに
> この関数はSetMenuItemInfo関数に取って代わられましたが、まだ使用できます。
とあったのでSetMenuItemInfoの方を使いましたがお陰様で解決いたしました。
有り難う御座いました。 <m(__)m>