ウィンドウに標準以外のスクロールバーがある場合(たとえば、ウィンドウで標準のスクロールバーを使用せずにスクロールバー自体を描画できるなど)、WinAPIで検出する方法はありますか?非標準のスクロールバーを検出する
1
A
答えて
1
どのようにこれを行うことができるのか分かりにくいです。コントロールは、独自のキャンバスにスクロールバーをペイントするだけで、独自のヒットテストを行い、どのように知っているでしょうか。スクロールバーに別のHWNDを作成しなくても、これをすべて実行できます。
あなたがなぜこのことを知りたいのかと言うと、もっと面白いことがあります。
2
これがうまくいくかどうかは分かりませんが、単なるアイデアです。 スクロールバーは、このスタイルを有効にして作成する必要があるウィンドウに属します。したがって、ウィンドウにWS_VSCROLLスタイルが含まれているかどうかを確認することができます。そうであれば、これは標準のスクロールバーです。相手方では、それは他の誰かに引き寄せられます。
あなたはこの方法でそれを確認することができます。
// Assume that a window handle hWnd is known
int style = GetWindowLong(hWnd, GWL_STYLE);
BOOL bStandard = ((style & WS_VSCROLL) != 0);
関連する問題
- 1. msvc標準ライブラリを検出する
- 2. 非標準コマンド出力の解析
- 3. Openxml - 非標準のxlsxを標準形式で保存する
- 4. 非標準のディレクトリ
- 5. 非標準のインポート
- 6. 非標準文字を標準バージョンに変換する
- 7. Doctrine:migrations:diffは、非標準ディレクトリのエンティティに対するマッピングの検出を検出しません。
- 8. Base64と非標準
- 9. linux非標準シリアルコンソール
- 10. レール非標準リソースルート
- 11. XAMPP非標準ウェブホスティングポート
- 12. Pythonのhashlibを使用した利用可能な非標準ハッシュアルゴリズムの検出
- 13. corba idlの非標準ネームスペース
- 14. 非標準csvファイルのインポート
- 15. JNAの非標準型
- 16. mutate_each_非標準の評価
- 17. カスタム非標準フィールドを作成する
- 18. 非標準ビジネスアドレスをジオコードする方法
- 19. 標準入力と標準出力を.Netでリダイレクトする
- 20. エラー:標準パッケージの非標準インポート「gopkg.in/yaml.v2」
- 21. ファイルテールインバウンド・チャネル・アダプターを標準エラー出力と標準出力
- 22. のpythonロギングモジュール - ターミナル、標準出力、標準エラー出力
- 23. トラッキング非標準gtm要素
- 24. MySQL Workbench非互換/非標準サーバ
- 25. 非標準形式から標準形式をJavaで解析する
- 26. 標準出力、標準入出力オプション[ヌルヌル、ヌル、]「継承」
- 27. 非標準のUNIX日付からの日の抽出
- 28. 標準トランザクション、標準非トランザクション、Netsuite APIのカスタムレコードを意味しますか?
- 29. 非標準サイズのバイナリロングを読む
- 30. EJB3 - 非標準のリンクテーブルを扱う
は、次にウィンドウスタイルを使用するのではなく、「スクロールバーコントロール」を使用する場合があります。彼らが*非標準のスクロールバー*と見なすならばDunno。それにもかかわらず、私はこれがすべてできることだと信じています。 –
このコードは、標準のスクロールバーでのみ機能します。 – clumpter
@clumpter - それがポイントです。スクロールバーが標準の場合、bStandardはtrueになります。それ以外の場合(windown hWndの標準でないスクロールバー、またはスクロールバーがない場合)はfalseになります。つまり、hWndにスクロールバーが含まれていることを確認する必要があります。これは、標準のスクロールバーであるかどうかを調べる方法です。 – Vladimir