WndProcサブルーチンをオーバーライドしようとしているフォームがあります。GetDCExを使用して、フォームへのDCハンドルを取得しています。GetDCExの使用に関するMicrosoftのドキュメントによると、GetDCExを使用するには、フォームにCS_OWNDCまたはCS_PARENTDCフラグでウィンドウクラスを設定する必要があります。Spy ++によると、私のウィンドウにはこれらのクラス属性がありません。私の質問は、CS_OWNDCを割り当てるか、フォームを所有者が描画できるようにして、プログラムでGetDCExを使用できるようにする方法です。ちなみに、私はC#を使用しています。
1 に答える
2
CreateParams
次のようにコードをオーバーライドする必要があると思います。
/// <summary>
/// Overrides the control's class style parameters.
/// </summary>
protected override CreateParams CreateParams
{
get
{
Int32 CS_VREDRAW = 0x1;
Int32 CS_HREDRAW = 0x2;
Int32 CS_OWNDC = 0x20;
CreateParams cp = base.CreateParams;
cp.ClassStyle = cp.ClassStyle | CS_VREDRAW | CS_HREDRAW | CS_OWNDC | ...;
return cp;
}
}
于 2011-08-17T14:40:59.817 に答える