<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>いちばんやさしいゲームの作り方 &#187; デバイスコンテキスト</title>
	<atom:link href="http://www.game-create.com/archives/tag/%e3%83%87%e3%83%90%e3%82%a4%e3%82%b9%e3%82%b3%e3%83%b3%e3%83%86%e3%82%ad%e3%82%b9%e3%83%88/feed" rel="self" type="application/rss+xml" />
	<link>http://www.game-create.com</link>
	<description>文系の人でも、数理学がわからない人でもゲームプログラミングをマスターできるブログ</description>
	<lastBuildDate>Tue, 08 Jun 2010 01:28:47 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Study::Bitmap で透過色を指定する</title>
		<link>http://www.game-create.com/archives/886</link>
		<comments>http://www.game-create.com/archives/886#comments</comments>
		<pubDate>Fri, 24 Oct 2008 05:34:12 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ゲームプログラミング]]></category>
		<category><![CDATA[GDI]]></category>
		<category><![CDATA[Study::Bitmap]]></category>
		<category><![CDATA[デバイスコンテキスト]]></category>
		<category><![CDATA[ラスターイメージ]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=886</guid>
		<description><![CDATA[Study::Bitmap で透過色を指定するためには Study::Bitmap::load() メソッドの第３引数に色情報を渡します。

たとえば赤を透過色にしたい場合は次のように書きます。
Study::Bitma [...]]]></description>
			<content:encoded><![CDATA[<p>Study::Bitmap で透過色を指定するためには Study::Bitmap::load() メソッドの第３引数に色情報を渡します。</p>
<p><span id="more-886"></span></p>
<p>たとえば赤を透過色にしたい場合は次のように書きます。</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-identifier">Study</span><span class="hl-default">::</span><span class="hl-identifier">Bitmap graphics</span><span class="hl-default">;
</span><span class="hl-identifier">graphics</span><span class="hl-default">.</span><span class="hl-identifier">load</span><span class="hl-brackets">(</span><span class="hl-identifier">hdc</span><span class="hl-code">, </span><span class="hl-identifier">TEXT</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">graphics.bmp</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">, </span><span class="hl-identifier">RGB</span><span class="hl-brackets">(</span><span class="hl-number">255</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-brackets">))</span><span class="hl-default">; </span><span class="hl-comment">// RGB の順で輝度を指定する</span></pre></div></div>
<p>この指定によって自動的にマスク画像が作られるようになります。マスク画像のデバイスコンテキストハンドルは Study::Bitmap::getMask() メソッドによって取得できます。</p>
<p>これで Study::Bitmap::load() 時にデバイスコンテキストハンドルを渡さなくても済むようになればいいのですが、今のところ良い方法が思いつきません。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/886/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Study::Bitmap で後からビットマップを読み込めるようになりました</title>
		<link>http://www.game-create.com/archives/361</link>
		<comments>http://www.game-create.com/archives/361#comments</comments>
		<pubDate>Sun, 18 May 2008 09:20:53 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ゲームプログラミング]]></category>
		<category><![CDATA[BMP]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Study::Bitmap]]></category>
		<category><![CDATA[Win32API]]></category>
		<category><![CDATA[デバイスコンテキスト]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=361</guid>
		<description><![CDATA[メルマガで勉強目的にご利用いただいている Study::Bitmap ですが、初期化のタイミングで互換デバイスコンテキストや読み込むファイルが決定している必要があり、使い勝手に難がありました。そこで、ビットマップを初期化 [...]]]></description>
			<content:encoded><![CDATA[<p>メルマガで勉強目的にご利用いただいている Study::Bitmap ですが、初期化のタイミングで互換デバイスコンテキストや読み込むファイルが決定している必要があり、使い勝手に難がありました。そこで、ビットマップを初期化の後に読み込めるように改造してみました。</p>
<p><span id="more-361"></span></p>
<p>後からビットマップを読み込むためには Study::Bitmap::load() というメソッドを使います。</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-comment">// 初期化（引数がいりません）
</span><span class="hl-identifier">Study</span><span class="hl-default">::</span><span class="hl-identifier">Bitmap player</span><span class="hl-default">;

</span><span class="hl-mlcomment">/* 中略 */

</span><span class="hl-comment">// どこかのタイミングで読み込みます
</span><span class="hl-identifier">player</span><span class="hl-default">.</span><span class="hl-identifier">load</span><span class="hl-brackets">(</span><span class="hl-identifier">hdc</span><span class="hl-code">, </span><span class="hl-identifier">TEXT</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">player.bmp</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">))</span><span class="hl-default">;

</span><span class="hl-mlcomment">/* 中略 */

</span><span class="hl-comment">// またどこかのタイミングで使います
</span><span class="hl-identifier">BitBlt</span><span class="hl-brackets">(</span><span class="hl-identifier">destination</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-number">640</span><span class="hl-code">, </span><span class="hl-number">480</span><span class="hl-code">, </span><span class="hl-identifier">player</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-identifier">SRCCOPY</span><span class="hl-brackets">)</span><span class="hl-default">;</span></pre></div></div>
<p>しかしながら、 Windows の API が NULL 許容であることに依存しまくった改造です。勉強目的と割り切るしかありません。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/361/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Study::Bitmap の使い方</title>
		<link>http://www.game-create.com/archives/344</link>
		<comments>http://www.game-create.com/archives/344#comments</comments>
		<pubDate>Fri, 02 May 2008 06:03:46 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ゲームプログラミング]]></category>
		<category><![CDATA[BMP]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[GDI]]></category>
		<category><![CDATA[Study::Bitmap]]></category>
		<category><![CDATA[Win32API]]></category>
		<category><![CDATA[デバイスコンテキスト]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=344</guid>
		<description><![CDATA[ビットマップを扱うためにメルマガで配布いたしました Study::Bitmap の使い方を説明します。

Study::Bitmap は BMP 形式のファイルをメモリ内に読み込んで、そのビットマップのデバイスコンテキス [...]]]></description>
			<content:encoded><![CDATA[<p>ビットマップを扱うためにメルマガで配布いたしました Study::Bitmap の使い方を説明します。</p>
<p><span id="more-344"></span></p>
<p>Study::Bitmap は BMP 形式のファイルをメモリ内に読み込んで、そのビットマップのデバイスコンテキストへアクセスする手段を提供してくれます。</p>
<p>Study::Bitmap を使うためには次の情報が必要になります。</p>
<ol>
<li>読み込んだビットマップの表示先となるデバイスコンテキストのハンドル</li>
<li>読み込みたいビットマップファイルの名前</li>
</ol>
<p>たとえば hWindow というハンドルが指すデバイスコンテキストに対して player.bmp という画像ファイルを表示させたい場合の Study::Bitmap 変数を作るためには次のように書きます。</p>
<div class="hl-surround" style="height:16.8px;"><div class="hl-main"><pre><span class="hl-identifier">Study</span><span class="hl-default">::</span><span class="hl-identifier">Bitmap player</span><span class="hl-brackets">(</span><span class="hl-identifier">hWindow</span><span class="hl-code">, </span><span class="hl-identifier">TEXT</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">player.bmp</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">))</span><span class="hl-default">;</span></pre></div></div>
<p>ここで生成した player という変数は BitBlt() 等の GDI 関数のデバイスコンテキストハンドルとして渡すことが可能になります。先の例では hWindows というハンドルが指すデバイスコンテキストへ player.bmp という画像ファイルを表示させることが目的でしたが、これを実現するためには次のように書きます。</p>
<div class="hl-surround" style="height:16.8px;"><div class="hl-main"><pre><span class="hl-identifier">BitBlt</span><span class="hl-brackets">(</span><span class="hl-identifier">hWindow</span><span class="hl-code">, </span><span class="hl-identifier">posX</span><span class="hl-code">, </span><span class="hl-identifier">posY</span><span class="hl-code">, </span><span class="hl-identifier">width</span><span class="hl-code">, </span><span class="hl-identifier">height</span><span class="hl-code">, </span><span class="hl-identifier">player</span><span class="hl-code">, </span><span class="hl-identifier">srcX</span><span class="hl-code">, </span><span class="hl-identifier">srcY</span><span class="hl-code">, </span><span class="hl-identifier">SRCCOPY</span><span class="hl-brackets">)</span><span class="hl-default">;</span></pre></div></div>
<p>ちなみに Study::Bitmap は、その名が示すとおり、ビットマップを扱うための手順を学ぶための型であり、実用性は全く考慮されておりません。もし、ビットマップファイルを扱う手順を忘れてしまった場合は Study::Bitmap のソースコードを開いて確認することができます。</p>
<p>一番の理想は、この型から脱却して別のライブラリを使えるだけの実力を身につけることなのですが、まぁ、まずは一緒にこれを使っていきましょう。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/344/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>画像ファイルの内容をウィンドウに描画する</title>
		<link>http://www.game-create.com/archives/323</link>
		<comments>http://www.game-create.com/archives/323#comments</comments>
		<pubDate>Fri, 11 Apr 2008 07:15:18 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ゲームプログラミング]]></category>
		<category><![CDATA[BMP]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[GDI]]></category>
		<category><![CDATA[Win32API]]></category>
		<category><![CDATA[デバイスコンテキスト]]></category>
		<category><![CDATA[画像]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=323</guid>
		<description><![CDATA[画像ファイルの内容をウィンドウに描画するためには、次のステップを踏みます。


描画先のデバイスコンテキストハンドルを取得する
描画先と互換性のあるデバイスコンテキストを作成する
画像ファイルを読み込む
画像ファイルから [...]]]></description>
			<content:encoded><![CDATA[<p>画像ファイルの内容をウィンドウに描画するためには、次のステップを踏みます。</p>
<p><span id="more-323"></span></p>
<ul>
<li>描画先のデバイスコンテキストハンドルを取得する</li>
<li>描画先と互換性のあるデバイスコンテキストを作成する</li>
<li>画像ファイルを読み込む</li>
<li>画像ファイルから読み込んだ内容を作成したデバイスコンテキストに適用する</li>
<li>BitBlt() 関数を使う</li>
</ul>
<p>まずは<a href="http://www.game-create.com/wp-content/uploads/manuals/articles/instructions/DrawImageFromFileByDeviceContext/DrawImageFromFileByDeviceContext.html">図解</a>をご覧ください。</p>
<p>以下、ソースコードとともにひとつずつ詳細を解説します。</p>
<h4>描画先のデバイスコンテキストハンドルを取得する</h4>
<p>まず、描画先のデバイスコンテキストハンドルを用意します。 WM_PAINT 内であれば BeginPaint() 関数の戻り値として取得できます。 WM_PAINT 以外の場所の場合は GetDC() 関数を使います。詳しくは「<a href="http://www.game-create.com/archives/316">ゲーム画面の描画に必要なデバイスコンテキストハンドルを取得する</a>」を参照ください。</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-comment">// WM_PAINT 内
</span><span class="hl-identifier">HDC destHDC</span><span class="hl-default"> = </span><span class="hl-identifier">BeginPaint</span><span class="hl-brackets">(</span><span class="hl-identifier">hWnd</span><span class="hl-code">, &amp;</span><span class="hl-identifier">ps</span><span class="hl-brackets">)</span><span class="hl-default">;
</span><span class="hl-comment">// WM_PAINT 外
</span><span class="hl-identifier">HDC destHDC</span><span class="hl-default"> = </span><span class="hl-identifier">GetDC</span><span class="hl-brackets">(</span><span class="hl-identifier">hWnd</span><span class="hl-brackets">)</span><span class="hl-default">;</span></pre></div></div>
<h4>描画先と互換性のあるデバイスコンテキストを作成する</h4>
<p>描画先のデバイスコンテキストハンドルを取得することができたら、そのハンドルが示すデバイスコンテキストと互換性のあるデバイスコンテキストを作成します。このデバイスコンテキストは画像ファイルの読み込み先になります。あるデバイスコンテキストと互換性のあるデバイスコンテキストを作成するためには CreateCompatibleDC() 関数を使います。</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-comment">// destHDC と互換性のあるデバイスコンテキストを作成し、ハンドルを返す
</span><span class="hl-identifier">HDC srcHDC</span><span class="hl-default"> = </span><span class="hl-identifier">CreateCompatibleDC</span><span class="hl-brackets">(</span><span class="hl-identifier">destHDC</span><span class="hl-brackets">)</span><span class="hl-default">;</span></pre></div></div>
<h4>画像ファイルを読み込む</h4>
<p>描画先と、画像ファイルの読み込み先のデバイスコンテキストができたら、画像ファイルを読み込みます。画像ファイルを読み込むためには LoadImage() 関数を使います。画像ファイルの置き場所については「<a href="http://www.game-create.com/archives/308">画像ファイルを LoadImage() 関数で読み込めるようにする</a>」を参照してください。</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-comment">// 画像ファイルを読み込む
</span><span class="hl-identifier">HBITMAP bitmap</span><span class="hl-default"> = </span><span class="hl-brackets">(</span><span class="hl-identifier">HBITMAP</span><span class="hl-brackets">)</span><span class="hl-identifier">LoadImage</span><span class="hl-brackets">(</span><span class="hl-prepro">NULL</span><span class="hl-code">,
                                    </span><span class="hl-identifier">TEXT</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">madoka.bmp</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">, </span><span class="hl-comment">// 読み込むファイル名
                                    </span><span class="hl-identifier">IMAGE_BITMAP</span><span class="hl-code">,
                                    </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-code">,
                                    </span><span class="hl-identifier">LR_LOADFROMFILE</span><span class="hl-brackets">)</span><span class="hl-default">;</span></pre></div></div>
<h4>画像ファイルから読み込んだ内容を作成したデバイスコンテキストに適用する</h4>
<p>画像が読み込めたら、先ほど CreateCompatibleDC() 関数で作ったデバイスコンテキストへ、画像ファイルの内容を適用します。画像ファイルの内容をデバイスコンテキストへ適用するためには SelectObject() 関数を使います。</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-comment">// srcHDC に bitmap を適用する
</span><span class="hl-identifier">SelectObject</span><span class="hl-brackets">(</span><span class="hl-identifier">srcHDC</span><span class="hl-code">, </span><span class="hl-identifier">bitmap</span><span class="hl-brackets">)</span><span class="hl-default">;</span></pre></div></div>
<h4>BitBlt() 関数を使う</h4>
<p>デバイスコンテキストに画像ファイルの内容が適用できたら完了です。あとは、画像の読み込み先（ srcHDC ）から描画先（ destHDC ）へデータを転送することにより、自分の好きなようにグラフィックを表示することができるようになります。グラフィックデータを転送するためには BitBlt() 関数を使います。詳しくは「<a href="http://www.game-create.com/archives/122">ビットマップをブロック転送する</a>」を参照してください。</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-comment">// 画像を転送する
</span><span class="hl-identifier">BitBlt</span><span class="hl-brackets">(</span><span class="hl-identifier">destHDC</span><span class="hl-code">,  </span><span class="hl-comment">// 描画先（ HDC ）
       </span><span class="hl-number">320</span><span class="hl-code">, </span><span class="hl-number">240</span><span class="hl-code">, </span><span class="hl-comment">// 描画先の左上座標
       </span><span class="hl-number">32</span><span class="hl-code">, </span><span class="hl-number">32</span><span class="hl-code">,   </span><span class="hl-comment">// 転送する幅
       </span><span class="hl-identifier">srcHDC</span><span class="hl-code">,   </span><span class="hl-comment">// 転送元（ HDC ）
       </span><span class="hl-number">120</span><span class="hl-code">, </span><span class="hl-number">100</span><span class="hl-code">, </span><span class="hl-comment">// 転送元の左上座標
       </span><span class="hl-identifier">SRCCOPY</span><span class="hl-brackets">)</span><span class="hl-default">; </span><span class="hl-comment">// 転送方式</span></pre></div></div>
<h4>使ったリソースを解放する</h4>
<p>最後に、使ったリソースを解放してシステムへ返します。 GetDC() 関数で取得したデバイスコンテキストハンドルは ReleaseDC() 関数で解放し、 CreateCompatibleDC() 関数で作成したデバイスコンテキストハンドルは DeleteDC() 関数で解放します。詳しくは「 <a href="http://www.game-create.com/archives/101">ReleaseDC() と DeleteDC() の違い</a>」を参照ください。</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-comment">// 使い終わったリソースを解放する
</span><span class="hl-identifier">DeleteObject</span><span class="hl-brackets">(</span><span class="hl-identifier">bitmap</span><span class="hl-brackets">)</span><span class="hl-default">;
</span><span class="hl-identifier">DeleteDC</span><span class="hl-brackets">(</span><span class="hl-identifier">srcHDC</span><span class="hl-brackets">)</span><span class="hl-default">;
</span><span class="hl-identifier">ReleaseDC</span><span class="hl-brackets">(</span><span class="hl-identifier">hWnd</span><span class="hl-code">, </span><span class="hl-identifier">destHDC</span><span class="hl-brackets">)</span><span class="hl-default">;</span></pre></div></div>
<h4>一連のソース</h4>
<div class="hl-surround" style="height:280px;"><div class="hl-main"><pre><span class="hl-comment">// WM_PAINT 内
</span><span class="hl-identifier">HDC destHDC</span><span class="hl-default"> = </span><span class="hl-identifier">BeginPaint</span><span class="hl-brackets">(</span><span class="hl-identifier">hWnd</span><span class="hl-code">, &amp;</span><span class="hl-identifier">ps</span><span class="hl-brackets">)</span><span class="hl-default">;
</span><span class="hl-comment">// WM_PAINT 外
</span><span class="hl-identifier">HDC destHDC</span><span class="hl-default"> = </span><span class="hl-identifier">GetDC</span><span class="hl-brackets">(</span><span class="hl-identifier">hWnd</span><span class="hl-brackets">)</span><span class="hl-default">;

</span><span class="hl-comment">// destHDC と互換性のあるデバイスコンテキストを作成し、ハンドルを返す
</span><span class="hl-identifier">HDC srcHDC</span><span class="hl-default"> = </span><span class="hl-identifier">CreateCompatibleDC</span><span class="hl-brackets">(</span><span class="hl-identifier">destHDC</span><span class="hl-brackets">)</span><span class="hl-default">;

</span><span class="hl-comment">// 画像ファイルを読み込む
</span><span class="hl-identifier">HBITMAP bitmap</span><span class="hl-default"> = </span><span class="hl-brackets">(</span><span class="hl-identifier">HBITMAP</span><span class="hl-brackets">)</span><span class="hl-identifier">LoadImage</span><span class="hl-brackets">(</span><span class="hl-prepro">NULL</span><span class="hl-code">,
                                    </span><span class="hl-identifier">TEXT</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">madoka.bmp</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">, </span><span class="hl-comment">// 読み込むファイル名
                                    </span><span class="hl-identifier">IMAGE_BITMAP</span><span class="hl-code">,
                                    </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-code">,
                                    </span><span class="hl-identifier">LR_LOADFROMFILE</span><span class="hl-brackets">)</span><span class="hl-default">;

</span><span class="hl-comment">// srcHDC に bitmap を適用する
</span><span class="hl-identifier">SelectObject</span><span class="hl-brackets">(</span><span class="hl-identifier">srcHDC</span><span class="hl-code">, </span><span class="hl-identifier">bitmap</span><span class="hl-brackets">)</span><span class="hl-default">;

</span><span class="hl-comment">// 画像を転送する
</span><span class="hl-identifier">BitBlt</span><span class="hl-brackets">(</span><span class="hl-identifier">destHDC</span><span class="hl-code">,  </span><span class="hl-comment">// 描画先（ HDC ）
       </span><span class="hl-number">320</span><span class="hl-code">, </span><span class="hl-number">240</span><span class="hl-code">, </span><span class="hl-comment">// 描画先の左上座標
       </span><span class="hl-number">32</span><span class="hl-code">, </span><span class="hl-number">32</span><span class="hl-code">,   </span><span class="hl-comment">// 転送する幅
       </span><span class="hl-identifier">srcHDC</span><span class="hl-code">,   </span><span class="hl-comment">// 転送元（ HDC ）
       </span><span class="hl-number">120</span><span class="hl-code">, </span><span class="hl-number">100</span><span class="hl-code">, </span><span class="hl-comment">// 転送元の左上座標
       </span><span class="hl-identifier">SRCCOPY</span><span class="hl-brackets">)</span><span class="hl-default">; </span><span class="hl-comment">// 転送方式

// 使い終わったリソースを解放する
</span><span class="hl-identifier">DeleteObject</span><span class="hl-brackets">(</span><span class="hl-identifier">bitmap</span><span class="hl-brackets">)</span><span class="hl-default">;
</span><span class="hl-identifier">DeleteDC</span><span class="hl-brackets">(</span><span class="hl-identifier">srcHDC</span><span class="hl-brackets">)</span><span class="hl-default">;
</span><span class="hl-identifier">ReleaseDC</span><span class="hl-brackets">(</span><span class="hl-identifier">hWnd</span><span class="hl-code">, </span><span class="hl-identifier">destHDC</span><span class="hl-brackets">)</span><span class="hl-default">;</span></pre></div></div>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/323/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>デバイスコンテキスト</title>
		<link>http://www.game-create.com/archives/321</link>
		<comments>http://www.game-create.com/archives/321#comments</comments>
		<pubDate>Thu, 10 Apr 2008 02:05:00 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ゲームプログラミング]]></category>
		<category><![CDATA[BMP]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[GDI]]></category>
		<category><![CDATA[Win32API]]></category>
		<category><![CDATA[デバイスコンテキスト]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=321</guid>
		<description><![CDATA[デバイスコンテキストとは Win32API を通じてグラフィックを描画（表示）するために、ディスプレイ、ウィンドウ、メモリ、プリンタといったデバイスを抽象化したデータです。


デバイスコンテキストという形に抽象化される [...]]]></description>
			<content:encoded><![CDATA[<p>デバイスコンテキストとは Win32API を通じてグラフィックを描画（表示）するために、ディスプレイ、ウィンドウ、メモリ、プリンタといったデバイスを抽象化したデータです。</p>
<p><a href="http://www.game-create.com/wp-content/uploads/2008/04/device_context.gif" title="デバイスコンテキストとプログラムの関係" rel="lightbox"><img src="http://www.game-create.com/wp-content/uploads/2008/04/device_context.thumbnail.gif" alt="デバイスコンテキストとプログラムの関係" /></a></p>
<p><span id="more-321"></span></p>
<p>デバイスコンテキストという形に抽象化されることによって、同じ関数で異なるデバイスにグラフィックを描画（表示）することができるようになります。たとえば、ディスプレイに四角形を描くための関数は Rectangle() ですが、プリンタに四角形を印字するための関数も Rectangle() です。</p>
<p>プログラムはデバイスコンテキストへ直接アクセスすることはできません。デバイスコンテキストを通じてグラフィックを描画（表示）するためには、デバイスコンテキストからデバイスコンテキストハンドルを取得し、そのハンドルを描画関数へ渡します。デバイスコンテキストからデバイスコンテキストハンドルを取得するためには GetDC() 関数を使います。</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-comment">// ディスプレイのデバイスコンテキストハンドルを取得
</span><span class="hl-identifier">HDC display</span><span class="hl-default"> = </span><span class="hl-identifier">GetDC</span><span class="hl-brackets">(</span><span class="hl-prepro">NULL</span><span class="hl-brackets">)</span><span class="hl-default">;

</span><span class="hl-comment">// ディスプレイに四角形を描画
</span><span class="hl-identifier">Rectangle</span><span class="hl-brackets">(</span><span class="hl-identifier">display</span><span class="hl-code">, </span><span class="hl-number">100</span><span class="hl-code">, </span><span class="hl-number">100</span><span class="hl-code">, </span><span class="hl-number">200</span><span class="hl-code">, </span><span class="hl-number">200</span><span class="hl-brackets">)</span><span class="hl-default">;

</span><span class="hl-mlcomment">/* 中略 */

</span><span class="hl-comment">// デバイスコンテキストを解放
</span><span class="hl-identifier">ReleaseDC</span><span class="hl-brackets">(</span><span class="hl-prepro">NULL</span><span class="hl-code">, </span><span class="hl-identifier">display</span><span class="hl-brackets">)</span><span class="hl-default">;</span></pre></div></div>
<p>ディスプレイやウィンドウなどのデバイスコンテキストは Windows によって自動的に生成されますが、ビットマップの読み込み先となるメモリなどのデバイスコンテキストは、あとから自分で用意する必要があります。</p>
<p>ゲームの場合は、画像ファイルの読み込み先としてデバイスコンテキストを生成するケースがほとんどです。この場合、デバイスコンテキストは CreateCompatibleDC() 関数によって生成します。 CreateCompatibleDC() 関数は、第１引数にデバイスコンテキストハンドルを受け取り、そのハンドルが示すデバイスコンテキストと互換性のあるデバイスコンテキストを生成します。互換性のあるデバイスコンテキスト同士は、グラフィックを相互に転送することができます。</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-comment">// ディスプレイのデバイスコンテキストハンドルを取得
</span><span class="hl-identifier">HDC display</span><span class="hl-default"> = </span><span class="hl-identifier">GetDC</span><span class="hl-brackets">(</span><span class="hl-prepro">NULL</span><span class="hl-brackets">)</span><span class="hl-default">;

</span><span class="hl-comment">// ビットマップの読み込み先のデバイスコンテキストを生成
</span><span class="hl-identifier">HDC memory</span><span class="hl-default"> = </span><span class="hl-identifier">CreateCompatibleDC</span><span class="hl-brackets">(</span><span class="hl-identifier">display</span><span class="hl-brackets">)</span><span class="hl-default">;

</span><span class="hl-mlcomment">/* 中略 */

</span><span class="hl-comment">// デバイスコンテキストを解放（ CreateCompatibleDC() で作った場合は DeleteDC() ）
</span><span class="hl-identifier">DeleteDC</span><span class="hl-brackets">(</span><span class="hl-identifier">memory</span><span class="hl-brackets">)</span><span class="hl-default">;

</span><span class="hl-comment">// デバイスコンテキストを解放（ GetDC() で取得した場合は ReleaseDC() ）
</span><span class="hl-identifier">ReleaseDC</span><span class="hl-brackets">(</span><span class="hl-identifier">display</span><span class="hl-brackets">)</span><span class="hl-default">;</span></pre></div></div>
<p>使い終わったデバイスコンテキストは解放する必要があります。 GetDC() によって取得したデバイスコンテキストは ReleaseDC() 関数、 CreateCompatibleDC() 関数で生成したデバイスコンテキストは DeleteDC() 関数によって解放します。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/321/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ゲーム画面の描画に必要なデバイスコンテキストハンドルを取得する</title>
		<link>http://www.game-create.com/archives/316</link>
		<comments>http://www.game-create.com/archives/316#comments</comments>
		<pubDate>Fri, 04 Apr 2008 15:13:13 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ゲームプログラミング]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Win32API]]></category>
		<category><![CDATA[デバイスコンテキスト]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=316</guid>
		<description><![CDATA[ゲーム画面の描画に必要なデバイスコンテキストハンドルを取得する方法というのは、たいていの場合、次のどれかになると思います。迷ったら参考にしてください。たぶん、一度参考にしたら二度と必要なくなると思います。

BeginP [...]]]></description>
			<content:encoded><![CDATA[<p>ゲーム画面の描画に必要なデバイスコンテキストハンドルを取得する方法というのは、たいていの場合、次のどれかになると思います。迷ったら参考にしてください。たぶん、一度参考にしたら二度と必要なくなると思います。</p>
<p><span id="more-316"></span></p>
<h4>BeginPaint() の戻り値を利用する</h4>
<p>WM_PAINT のタイミングで絶対に作られるデバイスコンテキストハンドルを利用してゲーム画面を描く方法です。当サイトで公開しているプログラムはこの方法を採用しています。赤坂玲音たん方式です（ちなみに氏は男性です）。</p>
<div class="hl-surround" style="height:280px;"><div class="hl-main"><pre><span class="hl-identifier">LRESULT CALLBACK WindowProcedure</span><span class="hl-brackets">(</span><span class="hl-identifier">HWND hWindow</span><span class="hl-code">,
                                 </span><span class="hl-identifier">UINT message</span><span class="hl-code">,
                                 </span><span class="hl-identifier">WPARAM wParam</span><span class="hl-code">,
                                 </span><span class="hl-identifier">LPARAM lParam</span><span class="hl-brackets">)
{
  </span><span class="hl-reserved">switch </span><span class="hl-brackets">(</span><span class="hl-identifier">message</span><span class="hl-brackets">) {
    </span><span class="hl-mlcomment">/* 省略 */
  </span><span class="hl-reserved">case </span><span class="hl-identifier">WM_PAINT</span><span class="hl-code">:
    </span><span class="hl-identifier">HDC hdc</span><span class="hl-code">;
    </span><span class="hl-identifier">PAINTSTRUCT ps</span><span class="hl-code">;
    </span><span class="hl-identifier">hdc</span><span class="hl-code"> = </span><span class="hl-identifier">BeginPaint</span><span class="hl-brackets">(</span><span class="hl-identifier">hWindow</span><span class="hl-code">, &amp;</span><span class="hl-identifier">ps</span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-mlcomment">/*
      ここで hdc を対象にゲーム画面を描く。
     */
    </span><span class="hl-identifier">EndPaint</span><span class="hl-brackets">(</span><span class="hl-identifier">hWindow</span><span class="hl-code">, &amp;</span><span class="hl-identifier">ps</span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-reserved">break</span><span class="hl-code">;
    </span><span class="hl-mlcomment">/* 省略 */
  </span><span class="hl-brackets">}

  </span><span class="hl-reserved">return </span><span class="hl-number">0</span><span class="hl-code">;
</span><span class="hl-brackets">}</span></pre></div></div>
<p>こちらは Windows プログラミングに慣れている人でないとわかりづらいかもしれません。</p>
<h4>GetDC() で自分の好きなタイミングで取得する</h4>
<p>自分の好きなタイミングでゲーム画面を描画したい場合は GetDC() 関数を使ってデバイスコンテキストハンドルを取得します。 GetDC() 関数にはウィンドウハンドルを渡す必要があります。では、ウィンドウハンドルはどのように取得するかというと CreateWindow() 関数の戻り値として受け取ることができます。 CreateWindow() 関数はウィンドウを作る関数です。たいていの場合、ゲーム画面はウィンドウに描画しますよね？そのウィンドウを作るときの戻り値を記憶しておけばいいわけです。</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-comment">// ゲーム画面の土台となるウィンドウを作る
</span><span class="hl-identifier">HWND hWindow</span><span class="hl-default"> = </span><span class="hl-identifier">CreateWindow</span><span class="hl-brackets">(</span><span class="hl-mlcomment">/* 省略 */</span><span class="hl-brackets">)</span><span class="hl-default">;

</span><span class="hl-comment">// ゲーム画面を描画したいとき
</span><span class="hl-identifier">HDC hdc</span><span class="hl-default"> = </span><span class="hl-identifier">GetDC</span><span class="hl-brackets">(</span><span class="hl-identifier">hWindow</span><span class="hl-brackets">)</span><span class="hl-default">;
</span><span class="hl-mlcomment">/*
  ここで hdc を対象にゲーム画面を描く。
 */
</span><span class="hl-identifier">ReleaseDC</span><span class="hl-brackets">(</span><span class="hl-identifier">hWindw</span><span class="hl-code">, </span><span class="hl-identifier">hdc</span><span class="hl-brackets">)</span><span class="hl-default">; </span><span class="hl-comment">// 後始末</span></pre></div></div>
<p>こちらは Windows のしがらみが嫌いな人にお勧めです。私も昔はこっち派の人間でした。こちらのサンプルも用意できると理想的ですよね。</p>
<p>ちなみに、メルマガで「小さいプログラム」をテーマにしているときはこちらの方法を使っています。「小さいプログラム」をテーマにしている場合は、描画先がデスクトップですので GetDC() 関数には NULL を渡します。</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-identifier">HDC hdc</span><span class="hl-default"> = </span><span class="hl-identifier">GetDC</span><span class="hl-brackets">(</span><span class="hl-prepro">NULL</span><span class="hl-brackets">)</span><span class="hl-default">;
</span><span class="hl-mlcomment">/*
  ここで hdc を対象にゲーム画面を描く。
 */
</span><span class="hl-identifier">ReleaseDC</span><span class="hl-brackets">(</span><span class="hl-prepro">NULL</span><span class="hl-code">, </span><span class="hl-identifier">hdc</span><span class="hl-brackets">)</span><span class="hl-default">;</span></pre></div></div>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/316/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CreateCompatibleDC() で作ったデバイスコンテキストがデフォルトで何かを SelectObject() している…</title>
		<link>http://www.game-create.com/archives/284</link>
		<comments>http://www.game-create.com/archives/284#comments</comments>
		<pubDate>Fri, 07 Mar 2008 14:35:10 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ゲームプログラミング]]></category>
		<category><![CDATA[GDI]]></category>
		<category><![CDATA[デバイスコンテキスト]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=284</guid>
		<description><![CDATA[CreateCompatibleDC() で作ったデバイスコンテキストは、ペンやブラシなどの基本的な GDI オブジェクト以外は何も SelectObject() していないのかと思ったら、何かビットマップも持っているよ [...]]]></description>
			<content:encoded><![CDATA[<p>CreateCompatibleDC() で作ったデバイスコンテキストは、ペンやブラシなどの基本的な GDI オブジェクト以外は何も SelectObject() していないのかと思ったら、何かビットマップも持っているようです。</p>
<p><span id="more-284"></span></p>
<p>デバッガでメモリアドレスだけわかったのですが、何か持っている以上、 SelectObject() でビットマップを割り当てたら、終了時に元に戻さなければならないはずです。</p>
<p>というわけで、ゲーム用のウィンドウのひな形を更新しました。すぐに公開しても良いのですが、良い機会なので週末にソースコードのシェイプアップをはかろうと思います。ウィンドウプロシージャなんかは WinMain() の上に書けばプロトタイプ宣言がいりませんしね。ユーザが手を加えられる部分は全て上の方へ持って行こうと思っています。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/284/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GDI を使ってデスクトップに図形を描画する</title>
		<link>http://www.game-create.com/archives/266</link>
		<comments>http://www.game-create.com/archives/266#comments</comments>
		<pubDate>Fri, 22 Feb 2008 13:39:22 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ゲームプログラミング]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[GDI]]></category>
		<category><![CDATA[Win32API]]></category>
		<category><![CDATA[デバイスコンテキスト]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=266</guid>
		<description><![CDATA[GDI を使ってデスクトップに図形を描画するためには GetDC() 関数を使ってデスクトップのデバイスコンテキストハンドルを取得します。

デスクトップに図形を描画するためには、まず GetDC() 関数を使ってデスク [...]]]></description>
			<content:encoded><![CDATA[<p>GDI を使ってデスクトップに図形を描画するためには GetDC() 関数を使ってデスクトップのデバイスコンテキストハンドルを取得します。</p>
<p><span id="more-266"></span></p>
<p>デスクトップに図形を描画するためには、まず GetDC() 関数を使ってデスクトップのデバイスコンテキストハンドルを取得します。デスクトップのデバイスコンテキストハンドルを取得するためには、引数に NULL を渡します。</p>
<p>デバイスコンテキストハンドルを取得したとは、通常の GDI 描画と同じ感覚で関数を使うことができます。</p>
<p>描画が完了したら、必ず ReleaseDC() 関数を使ってデバイスコンテキストハンドルを解放します。デスクトップから取得したデバイスコンテキストハンドルを解放するためには、第１引数に NULL を渡します。</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-comment">// デスクトップ描画の用意
</span><span class="hl-identifier">HDC hdc</span><span class="hl-default"> = </span><span class="hl-identifier">GetDC</span><span class="hl-brackets">(</span><span class="hl-prepro">NULL</span><span class="hl-brackets">)</span><span class="hl-default">;

</span><span class="hl-comment">// GDI で図形を描画する例
</span><span class="hl-identifier">Rectangle</span><span class="hl-brackets">(</span><span class="hl-identifier">hdc</span><span class="hl-code">, </span><span class="hl-number">100</span><span class="hl-code">, </span><span class="hl-number">100</span><span class="hl-code">, </span><span class="hl-number">200</span><span class="hl-code">, </span><span class="hl-number">200</span><span class="hl-brackets">)</span><span class="hl-default">;
</span><span class="hl-identifier">Ellipse</span><span class="hl-brackets">(</span><span class="hl-identifier">hdc</span><span class="hl-code">, </span><span class="hl-number">100</span><span class="hl-code">, </span><span class="hl-number">100</span><span class="hl-code">, </span><span class="hl-number">200</span><span class="hl-code">, </span><span class="hl-number">200</span><span class="hl-brackets">)</span><span class="hl-default">;

</span><span class="hl-comment">// デスクトップ描画の後始末
</span><span class="hl-identifier">ReleaseDC</span><span class="hl-brackets">(</span><span class="hl-prepro">NULL</span><span class="hl-code">, </span><span class="hl-identifier">hdc</span><span class="hl-brackets">)</span><span class="hl-default">;</span></pre></div></div>
<p>いろいろと面白いことができそうですね。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/266/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ReleaseDC() と DeleteDC() の違い</title>
		<link>http://www.game-create.com/archives/101</link>
		<comments>http://www.game-create.com/archives/101#comments</comments>
		<pubDate>Wed, 03 Oct 2007 11:57:55 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ゲームプログラミング]]></category>
		<category><![CDATA[Win32API]]></category>
		<category><![CDATA[デバイスコンテキスト]]></category>
		<category><![CDATA[備忘録]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=101</guid>
		<description><![CDATA[デバイスコンテキストの後始末には ReleaseDC() と DeleteDC() の使い分けが必要です。

ReleaseDC() は GetDC() の後始末、 DeleteDC() は CreateCompatib [...]]]></description>
			<content:encoded><![CDATA[<p>デバイスコンテキストの後始末には ReleaseDC() と DeleteDC() の使い分けが必要です。</p>
<p><span id="more-101"></span></p>
<p>ReleaseDC() は GetDC() の後始末、 DeleteDC() は CreateCompatibleDC() の後始末を担当します。借りてきたデバイスコンテキストか自分で作ったデバイスコンテキストかで覚えた方が早いかもしれませんね。</p>
<p>Windows はこういう小ネタが多くて迷います。先日 Windows の歴史から仕様を解説している書籍を見つけたのですが買ってくるのを忘れてしまいました。失敗です！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/101/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GDI による描画の準備をする</title>
		<link>http://www.game-create.com/archives/90</link>
		<comments>http://www.game-create.com/archives/90#comments</comments>
		<pubDate>Mon, 24 Sep 2007 08:10:14 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ゲームプログラミング]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[GDI]]></category>
		<category><![CDATA[Win32API]]></category>
		<category><![CDATA[ウィンドウ]]></category>
		<category><![CDATA[デバイスコンテキスト]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=90</guid>
		<description><![CDATA[GDI でウィンドウに円や多角形、文字列、ビットマップを描画するにはウィンドウハンドルからデバイスコンテキストハンドルを取得する必要があります。

ここで、ウィンドウと呼ぶのは「ゲーム用のウィンドウを作成する」で解説した [...]]]></description>
			<content:encoded><![CDATA[<p>GDI でウィンドウに円や多角形、文字列、ビットマップを描画するにはウィンドウハンドルからデバイスコンテキストハンドルを取得する必要があります。</p>
<p><span id="more-90"></span></p>
<p>ここで、ウィンドウと呼ぶのは「<a href="http://www.game-create.com/archives/86">ゲーム用のウィンドウを作成する</a>」で解説した Windows フォームだけではない点に注意してください。 Windows 開発においてはボタンやリストボックスなど入力機能を持つオブジェクト全般をウィンドウと呼称します。 Windows という名前の由来はこのようにすべてのオブジェクトがウィンドウと呼称される様からきているそうです。</p>
<p>さて GDI を使用するためにはまず描画対象のウィンドウハンドルを得る必要があります。ウィンドウハンドルとはウィンドウを識別するためのオブジェクトです。プログラム中では HWND 型の変数として表現します。</p>
<p>最も多いのは「<a href="http://www.game-create.com/archives/86">ゲーム用のウィンドウを作成する</a>」で解説した Windows フォームに描画するパターンです。 Windows フォームのウィンドウハンドルは CreateWindow() 関数の戻り値で取得します。 Windows フォームのウィンドウハンドルは随所で参照するためグローバル変数に格納しておくのもひとつの手段です。</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-comment">// Windows フォームのウィンドウハンドルを取得する
</span><span class="hl-identifier">HWND hWindow</span><span class="hl-default">;
</span><span class="hl-identifier">hWindow</span><span class="hl-default"> = </span><span class="hl-identifier">CreateWindow</span><span class="hl-brackets">(</span><span class="hl-mlcomment">/* 引数は省略します */</span><span class="hl-brackets">)</span><span class="hl-default">;</span></pre></div></div>
<p>次にウィンドウハンドルに対するデバイスコンテキストハンドルを取得します。デバイスコンテキストハンドルとはウィンドウに対して GDI 描画するための窓口となるオブジェクトです。プログラム中では HDC 型の変数として表現します。</p>
<p>デバイスコンテキストは描画対象がディスプレイの場合やプリンタの場合でも同じ GDI 関数が使えるように出力対象を抽象化する中継ぎの役割を果たします。</p>
<p>デバイスコンテキストハンドルはウィンドウハンドルを元に GetDC() 関数で取得します。</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-comment">// Windows フォームのウィンドウハンドルを取得する
</span><span class="hl-identifier">HWND hWindow</span><span class="hl-default">;
</span><span class="hl-identifier">hWindow</span><span class="hl-default"> = </span><span class="hl-identifier">CreateWindow</span><span class="hl-brackets">(</span><span class="hl-mlcomment">/* 引数は省略します */</span><span class="hl-brackets">)</span><span class="hl-default">;

</span><span class="hl-comment">// ウィンドウハンドルからデバイスコンテキストハンドルを取得する
</span><span class="hl-identifier">HDC hDC</span><span class="hl-default">;
</span><span class="hl-identifier">hDC</span><span class="hl-default"> = </span><span class="hl-identifier">GetDC</span><span class="hl-brackets">(</span><span class="hl-identifier">hWindow</span><span class="hl-brackets">)</span><span class="hl-default">;</span></pre></div></div>
<p>デバイスコンテキストハンドルが取得できれば GDI による描画の準備は終了です。</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-comment">// GDI による描画の例
</span><span class="hl-identifier">Rectangle</span><span class="hl-brackets">(</span><span class="hl-identifier">hDC</span><span class="hl-code">, </span><span class="hl-number">100</span><span class="hl-code">, </span><span class="hl-number">100</span><span class="hl-code">, </span><span class="hl-number">200</span><span class="hl-code">, </span><span class="hl-number">200</span><span class="hl-brackets">)</span><span class="hl-default">;
</span><span class="hl-identifier">Ellipse</span><span class="hl-brackets">(</span><span class="hl-identifier">hDC</span><span class="hl-code">, </span><span class="hl-number">100</span><span class="hl-code">, </span><span class="hl-number">100</span><span class="hl-code">, </span><span class="hl-number">200</span><span class="hl-code">, </span><span class="hl-number">200</span><span class="hl-brackets">)</span><span class="hl-default">;</span></pre></div></div>
<p>GDI による描画を終えた際にはデバイスコンテキストハンドルを解放します。</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-comment">// デバイスコンテキストハンドルの解放
</span><span class="hl-identifier">ReleaseDC</span><span class="hl-brackets">(</span><span class="hl-identifier">hWindow</span><span class="hl-code">, </span><span class="hl-identifier">hDC</span><span class="hl-brackets">)</span><span class="hl-default">;</span></pre></div></div>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/90/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

