' ウィンドウ ハンドル: hMainWnd
' TODO: この位置にグローバルな変数、構造体、定数、関数を定義します。
Dim hBF1 As DWord
Dim hBF2 As DWord
Dim BGC1 As DWord
Dim BGC2 As DWord
BGC1=&hff 'ダイアログ ボックス1の背景色
BGC2=&hffff 'ダイアログ ボックス2の背景色
'--------------------------------------------------------------------
' ここから下は、イベントプロシージャを記述するための領域になります。
Sub MainWnd_Destroy()
BackGroundTest_DestroyObjects()
PostQuitMessage(0)
End Sub
Sub MainWnd_CommandButton1_Click()
'ダイアログ ボックス1を表示する
DialogBox(hMainWnd, "Dlg1")
End Sub
' ウィンドウ ハンドル: hDlg1
' ここから下は、イベントプロシージャを記述するための領域になります。
Sub Dlg1_Create(ByRef CreateStruct As CREATESTRUCT)
'Dlg1のウィンドウ背景色変更
hBF1=CreateSolidBrush(BGC1)
SetClassLong(hDlg1, GCL_HBRBACKGROUND, hBF1)
End Sub
Sub Dlg1_Destroy()
DeleteObject(hBF1)
End Sub
Sub Dlg1_CommandButton1_Click()
'ダイアログ ボックス2を表示
DialogBox(hMainWnd, "Dlg2")
End Sub
' ウィンドウ ハンドル: hDlg2
' ここから下は、イベントプロシージャを記述するための領域になります。
Sub Dlg2_Create(ByRef CreateStruct As CREATESTRUCT)
'Dlg2のウィンドウ背景色変更
hBF2=CreateSolidBrush(BGC2)
SetClassLong(hDlg2, GCL_HBRBACKGROUND, hBF2)
End Sub
Sub Dlg2_Destroy()
DeleteObject(hBF2)
End Sub
'-----------------------------------------------------------------------------
' イベント プロシージャ
'-----------------------------------------------------------------------------
' このファイルには、ウィンドウ [Dlg1] に関するイベントをコーディングします。
' ウィンドウ ハンドル: hDlg1
' TODO: この位置にグローバルな変数、構造体、定数、関数を定義します。
'-----------------------------------------------------------------------------
' ウィンドウメッセージを処理するためのコールバック関数
Function Dlg1Proc(hWnd As HWND, dwMsg As DWord, wParam As WPARAM, lParam As LPARAM) As DWord
' TODO: この位置にウィンドウメッセージを処理するためのコードを記述します。
' イベントプロシージャの呼び出しを行います。
Dlg1Proc=EventCall_Dlg1(hWnd,dwMsg,wParam,lParam)
End Function
'-----------------------------------------------------------------------------
' ここから下は、イベントプロシージャを記述するための領域になります。
Sub Dlg1_CommandButton1_Click()
'ダイアログ ボックス2を表示
DialogBox(hMainWnd, "Dlg2")
End Sub
Sub Dlg1_Create(ByRef CreateStruct As CREATESTRUCT)
End Sub
Sub Dlg1_Paint(hDC As HDC)
Dim hBF As HBRUSH
Dim rBF As RECT
rBF.left = 0
rBF.top = 0
rBF.right = 200 'ウインドウ幅
rBF.bottom = 100 'ウインドウ高さ
hBF = CreateSolidBrush(BGC1)
FillRect(hDC, rBF, hBF)
DeleteObject(hBF)
End Sub
'-----------------------------------------------------------------------------
' イベント プロシージャ
'-----------------------------------------------------------------------------
' このファイルには、ウィンドウ [Dlg2] に関するイベントをコーディングします。
' ウィンドウ ハンドル: hDlg2
' TODO: この位置にグローバルな変数、構造体、定数、関数を定義します。
'-----------------------------------------------------------------------------
' ウィンドウメッセージを処理するためのコールバック関数
Function Dlg2Proc(hWnd As HWND, dwMsg As DWord, wParam As WPARAM, lParam As LPARAM) As DWord
' TODO: この位置にウィンドウメッセージを処理するためのコードを記述します。
' イベントプロシージャの呼び出しを行います。
Dlg2Proc=EventCall_Dlg2(hWnd,dwMsg,wParam,lParam)
End Function
'-----------------------------------------------------------------------------
' ここから下は、イベントプロシージャを記述するための領域になります。
Sub Dlg2_Paint(hDC As HDC)
Dim hBF As HBRUSH
Dim rBF As RECT
rBF.left = 0
rBF.top = 0
rBF.right = 200 'ウインドウ幅
rBF.bottom = 100 'ウインドウ高さ
hBF = CreateSolidBrush(BGC2)
FillRect(hDC, rBF, hBF)
DeleteObject(hBF)
End Sub
WS_CLIPSIBLINGS Clips child windows relative to each other; that is, when a particular child window receives a WM_PAINT message, the WS_CLIPSIBLINGS style clips all other overlapping child windows out of the region of the child window to be updated. If WS_CLIPSIBLINGS is not specified and child windows overlap, it is possible, when drawing within the client area of a child window, to draw within the client area of a neighboring child window.
also;
WS_CLIPCHILDREN Excludes the area occupied by child windows when drawing occurs within the parent window. This style is used when creating the parent window.