C # - Win32 و: الحصول على مؤشر إلى الإطار العلوي، بعد أن فقدت التركيز؟

StackOverflow https://stackoverflow.com/questions/633831

  •  10-07-2019
  •  | 
  •  

سؤال

ومحاولة حفر في المعهد Win32 من تطبيق WPF بلدي (الذي يعمل فقط من خلال سيستراي).

عند النقر على أيقونة أدوات النظم، وتقديم المستخدم مع contextmenu، التي تكتسب التركيز على كل ما كان نافذة أسمى.

وأريد الحصول على مؤشر إلى تلك النافذة (واحد، التي فقدت للتو التركيز) ولقد حاولت مع المناهج المختلفة باستخدام

GetForeGroundWindow()
GetTopWindow()
GetDesktopWindow()

للا نهاية ولكن. أنا النظر حاليا بالتكرار عبر كافة العمليات، للحصول على MainWindowHandles والتحقق من الترتيب التصاعدي من كل نافذة.

ولكن أنا يستهان أن هناك أسهل / طريقة أكثر ذكاء. ببساطة واحد فقط لا أستطيع أن جوجل أو أذكر من وجهة نظري تومي بيتزولد القديم.

وهناك طريقة أخرى سيكون لقائمة سيستراي بلدي <م> لا للحصول على التركيز عند تنشيط؟

وشكرا!

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

المحلول

هل يمكن الحصول على الإطار العلوي <م> قبل فتح قائمة، بغض النظر عن عنصر القائمة المستخدم سوف تختار في نهاية المطاف.

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

نصائح أخرى

وأنا لا أعتقد أن هناك أي شيء أبسط من الخاص بك وصفه ض مؤشر التكرار. القائمة سيستراي صفحة قد لتحصل على التركيز، لأن خلاف ذلك الناس لن يكون قادرا على استخدامها (على سبيل المثال، مع لوحة المفاتيح). وإذا كان يحصل على التركيز، ثم يصبح الإطار الأمامي، بحيث يتم ترك الإطار الأمامي القديم دون أي تمييز من أي نافذة inacitve آخرين في النظام. حقا، وIMHO الاختيار ض مؤشر هو السبيل الوحيد.

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