Mfc-gdi

提供:Dev Guides
移動先:案内検索

MFC-GDI

Windowsは、デバイスコンテキストで使用するさまざまな描画ツールを提供します。 線を描くペン、内部を塗りつぶすブラシ、テキストを描くフォントを提供します。 MFCは、Windowsの描画ツールに相当するグラフィックオブジェクトクラスを提供します。

デバイスコンテキストは、ディスプレイやプリンターなどのデバイスの描画属性に関する情報を含むWindowsデータ構造です。 すべての描画呼び出しは、デバイスコンテキストオブジェクトを介して行われます。このオブジェクトは、線、図形、およびテキストを描画するためのWindows APIをカプセル化します。

デバイスコンテキストにより、Windowsでデバイスに依存しない描画が可能になります。 デバイスコンテキストを使用して、画面、プリンター、またはメタファイルに描画できます。

*CDC* は、MFCで描画する最も基本的なクラスです。 CDCオブジェクトは、基本的な描画手順を実行するメンバー関数と、ウィンドウのクライアント領域に関連付けられた表示コンテキストを操作するためのメンバーを提供します。

以下にCDCクラスのメソッドのリストを示します。

Sr. No. Name & Description
1

AbortDoc

現在の印刷ジョブを終了し、 StartDoc メンバー関数の最後の呼び出し以降にアプリケーションがデバイスに書き込んだものをすべて消去します。

2

AbortPath

デバイスコンテキスト内のすべてのパスを閉じて破棄します。

3

AddMetaFileComment

コメントをバッファから指定された拡張形式のメタファイルにコピーします。

4

AlphaBlend

透明または半透明のピクセルを持つビットマップを表示します。

5

AngleArc

線分と円弧を描画し、現在の位置を円弧の終点に移動します。

6

Arc

楕円弧を描きます。

7

ArcTo

楕円弧を描きます。 この関数はArcに似ていますが、現在の位置が更新される点が異なります。

8

Attach

このCDCオブジェクトにWindowsデバイスコンテキストをアタッチします。

9

BeginPath

デバイスコンテキストでパスブラケットを開きます。

10

BitBlt

指定されたデバイスコンテキストからビットマップをコピーします。

11

Chord

コード(楕円と線分が交差する閉じた図形)を描画します。

12

CloseFigure

パス内の開いている図形を閉じます。

13

CreateCompatibleDC

別のデバイスコンテキストと互換性のあるメモリデバイスコンテキストを作成します。 メモリ内の画像を準備するために使用できます。

14

CreateDC

特定のデバイスのデバイスコンテキストを作成します。

15

CreateIC

特定のデバイスの情報コンテキストを作成します。 これにより、デバイスコンテキストを作成せずに、デバイスに関する情報をすばやく取得できます。

16

DeleteDC

このCDCオブジェクトに関連付けられているWindowsデバイスコンテキストを削除します。

17

DeleteTempMap

FromHandleによって作成された一時CDCオブジェクトを削除するために、 CWinApp アイドル時間ハンドラーによって呼び出されます。 また、デバイスコンテキストをデタッチします。

18

Detach

このCDCオブジェクトからWindowsデバイスコンテキストをデタッチします。

19

DPtoHIMETRIC

デバイス単位を HIMETRIC 単位に変換します。

20

DPtoLP

デバイスユニットを論理ユニットに変換します。

21

Draw3dRect

3次元の長方形を描画します。

22

DrawDragRect

ドラッグされた長方形を消去して再描画します。

23

DrawEdge

長方形のエッジを描画します。

24

DrawEscape

グラフィックデバイスインターフェイス(GDI)を介して直接利用できないビデオディスプレイの描画機能にアクセスします。

25

DrawFocusRect

フォーカスを示すために使用されるスタイルで長方形を描画します。

26

DrawFrameControl

フレームコントロールを描画します。

27

DrawIcon

アイコンを描画します。

28

DrawState

画像を表示し、視覚効果を適用して状態を示します。

29

DrawText

指定された長方形にフォーマットされたテキストを描画します。

30

DrawTextEx

追加のフォーマットを使用して、指定された長方形にフォーマットされたテキストを描画します。

31

Ellipse

楕円を描画します。

32

EndDoc

StartDocメンバー関数によって開始された印刷ジョブを終了します。

33

EndPage

ページが終了することをデバイスドライバーに通知します。

34

EndPath

パスブラケットを閉じ、デバイスコンテキストへのブラケットで定義されたパスを選択します。

35

EnumObjects

デバイスコンテキストで使用可能なペンとブラシを列挙します。

36

Escape

GDIを介して特定のデバイスから直接利用できない機能にアプリケーションがアクセスできるようにします。 Windowsエスケープ関数へのアクセスも許可します。 アプリケーションによって行われたエスケープ呼び出しは変換され、デバイスドライバーに送信されます。

37

ExcludeClipRect

既存のクリッピング領域から指定された長方形を引いたもので構成される新しいクリッピング領域を作成します。

38

ExcludeUpdateRgn

ウィンドウ内の更新された領域をクリッピング領域から除外することにより、ウィンドウの無効な領域内に描画されないようにします。

39

ExtFloodFill

現在のブラシで領域を塗りつぶします。 FloodFill メンバー関数よりも柔軟性があります。

40

ExtTextOut

現在選択されているフォントを使用して、長方形の領域内に文字列を書き込みます。

41

FillPath

現在のパスで開いている図形を閉じ、現在のブラシとポリゴン塗りつぶしモードを使用してパスの内部を塗りつぶします。

42

FillRect

特定のブラシを使用して、指定された長方形を塗りつぶします。

43

FillRgn

指定したブラシで特定の領域を塗りつぶします。

44

FillSolidRect

長方形を単色で塗りつぶします。

45

FlattenPath

選択したパス内の曲線を現在のデバイスコンテキストに変換し、各曲線を一連の線に変換します。

46

FloodFill

現在のブラシで領域を塗りつぶします。

47

FrameRect

四角形の周囲に境界線を描画します。

48

FrameRgn

ブラシを使用して特定の領域の周りに境界線を描画します。

49

FromHandle

デバイスコンテキストへのハンドルを指定すると、CDCオブジェクトへのポインターを返します。 CDCオブジェクトがハンドルにアタッチされていない場合、一時CDCオブジェクトが作成されてアタッチされます。

50

GetArcDirection

デバイスコンテキストの現在の弧の方向を返します。

51

GetAspectRatioFilter

現在のアスペクト比フィルターの設定を取得します。

52

GetBkColor

現在の背景色を取得します。

53

GetBkMode

バックグラウンドモードを取得します。

54

GetBoundsRect

指定されたデバイスコンテキストの現在の累積された境界四角形を返します。

55

GetBrushOrg

現在のブラシの原点を取得します。

56

GetCharABCWidths

現在のフォントから指定された範囲内の連続した文字の幅を論理単位で取得します。

57

GetCharABCWidthsI

現在のTrueTypeフォントから指定された範囲内の連続するグリフインデックスの幅を論理単位で取得します。

58

GetCharacterPlacement

文字列に関するさまざまなタイプの情報を取得します。

59

GetCharWidth

現在のフォントから指定された範囲内の連続する文字の小数幅を取得します。

60

GetCharWidthI

現在のフォントから指定範囲内の連続するグリフインデックスの幅を論理座標で取得します。

61

GetClipBox

現在のクリッピング境界の周囲の最も狭い境界矩形の寸法を取得します。

62

GetColorAdjustment

デバイスコンテキストの色調整値を取得します。

63

GetCurrentBitmap

現在選択されている CBitmap オブジェクトへのポインターを返します。

64

GetCurrentBrush

現在選択されている CBrush オブジェクトへのポインターを返します。

65

GetCurrentFont

現在選択されている CFont オブジェクトへのポインターを返します。

66

GetCurrentPalette

現在選択されている CPalette オブジェクトへのポインターを返します。

48

GetCurrentPen

現在選択されている CPen オブジェクトへのポインターを返します。

67

GetCurrentPosition

ペンの現在の位置を(論理座標で)取得します。

68

GetDCBrushColor

現在のブラシの色を取得します。

69

GetDCPenColor

現在のペンの色を取得します。

70

GetDeviceCaps

特定のディスプレイデバイスの機能に関するデバイス固有の指定された種類の情報を取得します。

71

GetFontData

スケーラブルフォントファイルからフォントメトリック情報を取得します。 取得する情報は、フォントファイルへのオフセットと返す情報の長さを指定することによって識別されます。

72

GetFontLanguageInfo

指定された表示コンテキストで現在選択されているフォントに関する情報を返します。

73

GetGlyphOutline

現在のフォントのアウトライン文字のアウトライン曲線またはビットマップを取得します。

74

GetGraphicsMode

指定されたデバイスコンテキストの現在のグラフィックモードを取得します。

75

GetHalftoneBrush

ハーフトーンブラシを取得します。

76

GetKerningPairs

指定されたデバイスコンテキストで現在選択されているフォントの文字カーニングペアを取得します。

77

GetLayout

デバイスコンテキスト(DC)のレイアウトを取得します。 レイアウトは、左から右(デフォルト)または右から左(ミラー)のいずれかです。

78

GetMapMode

現在のマッピングモードを取得します。

79

GetMiterLimit

デバイスコンテキストのマイター制限を返します。

80

GetNearestColor

指定したデバイスが表すことができる指定した論理色に最も近い論理色を取得します。

81

GetOutlineTextMetrics

TrueTypeフォントのフォントメトリック情報を取得します。

82

GetOutputCharWidth

出力デバイスコンテキストを使用して、現在のフォントから連続した文字グループの個々の文字の幅を取得します。

83

GetOutputTabbedTextExtent

出力デバイスコンテキストの文字列の幅と高さを計算します。

84

GetOutputTextExtent

現在のフォントを使用して寸法を決定し、出力デバイスコンテキストのテキスト行の幅と高さを計算します。

85

GetOutputTextMetrics

出力デバイスコンテキストから現在のフォントのメトリックを取得します。

86

GetPath

デバイスコンテキストに選択されたパスで見つかった線の終点と曲線の制御点を定義する座標を取得します。

87

GetPixel

指定されたポイントのピクセルのRGBカラー値を取得します。

88

GetPolyFillMode

現在のポリゴン塗りつぶしモードを取得します。

89

GetROP2

現在の描画モードを取得します。

90

GetSafeHdc

出力デバイスコンテキストである m_hDC を返します。

91

GetStretchBltMode

現在のビットマップストレッチモードを取得します。

92

GetTabbedTextExtent

属性デバイスコンテキストの文字列の幅と高さを計算します。

93

GetTextAlign

テキスト配置フラグを取得します。

94

GetTextCharacterExtra

文字間スペースの量の現在の設定を取得します。

95

GetTextColor

現在のテキストの色を取得します。

96

GetTextExtent

現在のフォントを使用して寸法を決定する属性デバイスコンテキスト上のテキスト行の幅と高さを計算します。

97

GetTextExtentExPointI

指定されたスペースに収まる指定された文字列の文字数を取得し、それらの各文字のテキスト範囲で配列を埋めます。

98

GetTextExtentPointI

グリフインデックスの指定された配列の幅と高さを取得します。

99

GetTextFace

現在のフォントの書体名をヌル終了文字列としてバッファにコピーします。

100

GetTextMetrics

属性デバイスコンテキストから現在のフォントのメトリックを取得します。

101

GetViewportExt

ビューポートのx範囲とy範囲を取得します。

102

GetViewportOrg

ビューポートの原点のx座標とy座標を取得します。

103

GetWindow

ディスプレイデバイスコンテキストに関連付けられたウィンドウを返します。

104

GetWindowExt

関連付けられたウィンドウのx範囲とy範囲を取得します。

105

GetWindowOrg

関連付けられたウィンドウの原点のx座標とy座標を取得します。

106

GetWorldTransform

現在のワールド空間からページ空間への変換を取得します。

107

GradientFill

長方形と三角形の構造をグラデーションの色で塗りつぶします。

108

GrayString

指定された場所に淡色表示(グレー表示)されたテキストを描画します。

109

HIMETRICtoDP

HIMETRICユニットをデバイスユニットに変換します。

110

HIMETRICtoLP

HIMETRIC単位を論理単位に変換します。

111

IntersectClipRect

現在の領域と長方形の交点を形成することにより、新しいクリッピング領域を作成します。

112

InvertRect

長方形の内容を反転します。

113

InvertRgn

領域の色を反転します。

114

IsPrinting

デバイスコンテキストが印刷に使用されているかどうかを判断します。

115

LineTo

現在位置からポイントまで(ただし、ポイントは含まない)に線を描画します。

116

LPtoDP

論理ユニットをデバイスユニットに変換します。

117

LPtoHIMETRIC

論理ユニットをHIMETRICユニットに変換します。

118

MaskBlt

指定されたマスクおよびラスター操作を使用して、ソースビットマップとターゲットビットマップのカラーデータを組み合わせます。

119

ModifyWorldTransform

指定されたモードを使用して、デバイスコンテキストのワールド変換を変更します。

120

MoveTo

現在の位置を移動します。

121

OffsetClipRgn

指定されたデバイスのクリッピング領域を移動します。

122

OffsetViewportOrg

現在のビューポートの原点の座標を基準にしてビューポートの原点を変更します。

123

OffsetWindowOrg

現在のウィンドウの原点の座標を基準にしてウィンドウの原点を変更します。

124

PaintRgn

選択したブラシで領域を塗りつぶします。

125

PatBlt

ビットパターンを作成します。

126

Pie

パイ型のくさびを描画します。

127

PlayMetaFile

指定されたデバイスで指定されたメタファイルの内容を再生します。 PlayMetaFileの拡張バージョンは、指定された拡張形式のメタファイルに保存されている画像を表示します。 メタファイルは何度でも再生できます。

128

PlgBlt

ソースデバイスコンテキストの指定された四角形から、指定されたデバイスコンテキストの指定された平行四辺形への色データのビットのビットブロック転送を実行します。

129

PolyBezier

1つ以上のBzierスプラインを描画します。 現在の位置は使用も更新もされません。

130

PolyBezierTo

1つ以上のBzierスプラインを描画し、現在の位置を最後のBzierスプラインの終点に移動します。

131

PolyDraw

一連の線分とベジェスプラインを描画します。 この関数は現在の位置を更新します。

132

Polygon

線で接続された2つ以上のポイント(頂点)で構成されるポリゴンを描画します。

133

Polyline

指定されたポイントを結ぶ線分セットを描画します。

134

PolylineTo

1つ以上の直線を描画し、現在の位置を最後の線の終点に移動します。

135

PolyPolygon

現在のポリゴン塗りつぶしモードを使用して塗りつぶされる2つ以上のポリゴンを作成します。 ポリゴンはばらばらであるか、重なっている場合があります。

136

PolyPolyline

接続された線セグメントの複数のシリーズを描画します。 現在の位置は、この関数では使用も更新もされません。

137

PtVisible

指定されたポイントがクリッピング領域内にあるかどうかを指定します。

138

RealizePalette

現在の論理パレットのパレットエントリをシステムパレットにマップします。

139

Rectangle

現在のペンを使用して四角形を描画し、現在のブラシを使用して四角形を塗りつぶします。

140

RectVisible

指定された長方形の一部がクリッピング領域内にあるかどうかを決定します。

141

ReleaseAttribDC

属性デバイスコンテキスト m_hAttribDC をリリースします。

142

ReleaseOutputDC

出力デバイスコンテキストである m_hDC をリリースします。

143

ResetDC**

m_hAttribDCデバイスコンテキストを更新します。

144

RestoreDC

  • SaveDC* で保存された以前の状態にデバイスコンテキストを復元します。
145

RoundRect

現在のペンを使用して角を丸め、現在のブラシを使用して塗りつぶした長方形を描画します。

146

SaveDC

デバイスコンテキストの現在の状態を保存します。

147

ScaleViewportExt

現在の値を基準にしてビューポート範囲を変更します。

148

ScaleWindowExt

現在の値に関連してウィンドウの範囲を変更します。

149

ScrollDC

ビットの長方形を水平および垂直にスクロールします。

150

SelectClipPath

現在のパスをデバイスコンテキストのクリッピング領域として選択し、指定されたモードを使用して新しい領域を既存のクリッピング領域と組み合わせます。

151

SelectClipRgn

指定されたモードを使用して、指定された領域を現在のクリッピング領域と結合します。

152

SelectObject

ペンなどのGDI描画オブジェクトを選択します。

153

SelectPalette

論理パレットを選択します。

154

SelectStockObject

Windowsが提供する定義済みのストックペン、ブラシ、またはフォントのいずれかを選択します。

155

SetAbortProc

印刷ジョブを中止する必要がある場合にWindowsが呼び出すプログラマー提供のコールバック関数を設定します。

156

SetArcDirection

円弧および長方形の機能に使用される描画方向を設定します。

157

SetAttribDC

属性デバイスコンテキストであるm_hAttribDCを設定します。

158

SetBkColor

現在の背景色を設定します。

159

SetBkMode

バックグラウンドモードを設定します。

160

SetBoundsRect

指定されたデバイスコンテキストの境界矩形情報の蓄積を制御します。

161

SetBrushOrg

デバイスコンテキストに選択された次のブラシの原点を指定します。

162

SetColorAdjustment

指定した値を使用して、デバイスコンテキストの色調整値を設定します。

163

SetDCBrushColor

現在のブラシの色を設定します。

164

SetDCPenColor

現在のペンの色を設定します。

165

SetGraphicsMode

指定したデバイスコンテキストの現在のグラフィックモードを設定します。

166

SetLayout

デバイスコンテキスト(DC)のレイアウトを変更します。

167

SetMapMode

現在のマッピングモードを設定します。

168

SetMapperFlags

フォントマッパーが論理フォントを物理フォントにマップするときに使用するアルゴリズムを変更します。

169

SetMiterLimit

デバイスコンテキストのマイター結合の長さの制限を設定します。

170

SetOutputDC

出力デバイスコンテキストであるm_hDCを設定します。

171

SetPixel

指定されたポイントのピクセルを、指定された色の最も近い近似値に設定します。

172

SetPixelV

指定した座標のピクセルを、指定した色の最も近い近似値に設定します。 SetPixelVSetPixel よりも高速です。これは、実際にペイントされたポイントのカラー値を返す必要がないためです。

173

SetPolyFillMode

ポリゴン塗りつぶしモードを設定します。

175

SetROP2

現在の描画モードを設定します。

176

SetStretchBltMode

ビットマップストレッチモードを設定します。

177

SetTextAlign

テキスト配置フラグを設定します。

178

SetTextCharacterExtra

文字間スペースの量を設定します。

179

SetTextColor

テキストの色を設定します。

180

SetTextJustification

文字列の区切り文字にスペースを追加します。

181

SetViewportExt

ビューポートのx範囲とy範囲を設定します。

182

SetViewportOrg

ビューポートの原点を設定します。

183

SetWindowExt

関連付けられたウィンドウのx範囲とy範囲を設定します。

184

SetWindowOrg

デバイスコンテキストのウィンドウの原点を設定します。

185

SetWorldTransform

現在のワールド空間からページ空間への変換を設定します。

186

StartDoc

新しい印刷ジョブが開始されていることをデバイスドライバーに通知します。

187

StartPage

新しいページが開始されていることをデバイスドライバーに通知します。

188

StretchBlt

ビットマップをソース長方形およびデバイスからターゲット長方形に移動し、必要に応じてビットマップをストレッチまたは圧縮して、ターゲット長方形のサイズに合わせます。

189

StrokeAndFillPath

パス内の開いている図形をすべて閉じ、現在のペンを使用してパスの輪郭を描き、現在のブラシを使用してその内部を塗りつぶします。

190

StrokePath

現在のペンを使用して、指定されたパスをレンダリングします。

191

TabbedTextOut

指定された場所に文字列を書き込み、タブストップ位置の配列で指定された値にタブを展開します。

192

TextOut

現在選択されているフォントを使用して、指定された場所に文字列を書き込みます。

193

TransparentBlt

指定されたソースデバイスコンテキストから宛先デバイスコンテキストに色データのビットブロックを転送し、転送で指定された色を透明にします。

194

UpdateColors

クライアント領域の現在の色をピクセル単位でシステムパレットに一致させることにより、デバイスコンテキストのクライアント領域を更新します。

195

WidenPath

デバイスコンテキストで現在選択されているペンを使用してパスがストロークされた場合に、ペイントされる領域として現在のパスを再定義します。

ステップ1 *- *MFCGDIDemo という名前の新しいMFCベースの単一ドキュメントプロジェクトを作成して、簡単な例を見てみましょう。

ライン

ステップ2 *-プロジェクトが作成されたら、ソリューションエクスプローラーに移動し、ソースファイルフォルダーの下の *MFCGDIDemoView.cpp ファイルをダブルクリックします。

ステップ3 *- CMFCGDIDemoView
OnDraw()*メソッドで以下に示すように線を引きます。
void CMFCGDIDemoView::OnDraw(CDC* pDC) {
   pDC->MoveTo(95, 125);
   pDC->LineTo(230, 125);
   CMFCGDIDemoDoc* pDoc = GetDocument();
   ASSERT_VALID(pDoc);
   if (!pDoc)
      return;

  //TODO: add draw code for native data here
}
  • ステップ4 *-このアプリケーションを実行します。 次の出力が表示されます。

*ステップ5 *-CDC
MoveTo()メソッドを使用して、行の開始位置を設定します。

LineTo()を使用する場合、プログラムはMoveTo()ポイントからLineTo()エンドまで開始します。

LineTo()の後、MoveTo()を呼び出さず、他のポイント値でLineTo()を再度呼び出すと、プログラムは前のLineTo()から新しいLineTo()ポイントまで線を引きます。

  • ステップ6 *-さまざまな線を描画するには、次のコードに示すようにこのプロパティを使用できます。
void CMFCGDIDemoView::OnDraw(CDC* pDC) {
   pDC->MoveTo(95, 125);
   pDC->LineTo(230, 125);
   pDC->LineTo(230, 225);
   pDC->LineTo(95, 325);
   CMFCGDIDemoDoc* pDoc = GetDocument();
   ASSERT_VALID(pDoc);
   if (!pDoc)
      return;

  //TODO: add draw code for native data here
}
  • ステップ7 *-このアプリケーションを実行します。 次の出力が表示されます。

ライン

ポリライン

*ポリライン*は一連の接続されたラインです。 行は、POINTまたはCPoint値の配列に格納されます。 ポリラインを描画するには、CDC
Polyline()メソッドを使用します。 ポリラインを描画するには、少なくとも2つのポイントが必要です。 3つ以上のポイントを定義すると、最初のポイントの後の各ラインは、すべてのポイントが含まれるまで、前のポイントから次のポイントまで描画されます。
  • ステップ1 *-簡単な例を見てみましょう。
void CMFCGDIDemoView::OnDraw(CDC* pDC) {
   CPoint Pt[7];
   Pt[0] = CPoint(20, 150);
   Pt[1] = CPoint(180, 150);
   Pt[2] = CPoint(180, 20);
   pDC−Polyline(Pt, 3);

   CMFCGDIDemoDoc* pDoc = GetDocument();
   ASSERT_VALID(pDoc);
   if (!pDoc)
      return;

  //TODO: add draw code for native data here
}
  • ステップ2 *-このアプリケーションを実行すると、次の出力が表示されます。

ポリライン

長方形

*長方形*は、4つの直角を構成する4つの辺で構成される幾何学的図形です。 線と同様に、長方形を描くには、開始位置と終了位置を定義する必要があります。 長方形を描くには、CDC
Rectangle()メソッドを使用できます。
  • ステップ1 *-簡単な例を見てみましょう。
void CMFCGDIDemoView::OnDraw(CDC* pDC) {
   pDC->Rectangle(15, 15, 250, 160);

   CMFCGDIDemoDoc* pDoc = GetDocument();
   ASSERT_VALID(pDoc);
   if (!pDoc)
      return;

  //TODO: add draw code for native data here
}
  • ステップ2 *-このアプリケーションを実行すると、次の出力が表示されます。

四角形

四角

  • 正方形*は、4つの直角を構成する4つの辺で構成される幾何学的図形ですが、各辺の長さは等しくなければなりません。

簡単な例を見てみましょう。

void CMFCGDIDemoView::OnDraw(CDC* pDC) {
   pDC->Rectangle(15, 15, 250, 250);

   CMFCGDIDemoDoc* pDoc = GetDocument();
   ASSERT_VALID(pDoc);
   if (!pDoc)
      return;

  //TODO: add draw code for native data here
}

このアプリケーションを実行すると、次の出力が表示されます。

正方形

Pies

*パイ*は、楕円の中心からそれぞれ片側に伸びる2本の線で区切られた楕円の一部です。 パイを描画するには、以下に示すようにCDC
Pie()メソッドを使用できます-

BOOL Pie(int x1、int y1、int x2、int y2、int x3、int y3、int x4、int y4);

  • (x1、y1)ポイントは、円を表す楕円が収まる長方形の左上隅を決定します。 (x2、y2)ポイントは、長方形の右下隅です。

パイ

  • (x3、y3)ポイントは、デフォルトの反時計回り方向のパイの開始コーナーを指定します。
  • (x4、y4)ポイントは、パイの終点を特定します。

簡単な例を見てみましょう。

void CMFCGDIDemoView::OnDraw(CDC* pDC) {
   pDC->Pie(40, 20, 226, 144, 155, 32, 202, 115);

   CMFCGDIDemoDoc* pDoc = GetDocument();
   ASSERT_VALID(pDoc);
   if (!pDoc)
      return;

  //TODO: add draw code for native data here
}
  • ステップ2 *-このアプリケーションを実行すると、次の出力が表示されます。

パイ

Arcs

円弧は楕円の一部またはセグメントです。つまり、円弧は完全な楕円ではありません。 円弧を描くには、CDC
Arc()メソッドを使用できます。

BOOL Arc(int x1、int y1、int x2、int y2、int x3、int y3、int x4、int y4);

アーク

CDCクラスにはSetArcDirection()メソッドが装備されています。

ここに構文があります-

int SetArcDirection(int nArcDirection)
Sr.No. Value & Orientation
1

AD_CLOCKWISE

図は時計回りに描かれます

2

AD_COUNTERCLOCKWISE

図は反時計回りに描かれます

  • ステップ1 *-簡単な例を見てみましょう。
void CMFCGDIDemoView::OnDraw(CDC* pDC) {
   pDC->SetArcDirection(AD_COUNTERCLOCKWISE);
   pDC->Arc(20, 20, 226, 144, 202, 115, 105, 32);

   CMFCGDIDemoDoc* pDoc = GetDocument();
   ASSERT_VALID(pDoc);
   if (!pDoc)
      return;

  //TODO: add draw code for native data here
}
  • ステップ2 *-このアプリケーションを実行すると、次の出力が表示されます。

アーク

和音

これまでに描いた円弧は、始点と終点を持つ線で構成されているため、開いた図形と見なされます(円や長方形とは異なります)。 *コード*は、両端が直線で接続されている円弧です。

コード

コードを描画するには、CDC
Chord()メソッドを使用できます。

BOOL Chord(int x1、int y1、int x2、int y2、int x3、int y3、int x4、int y4);

簡単な例を見てみましょう。

void CMFCGDIDemoView::OnDraw(CDC* pDC) {
   pDC->SetArcDirection(AD_CLOCKWISE);
   pDC->Chord(20, 20, 226, 144, 202, 115, 105, 32);

   CMFCGDIDemoDoc* pDoc = GetDocument();
   ASSERT_VALID(pDoc);
   if (!pDoc)
      return;

  //TODO: add draw code for native data here
}

上記のアプリケーションを実行すると、次の出力が表示されます。

コード

この例の弧の方向は時計回りに設定されています。

  • 色*は、オブジェクトの審美的な外観を向上させる最も基本的なオブジェクトの1つです。 色は、視覚的側面の一部を変更するためにオブジェクトに追加される非空間オブジェクトです。 MFCライブラリは、Win32 APIと組み合わせて、色のさまざまな側面を活用するために使用できるさまざまなアクションを提供します。

RGBマクロは関数のように動作し、コンマで区切られた3つの数値を渡すことができます。 次のコードに示すように、各値は0〜255の間でなければなりません。

void CMFCGDIDemoView::OnDraw(CDC* pDC) {
   COLORREF color = RGB(239, 15, 225);
}

簡単な例を見てみましょう。

void CMFCGDIDemoView::OnDraw(CDC* pDC) {
   COLORREF color = RGB(239, 15, 225);
   pDC->SetTextColor(color);
   pDC->TextOut(100, 80, L"MFC GDI Tutorial", 16);

   CMFCGDIDemoDoc* pDoc = GetDocument();
   ASSERT_VALID(pDoc);
   if (!pDoc)
      return;

  //TODO: add draw code for native data here
}

このアプリケーションを実行すると、次の出力が表示されます。

フォント

*CFont* は、Windowsグラフィックデバイスインターフェイス(GDI)フォントをカプセル化し、フォントを操作するためのメンバー関数を提供します。 CFontオブジェクトを使用するには、CFontオブジェクトを作成し、それにWindowsフォントを添付してから、オブジェクトのメンバー関数を使用してフォントを操作します。

____これはCFontクラスのメソッドのリストです。

Sr.No. Name & Description
1

CreateFont

指定された特性でCFontを初期化します。

2

CreateFontIndirect

  • LOGFONT* 構造で指定された特性を使用してCFontオブジェクトを初期化します。
3

CreatePointFont

10分の1ポイントで測定された指定された高さ、および書体でCFontを初期化します。

4

CreatePointFontIndirect

  • CreateFontIndirect* と同じですが、フォントの高さは論理単位ではなく10分の1ポイントで測定されます。
5

FromHandle

Windows HFONT を指定すると、CFontオブジェクトへのポインターを返します。

6

GetLogFont

LOGFONTに、CFontオブジェクトに関連付けられた論理フォントに関する情報を入力します。

簡単な例を見てみましょう。

void CMFCGDIDemoView::OnDraw(CDC *pDC) {
   CFont font;
   font.CreatePointFont(920, L"Garamond");
   CFont* pFont = pDC->SelectObject(&font);
   COLORREF color = RGB(239, 15, 225);
   pDC->SetTextColor(color);
   pDC->TextOut(100, 80, L"MFC GDI Tutorial", 16);
   pDC->SelectObject(pFont);
   font.DeleteObject();

   CMFCGDIDemoDoc* pDoc = GetDocument();
   ASSERT_VALID(pDoc);
   if (!pDoc)
   return;

  //TODO: add draw code for native data here
}

上記のアプリケーションを実行すると、次の出力が表示されます。

フォント

Pens

ペン*は、デバイスコンテキストに線と曲線を描くために使用するツールです。 グラフィックプログラミングでは、ペンを使用して、長方形や多角形などの幾何学的な閉じた形状の境界線を描画します。 Microsoft Windowsは、 *cosmeticgeometric の2種類のペンを考慮します。

ペンは、1ピクセル以下の固定幅の単純な線のみを描画するために使用できる場合、化粧品と呼ばれます。 ペンは、異なる幅とさまざまな端を想定できる幾何学的です。 MFCは、Windowsグラフィックデバイスインターフェイス(GDI)ペンをカプセル化するクラス CPen を提供します。

____これはCPenクラスのメソッドのリストです。

Sr.No. Name & Description
1

CreatePen

指定されたスタイル、幅、およびブラシ属性で論理的な化粧または幾何学的なペンを作成し、それをCPenオブジェクトにアタッチします。

2

CreatePenIndirect

LOGPEN構造体で指定されたスタイル、幅、色でペンを作成し、CPenオブジェクトに添付します。

3

FromHandle

Windows HPEN を指定すると、CPenオブジェクトへのポインターを返します。

4

GetExtLogPen

EXTLOGPENの基礎となる構造を取得します。

5

GetLogPen

LOGPENの基本構造を取得します。

____ここでペンの異なるスタイル値

Sr.No. *Name & Description *
1
  • PS_SOLID*

連続した実線。

2

PS_DASH

破線の中断のある連続線。

3

PS_DOT

1ピクセルおきにドットが途切れる線。

4

PS_DASHDOT

交互の破線と点の組み合わせ。

5

PS_DASHDOTDOT

ダッシュと二重点線の中断の組み合わせ。

6

PS_NULL

目に見える線はありません。

7

PS_INSIDEFRAME

閉じた形状の境界線のすぐ内側に描かれた線。

簡単な例を見てみましょう。

void CMFCGDIDemoView::OnDraw(CDC* pDC) {
   CPen pen;
   pen.CreatePen(PS_DASHDOTDOT, 1, RGB(160, 75, 90));
   pDC->SelectObject(&pen);
   pDC->Rectangle(25, 35, 250, 125);

   CMFCGDIDemoDoc* pDoc = GetDocument();
   ASSERT_VALID(pDoc);
   if (!pDoc)
      return;

  //TODO: add draw code for native data here
}

上記のアプリケーションを実行すると、次の出力が表示されます。

ペン

ブラシ

ブラシ*は、閉じた形状または線の内部を塗りつぶすために使用される描画ツールです。 ブラシは、ペンキのバケツを拾ってどこかに注ぐような動作をします。 MFCは、Windowsグラフィックデバイスインターフェイス(GDI)ブラシをカプセル化するクラス *CBrush を提供します。

____これは、CBrushクラスのメソッドのリストです。

Sr.NO. Name & Description
1

CreateBrushIndirect

LOGBRUSH構造体で指定されたスタイル、色、およびパターンでブラシを初期化します。

2

CreateDIBPatternBrush

デバイスに依存しないビットマップ(DIB)で指定されたパターンでブラシを初期化します。

3

CreateHatchBrush

指定されたハッチングパターンと色でブラシを初期化します。

4

CreatePatternBrush

ビットマップで指定されたパターンでブラシを初期化します。

5

CreateSolidBrush

指定した単色でブラシを初期化します。

6

CreateSysColorBrush

デフォルトのシステムカラーであるブラシを作成します。

7

FromHandle

Windows HBRUSHオブジェクトへのハンドルを指定すると、CBrushオブジェクトへのポインターを返します。

8

GetLogBrush

LOGBRUSH構造体を取得します。

簡単な例を見てみましょう。

void CMFCGDIDemoView::OnDraw(CDC *pDC) {
   CBrush brush(RGB(100, 150, 200));
   CBrush* pBrush = pDC->SelectObject(&brush);
   pDC->Rectangle(25, 35, 250, 125);
   pDC->SelectObject(pBrush);

   CMFCGDIDemoDoc* pDoc = GetDocument();
   ASSERT_VALID(pDoc);
   if (!pDoc)
      return;

  //TODO: add draw code for native data here
}

このアプリケーションを実行すると、次の出力が表示されます。

ブラシ