* basic プログラムでマウスポインターを移動させたい [#w637a5ae]
 |RIGHT:|LEFT:|c
 |~ページ|[[OpenOffice.org FAQの登録ページ]]|
 |~投稿者|Mt.Fuji|
 |~分類|#listbox3(Q&A,faq03,class)|
 |~優先順位|#listbox3(普通,faq03,priority)|
 |~状態|#listbox3(完了,faq03,state)|
 |~カテゴリー|#listbox3(Calc 表計算,faq03,category)|
 |~投稿日|2009-08-21 15:56:06 (金)|
 |~OS|Windows XP|
 |~依存するページ||
 |~バージョン|#listbox3(3.0.1,faq03,version)|
 
 ** メッセージ [#u82c5c14]
 |LEFT:|c
 |回答ページでは行末に「~」を付加する必要はありません|
 コマンドボタンをクリックして~
 イベント処理中はマウスポインターを~
 砂時計に変えて、処理終了時に矢印に戻すようにしたいのですが~
 マウスポインターがコマンドボタン上にある時は矢印のままで~
 マウスポインターをコマンドボタンから外すと砂時計になります。~
 そこで解決策として、マウスポインターをプログラムから移動さ~
 せることを思いつきましたが、方法がわかりません。~
 できるのかできないのかさえわかりませんので、~
 ご教授お願いいたします。
 
 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 ~
 
 
 ----
 ***無題 [#f965b366]
 >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~
 
 //
 ***完璧に動きました。 [#o329d539]
 >Mt.Fuji (2009-08-24 08:06:34 (月))~
 ~
 ike@九州様~
 ご教授いただいたコードで完璧に動きました。~
 ありがとうございました。~
 
 //
 ***完了にします [#ke50ee7c]
 >M.Kamataki (2009-08-24 11:11:25 (月))~
 ~
 たぶん誤操作だと思いますが、Mt.Fujiさんのコメントが消えましたので、復活させておきました。~
 ~
 コメントありがとうございます。~
 
 //
 ***Now Processingダイアログを使いたい [#i54aee7d]
 >Mt.Fuji (2009-08-27 11:26:53 (木))~
 ~
 Calcのマクロでプロセス処理中に『Now processingダイアログ』を表示する~
 方法を教えてください、お願いします。~
 
 //
 #article