by hira » 2005年10月10日(月) 19:40
RADで作る場合、メインウィンドウの設定を
スタイル: 「枠なし」
背景: 「色指定」より黒を選択
次に、メインウィンドウがMainWnd(ハンドルはhMainWnd)のとき、下のようなコードを記述します。
コード: 全て選択
TypeDef HIMC=HANDLE
Declare Function CreateMutex Lib "kernel32" Alias "CreateMutexA" (lpMutexAttributes As VoidPtr,bInitialOwner As Long,lpName As String) As Long
Declare Function ImmAssociateContext Lib "imm32"(hWnd As HWND,hIMC As HIMC) As HIMC
Dim hIMC As HIMC
Dim bMouseMoveFlag=0 As Long
Sub MainWnd_Create(ByRef CreateStruct As CREATESTRUCT)
CreateMutex(0,0,"AucMon")
If GetLastError()=183 Then ExitProcess(0)
/*ここに前処理を記述*/
ShowWindow(hMainWnd,SW_SHOWMAXIMIZED)
ShowCursor(0)
hIMC=ImmAssociateContext(hMainWnd,0)
End Sub
Sub MainWnd_MouseMove(flags As Long, x As Integer, y As Integer)
If bMouseMoveFlag Then DestroyWindow(hMainWnd) Else bMouseMoveFlag=1
End Sub
Sub MainWnd_KeyDown(KeyCode As Long, flags As Long)
DestroyWindow(hMainWnd)
End Sub
Sub MainWnd_Destroy()
ShowCursor(1)
ImmAssociateContext(hMainWnd,hIMC)
/*ここに後処理を記述*/
End Sub
あとはタイマーなどを使って画面に変化を与えればOKです。
※手持ちのVB6の本を見ながらコードを書いただけなので、テストはしていません(^^;
RADで作る場合、メインウィンドウの設定を
スタイル: 「枠なし」
背景: 「色指定」より黒を選択
次に、メインウィンドウがMainWnd(ハンドルはhMainWnd)のとき、下のようなコードを記述します。
[code]TypeDef HIMC=HANDLE
Declare Function CreateMutex Lib "kernel32" Alias "CreateMutexA" (lpMutexAttributes As VoidPtr,bInitialOwner As Long,lpName As String) As Long
Declare Function ImmAssociateContext Lib "imm32"(hWnd As HWND,hIMC As HIMC) As HIMC
Dim hIMC As HIMC
Dim bMouseMoveFlag=0 As Long
Sub MainWnd_Create(ByRef CreateStruct As CREATESTRUCT)
CreateMutex(0,0,"AucMon")
If GetLastError()=183 Then ExitProcess(0)
/*ここに前処理を記述*/
ShowWindow(hMainWnd,SW_SHOWMAXIMIZED)
ShowCursor(0)
hIMC=ImmAssociateContext(hMainWnd,0)
End Sub
Sub MainWnd_MouseMove(flags As Long, x As Integer, y As Integer)
If bMouseMoveFlag Then DestroyWindow(hMainWnd) Else bMouseMoveFlag=1
End Sub
Sub MainWnd_KeyDown(KeyCode As Long, flags As Long)
DestroyWindow(hMainWnd)
End Sub
Sub MainWnd_Destroy()
ShowCursor(1)
ImmAssociateContext(hMainWnd,hIMC)
/*ここに後処理を記述*/
End Sub[/code]
あとはタイマーなどを使って画面に変化を与えればOKです。
※手持ちのVB6の本を見ながらコードを書いただけなので、テストはしていません(^^;