<p>リストやグリッドに<em>ボタン</em>や<em>チェックボックス</em>を 表示したいと考えたことはないですか？<br />私はグリッドにボタンとチェックボックスの両方を付け加えました。ダウンロードしていただいた方々の中から数人の方が描画方法について質問されましたので、ここで解説したいと思います。 <em>ボタン</em>や<em>チェックボックス</em>を描画するには、DrawFrameControl API を使用します。この API は、Delphi Professional 以上をお持ちの方でしたら、TBitBlt、TDBGrid や TCheckListBox などで使用されています。 DrawFrameControl API は SDK で以下のように定義されています。詳細は<a href="http://msdn.microsoft.com/ja-jp/library/cc428492.aspx">こちら</a>。</p>
<pre class="brush:c">BOOL DrawFrameControl(
 HDC hdc,     // デバイスコンテキストのハンドル
 LPRECT lprc, // 境界の長方形
 UINT uType, // フレームコントロールのタイプ
 UINT uState // フレームコントロールのスタイル
);
</pre>
<p><strong>パラメータ説明:</strong></p>
<dl><dt><em>hdc</em></dt><dd>コントロールの描画に使いたいデバイスコンテキストのハンドルを指定します。</dd><dt><em>lprc</em></dt><dd>長方形の論理座標を保持する 1 個の RECT 構造体へのポインタを指定します。</dd><dt><em>uType</em></dt><dd>フレームコントロールのタイプを指定します。ボタン、メニューやｽｸﾛｰﾙﾊﾞｰなどを指定します。</dd><dt><em>uState</em></dt><dd>フレームコントロールの初期状態を指定します。</dd></dl>
<p>uTypeでボタンを指定した場合は、チェックボックスの状態を指定します。</p>