أنت غير متصل حاليًا، وفي انتظار الإنترنت الخاص بك ليقوم بإعادة الاتصال

PRB: خلفية إطار تابع نمط BS_GROUPBOX تشكيل خاطئة

هام: تمت ترجمة هذا المقال باستخدام برنامج ترجمة آلية لشركة مايكروسوفت بدلاً من الاستعانة بمترجم بشري. تقدم شركة مايكروسوفت كلاً من المقالات المترجمة بواسطة المترجمين البشر والمقالات المترجمة آليًا وبالتالي ستتمكن من الوصول إلى كل المقالات الموجودة في قاعدة المعرفة الخاصة بنا وباللغة الخاصة بك. بالرغم من ذلك، فإن المقالة المترجمة آليًا لا تكون دقيقة دائمًا وقد تحتوي على أخطاء إملائية أو لغوية أو نحوية، مثل تلك الأخطاء الصادرة عن متحدث أجنبي عندما يتحدث بلغتك. لا تتحمل شركة مايكروسوفت مسئولية عدم الدقة أو الأخطاء أو الضرر الناتج عن أية أخطاء في ترجمة المحتوى أو استخدامه من قبل عملائنا. تعمل شركة مايكروسوفت باستمرار على ترقية برنامج الترجمة الآلية

اضغط هنا لرابط المقالة باللغة الانجليزية79982
تمت أرشفة هذه المقالة. وتظهر "كما هي" ولن يتم تحديثها بعد الآن.
3.00 3.10 kbcode kbprb kbprg WINDOWS
الأعراض
عند إنشاء إطار نمط BS_GROUPBOX لا محو الخلفية الخاصة به بشكل صحيح.
السبب
يحتوي إطار الأصل من إطار نمط BS_GROUPBOX نمط WS_CLIPCHILDREN مما يمنع الإطار الأصل من محو الخلفية مربع مجموعة.
الحل
فئة فرعية إطار مربع المجموعة معالجة الرسالة WM_ERASEBKGND بواسطة محو الخلفية الخاصة به. المسرود أدناه جزء التعليمات برمجية إلى عرض هذا الإجراء.
تصريح
يعتبر هذا السلوك حسب التصميم.
معلومات أخرى
يؤدي نمط WS_CLIPCHILDREN إطار لاستثناء مناطق الحاملة بواسطة الإطارات التابعة عند الإطار سيرسم منطقة العميل الخاصة به. ومع ذلك، إطار نمط BS_GROUPBOX هو عنصر تحكم ثابتة أبداً محو الخلفية الخاصة به. محو الخلفية إلى إزالة أية عناصر تحكم أو الأزرار التي تظهر داخل مربع مجموعة.

لذلك، عند يتم إسقاط عبر مربع مجموعة إطار فرعي آخر فيما بعد سحب بعيداً ، تبقى مرئية في خلفية مربع مجموعة أجزاء من هذا الإطار التابع. لا تحدث هذه المشكلة عندما لا يحتوي الإطار الأصل نمط WS_CLIPCHILDREN.

يجب وضع جزء التعليمات البرمجية التالية في مربع مجموعة فرعية الإجراء. مسح هذه التعليمة البرمجية خلفية مربع مجموعة.
   case WM_ERASEBKGND:    {    HBRUSH  hBrush, hOldBrush;    HPEN    hPen, hOldPen;    RECT    rect;    HDC     hDC;    hDC = GetDC(hWnd);    // Obtain a handle to the parent window's background brush.    hBrush = GetClassWord(ghWnd, GCW_HBRBACKGROUND);    hOldBrush = SelectObject(hDC, hBrush);    // Create a background-colored pen to draw the rectangle    // borders, where gWindowColor is some globally defined    // COLORREF variable used to paint the window's background    hPen = CreatePen(PS_SOLID, 1, gWindowColor);    hOldPen = SelectObject(hDC, hPen);    // Erase the group box's background.    GetClientRect(hWnd, &rect);    Rectangle(hDC, rect.left, rect.top, rect.right, rect.bottom);    // Restore the original objects before releasing the DC.    SelectObject(hDC, hOldPen);    SelectObject(hDC, hOldBrush);    // Delete the created object.    DeleteObject(hPen);    ReleaseDC(hWnd, hDC);    // Instruct Windows to paint the group box text and frame.    InvalidateRect(hWnd, NULL, FALSE);    // Insert code here to instruct the contents of the group box    // to repaint as well.    return TRUE; // Background has been erased.    }				
3.00 3.10

تحذير: تمت ترجمة هذه المقالة تلقائيًا

خصائص

رقم الموضوع: 79982 - آخر مراجعة: 12/04/2015 09:11:10 - المراجعة: 1.1

Microsoft Windows Software Development Kit 3.1

  • kbnosurvey kbarchive kbmt kb16bitonly kbbutton kbctrl kbprb KB79982 KbMtar
تعليقات