SetWindowPos có thể đặt cửa sổ AlwaysOnTop. Nhiều khả năng nó có thể cho kết quả ngược lại. Hãy thử một cái gì đó dọc theo những dòng:
[DllImport("user32.dll")]
static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X,
int Y, int cx, int cy, uint uFlags);
public const uint SWP_NOSIZE = 0x0001;
public const uint SWP_NOMOVE = 0x0002;
public const uint SWP_NOACTIVATE = 0x0010;
public const int HWND_BOTTOM = 1;
SetWindowPos(hWnd, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE);
Lưu ý:
- đã không được thử nghiệm phương pháp này (để làm cửa sổ luôn luôn ở phía dưới)
- Nếu điều đó xảy đến làm việc, thì rất có thể máy tính để bàn chương trình hoạt động sẽ ẩn cửa sổ. Vì vậy, có lẽ bạn nên đi sâu hơn vào API 'đẹp' này.
CHỈNH SỬA: Hoàn thành một số tìm kiếm dọc theo các dòng này để xác nhận xem nó có thực hiện thủ thuật hay không và tìm thấy điều gì đó thú vị - a duplicate.
Nếu có thể bạn nên sử dụng cái gì khác nhưng Delphi, bởi vì sự tương tác giữa các cửa sổ ứng dụng ẩn và cửa sổ chính sẽ làm cho những thứ thậm chí phức tạp hơn. Hầu hết trong số này là công cụ riêng tư trong forms.pas, khó thay đổi. – mghie
Không thể thực hiện khi Hiển thị màn hình nền được sử dụng. Nó có thể, tuy nhiên khi Minimize All được sử dụng - bằng cách thiết lập thuộc tính MinimizeBox thành false, bạn sẽ vô hiệu hóa việc giảm thiểu biểu mẫu. – configurator
Nhân bản: http://stackoverflow.com/questions/365094/window-on-desktop –