كيف يمكنك تغيير ترتيب علامات التبويب برمجياً في مربع حوار Win32؟

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

  •  09-06-2019
  •  | 
  •  

سؤال

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

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

المحلول

لقد اكتشفت مؤخرًا أنه يمكنك استخدام SetWindowPos لإنجاز ذلك.حدد عنصر التحكم الذي تريد بعده إدراج عنصر التحكم الجديد في ترتيب علامات التبويب ثم استخدم SetWindowPos مثل هذا:

SetWindowPos(hNewControl, hOldControl, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE); 

يؤدي هذا إلى تغيير الترتيب z لعناصر التحكم والذي بدوره يقوم بإنشاء ترتيب علامات التبويب.

نصائح أخرى

أعلم أن هذا سؤال قديم ولكن إليك كيفية القيام بذلك في وقت الترجمة (وهو الأفضل في الغالبية العظمى من الحالات):http://msdn.microsoft.com/en-us/library/7039hzb0(v=vs.80).aspx

طريقتي المفضلة:

  1. من القائمة عرض، اختر ترتيب علامات التبويب.
  2. اختر تعيين بشكل تفاعلي.
  3. انقر نقرًا مزدوجًا فوق مربع ترتيب علامة التبويب بجانب عنصر التحكم الذي تريد أن تكون أول عنصر تحكم في ترتيب علامة التبويب.
  4. انقر فوق مربع ترتيب علامات التبويب لكل عنصر من عناصر التحكم الأخرى.
  5. انقر في أي مكان في النموذج لحفظ وضع التغييرات والخروج من ترتيب علامة التبويب ، أو اضغط على وضع ترتيب TAB للخروج دون حفظ التغييرات الخاصة بك.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top