سؤال

هل هناك طريقة لتغيير الألوان المستخدمة من قبل القوائم Win32 واضحة (الخلفية، والنص، وتسليط الضوء) لعملية واحدة، <م> بدون باستخدام SetSysColors؟

و(SetSysColors يفعل التغير العالمي، وهو أمر سيء، وإذا تعطل أو ننسى لضبط الألوان الظهر مع SetSysColors مرة أخرى قبل أن تغادر، فإنها لن تعاد حتى خروج).

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

المحلول

إذا اعتقد تعليقك على روب، فمن لتطبيق البشرة، مع نظرة خاصة والمظهر. لذلك وسيلة للذهاب هو على الارجح في الواقع، كما يشير ferek من (بطريقة غير ودية ...) لاستخدام القوائم مرسومة المالك: سوف تكون قادرا على تحديد بالضبط مظهرها

نصائح أخرى

ووAPI SetMenuInfo () هو صديقك. فإنه يتيح لك تطبيق أي فرشاة لرسم الخلفية القائمة الخاصة بك.

شيء على طول هذه الخطوط يجب أن تحل مشكلتك:

MENUINFO mi = { 0 }; 
mi.cbSize = sizeof(mi); 
mi.fMask = MIM_BACKGROUND|MIM_APPLYTOSUBMENUS; 
mi.hbrBack = hBrush; 

HMENU hMenu = ::GetMenu(hWnd); 
SetMenuInfo(hMenu, &mi); 

وأود أن أسأل، لماذا؟ اعتماد ويندوز العادية تبدو ويشعر جيدة. وهو ما يعني يمكن للمستخدمين أن يكون واثقا أن هناك عناصر ثابتة في واجهة المستخدم الخاص بك، على التي يمكن تعيين تجربتهم باستخدام برامج أخرى لمنصة.

[أنا ربما المواعظ للمهتدين، وبطبيعة الحال، لكنني اعتقدت أن جعل النقطة حتى لا يبدأ أي شخص يقرأ إجابة لهذا جعل كل تلك القوائم السماء الزرقاء وردي 'السبب يبدو جميلة.]

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