記事No |
: 903 |
投稿日 |
: 2020/04/06(Mon) 10:01:57 |
投稿者 |
: JA9AOB 銅子 |
> はい、JTDXの中で [ Log QSO ] ウインドウが表示されたら自分自身 [ Log QSO ] ウインドウのハンドルを取得したいのです。
>
私はVC++なのでマイクロソフトのMFC対応ウィンドウであれば 簡単ですが 異なるのでお役に立てませんね。
VC++ 付属のspy++ でもJTDXのウィンドウはトップレベルのウィンドウの情報しか得られません。
どうしてでもと言う事であれば、Win Apiを駆使して検索するより手が無いようにも思えます。
HWND hWnd = 0;
while (hWnd = FindWindowEx(hDlg, hWnd, _TEXT("Button"), NULL))
{ TCHAR title[128];
TCHAR className[128];
GetWindowText(hWnd, title, sizeof(title) / sizeof(TCHAR));//ウインドウの文字を取得して、
GetClassName(hWnd, className, sizeof(className) / sizeof(TCHAR));
_ftprintf(fp, _TEXT("\"%s\" \"%s\" %0.8x\n"), title, className, (DWORD)hWnd);}
の様な例もあります。 内容的には、ウィンドウのテキストを順次表示するだけですが、FindWindowEx の初期設定を 前回のC#の様にすれば、JTDXの各ウィンドウが得られるはずですが。
これで目的のウィンドウが見つける手掛かりが得られるのではないでしょうか。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!