指定のデバイスコンテキストの現在の状態を保存する
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