سؤال أين يتم تخزين معلومات حول موقع نافذة؟


أين يتم تخزين معلومات حول موقع نافذة؟

مثال على ذلك: أبدأ notepad.exe، ولا يبدأ في تصغير أو تكبير ، ولكن مجرد نافذة متوسطة الحجم في وسط الشاشة. إذا قمت بإغلاقه وبدء تشغيله مرة أخرى ، فإنه في نفس إحداثيات XY. ولكن إذا قمت بإغلاقه أثناء وجوده في أسفل الشاشة ، فسيبدأ مرة أخرى في الجزء السفلي (بدلاً من midlle) من الشاشة.

إذا كنت أرغب في تغيير مواضع XY يدويًا في نافذة ما بحيث يتم فتحها في موقع غير قياسي ، فما الذي أحتاج إلى تعديله؟

ربما التسجيل ، ولكن أين؟


9
2018-01-10 22:26


الأصل




الأجوبة:


يقوم كل برنامج بتخزين المعلومات حول النوافذ الخاصة به بطريقته الخاصة. بالنسبة لبرنامج "المفكرة" ، وجدت ما يلي في سجل Windows XP الخاص بي.

في السجل ، انتقل إلى المجلد التالي

HKEY_CURRENT_USER\Software\Microsoft\Notepad

ثم تعديل القيم التالية

iWindowPosX
iWindowPosY
iWindowPosDX
iWindowPosDY 

X و Y هي إحداثيات أعلى الزاوية اليسرى للنافذة. DX و DY هما عرض وارتفاع النافذة.

قد تقوم برامج أخرى بحفظ معلومات موضع النافذة في السجل أو في ملفات الإعدادات الأخرى.


8
2018-01-11 00:42



لذلك كل برنامج لديه للتعامل مع بيانات تحديد المواقع الخاصة بها؟ - BenjiWiebe
كنت آمل أن ويندوز يعالجها. لكنني حصلت على موجة الدماغ. أنا جمعت برنامج Win32 واجهة المستخدم الرسومية الأساسية جدا ، ونظرت من خلال رمز لتحديد موقع رمز الإعداد. كل ما وجدته كان خطًا أخبر Windows بوضع البرنامج. ثم وضع Windows البرنامج مثل أي برنامج وحدة التحكم - أعلى الزاوية اليسرى ، ثم أقل قليلاً وإلى اليمين ، ثم انخفض مرة أخرى ، حتى يتم إعادة تعيينه في النهاية إلى أعلى الزاوية اليسرى. العرض التوضيحي: النوع start 10 مرات في test.bat و أديرها - BenjiWiebe
أنا فقط رأيت أن iWindowPosX تم تعيينه على fffffffd (4294967293) في حالتي. أي فكرة كيف يعمل هذا العدد الضخم؟ - Karan
BenjiWiebe إنهم أشياء مختلفة: 1. إذا كان البرنامج يتذكر وضع النافذة بحيث يمكن وضعه في نفس المكان في المرة القادمة ، فإن البرنامج سيحصل على اختيار كيفية ومكان حفظ إحداثيات النافذة وحجمها. يمكن حفظ القيم في التسجيل أو ملف نصي أو بطريقة أخرى. 2. إذا كنت تقوم بكتابة برنامج يقوم بإنشاء نافذة ، فيجب أن تكون قادرًا على تحديد موضع النافذة وحجمها عند إنشاء الإطار. أعتقد أنه في حالة عدم تحديدها ، سيختار Windows موضعًا افتراضيًا كما تصفه. ربما يمكنك الحصول على إرشادات أكثر تحديدًا في منتدى البرمجة. - Bavi_H
Karan هذا الرقم هو -3 عندما يتم التعامل مع البتات كقيمة موقعة. باختصار: تخيل عداد المسافات مع ثمانية بكرات ، وكل بكرة تحتوي على الأرقام من 0 إلى 9 ثم A إلى F عليها. إذا بدأت في 00000000 ثم انقر فوق العداد إلى الوراء ثلاث مرات ، ينتهي بك الأمر في FFFFFFFD. لمزيد من التفاصيل: تعرف على الثنائي ، الست عشري ، ومكملتين. - Bavi_H