他のアプリケーションの上下スクロールバーのつまみを上下させたいのですが、(▲▼ボタンを押した時に動く分)見当がつきません。
誰かご教授の程をよろしくお願いします。
因みに、そのスクロールバーのクラス名が分かっています。
>…見当がつきません。
それはコマッタね。
>因みに、そのスクロールバーのクラス名が分かっています。
それはケントウはずれかな…
必要なのは、そのスクロールバーによってスクロールするコントロールのハンドル。
そのハンドルに WM_VSCROLLメッセージを送ってネ。SB_LINEUP、SB_LINEDOWNがWParam。
僕もそう思って
hWnd := スクロールバーのハンドル;
PostMessage(hWnd, WM_VSCROLL, SB_LINEUP, 0);
でやってみたんですが、上がりませんでした。PAGEUPでもだめでした。
調べてみたんですが、コレって他のコントロールが所有しているスクロールバーを動かすメッセージじゃないでしょうか?
僕が動かしたいのは、単体のスクロールバー(Delphiで言うTScrollBar)です。
再度ご教授お願いします。
TScrollBarで上になら
sendMessage(hWnd,WM_KEYDOWN,VK_UP,0);
sendMessage(hWnd,WM_Keyup,VK_UP,0);
みたいにWM_keydownとkey_upで実現してみてはいかがでしょう(^-^v
CN_*系のメッセージでもいいね。
ウィンドウズのコントロールなのにCN_*系のメッセージってどいうこと?
普通は
SBM_SETSCROLLINFO
SBM_GETSCROLLINFO
で制御するんじゃないの
今やってみると、CN_系の命令で通りますね♪
PostMessage(hWnd,CN_VSCROLL,SB_LINEUP,0);
>今やってみると、CN_系の命令で通りますね♪
>他のアプリケーションの上下スクロールバーのつまみを
うーむ、他アプリが CN_ 系のメッセージを理解するとは不思議だな
CN_はVCLアプリだけですぞ。
あらら。VCLアプリだけでしたか。
Delphiでテスト用に一つTScrollBarをつけたものを外部から動かしていたので
動いたのでしょうね(^^;
CN_系は駄目でも、
最初に提案したWM_KEYDOWNなら他のアプリいけると思います(^^)
ツイート | ![]() |