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


よしき  2006-09-29 19:55:20  No: 23436  IP: 192.*.*.*

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

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

編集 削除
そうなの?  2006-09-29 21:36:53  No: 23437  IP: 192.*.*.*

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

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

編集 削除
yosiki  2006-09-30 17:58:28  No: 23438  IP: 192.*.*.*

僕もそう思って

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

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

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

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

編集 削除
表裏 未里  URL  2006-10-01 01: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 12:11:59  No: 23440  IP: 192.*.*.*

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

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

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

SBM_SETSCROLLINFO
SBM_GETSCROLLINFO

で制御するんじゃないの

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

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

PostMessage(hWnd,CN_VSCROLL,SB_LINEUP,0);

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

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

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

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

編集 削除
もにゃ  2006-10-01 22:27:40  No: 23444  IP: 192.*.*.*

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

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

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

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

編集 削除