كيف يمكنني الحصول على كائن HDC من كائن CDC؟
سؤال
ولدي كائن، العاصمة، من نوع CDC وكنت ترغب في الحصول على كائن HDC.
وأنا أقرأ وثائق هنا ، ولكن لا أفهم حقا.
ويمكن للشخص أن توفر لي مع مثال مختصر / شرحا عن كيفية القيام بذلك؟
المحلول
لقد operator HDC()
تعريف الفئة CDC الذي يسمح للمترجم لتحويل كائن CDC لHDC ضمنا. وبالتالي إذا كان لديك CDC * وظيفة التي تأخذ HDC ثم أنت فقط dereference المؤشر وإرسالها إلى وظيفة.
نصائح أخرى
وعندما يكون لديك CDC
الكائن سيتم تحويلها ضمنيا إلى HDC
عند الضرورة:
CDC dc;
HDC hdc = dc; // HDC hdc = dc.operator HDC();
إذا كان لديك مؤشر إلى CDC
الكائن ثم باستخدام وظيفة GetSafeHdc
سوف تبدو أكثر واضحة:
CDC* pdc = SOME;
HDC hdc = pdc->GetSafeHdc();
وCDC
هي فئة C ++ التي - لتقريب معقول - تلخص HDC، وهو مؤشر إلى سياق الجهاز
ووdocumenation التي تصل إلى يصف operator
التحويل، وهو C ++ بناء الطبقات التي يمكن أن تقدم للسماح التحويل الضمني من مثيل فئة إلى نوع آخر. في هذه الحالة نتائج التحويل الضمني في التعامل الأساسي (HDC) الذي بتغليف المثال CDC
.
ويمكنك إجراء تحويل باستخدام مثيل CDC
كانت في أي مكان لا بد من تحويلها إلى HDC
.
ومعظم ببساطة:
void f( const CDC& cdc )
{
HDC hdc = cdc;
// use hdc here
}
HDC hDC = dc;
وفقط إسناد ذلك.
CDC cdc = something.
HDC hdc = cdc;
if (hdc != 0)
{
//success...
}