SaveDC

機能
指定のデバイスコンテキストの現在の状態を保存する
Declare Function SaveDC Lib "gdi32.dll" _
(ByVal hdc As Long) As Long
Declare Function SaveDC Lib "gdi32.dll" _
(ByVal hdc As Integer) As Integer

int SaveDC(
HDC hdc
);
引数
hdc

デバイスコンテキストのハンドル
戻り値
成功したとき            保存したデバイスコンテキストの番号(最初は1)
失敗したとき            0
備考
ひとつのデバイスコンテキストに対して何回も保存できる
この関数はデバイスコンテキストに複雑な設定を何度も繰り返すときなどに使うと
高速化することができる
サンプル
ダウンロード(SaveDC.lzh 1.81KB)


Private Sub Command1_Click()
Dim hSaveDC As Long

Me.Picture1.Cls
Me.Picture1.ForeColor = &HFF0000
Me.Picture1.Font.Size = 9
Me.Label1.Caption = "現在の文字の色:青 サイズ:" + Str(Me.Picture1.Font.Size)

'初期設定で描画
Me.Picture1.Print "最初はこの色でした"

MsgBox "それではよろしいですか?", vbOKOnly, "覚えておいてくださいよ!"

'一度保存する
hSaveDC = SaveDC(Me.Picture1.hdc)
Me.Picture1.ForeColor = &H0
Me.Picture1.Font.Size = 20
Me.FontBold = True
Me.Picture1.Print "           ↓"
Me.Picture1.Print "It's the magic!"
Me.Picture1.Print "           ↓"
Me.Picture1.FontBold = False

'別の色で描画する
Me.Picture1.ForeColor = &HFF
Me.Picture1.Font.Size = 15
Me.Label1.Caption = "現在の文字の色:赤 サイズ:" + Str(Me.Picture1.Font.Size)
Me.Picture1.Print "別の色になりました"

MsgBox "それではよろしいですか?", vbOKOnly, "今から設定を戻しますよ!"

Me.Picture1.ForeColor = &H0
Me.Picture1.Font.Size = 20
Me.FontBold = True
Me.Picture1.Print "           ↓"
Me.Picture1.FontBold = False

'初期設定で描画する
Call RestoreDC(Me.Picture1.hdc, hSaveDC)
Me.Picture1.Print "ハーイィ! これでおしまい!"
Me.Picture1.Print ""
Me.Picture1.Print "ソースプログラムを見るとよくわかります"
Me.Label1.Caption = "元の色に戻りましたか?"
End Sub

Private Sub Form_Load() Me.Picture1.ForeColor = &HFF0000 Me.Picture1.Font.Size = 9 Me.Label1.Caption = "現在の文字の色:青 サイズ:" + Str(Me.Picture1.Font.Size) End Sub