• ベストアンサー

ポップアップメニューのチェックマークについて

ポップアップメニューのチェックマークを表示させたいのですが どうすればいいのでしょうか? このサイト http://yokohama.cool.ne.jp/chokuto/urawaza/struct/MENUITEMINFO.html を見て、「fMask」に「MIIM_CHECKMARKS」を入れるなど、色々試したのですが 表示されませんでした。 何にどれを入れると出来るのでしょうか? 開発環境:Visual Studio 2005 言語:C又はC++ でお願いします。

noname#154655
noname#154655

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

 こんばんは。チェックを入れるのならば、 MENUITEMINFO mi = {sizeof(mi)}; mi.fMask = MIIM_STATE; mi.fState = MFS_CHECKED; ::SetMenuItemInfo(hMenu , /*アイテムのID*/ , FALSE , &mi);  では無いでしょうか。

noname#154655
質問者

お礼

出来ました。 「MIIM_STATE」だったんですね。 「MIIM_CHECKMARKS」だと思ってやってました。 いつもありがとうございます。

その他の回答 (1)

回答No.2

CheckMenuRadioItem() あたりで調べてみてください。

noname#154655
質問者

お礼

そういう関数もあったんですね。 ありがとうございます。

関連するQ&A

  • ポップアップメニュー

    ポップアップメニュー表示について質問です。 リソースファイルを使わずにポップアップメニューを 表示させたいのですが、どうすればいいのでしょうか? このサイト↓ 「http://msdn.microsoft.com/ja-jp/library/cc440880.aspx」 を見ても、私はVBは分からないので出来ませんでした。 他のサイトも調べてみたのですが、リソースファイルを使った サンプルしかありませんでした。 開発環境:Visual Studio 2005 使用言語(分かる言語):C、C++

  • 動的に追加したポップアップメニューのオーナードロー

    WindowsXp/BCC5.5の環境でアプリ作りを勉強しています。 「mi.fType = MFT_STRING」として、あらかじめ用意したポップアップメニューに動的にメニューを追加できるのですが、その追加したメニューにビットマップを付加するために、「mi.fType = MFT_OWNERDRAW」で追加したいのです。 しかし、これがうまくいきません。 追加じたいは出来るのですが、メニューIDがWM_MEASUREITEMのところに届いていないみたいで そのため、オーナードローできずにいます。 つまり、「WM_MEASUREITEM」は飛んできますが、メニューID((UINT) wp)はゼロのままです。 本当は「mi.wID = 1200」を取得したいんです。 そのため、ウインドウメッセージ、WM_MEASUREITEM、WM_DRAWITEMは 飛んできますが、オーナードローができず、困っております。 ポップアップメニュー追加のためのコード(以下抜粋)を記載しています。 どなたか、ご教授できないでしょうか。 宜しくお願いします。 <メニュー追加のためのコード> memset(&mi, 0, sizeof(MENUITEMINFO)); mi.cbSize=sizeof(MENUITEMINFO); mi.fMask = MIIM_TYPE | MIIM_ID | MIIM_STATE; mi.fType = MFT_OWNERDRAW; mi.wID = 1200; InsertMenuItem(hSubMenu,0,TRUE,&mi ); 以上

  • ポップアップメニュー

    ポップアップメニューについて質問させて頂きます。 リストビュー上で右クリックしたときにポップアップメニューを表示させているのですが、このポップアップメニューの項目がクリックされた時のイベントの取り方が分かりません。 ご存知の方、宜しくお願いします。 環境はVisual Studio6.0 Windows2000です

  • ポップアップメニュー作成時にレイアウトが変になる

    ロールオーバーにポップアップメニューを付加したオブジェクトをFireworks4で作ってHTMLに書き出したものを、Dreamweaver4でFireworksオブジェクトの挿入で貼り付けました。すると、レイアウトビューでオブジェクトの前と後に変なマークが表示され、ブラウザ上でもその分だけオブジェクトの位置がずれてしまいます。表示メニューの「ビジュアルエイド」で「全て非表示」にすると、二つの変なマークのうち一つは消えましたが、もう一つがどうしても消えません。DreamweaverMXでは、「ビジュアルエイド」で「全て非表示」にすると二つとも消えるのですが。。。事情があってMXは使えません。Dreamweaver4ではどうしたら二つとも消せるのでしょうか。

    • ベストアンサー
    • CSS
  • ポップアップメニュー

    NotifyIconでタスクバーに呼び出したアイコンの上で右クリックをしたら、ポップアップメニューが表示させるように作りたいのですが、作り方が分かりません。(サイトなどを見たりしました。) 出きれば教えて頂きたいと思います。 *何をしたいのか↓ タスクトレイで表示されたアイコンを右クリックをするとポップアップメニューが出る。 ・環境 Microsoft Visual C++ SDK HINSTANCE hInst; POINT point; static HMENU hMenu,hSubMenu; /////////////////省略/////////////////// case WM_RBUTTONDOWN:  hMenu = LoadMenu(hInst,"MENUDATA");  hSubMenu = GetSubMenu(hMenu,0);  point.x = LOWORD(lParam);  point.y = LOWORD(lParam);  TrackPopupMenu(hSubMenu,TPM_LEFTALIGN,point.x,point.y,0,hWnd,NULL); break; これではうまくいかないのでご助言お願いします。

  • WM_TIMERからポップアップメニューを閉じるには?

    質問させて頂きます。 現在C++にてWin32SDKを使用し開発を行っております そこで、メインウィンドウが非表示の時にもポップアップメニューを表示するようにしているのですが 非表示の際、ホットキーからポップアップメニューを表示すると ポップアップメニュー以外をクリックしても消えますが WM_TIMER等、一定時間経過時に表示した場合 ポップアップメニュー以外をクリックしても消えません WM_HOTKEYでは SetForegroundWindow関数でアクティブにした後に TrackPopupMenu関数でポップアップメニューを表示して 関係ない所をクリックされてもうまく消えます WM_TIMERでもWM_HOTKEYと同じ処理をしても上手くいきません タスクトレイの右クリックと同じく TrackPopupMenu関数の後にWM_NULLをポストしてもメニューは消えません 何か上手く解決出来る方法は無いでしょうか? どうぞよろしくお願いします。

  • ポップアップメニューに"?"

    FireworksとDreamweaverでポップアップメニューを作りました。 最初は問題なく作動していたのですが、他をいじっているうちに ポップアップメニュー上にクエスチョンマークが表示されるようになりました。 (マウスポインタを持っていくと出てきます。) 自分なりに調べてみたら、mm_menu.jsを移動させた事が原因という事がわかりました。 しかし対処法がわかりません。(ファイルを元通りの場所に戻しても変わりませんでした。) 初心者でJavaScriptのソースを見てもどこに問題があるのか分からず、 いっその事作り直そうかと思いましたが、十分な時間もまた同じ物を作る自信もなく躊躇しています。 もし簡単に直せる方法があるなら教えていただけると大変助かります。 都合のいい事を言っているのは承知していますが身動きがとれずに困っています。 どなたか教えて下さい。お願いします。

  • EXCELのメニュー操作アプリ(C#)

    アプリ作成で悩んでいます。 【やりたいこと】   EXCELを開くと、左上に[ファイル(F)],[編集(E)],[表示(V)]...   と並んでいるメニューがあり、   この中で[表示(V)]-[ツールバー(T)]を選択すると、   いくつかの項目にチェックが付いていると思います。   ※人によっては何もチェックが無い状態もあると思いますが・・・   ここで、私が作成したいアプリは、    「チェックされている箇所を判別して、         指定の箇所にチェックがなければ              指定の箇所にチェックを入れる」   です。 【試した方法】   通常のメモ帳や電卓等のメニューについては、   API(GetMenu、GetSubMenu、GetMenuItemInfo、SetMenuItemInfo等)   を用いて上記を実現できましたが、   EXCELはメニューの形式が異なるためなのか   GetMenuでウィンドウハンドルの取得が出来ませんでした。 下記はメモ帳のステータスバーチェック状態を調べて   チェックが無い場合にチェックするサンプルです。   EXCELのウィンドウハンドルからGetMenuを呼び出しても   メニューのウィンドウハンドルを取得することが   できませんでした。 //============================================== //フォームに紐づくメニューハンドル取得 //============================================== IntPtr hMenu = GetMenu(hWnd); //============================================== //サブメニューウィンドウハンドル取得 //============================================== IntPtr hSubMenu = GetSubMenu(hWnd,3); //============================================== //メニュー状態取得 //============================================== MENUITEMINFO mif = new MENUITEMINFO(); mif.cbSize = Marshal.SizeOf(typeof(MENUITEMINFO)); mif.fMask = MIIM_STATE; GetMenuItemInfo(hSubMenu,3,true,ref mif) //============================================== //チェック判定 //============================================== if(mif.fState != MFS_CHECKED) {//チェックなしの場合 //=========================== //メニュー状態変更 //=========================== MENUITEMINFO mif = new MENUITEMINFO(); mif.cbSize = Marshal.SizeOf(typeof(MENUITEMINFO)); mif.fMask = MIIM_STATE; mif.fState=MFS_CHECKED; SetMenuItemInfo(hSubMenu,3,true,ref mif) } 【開発言語】   C#(バージョン問わず) 大変困っています。 実現可能/不可能だけでも結構ですので、 もしご存知の方がいらっしゃいましたら ご教授の程、宜しくお願い致します。

  • DreamweaverMXでのポップアップメニューについて

    DreamweaverMXでポップアップメニューを作成しました。 そのファイルをローカル上では表示されるのですが サーバーにアップすると表示されません。 画面左下のステータスバーにエラーありのマークが 出てしまいます。 内容は ライン:91 文字:19 エラー:オブジェクトを指定してください。 コード:0 何がいけないのでしょうか? よろしくお願いします

  • ポップアップメニューのリンク先はhttp://だけ

    Macromedia Fireworks 8 スーパーリファレンス を使用して、作成しています。 Macromedia Fireworks 8でポップアップメニュー を作成しています。 一つのメニュー(リンク先:http://www.yahoo.co.jp) を選択すると、Yahoo!JAPANのHPが開きます。 もう一つのメニュー(リンク先:C:\hoge\hoge.html) を選択すると、IE6はまったく反応しません。 Mozilla Firefox2.0で開くと、 "/C:/hoge/hoge.html にはファイルが見つかりませんでした。" と表示されます。 ポップアップメニューのリンク先はhttp://だけ? なんでしょうか? お忙しいところ申し訳ございません。 ご教授お願いいたします。