سؤال

وأنا خلق SIP العرف ويندوز موبايل وبما أن يضغط المستخدم أو "تحوم" فوق زر على لوحة المفاتيح أود أن ألفت انها المقابلة الصورة المحددة (اي فون سقو) إلى العاصمة الشاشة باستخدام :: GetDC (NULL). تم تطويره في Win32 C ++.

ومشكلتي هي أنني لا يمكن أبدا أن تحصل على الشاشة لإعادة رسم نفسها، ومحو مفتاح رسمها سابقا. لقد حاولت كل شيء كنت أفكر فيه لإجبارها، :: RedrawWindow () مع كل المجموعات المختلفة من بارامس باستخدام NULL أو أي من وظائف Get..Window كما HWND، وجميع السرد الأعلام (إبطال | UPDATENOW | ERASENOW | ALLCHILDREN الخ). لقد حاولت ايضا يبطل المستطيل وفرض إعادة رسم من التطبيق الأساسي باستخدام :: GetActiveWindow و:: GetForegroundWindow، والاختلافات باستخدام :: GetDesktopWindow، الخ لقد شغلت أساسا من الأفكار وانها شيء آخر عقد لي من استخدامه على جهازي ويندوز موبايل. هل لديها أي أفكار؟ أي مساعدة سيكون موضع تقدير كبير.

ولقد تضمنت بعض الصور لتوضيح بلدي معضلة.

قبل لقطة
بعد لقطة

قبل http://img13.imageshack.us/img13/9861/cezoom1. بابوا نيو غينيا بعد http://img3.imageshack.us/img3/7481/ cezoom2.png

ويرجع الفضل في ذلك مسبقا!

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

المحلول

وبدلا من الاعتماد على خلفية DC، لماذا لا يتم إنشاء إطار مؤقت ولفت إلى أن؟ عندما كنت تدمير النافذة، الخلفية يجب ان تحصل على إعادة رسم تلقائيا.

وأنا مجرد تخمين، لأنني لا أعرف ويندوز موبايل، ولكن يمكن أن يكون أن ويندوز والتخزين المؤقت الشيء الأخير الذي تم رسمها في العاصمة، وإعادة طلاء في كل مرة تقوم فيها إبطال النافذة.

نصائح أخرى

هل حاولت InvalidateRect على hWnd عنصر الشاشة؟

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