basic プログラムでマウスポインターを移動させたい †
ページ | OpenOffice.org FAQの登録ページ |
---|---|
投稿者 | Mt.Fuji |
分類 | |
優先順位 | |
状態 | |
カテゴリー | |
投稿日 | 2009-08-21 15:56:06 (金) |
OS | Windows XP |
依存するページ | |
バージョン |
メッセージ †
回答ページでは行末に「~」を付加する必要はありません |
コマンドボタンをクリックして
イベント処理中はマウスポインターを
砂時計に変えて、処理終了時に矢印に戻すようにしたいのですが
マウスポインターがコマンドボタン上にある時は矢印のままで
マウスポインターをコマンドボタンから外すと砂時計になります。
そこで解決策として、マウスポインターをプログラムから移動さ
せることを思いつきましたが、方法がわかりません。
できるのかできないのかさえわかりませんので、
ご教授お願いいたします。
Sub cursorWait() (イベント処理開始前)
Dim oWindow As Object
Dim oPointer As Object
Dim oDoc As Object
oWindow = oDialog.getPeer()
oPointer = createUnoService("com.sun.star.awt.Pointer")
oPointer.SetType(2)
oWindow.setPointer(oPointer)
oDialog.execute()
End Sub
Sub cursorGo() (イベント処理終了後)
Dim oWindow As Object
Dim oPointer As Object
Dim oDoc As Object
oWindow = oDialog.getPeer()
oPointer = createUnoService("com.sun.star.awt.Pointer")
oPointer.SetType(0)
oWindow.setPointer(oPointer)
oDialog.execute()
End Sub
無題 †
ike@九州 (2009-08-21 17:57:21 (金))
Windowsの場合のみ、以下でコマンドボタン外に移動できます
Declare Function SetCursorPos Lib "user32" (_ ByVal x As Long, ByVal y As Long) As Long Sub XXXX Dim nX As Long Dim nY As Long 〜 oComp = Stardesktop.CurrentComponent oConWindow = oComp.getCurrentController().getFrame().getContainerWindow() aPosWindow = oConWindow.getPosSize() aPosDialog = oDialog.getPosSize() aPosCtr = oDialog.getControl("CommandButton1").getPosSize() nX = aPosCtr.X + aPosDialog.X + aPosWindow.X nY = aPosCtr.Y + aPosDialog.Y + aPosWindow.Y Call SetCursorPos(nX,nY - 適等な数値)) 〜 End Sub
追記 以下の使用がもしかすると向いてるかもしれませんね
http://hermione.s41.xrea.com/pukiwiki/index.php?OOoBasic%2FDialog%2FExample13
完璧に動きました。 †
Mt.Fuji (2009-08-24 08:06:34 (月))
ike@九州様
ご教授いただいたコードで完璧に動きました。
ありがとうございました。
完了にします †
M.Kamataki (2009-08-24 11:11:25 (月))
たぶん誤操作だと思いますが、Mt.Fujiさんのコメントが消えましたので、復活させておきました。
コメントありがとうございます。
Now Processingダイアログを使いたい †
Mt.Fuji (2009-08-27 11:26:53 (木))
Calcのマクロでプロセス処理中に『Now processingダイアログ』を表示する
方法を教えてください、お願いします。