سؤال

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

أنا ببساطة رسم الصورة مثل هذا:

Protected Overrides Sub WndProc(ByRef m As Message)
    If m.Msg = WM_SIZE Then
        wnd_size = New Size(New Point(CInt(m.LParam)))
    End If
    If m.Msg = WM_ACTIVATE _
    OrElse m.Msg = WM_SIZE _
    OrElse m.Msg = WM_SYNCPAINT _
    OrElse m.Msg = WM_NCACTIVATE _
    OrElse m.Msg = WM_NCCREATE _
    OrElse m.Msg = WM_NCPAINT _
    OrElse m.Msg = WM_NCACTIVATE _
    OrElse m.Msg = WM_NCHITTEST _
    OrElse m.Msg = WM_PAINT _
    OrElse m.Msg = WM_MOUSEMOVE Then
        Dim g As Graphics = Graphics.FromHdc(CType(GetWindowDC(CInt(Handle)), IntPtr))
        g.DrawImage(My.Resources.drag, 0, 0, 16, 16)
    End If
    MyBase.WndProc(m)
End Sub

إعادة طلاء شريط العنوان بأكمله في كل مرة يتم فيها تغيير شيء ما عليه (انقر فوق أزرار الزاوية ، وما إلى ذلك) ، وخلال إعادة الشراء أحصل على وميض.

أي شخص آخر يحصل على هذه المشكلة؟

هل كانت مفيدة؟

المحلول

في ضوء التعليقات السابقة على هذا ، قررت أن الأمر لا يستحق المتابعة حقًا. لن يختفي تأثير وميض إلا إذا قمت برسم شريط العنوان يدويًا تمامًا ، وهو حل عالي الصدر. بدلاً من ذلك ، قمت بإعادة تفكيري حول كيفية التعامل مع البرنامج بالكامل. الحل الوحيد القابل للحياة هو إزالة حدود النوافذ تمامًا ورسم حدود/شريط psuedo أعلى النموذج. نرى http://www.codeproject.com/kb/miscctrl/gtitlebar.aspx

أو الأفضل من ذلك ، فقط دع شريط العنوان يكون.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top