ข้อมูลเกี่ยวกับตำแหน่งของหน้าต่างที่จัดเก็บอยู่ที่ไหน


9

ข้อมูลเกี่ยวกับตำแหน่งของหน้าต่างที่จัดเก็บอยู่ที่ไหน

ตัวอย่าง: ฉันเริ่มnotepad.exeและจะไม่ย่อเล็กสุดหรือขยายให้ใหญ่สุด แต่มีเพียงหน้าต่างขนาดกลางที่อยู่ตรงกลางของหน้าจอ ถ้าฉันปิดและเริ่มใหม่อีกครั้งมันจะอยู่ในพิกัด XY เดียวกัน แต่ถ้าฉันปิดมันในขณะที่มันอยู่ที่ด้านล่างของหน้าจอมันจะเริ่มขึ้นอีกครั้งที่ด้านล่าง (ตรงข้ามกับ midlle) ของหน้าจอ

หากฉันต้องการเปลี่ยนตำแหน่ง XY ของหน้าต่างด้วยตนเองเพื่อให้เปิดขึ้นในตำแหน่งที่ไม่ได้มาตรฐานฉันต้องแก้ไขอะไร

อาจเป็นสตรี แต่อยู่ที่ไหน

คำตอบ:


8

แต่ละโปรแกรมจัดเก็บข้อมูลเกี่ยวกับ windows ในลักษณะของตนเอง สำหรับ Notepad ฉันพบสิ่งต่อไปนี้ในรีจิสทรี Windows XP ของฉัน

ในรีจิสทรีไปที่โฟลเดอร์ต่อไปนี้

HKEY_CURRENT_USER\Software\Microsoft\Notepad

จากนั้นแก้ไขค่าต่อไปนี้

iWindowPosX
iWindowPosY
iWindowPosDX
iWindowPosDY

X และ Y เป็นพิกัดของมุมซ้ายบนของหน้าต่าง DX และ DY คือความกว้างและความสูงของหน้าต่าง

โปรแกรมอื่นอาจบันทึกข้อมูลตำแหน่งหน้าต่างในรีจิสทรีหรือไฟล์การตั้งค่าอื่น ๆ


ดังนั้นแต่ละโปรแกรมจะต้องจัดการกับข้อมูลตำแหน่งของตัวเอง ??
BenjiWiebe

ฉันหวังว่า Windows จะจัดการกับมัน แต่ฉันได้รับคลื่นสมอง ฉันรวบรวมโปรแกรม Win32 GUI พื้นฐานมากและดูรหัสเพื่อค้นหารหัสการตั้งค่าตำแหน่ง ทั้งหมดที่ฉันพบคือบรรทัดที่บอกให้ Windows วางตำแหน่งโปรแกรม จากนั้น Windows จะจัดตำแหน่งโปรแกรมเช่นโปรแกรมคอนโซลใด ๆ - มุมบนซ้ายจากนั้นลดลงเล็กน้อยและไปทางขวาจากนั้นลดลงอีกครั้งจนกระทั่งตั้งค่าใหม่เป็นมุมบนซ้ายในที่สุด การสาธิต: พิมพ์start10 ครั้งtest.batและเรียกใช้
BenjiWiebe

ฉันเพิ่งเห็นว่า iWindowPosX ถูกตั้งค่าเป็น fffffffd (4294967293) ในกรณีของฉัน ความคิดใดที่ว่าจำนวนมหาศาลทำงานอย่างไร
Karan

@BenjiWiebe พวกมันต่างกัน: 1. ถ้าโปรแกรมจดจำตำแหน่งของหน้าต่างเพื่อให้สามารถวางไว้ในที่เดียวกันในครั้งต่อไปโปรแกรมจะเลือกว่าจะบันทึกพิกัดและขนาดของหน้าต่างอย่างไร มันสามารถบันทึกค่าในรีจิสทรีไฟล์ข้อความหรือวิธีอื่น 2. ถ้าคุณกำลังเขียนโปรแกรมที่สร้างหน้าต่างคุณควรจะสามารถระบุตำแหน่งและขนาดของหน้าต่างเมื่อคุณสร้างหน้าต่าง ฉันเดาว่าคุณไม่ได้ระบุไว้ Windows จะเลือกตำแหน่งเริ่มต้นตามที่คุณอธิบาย บางทีคุณสามารถขอคำแนะนำที่เฉพาะเจาะจงมากขึ้นในฟอรัมการเขียนโปรแกรม
Bavi_H

1
@ Karan หมายเลขนั้นคือ -3 เมื่อบิตถูกถือว่าเป็นค่าที่ลงนาม สั้น ๆ : ลองนึกภาพมาตรวัดระยะทางด้วยวงล้อแปดวงและแต่ละรีลมีตัวเลข 0 ถึง 9 จากนั้น A ถึง F บนมัน หากคุณเริ่มต้นที่ 00000000 จากนั้นคลิกวัดระยะทางย้อนกลับสามครั้งคุณจะสิ้นสุดที่ FFFFFFFD สำหรับรายละเอียดเพิ่มเติม: เรียนรู้เกี่ยวกับไบนารีเลขฐานสิบหกและส่วนประกอบสองอย่าง
Bavi_H
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.