Mam Win32 HWND i chciałbym umożliwić użytkownikowi kontrolę i lewy przycisk myszy, aby przeciągnąć okno dookoła ekranu. Biorąc pod uwagę (1), że mogę wykryć, gdy użytkownik ma kontrolę, lewy przycisk myszy i porusza myszą, oraz (2) Mam nową i starą pozycję myszy, jak używać interfejsu Win32 API i mojego HWND do zmiany pozycja okna?Jak zastosować przeciąganie okna przy użyciu jego obszaru roboczego?
11
A
Odpowiedz
31
Zaimplementuj procedurę obsługi komunikatów dla WM_NCHITTEST. Wywołaj DefWindowProc() i sprawdź, czy zwracana jest wartość HTCLIENT. Zwróć HTCAPTION, jeśli tak jest, w przeciwnym razie zwróć wartość zwracaną DefWindowProc. Możesz teraz kliknąć obszar klienta i przeciągnąć okno, tak jak przeciągasz okno, klikając nagłówek.
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..
}
Powiązane problemy
- 1. Dynamicznie zmieniaj rozmiar okna obszaru roboczego za pomocą javascript/jquery?
- 2. Dekodowanie obszaru roboczego todataURL
- 3. Znalezienie rozmiaru obszaru roboczego (mniejszy rozmiar ekranu paska zadań) przy użyciu GTK
- 4. Błąd obszaru roboczego Android Building
- 5. Jenkins Sprawdzanie świeżego obszaru roboczego
- 6. Matlab - użycie zmiennych obszaru roboczego
- 7. cocoapods nie generują obszaru roboczego
- 8. WinAPI: Utwórz okno o określonym rozmiarze obszaru roboczego
- 9. Jak skopiować zmienne ścieżki klasy Eclipse z jednego obszaru roboczego do nowego obszaru roboczego?
- 10. Pobierz rozmiar obszaru roboczego z kontekstu.
- 11. Przeciąganie SCNNode w ARKit przy użyciu SceneKit
- 12. Usuwanie obiektów/danych z obszaru roboczego
- 13. Szablony mapowania obszaru roboczego narzędzi programistów Chrome
- 14. Dowolny sposób zautomatyzowania konfiguracji obszaru roboczego Eclipse?
- 15. Howto Jenkins nie wyczyścić obszaru roboczego git
- 16. MATLAB wyświetla łącze do elementów obszaru roboczego
- 17. Błąd zapisywania obszaru roboczego w ColdFusion Builder
- 18. P4 - zmiana obszaru roboczego dla klienta
- 19. prześlij dane obszaru roboczego do s3
- 20. Ustawianie rozmiaru obszaru roboczego plotowania w Matplotlib
- 21. Zapisywanie obszaru roboczego WPF jako obrazu następującego po wzorcu MVVM
- 22. jak usunąć mapowanie obszaru roboczego TFS dla innego użytkownika
- 23. Jak zastosować określony układ w programie PowerPoint przy użyciu vba?
- 24. Jak rozmiar okna zaobserwować przy użyciu nokaut
- 25. Jak skonstruować drzewo przy użyciu d3 i jego układu sił?
- 26. Jak skopiować projekty do obszaru roboczego zaćmienia po zaimportowaniu projektu?
- 27. Jak zmienić domyślną lokalizację obszaru roboczego w Zend Studio?
- 28. Jak otworzyć projekt z obszaru roboczego w czasie zaćmienia?
- 29. Jak wyeksportować dane Simulink do obszaru roboczego podczas symulacji?
- 30. Dodawanie projektu do obszaru roboczego Xcode, takiego jak CocoaPods
jest poprawna odpowiedź –
czekać ... jeśli jest to możliwe do okien potomnych ... Jestem zaskoczony ... – Dmitry
Nie tylko, że można na przykład powrót jedną z wartości brzegowych, jak i HTBOTTOMRIGHT teraz otrzymujesz kursor zmiany rozmiaru i możesz go powiększyć lub zmniejszyć, przeciągając róg. Moc. –