掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
SendMessageでキーコードを送るには? (ID:8057)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
うーむ、コントロールIDは任意の番号を付けられます。開発環境に依存します。 古いスタイルのVCのダイアログアプリだと、定数で定義されますのでいつも 同じIDを持っています。Win2000 でメモ帳を三つ立ち上げて、その Edit 部分の IDは三つとも同じです。ペイントのツールパレットの虫眼鏡ボタンについても いつも同じIDを示します。しかし、Delphi ではIDEが勝手に動的につけてくれる ようで、起動するたびに変動するようですね。このような場合は確かにつかえません。 例えばペイントのツールボックスの虫眼鏡ボタンのハンドルをどうやって見つける かをコントロールIDを使わずに出来ればいいのですよね? Win2kのペイントの場合、このボタンは AfxWnd42u というクラスのウィンドウの 子ウィンドウで16個の ToolChid というボタンの一つです。すべてのウィンドウ テキストは空白です。しかし、この16個のボタンのうちZオーダーの高いほうから 6番目が目指す虫眼鏡ボタンです。子ウィンドウをZオーダーの順で列挙するには 最もたかいものを hWindow := GetWindow(hParent,GW_CHILD); で見つけ、そのつぎは hWindow := GetWindow(hWindow,GW_HWNDNEXT); で見つかります。ですから、Zオーダは起動するたびには変化しないので、これを 使えば任意番目のボタンのハンドルが取得できます。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.