他のアプリのスクロールバーをスクロールするには?


よしき  2006-09-30 04:55:20  No: 23436

他のアプリケーションの上下スクロールバーのつまみを上下させたいのですが、(▲▼ボタンを押した時に動く分)見当がつきません。
誰かご教授の程をよろしくお願いします。

因みに、そのスクロールバーのクラス名が分かっています。


そうなの?  2006-09-30 06:36:53  No: 23437

>…見当がつきません。
それはコマッタね。
>因みに、そのスクロールバーのクラス名が分かっています。
それはケントウはずれかな…

必要なのは、そのスクロールバーによってスクロールするコントロールのハンドル。
そのハンドルに WM_VSCROLLメッセージを送ってネ。SB_LINEUP、SB_LINEDOWNがWParam。


yosiki  2006-10-01 02:58:28  No: 23438

僕もそう思って

hWnd := スクロールバーのハンドル;
PostMessage(hWnd, WM_VSCROLL, SB_LINEUP, 0);

でやってみたんですが、上がりませんでした。PAGEUPでもだめでした。
調べてみたんですが、コレって他のコントロールが所有しているスクロールバーを動かすメッセージじゃないでしょうか?

僕が動かしたいのは、単体のスクロールバー(Delphiで言うTScrollBar)です。

再度ご教授お願いします。


表裏 未里  URL  2006-10-01 10:46:05  No: 23439

TScrollBarで上になら

sendMessage(hWnd,WM_KEYDOWN,VK_UP,0);
sendMessage(hWnd,WM_Keyup,VK_UP,0);

みたいにWM_keydownとkey_upで実現してみてはいかがでしょう(^-^v


それとか…  2006-10-01 21:11:59  No: 23440

CN_*系のメッセージでもいいね。


ほんと?  2006-10-01 23:42:18  No: 23441

ウィンドウズのコントロールなのにCN_*系のメッセージってどいうこと?
普通は

SBM_SETSCROLLINFO
SBM_GETSCROLLINFO

で制御するんじゃないの


表裏 未里  URL  2006-10-01 23:47:14  No: 23442

今やってみると、CN_系の命令で通りますね♪

PostMessage(hWnd,CN_VSCROLL,SB_LINEUP,0);


ほんと?  2006-10-02 06:02:30  No: 23443

>今やってみると、CN_系の命令で通りますね♪

>他のアプリケーションの上下スクロールバーのつまみを

うーむ、他アプリが CN_ 系のメッセージを理解するとは不思議だな


もにゃ  2006-10-02 07:27:40  No: 23444

CN_はVCLアプリだけですぞ。


表裏 未里  URL  2006-10-02 09:52:05  No: 23445

あらら。VCLアプリだけでしたか。
Delphiでテスト用に一つTScrollBarをつけたものを外部から動かしていたので
動いたのでしょうね(^^;

CN_系は駄目でも、
最初に提案したWM_KEYDOWNなら他のアプリいけると思います(^^)


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加