0

WndProcサブルーチンをオーバーライドしようとしているフォームがあります。GetDCExを使用して、フォームへのDCハンドルを取得しています。GetDCExの使用に関するMicrosoftのドキュメントによると、GetDCExを使用するには、フォームにCS_OWNDCまたはCS_PARENTDCフラグでウィンドウクラスを設定する必要があります。Spy ++によると、私のウィンドウにはこれらのクラス属性がありません。私の質問は、CS_OWNDCを割り当てるか、フォームを所有者が描画できるようにして、プログラムでGetDCExを使用できるようにする方法です。ちなみに、私はC#を使用しています。

4

1 に答える 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 に答える