2015-09-24 43 views
7

Tôi có một số mã đặt vị trí cửa sổ vào phần tư màn hình. Nó hoạt động tốt trên Windows XP, 7 và 8/8.1. Tuy nhiên, trên Windows 10, có một khoảng cách kỳ lạ giữa các cửa sổ. Không gian thêm bao quanh cửa sổ trên tất cả 4 mặt. Tôi đoán nó có cái gì để làm với biên giới cửa sổ, nhưng không thể tìm ra cách để sửa chữa vấn đề. Bất kỳ đầu vào nào cũng sẽ được đánh giá cao. Mã này như sau:Kết quả định vị cửa sổ trong không gian xung quanh cửa sổ trên Windows 10

// Get monitor info 
HMONITOR hm = MonitorFromWindow(hWnd, MONITOR_DEFAULTTONEAREST); 
MONITORINFO mi; 
mi.cbSize = sizeof(mi); 
GetMonitorInfo(hm, &mi); 

// Set screen coordinates and dimensions of monitor's work area 
DWORD x = mi.rcWork.left; 
DWORD y = mi.rcWork.top; 
DWORD w = mi.rcWork.right - x; 
DWORD h = mi.rcWork.bottom - y; 

switch (corner) { 
case 0: // Left top 
    SetWindowPos(hWnd, HWND_TOP, x, y, w/2, h/2, SWP_NOZORDER); 
    break; 
case 1: // Right top 
    SetWindowPos(hWnd, HWND_TOP, x + w/2, y, w/2, h/2, SWP_NOZORDER); 
    break; 
case 2: // Right bottom 
    SetWindowPos(hWnd, HWND_TOP, x + w/2, y + h/2, w/2, h/2, SWP_NOZORDER); 
    break; 
case 3: // Left bottom 
    SetWindowPos(hWnd, HWND_TOP, x, y + h/2, w/2, h/2, SWP_NOZORDER); 
    break; 
} 
+1

Có, Windows 10 chỉ thực hiện điều đó. Lưu ý rằng điểm phát sóng để thay đổi kích thước cửa sổ thực sự nằm ngoài khung hiển thị ở cạnh phải và cạnh dưới. Kích thước hiển thị của cửa sổ nhỏ hơn kích thước thực của cửa sổ. –

+0

@JonathanPotter Cảm ơn. Wow, một thay đổi vô lý khác của Microsoft. – Paul

+5

Trong ứng dụng riêng của chúng tôi, chúng tôi đã có hành vi tương tự trên Windows 10. Tôi đã sửa nó bằng cách sử dụng kết hợp chức năng 'GetWindowRect' bình thường và sử dụng hàm [' DwmGetWindowAttribute'] (https://msdn.microsoft.com/ en-us/library/windows/desktop/aa969515% 28v = vs.85% 29.aspx), cùng với tham số 'DWMWA_EXTENDED_FRAME_BOUNDS'. –

Trả lời

-3

Kích thước phông chữ mặc định của Windows XP/7/8/8.1 là 100%, nhưng trong cửa sổ 10 mặc định là hiển thị văn bản và các mục trong 125%. Điều đó ảnh hưởng trực tiếp đến tất cả các kích thước cửa sổ.

Chuyển đến cài đặt, hiển thị và bạn sẽ tìm thấy một cuộn, di chuyển đến 100% và mọi thứ sẽ hiển thị giống như trong Windows 8/7/XP

+0

Bạn không thể đi và thay đổi cài đặt ứng dụng khách như vậy. – CodeCaster

Các vấn đề liên quan