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


よしき  2006-09-30 04:55:20  No: 23436  IP: [192.*.*.*]

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

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

編集    削除
そうなの?  2006-09-30 06:36:53  No: 23437  IP: [192.*.*.*]

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

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

編集    削除
yosiki  2006-10-01 02:58:28  No: 23438  IP: [192.*.*.*]

僕もそう思って

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

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

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

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

編集    削除
表裏 未里  URL  2006-10-01 10:46:05  No: 23439  IP: [192.*.*.*]

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  IP: [192.*.*.*]

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

編集    削除
ほんと?  2006-10-01 23:42:18  No: 23441  IP: [192.*.*.*]

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

SBM_SETSCROLLINFO
SBM_GETSCROLLINFO

で制御するんじゃないの

編集    削除
表裏 未里  URL  2006-10-01 23:47:14  No: 23442  IP: [192.*.*.*]

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

PostMessage(hWnd,CN_VSCROLL,SB_LINEUP,0);

編集    削除
ほんと?  2006-10-02 06:02:30  No: 23443  IP: [192.*.*.*]

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

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

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

編集    削除
もにゃ  2006-10-02 07:27:40  No: 23444  IP: [192.*.*.*]

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

編集    削除
表裏 未里  URL  2006-10-02 09:52:05  No: 23445  IP: [192.*.*.*]

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

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

編集    削除