問題タブ [systemmenu]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
635 参照

windows - CDialogポップアップにシステムメニューを表示するには?

私は CDialog ベースのアプリケーションを持っています。Visual Studio リソース エディターで、ダイアログのプロパティは、スタイルが「ポップアップ」に設定され、システム メニューの値が「True」であることを示しています。ただし、アプリケーションを実行すると、システム メニューが表示されません。システム メニューを表示するにはどうすればよいですか? 最初に SetIcon() でアイコンを設定する必要がありますか?

リソースファイルからの私のダイアログの定義は次のとおりです。

0 投票する
2 に答える
709 参照

c# - C#アプリケーションのシステムメニューからサイズオプションを無効にする

私は ac# Windows ベース アプリケーションを持っています。システム メニューでサイズ オプションを無効にする必要があります。

システム メニューにオプションを追加するには、user32.dll を使用しています。Windowsフォームを使用しています。

ここに画像の説明を入力

0 投票する
1 に答える
694 参照

vb.net - システム メニューに「バージョン情報」ボタンを正しく追加するにはどうすればよいですか?

アプリのシステム メニューに [About] ボタンを追加しようとしていますが、見つかったコードがエラーをスローしています -

DLL 'user32' に 'AppendMenu' という名前のエントリ ポイントが見つかりません。

誰かがコードを見て、それを修正するために何をする必要があるかアドバイスしてもらえないでしょうか? ありがとう。

0 投票する
1 に答える
194 参照

wpf - WinAPI システム メニューを新しいウィンドウにコピー

HwndHost を使用して、WPF ウィンドウ内に別のアプリケーションのウィンドウをドッキングしています。これを行うには、ドッキングしているウィンドウの WS_CHILD スタイル属性を設定する必要があり、そのウィンドウのシステム メニューを失います。これは受け入れられません。HwndHost を使用すると、その属性が設定されていない場合に例外がスローされるため、これを回避する方法はありません。

私の質問は;

私のアプリケーションはシステム メニューを使用しないため、ドッキングされたアプリケーションのシステム メニューをアプリケーションのウィンドウに直接コピーする方法はありますか? 私が認識している WinAPI メニュー関数はすべて、メニューを最初から作成する必要があり、これらのメニューをホストされたアプリケーションにフックする方法がわかりません。

問題があるかどうかはわかりませんが、2 つのウィンドウは同じプロセス内にあります。私のアプリケーションは、ドッキングしているアプリケーション ウィンドウのプラグインです。

0 投票する
1 に答える
973 参照

winapi - 再帰的なメッセージ ループ

メッセージ ハンドラ内からメッセージ ループを正しく実行できません。実際には、DialogBox() がメッセージを処理する方法を複製し、すべてのウィンドウ処理を差し引いています。

システム メニューを開く WM_SYSKEYDOWN イベントがサブループへのエントリもトリガーする場合を除いて、メッセージ ハンドラー内から GetMessage() を呼び出すだけでほとんど機能します。この奇妙なことが起こった後、キーの押下が飲み込まれ、システム メニューに関連する WM_MOUSEMOVE メッセージがメイン ウィンドウに送信されます。

記録として、これは Windows 8 と XP の両方で発生します。

いくつかのコンテキストを提供するために、(ウィンドウのない) ワーカー スレッドがサーバーとして機能するメイン ウィンドウへの SendMessage 呼び出しをブロックすることで通信するスレッド モデルを試みています。これらのアクションにはさらに入力が必要な場合や、他の I/O に依存する場合があるため、通常のメッセージは、応答の準備ができるまで処理する必要があります。

前回ここに投稿したときと同じように、これが私の側の基本的な間違いまたは誤解であることはかなり確信していますが、自分で何が間違っているのかをうまく理解できないようです.

これが私の再現ケースです。ALT+SPACE を押してシステムメニューを開いてからナビゲートしてみてください。

0 投票する
1 に答える
1580 参照

.net - GetMenuItemInfo はメニュー項目情報を取得しません

miiシステム メニューの項目を設定 (または取得) するための MenuItemInfo 構造体を割り当てるこの変数があります。

この問題は、変数を使用して、API 関数を使用して既存のメニュー項目に関する情報を保存しようとすると発生しますGetMenuItemInfo。変数は何も変更せず、すべての構造メンバーはまだ空です。

Byrefこれは API 関数です (適切に設定されていることに注意してください)。

これは、クリックされたメニュー項目の情報を取得しようとしている方法です (内部のコメントを確認してください):

どうすればこれを解決できますか?

アップデート:

これで、コードは次のようになります。任意のアイテムの ID を取得しますが、文字列は取得しません。

0 投票する
1 に答える
184 参照

vb.net - システム メニューのカスタム ボタンへのクリックを処理する

任意のフォームのシステム メニューに「About...」ボタンを追加できるクラスを作成できました。loadこの部分は、フォームのイベントによって追加されたボタンで正常に動作しますが、そのボタンのクリックをどのように処理すればよいでしょうか? ありがとう。

ボタンを追加する方法は次のとおりです-

そして、ここにSystemMenuクラスがあります -

0 投票する
0 に答える
1514 参照

c++ - Windowsのコンソールアプリケーションでシステムメニューイベントをキャプチャする方法は?

コンソール アプリケーションでシステム メニューを取得し (GetSystemMenu)、独自のエントリを追加する (AppendMenu) のは簡単です。しかし、これらのメニュー項目はアプリには役に立ちません。どのメニュー項目がクリックされたかを識別するメッセージ ストリームに入る方法はありますか?

コンソール ウィンドウにフックしようとしましたが、結果はありません。WH_SYSMSGFILTER を意味します。すべて正常にコンパイルされていますが、フック関数がシステムによって実行されていないことを示すメッセージはありません。

次に、これは部分的に機能します。つまり、システム メニューにマウス イベントが表示されますが、クリックされたメニュー項目に関するReadConsoleInput情報が構造にありません。MENU_EVENT_RECORD

これらはすべて 1 つのスニペットでの私の試みです。ここでは、コンソールにメッセージが殺到する必要がありますが、ReadConsoleInput からのメッセージのみが表示されますが、これらには有用な情報は含まれていません。ユーザーが最初または 2 番目に追加されたメニュー項目をクリックしても、278 (0x116) WM_INITMENU と 287 (0x11F) WM_MENUSELECT の 2 つのコードしか表示されませんが、WM_MENUSELECT メッセージの wParam に到達する方法はわかりません。

マウス イベントのフック、つまり WH_MOUSE_LL の作成に成功しました。しかし、他のすべてのフックは機能しません。

私が達成しようとしているのは、ある種の WM_MENUCOMMAND メッセージを取得してから、GetMenuItemInfo で休むことです。

フックの手順は別の dll で行うべきだと聞いたことがありますが、どうすればよいでしょうか? 作業中のスニペットはありますか?

0 投票する
0 に答える
1400 参照

java - Java アプリケーションで Alt-Space キーの組み合わせを無効にすることは可能ですか?

Windows で Alt キーとスペース キーの組み合わせを使用すると、"ウィンドウ メニュー" (タイトル バーを右クリックしたときに表示されるメニュー) が表示されます。「元に戻す」「最大化」「最小化」「閉じる」などの項目がありますが、無効にしたいです。Java Swing プログラムでこれを行う方法はありますか? アプリケーションに到達する前に、OSがこれを取得すると思います。

0 投票する
0 に答える
52 参照

.net - SystemMenu のスタイリング

製品では、WPF メニューと ContextMenus を完全にスタイル設定しています。それらはすべて暗黙のスタイルです。しかし、私が見つけたのは、システム メニュー (Alt + スペース) が、スタイルに従っていない代わりに Windows の既定のスタイルを表示するメニューを表示することでした。このスタイリングの問題を修正する方法はありますか?