問題タブ [common-controls]
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.
c++ - ホットキー コントロールで Enter を許可する
標準のホットキー コントロールを使用して、ユーザーが特定のアクションのキーの組み合わせを指定できるようにしています。ただし、Return (Enter) キーを使用することはできません。許可する方法はありますか?私のアクションは一種のチャット返信なので、Alt+Enter のようなホットキーを用意するのが最も理にかなっています。
c++ - 別のプロセスで SysHeader32 コントロールから列名を取得する
別のプログラム (program2) のレポート スタイル リスト (SysListView32) にあるヘッダー (SysHeader32) の列の名前を読み取るプログラム (program1) を作成しています。
したがって、基本的には、プログラムを別のプログラムに入れて、見つけたすべてのヘッダー (SysHeader32) のタイトル名を読み取る必要があります。プログラムには多数の異なるリストと各リストのヘッダーがあるため、この関数をコールバック関数EnumChildWindows
と共に使用しEnumChildProc
て、子ウィンドウのすべてのハンドルを調べることにしました。これらのハンドルを使用GetClassName()
して、クラス名が何であるかを確認し、それが SysHeader32 であることを確認すると、さまざまなタイトル名を含むことができるヘッダーを見つけたことがわかります...しかし、テキストを取得するためにどのコードを使用できるかわかりませんこれらのさまざまなタイトルから、各タイトルを識別する方法もわかりません...
これまでに見つけた各 SysHeader32 ヘッダーのハンドルを見つけるコードは次のとおりです。
質問 1:: ヘッダーにいくつの異なるタイトル/アイテムがあるかを確認するにはどうすればよいですか?
質問 2:: ヘッダーにある各タイトル/アイテムのテキストを取得するにはどうすればよいですか?
サンプルコードを提供してください。
ms-access - Microsoft TreeView Control 6.0 (MSComctlLib.TreeCtrl.2) でトライステート チェックボックスをシミュレートすることは可能ですか?
Microsoft Access で Microsoft TreeView Control 6.0 を使用しています。すべてではなく一部の子ノードがチェックされていることを示すグレー表示されていないことを除いて、非常にうまく機能しているようです。
チェックボックスをシミュレートするために自分の画像を使用することを検討しましたが、これを行うと、実際のチェックボックスを削除する必要があります。そうしないと、アイテムごとに2つのチェックボックスがあるように見えます...しかし、何もありませんチェックボックスがあり、画像のクリックを処理する方法がわかりません。
他の言語/用途でこのコントロールについて同じような質問をする人がたくさんいますが、Microsoft Access の解決策は見つかりません。
3 段階のチェックボックスを備えた階層構造を提供してくれるものが他にある場合は、別のコントロールに移行できれば幸いです。
c++ - Windows コモン コントロールのバグ?
最近、Windows のバグのように見える、BS_MULTILINE スタイルを持つ Windows の「ボタン」コントロールの非常に奇妙な動作に直面しました。再現するには、次のようにします。
(1) Visual Studio 2012 Project Wizard で新しいプロジェクトを作成します。「MFC アプリケーション」を選択します。
(2) [アプリケーションの種類] ページで、[ダイアログ ベース] + [MFC 標準] を選択します。
(3) [高度な機能] ページでは、[共通コントロール マニフェスト] のみを保持します。
(4) 生成された「Resource.h」ファイルに次の行を追加します#define IDC_LONG_TEXT 103
。
(5) 生成された <project-name>.rc ファイルで、メイン ダイアログ定義内の "TODO" 静的テキストを次の行に置き換えます。
(6) 生成された <project-name>Dlg.cpp ファイルのOnInitDialog()
ハンドラーで、"TODO" コメント行の後に次のコードを追加します。
(7) プログラムをビルドして実行します。ボタンのテキストがボタンの右上隅に描画されていることがわかります。上記のコードの最後の行をコメントすると、テキストが正しく描画されます。
誰も同じ問題に直面していますか?それは本当にバグですか?もしそうなら、どのようにマイクロソフトに提出できますか?
visual-c++ - 色付きのプログレス バーと一般的なコントロール付きの境界線
GUI には、気に入ったカラフルなプログレス バーがありました。
ただし、Windows 7 で GUI を Windows 7 スタイルにしたかったので、このプラグマを追加しました。
しかし、これにより、私が好きではないモノクロ (緑) のアニメーション化された光るツールバーが作成されました。
そこで、次のように入力してスタイルを削除しました。
悪くない結果:
ただし、同じリソース ファイルに依存していますが、プログレス バーの周りに境界線がないことに注意してください。ウィンドウの残りの部分で Windows 7 の外観を維持しながら、プログレス バーを元の外観に設定するにはどうすればよいですか?
c++ - リスト ビュー アイコンを表示すると背景が黒くなるのはなぜですか?
CListCtrl (またはリスト ビュー コントロール) にアイコンを追加すると、なぜこの黒いアウトラインが表示されるのかわかりません。
私はそれを次のようにロードします:
次に、イメージ リストを次のように作成します。
リスト ビューが最初に準備されます。
アイコンは、リストのサブアイテムに次のように表示されます。
それで、私は何を間違っていますか?
PS。このテストは、32 ビット トゥルーカラー ディスプレイ設定の Windows 8.1 で実行しました。
アイコン自体は256色の画像ですが、このような小さなサイズとシンプルなデザインのためにアルファチャンネルを備えた32ビットのアイコンでスペースを浪費する理由が見当たらないためです。
winapi - 最後に: Windows API で、黒の背景ではなく、完全に透明なチェックボックス、ボタン、ラジオ ボタンなどを取得するにはどうすればよいですか?
まず、ここで傲慢/失礼に聞こえたら申し訳ありません。
よし、これで誰もがこの問題に遭遇したことになるだろう (私は願っている); どこにも適切な答えが見つかりませんでした。Common Controls 6 マニフェストから始めて、
そして私たちのラベルを付けてくださいWS_EX_TRANSPARENT
。それらは透明になります。ここまでは順調ですね。次に、そのスタイルをチェックボックスに追加する必要があります (チェックボックスはそれに応答しWM_CTLCOLORBTN
、何らかの理由で応答しないため)。そして...チェックボックスが黒くなります!
所有者の描画に頼らずに完全に透明にする方法はありますか? チェックボックスを自分で描画したくありません。テーマAPIが失敗した場合に、それが正しいかどうか、またはサイズが何であるかを推測する必要はありません(そして、将来、リストビューにカスタムチェックボックスを追加するときに、チェックボックスを自分で描画する必要があります私はすでに推測の量に満足していません)。
これらのチェックボックスは、テーマ タブ コントロール上に描画されています。これまでのところ、テーマ別のタブに透明なチェックボックスがある Windows XP の 5 つのダイアログを見つけました。ショートカット プロパティの [全般] タブ、タスクバーと [スタート] メニューのプロパティの [タスクバー] タブ、システム プロパティの [システムの復元] タブ、フォルダ オプション (ラジオ ボタン) の [全般] タブ。 、およびアクセシビリティ オプションの [キーボード] タブ。だから、これは確かに可能でなければなりません!Windows UI の作成者は、OS 全体でカスタム ドローを使用する必要はなかったと確信しています...何が欠けているのでしょうか?
サブクラス化する必要がある場合は問題ありませんが (イベント処理の目的で既にサブクラスを持っています)、それでも自分で描画する必要はありません。
おまけとして、押しボタンはどうですか?オーバーライドWM_CTLCOLORBTN
するとボタンに黒い境界線が表示されますが、上記の標準ダイアログのいずれもボタンの角を透明にすることを気にしていないことに気付きました。
ありがとう!