Autor Beitrag
Glowhollow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 77



BeitragVerfasst: Mi 08.05.19 11:00 
Guten Morgen,

ich habe eine resize Funktion geschrieben und an der Mainform angeheftet. Ich konnte jedoch keine "Maximize" Property gefunden, wo ich die Resize funktion drauf anwenden kann.

Recherchen haben, folgendes Codesnippet geliefert.

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
protected override void WndProc(ref Message m)
{
  if(m.Msg == 0x0112)
  {
    if (m.WParam == new IntPtr(0xF030))
    {
      Form1_Resize(thisnull);
    }
  }
  base.WndProc(ref m);
}


Das Event wird laut debugger auch getriggert, jedoch scheint es fast so, als würde das ganze nur dann richtig ausgeführt werden, wenn man vorher minimal die form resized, wenn man dann maximze drückt ist alles richtig. Trigger ich das event nicht an, scheint es fast so, als würde das irgendwie falsche daten bekommen. Es ist fast so, als würde das event garnicht gefeuert werden.

In meinem Resize event, setze ich relative position, der einzelnen Fenster und setzte die in Bezug zueinander. ich referenziere hier auch this.Width - aber es scheint so, als würde dies nicht geupdated.

Wie triggere ich das event richtig ?
Glowhollow Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 77



BeitragVerfasst: Mi 08.05.19 11:19 
k, fehler gefunden. Hatte in der Resize Funktion, einen speziellen fall nicht abgefangen. Jetzt läufts. danke.
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Mi 08.05.19 11:20 
Du hast den Code von Event when a window gets maximized/un-maximized?

Dann solltest du auch die Kommentare dort bzgl. wParam lesen, also die AND-Verknüpfung mittels 0xFFF0.
Aus WM_SYSCOMMAND:
Zitat:
In WM_SYSCOMMAND messages, the four low-order bits of the wParam parameter are used internally by the system. To obtain the correct result when testing the value of wParam, an application must combine the value 0xFFF0 with the wParam value by using the bitwise AND operator.

Aber warum nimmst du nicht einfach das Resize-Ereignis (bzw. die OnResize()-Methode) - wie auch im obigen Link vorgeschlagen?

PS: Du solltest keine Magic Numbers verwenden, sondern Konstanten dafür anlegen.
shubhupatil
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Do 13.06.19 13:29 
thanks for sharing...