背景色プロパティをサポートするためにNETCF MainMenuを拡張するためのコード
-
03-07-2019 - |
質問
Compact FrameworkのMainMenuコントロールの背景色を変更するソリューションを検索しましたが、カスタムコントロールを作成する必要があるという唯一の答えが見つかりました。誰かがこれのサンプルコードを持っていますか?
解決
これを行う方法はありません。
その権利は、おそらく独自のコントロールを作成する必要があります。
これは、とにかくアプリケーションをWindows CEおよびWindows Mobileで動作させるために検討することでした。
アプリケーションが両方で動作する必要があるときにメニューを追加する際の問題は、メニューがWindows CEの画面の上部に移動し、そこにある可能性のあるコントロールをすべてカバーすることです。
長い目で見れば簡単に新しいコントロールを作成できます。
他のヒント
.NETCFでイベントとして利用できなかったWM_EXITMENULOOPメッセージを処理したいところ、漠然と似たようなことをしました。
解決策は「サブクラス」でした。メインメニューは、WndProc関数を独自のMFCに置き換える古いMFCのトリックであり、Windowsメッセージ(私の場合はWM_EXITMENULOOP)を処理し、その他すべての基本クラスWndProcを呼び出します。
コントロールをサブクラス化する方法に関するいくつかのサンプルコードがAlex Yakhninのブログで利用可能です。 .NETCFでウィンドウをサブクラス化する例
実際には、MainMenuが存在するFormをサブクラス化することになり、WM_DRAWITEMは自分で処理したいWindowsメッセージになると思います。 背景色を自分で変更しようとしていないので、これが機能するかどうかは完全にはわかりませんが、サブクラス化を開始する場所になります。
しばらく前に似たようなことをしようとしましたが、独自のメニューを作成する必要があることがわかりました。基本的にゼロから。私が取り組んでいたプロジェクトが費用を払うことができなかったので、私はあきらめました。また、 OpenNETCF には非常に素晴らしいメニューコントロールがあることも発見しました。フリーソフトウェアに含まれているかどうかはわかりませんが、検討する価値があるかもしれません。