W moim programie, im przy użyciu przesłonięcia WndProc, aby zatrzymać zmianę rozmiaru mojego formularza. Rzecz w tym, że kursor nadal istnieje, gdy przesuniesz wskaźnik na krawędź formularza. Czy mimo to ukryć ten kursor?C# Hide Resize Cursor
Odpowiedz
znalazłem sposób przy użyciu WndProc dzięki link Lasse mię posłał. Dziękuję za odpowiedź Jon, ale nie było to dokładnie to, czego chciałem. Dla tych, którzy chcą wiedzieć, jak to zrobiłem, użyłem to:
protected override void WndProc(ref Message m)
{
const int WM_NCHITTEST = 0x0084;
switch (m.Msg)
{
case WM_NCHITTEST:
return;
}
base.WndProc(ref m);
}
nie mam go dokładnie testowane, więc nie wiem, czy są jakieś skutki uboczne, ale to działa dobrze dla mnie w tej chwili :).
Już miałem odpowiedzieć na coś takiego, kiedy napisałeś, cieszę się, że znalazłeś odpowiedź. Po powrocie nie potrzebujesz przerwy. –
tak, twoje prawo. siła nawyku^_^ – Ozzy
Dlaczego nie ustawić odpowiednio właściwości FormBorderStyle
? Wtedy nie musisz używać WndProc
.
Oto niektóre przykładowy kod do wykazania - kliknij przycisk, aby przełączyć czy forma może być zmieniany:
using System;
using System.Windows.Forms;
using System.Drawing;
class Test
{
[STAThread]
static void Main(string[] args)
{
Button button = new Button
{
Text = "Toggle border",
AutoSize = true,
Location = new Point(20, 20)
};
Form form = new Form
{
Size = new Size (200, 200),
Controls = { button },
FormBorderStyle = FormBorderStyle.Fixed3D
};
button.Click += ToggleBorder;
Application.Run(form);
}
static void ToggleBorder(object sender, EventArgs e)
{
Form form = ((Control)sender).FindForm();
form.FormBorderStyle = form.FormBorderStyle == FormBorderStyle.Fixed3D
? FormBorderStyle.Sizable : FormBorderStyle.Fixed3D;
}
}
Mam go ustawionego na toolbox z możliwością zmiany rozmiaru, ponieważ w widoku tym otaczają go ładne ramki. używając fixed 3d, nie dostajesz tej granicy (ustawiam ControlBox na false i bez tytułu) – Ozzy
Zakładając, że masz na myśli SizeableToolWindow, czy wypróbowałeś FixedToolWindow? Wygląda dokładnie tak samo, po prostu nie można zmienić rozmiaru. –
Downvoters: proszę wyjaśnić, więc odpowiedź można poprawić. –
Wystarczy ustawić FormBorderStyle wystarczy do tego. Dlaczego używasz WndProc do tego?
, ponieważ w tym przypadku formborderstyle to za mało. – Ozzy
@Ozzy/Lasse Pracowałem dla mnie!
miał ten sam problem:
Standardowe stylów obramowania nie dają wygląd chcę, niestandardowe CreateParams zrobić. Podałem te same wartości dla Rozmiar, MinimumSize i MaximumSize, aby wyłączyć zmianę rozmiaru. Kursory Resize nadal ustawiony jest jednak, dzięki Ozzy & Lasse to jest teraz obsługiwane przez filtrowanie WM_NCHITTEST ...
Dzięki
- 1. MongoDB C# Driver 'Cursor not found'
- 2. Resize VideoView
- 3. Hide caret w WPF TextBox
- 4. Resize ArrayBuffer
- 5. Android Cursor maksymalny rozmiar
- 6. registerContentObserver() na surowym SQLite Cursor
- 7. SplitContainer panel Resize Issue
- 8. Proportional image resize
- 9. Vector clear vs. resize
- 10. mylić o hashmap # resize
- 11. Resize NSPopover po wyświetleniu
- 12. Google maps responsive resize
- 13. Swiper height auto resize
- 14. iText Image Resize
- 15. statsmodels ARIMA.fit: Hide wyjście
- 16. jquery .hide() fadeIn()
- 17. Swagger (Swashbuckle) hide header
- 18. Kontynuuj od góry w SQL SERVER Cursor?
- 19. wektor stl i C++: jak .resize bez domyślnego konstruktora?
- 20. jQuery połączyć .ready i .resize
- 21. JQuery: $ (okno) .resize() nie działa
- 22. Resize textField oparciu o zawartość
- 23. Flexslider hide kule poniżej slajdów
- 24. Używanie jQuery .hide() z zanikaniem
- 25. Animate.css i Angularjs ng-hide
- 26. Zmiana animacji show jquery()/hide()?
- 27. UITableView: hide Główka pustej sekcji
- 28. Hide facebook app from search
- 29. Konwersja wyników Sqllite Cursor na mój obiekt
- 30. ResultSet - Cursor: rs.next() Biorąc dużo czasu
Nie testowałem tego, więc ja tylko komentowanie, czy próbowałeś przechwytując komunikat WM_NCHITTEST? Więcej informacji tutaj: http://msdn.microsoft.com/en-us/library/ms645618(VS.85).aspx –