Tôi có một Win32 HWND và tôi muốn cho phép người dùng giữ quyền kiểm soát và nút chuột trái để kéo cửa sổ xung quanh màn hình. Cho (1) mà tôi có thể phát hiện khi người dùng nắm giữ điều khiển, nút chuột trái và di chuyển chuột, và (2) Tôi có vị trí chuột mới và cũ, cách sử dụng API Win32 và HWND của tôi để thay đổi vị trí của cửa sổ?Làm cách nào để triển khai kéo cửa sổ bằng khu vực ứng dụng khách?
11
A
Trả lời
31
Triển khai trình xử lý tin nhắn cho WM_NCHITTEST. Gọi DefWindowProc() và kiểm tra xem giá trị trả về có phải là HTCLIENT hay không. Trả về HTCAPTION nếu có, ngược lại trả về giá trị trả về của DefWindowProc. Bây giờ bạn có thể nhấp vào khu vực khách hàng và kéo cửa sổ, giống như bạn kéo một cửa sổ bằng cách nhấp vào chú thích.
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_NCHITTEST: {
LRESULT hit = DefWindowProc(hWnd, message, wParam, lParam);
if (hit == HTCLIENT) hit = HTCAPTION;
return hit;
}
// etc..
}
Các vấn đề liên quan
- 1. Cách lấy tọa độ của khu vực cửa sổ máy khách
- 2. WinAPI: Tạo cửa sổ có kích thước khu vực khách hàng được chỉ định
- 3. Làm thế nào để bạn triển khai các ứng dụng django cho các cửa sổ?
- 4. Heroku triển khai ứng dụng chơi 2.1 rất chậm (khu vực eu)
- 5. Window mà không khu vực khách hàng trong WinAPI
- 6. Làm cách nào để triển khai tab có thể kéo bằng cách sử dụng Java Swing?
- 7. Cách triển khai khái niệm cửa sổ soạn thư gmail trong các ứng dụng Trang đơn?
- 8. Làm cách nào để triển khai ứng dụng ASP.NET MVC3?
- 9. Làm thế nào để vẽ trong khu vực nonclient?
- 10. Làm cách nào để triển khai ứng dụng php
- 11. .NET - triển khai ứng dụng khách WCF, không có app.config
- 12. Làm thế nào để có được điểm đánh dấu bên trong một khu vực được chọn bằng cách kéo chuột?
- 13. Triển khai ứng dụng Django sử dụng hành khách
- 14. cách triển khai MVC3 WebApp vào các cửa sổ Azure
- 15. Làm cách nào để Chrome tải "ứng dụng cửa hàng"?
- 16. Làm cách nào để đặt đường viền trên khu vực?
- 17. Tạo khu vực quản trị trong ứng dụng Rails
- 18. Cách triển khai kéo để làm mới trên ListFragment
- 19. Triển khai tối thiểu của couchdb trên các cửa sổ
- 20. Làm thế nào để sao chép một khu vực hình ảnh bằng cách sử dụng opencv trong python?
- 21. Cách xóa MenuBar của ứng dụng bằng API cửa sổ?
- 22. Triển khai ứng dụng khách RTMFP trong C
- 23. Làm cách nào để triển khai ứng dụng Qt trên Windows?
- 24. Làm cách nào để triển khai ứng dụng của tôi bằng Qt-Creator?
- 25. Làm cách nào để triển khai tệp bằng ứng dụng nhấp chuột?
- 26. Khu vực di động Vs Nhiều khu vực dự án?
- 27. Làm thế nào để triển khai các ứng dụng VB6?
- 28. Làm cách nào để triển khai đúng chức năng "thu nhỏ đến khay" trong Qt?
- 29. Triển khai nhiều màn hình trong một Ứng dụng
- 30. Ứng dụng Facebook trên iPhone triển khai cửa sổ bật lên để nhận thông báo như thế nào?
là câu trả lời đúng –
chờ đợi ... nếu điều này là có thể cho các cửa sổ con ... Tôi ngạc nhiên ... – Dmitry
Không chỉ vậy, bạn có thể ví dụ như trở lại một trong những giá trị cạnh như HTBOTTOMRIGHT và bây giờ bạn có được một con trỏ thay đổi kích thước và có thể làm cho nó lớn hơn hoặc nhỏ hơn bằng cách kéo góc. Sức mạnh. –