私はCDC型のオブジェクトdcを持っています。私はHDCオブジェクトを取得したいと思います。CDCオブジェクトからHDCオブジェクトを取得するにはどうすればよいですか?
私はMSDNの文書hereを読んでいますが、実際には理解していません。
誰かが私にこのことを行う簡単な例や説明を教えてもらえますか?
私はCDC型のオブジェクトdcを持っています。私はHDCオブジェクトを取得したいと思います。CDCオブジェクトからHDCオブジェクトを取得するにはどうすればよいですか?
私はMSDNの文書hereを読んでいますが、実際には理解していません。
誰かが私にこのことを行う簡単な例や説明を教えてもらえますか?
CDCクラスコンパイラが暗黙的にHDCにCDCオブジェクトを変換することを可能にするoperator HDC()
が定義されています。したがって、あなたがCDC *とHDCをとる関数を持っていれば、ポインタを逆参照して関数に送るだけです。
HDC hDC = dc;
ただ割り当てます。
CDC cdc = something.
HDC hdc = cdc;
if (hdc != 0)
{
//success...
}
CDC
は、妥当な近似値で、デバイスコンテキストのハンドルであるHDCをカプセル化するC++クラスです。
あなたがリンクしているドキュメントには、クラスのインスタンスから他のタイプへの暗黙的な変換を可能にするためにクラスが提供できるC++構文である変換operator
が記述されています。この場合、暗黙の変換により、CDC
インスタンスがカプセル化する基になるハンドル(HDC)が生成されます。
CDC
インスタンスを使用して、HDC
に変換する必要がある任意の場所で変換を実行できます。あなたが必要なことが暗黙のうちにHDC
に変換されますCDC
オブジェクトがある場合
void f(const CDC& cdc)
{
HDC hdc = cdc;
// use hdc here
}
は::
最も簡単に
CDC dc;
HDC hdc = dc; // HDC hdc = dc.operator HDC();
をあなたはCDC
オブジェクトへのポインタを持っている場合は、機能GetSafeHdc
を使用すると、より多くのを見ていきますクリア:
CDC* pdc = SOME;
HDC hdc = pdc->GetSafeHdc();
GetSafeHdc()はトリックをありがとう、ありがとう。 – TechNyquist
ありがとう、ありがとう!私は '演算子'のキーワードをあまりにも多く使いすぎていないので、それは私を捨てた。 – samoz