DOBON.NETプログラミング道掲示板
(現在 過去ログ1 を表示中)

[ 最新記事及び返信フォームをトピックトップへ ]

■33142 / inTopicNo.1)  SetSystemCursorで変更したアイコンのもどしかた
  
□投稿者/ みけんにしわ 一般人(6回)-(2015/10/16(Fri) 14:08:16)
  • アイコン環境/言語:[windows7 VB NET 2010] 
    分類:[.NET] 

    こんにちは。

    マウスのアイコンを変更するのに、WINAPIのSetSystemCursorを使用しています。
    アイコンの変更はできたのですが、変更した状態を元に戻すのに変更したボタンを再度押下する必要があります。

    元に戻す時にいっきにデフォルトで戻す方法ありませんでしょうか?
    よろしくお願いします。

    Button1押下(APPSTARTING状態) → Button1押下(デフォルト?状態)
    Button1押下(APPSTARTING状態) → Button2押下(WAIT状態)→ Button2押下(APPSTARTING状態)→Button1押下(デフォルト?状態)

    --- 呼び出し側(Formクラス) ---------

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    ClsSysCursor.SetCursor(APPSTARTING, NORMAL)
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    ClsSysCursor.SetCursor(WAIT, NORMAL)
    End Sub

    --- 呼び出し元(ClsSysCursorクラス) ---------
    <DllImport("user32.dll")> _
    Private Shared Function SetSystemCursor(ByVal hCursor As IntPtr, ByVal id As Integer) As Boolean
    End Function

    <DllImport("user32.dll", CharSet:=CharSet.Auto)> _
    Public Shared Function LoadCursor( ByVal hInstance As IntPtr, ByVal lpCursorName As Integer) As IntPtr
    End Function

    ''' <summary>
    ''' カーソルを変更する
    ''' </summary>
    ''' <param name="hcur"></param>
    ''' <param name="id"></param>
    ''' <remarks></remarks>
    Public Shared Sub SetCursor(ByVal hcur As Integer, ByVal id As Integer)
    Dim hcursor As IntPtr = LoadCursor(IntPtr.Zero, hcur)
    SetSystemCursor(hcursor, id)
    End Sub
引用返信 削除キー/
■33144 / inTopicNo.2)  Re[1]: SetSystemCursorで変更したアイコンのもどしかた
□投稿者/ みけんにしわ 一般人(7回)-(2015/10/16(Fri) 19:05:00)
  • アイコンこんにちは。

    申し訳ありません。自己解決しました。
    以下でシステムカーソルのリロード?を行いました。


    --- 呼び出し元(ClsSysCursorクラス) ---------

    <DllImport("user32.dll")> _
    Private Shared Function SystemParametersInfo(ByVal uAction As UInteger, ByVal uparam As UInteger, ByVal lpvParam As IntPtr, ByVal fuWinIni As UInteger) As Boolean
    End Function

    Public Shared Sub ReloadSysCursor()
    SystemParametersInfo(SysParamDefine.SPI_SETCURSORS, 0, IntPtr.Zero, 0)
    End Sub


解決み!
引用返信 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Mode/  Pass/


- Child Tree -