Autor Beitrag
Kasko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 118

Win 10
C# C++ (VS 2017/19), (Java, PHP)
BeitragVerfasst: Mi 03.03.21 09:03 
Einfache Frage:

Ich möchte ein randloses Formular mit veränderbarer Größe erstellen. Also verwende ich die WM_NCHITTEST-Message und setze das Result auf HTTOPLEFT, HTLEFT, .... Dies funktioniert wie erwartet, wenn ich über keine Control hover. Wenn ich jedoch zum Beispiel ein Panel erstelle und Dock auf Top setze, wird der WndProc nur aufgerufen, wenn ich den Mauszeiger nicht über das Panel bewege, da Control.WndProc des Panels aufgerufen wird, sodass HTTOPLEFT, HTTOPRIGHT und HTTOP nicht mehr möglich sind.

Ist es möglich, die Messages an das Formular weiterzureichen? Ich möchte auch die Standard-Controls unterstützen. Ich möchte also nicht die Steuerelemente ableiten und deren WndProc überschreiben.
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4392
Erhaltene Danke: 944

Win10
C#, C++ (VS 2015/17/19)
BeitragVerfasst: Mi 03.03.21 10:31 
Es ist doch gerade Sinn der ganzen NC-(Nonclient-)Nachrichten, daß diese nur für Bereiche außerhalb des Clientbereichs (d.h. außerhalb der Controls) aufgerufen werden, s.a. Nonclient Area.

Wenn du ein rahmenloses Fenster verschieben lassen möchtest: Making a Borderless Form Movable sowie Make a borderless form movable?
Und zum Verändern der Größe: Resize borderless window on bottom right corner (Antwort von Franci Penov: Update 2) sowie How to move and resize a form without a border?