Đâu là thông tin về vị trí của một cửa sổ được lưu trữ?


9

Đâu là thông tin về vị trí của một cửa sổ được lưu trữ?

Một ví dụ: Tôi bắt đầu notepad.exevà nó bắt đầu không được thu nhỏ hoặc tối đa hóa, mà chỉ là một cửa sổ kích thước trung bình ở giữa màn hình. Nếu tôi đóng nó và bắt đầu lại, nó ở cùng tọa độ XY. Nhưng sau đó nếu tôi đóng nó ở dưới cùng của màn hình, nó sẽ khởi động lại ở phía dưới (trái ngược với midlle) của màn hình.

Nếu tôi muốn thay đổi thủ công các vị trí XY của một cửa sổ để nó mở ra ở một vị trí không chuẩn, tôi cần chỉnh sửa gì?

Có lẽ là đăng ký, nhưng ở đâu?

Câu trả lời:


8

Mỗi chương trình lưu trữ thông tin về các cửa sổ của nó theo cách riêng của nó. Đối với Notepad, tôi đã tìm thấy những điều sau đây trong sổ đăng ký Windows XP của mình.

Trong sổ đăng ký, đi đến thư mục sau

HKEY_CURRENT_USER\Software\Microsoft\Notepad

sau đó sửa đổi các giá trị sau

iWindowPosX
iWindowPosY
iWindowPosDX
iWindowPosDY

X và Y là tọa độ của góc trên cùng bên trái của cửa sổ. DX và DY là chiều rộng và chiều cao của cửa sổ.

Các chương trình khác có thể lưu thông tin vị trí cửa sổ trong sổ đăng ký hoặc trong các tệp cài đặt khác.


Vì vậy, mỗi chương trình phải xử lý dữ liệu định vị riêng của mình ??
BenjiWiebe

Tôi đã hy vọng rằng Windows xử lý nó. Nhưng tôi bị sóng não. Tôi đã biên dịch một chương trình GUI Win32 rất cơ bản và xem qua mã để xác định mã cài đặt vị trí. Tất cả những gì tôi tìm thấy là một dòng thông báo cho Windows định vị chương trình. Windows sau đó định vị chương trình như bất kỳ chương trình giao diện điều khiển nào - góc trên cùng bên trái, sau đó thấp hơn một chút và sang phải, rồi lại hạ xuống, cho đến khi cuối cùng đặt lại nó vào góc trên cùng bên trái. Demo: gõ start10 lần vào test.batvà chạy nó.
BenjiWiebe

Tôi chỉ thấy rằng iWindowPosX đã được đặt thành fffffffd (4294967293) trong trường hợp của tôi. Bất cứ ý tưởng làm thế nào mà số lượng lớn hoạt động?
Karan

@BenjiWiebe Chúng là những thứ khác nhau: 1. Nếu một chương trình ghi nhớ vị trí của cửa sổ để nó có thể đặt nó ở cùng một vị trí vào lần tới, thì chương trình sẽ chọn cách thức và vị trí lưu tọa độ và kích thước cửa sổ. Nó có thể lưu các giá trị trong sổ đăng ký, tệp văn bản hoặc một số cách khác. 2. Nếu bạn đang viết chương trình tạo cửa sổ, bạn sẽ có thể chỉ định vị trí và kích thước của cửa sổ khi bạn tạo cửa sổ. Tôi đoán nếu bạn không chỉ định chúng, Windows sẽ chọn một vị trí mặc định như bạn mô tả. Có lẽ bạn có thể nhận được hướng dẫn cụ thể hơn trên một diễn đàn lập trình.
Bavi_H

1
@Karan Số đó là -3 khi các bit được coi là giá trị đã ký. Tóm lại: hãy tưởng tượng một máy đo đường có tám cuộn và mỗi cuộn có các chữ số từ 0 đến 9 rồi A đến F trên đó. Nếu bạn bắt đầu lúc 00000000 sau đó nhấp vào đồng hồ đo ngược ba lần, bạn kết thúc tại FFFFFFFD. Để biết thêm chi tiết: tìm hiểu về nhị phân, thập lục phân và hai phần bù.
Bavi_H
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.