カーソルの取得と描画          <TOP>


現在のカーソルを取得し、フォームとピクチャボックスに描画しています。

GetCursor  カーソルのハンドルを取得

DrawIcon デバイスコンテキストにアイコンを描画

 

 

'================================================================
'= カーソルの取得と描画
'=    (DrawIcon.bas)
'================================================================
#include "Windows.bi"

' カーソルのハンドルを取得
Declare Function Api_GetCursor& Lib "user32" Alias "GetCursor" ()
' デバイスコンテキストにアイコンを描画
Declare Function Api_DrawIcon& Lib "user32" Alias "DrawIcon" (ByVal hDC&, ByVal x&, ByVal y&, ByVal hIcon&)

' 指定されたウィンドウのクライアント領域または画面全体を表すディスプレイデバイスコンテキストのハンドルを取得
Declare Function Api_GetDC& Lib "user32" Alias "GetDC" (ByVal hWnd&)

' デバイスコンテキストを解放
Declare Function Api_ReleaseDC& Lib "user32" Alias "ReleaseDC" (ByVal hWnd&, ByVal hDC&)

Var Shared Picture1 As Object
Picture1.Attach GetDlgItem("Picture1")

'================================================================
'=
'================================================================
Declare Sub Button1_on edecl ()
Sub Button1_on()
    Var fhDC As Long
    Var phDC As Long
    Var cWnd As Long
    Var Ret As Long

    fhDC = Api_GetDC(GethWnd)                   'フォームのデバイスコンテキスト
    phDC = Api_GetDC(Picture1.GethWnd)          'ピクチャボックスのデバイスコンテキスト

    cWnd = Api_GetCursor()                      'カーソルのハンドル

    Ret = Api_DrawIcon(fhDC, 20, 20, cWnd)      'フォームに描画
    Ret = Api_DrawIcon(phDC, 0, 0, cWnd)        'ピクチャボックスに描画

    Ret = Api_ReleaseDC(GethWnd, fhDC)          'デバイスコンテキストの解放
    Ret = Api_ReleaseDC(Picture1.GethWnd, phDC) '          〃
End Sub

'================================================================
'=
'================================================================
While 1
    WaitEvent
Wend
Stop
End