Fenster Minimieren ohne Windowstate

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von TheSCHFan#.

    Nö, das machste so. Warum denn auch nicht?
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Code:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub TrackBar1_Scroll(sender As Object, e As EventArgs) Handles TrackBar1.Scroll
    3. Label6.Text = "Volume: " + TrackBar1.Value.ToString + "/" + TrackBar1.Maximum.ToString
    4. ProgressBar1.Value = TrackBar1.Value
    5. AxWindowsMediaPlayer1.settings.volume = ProgressBar1.Value
    6. End Sub
    7. Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
    8. If MsgBox("Möchten sie, dass " + aktuell + " beendet wird", MsgBoxStyle.YesNo, "Wirklich?") = MsgBoxResult.Yes Then
    9. e.Cancel = False
    10. Else
    11. e.Cancel = True
    12. End If
    13. End Sub
    14. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    15. Label6.Text = "Volume: " + TrackBar1.Value.ToString + "/" + TrackBar1.Maximum.ToString
    16. ProgressBar1.Value = TrackBar1.Value
    17. AxWindowsMediaPlayer1.settings.volume = ProgressBar1.Value
    18. Label1.ForeColor = Color.Black
    19. Label2.ForeColor = Color.Black
    20. Label3.ForeColor = Color.Black
    21. Label4.ForeColor = Color.Black
    22. Label5.ForeColor = Color.Black
    23. Label1.ForeColor = Color.Red
    24. wmpplay("http://87.230.53.70/iloveradio1.mp3")
    25. aktuell = "ILoveRadio"
    26. Label9.Text = aktuell + " v" + My.Settings.Version + " ►"
    27. End Sub
    28. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    29. If AxWindowsMediaPlayer1.playState = WMPLib.WMPPlayState.wmppsPlaying Then
    30. AxWindowsMediaPlayer1.Ctlcontrols.pause()
    31. Else
    32. AxWindowsMediaPlayer1.Ctlcontrols.play()
    33. End If
    34. If AxWindowsMediaPlayer1.playState = WMPLib.WMPPlayState.wmppsPlaying Then
    35. Button1.Text = "Pause"
    36. Label9.Text = aktuell + " v" + My.Settings.Version + " ►"
    37. Else
    38. Button1.Text = "Play"
    39. Label9.Text = "iLoveRadio v" + My.Settings.Version
    40. End If
    41. End Sub
    42. Dim aktuell As String
    43. Private Sub Panel2_Click(sender As Object, e As EventArgs) Handles Panel2.Click, Label1.Click, PictureBox1.Click
    44. Label1.ForeColor = Color.Black
    45. Label2.ForeColor = Color.Black
    46. Label3.ForeColor = Color.Black
    47. Label4.ForeColor = Color.Black
    48. Label5.ForeColor = Color.Black
    49. Label1.ForeColor = Color.Red
    50. wmpplay("http://87.230.53.70/iloveradio1.mp3")
    51. aktuell = "ILoveRadio"
    52. End Sub
    53. Private Sub Panel3_Click(sender As Object, e As EventArgs) Handles Panel3.Click, Label2.Click, PictureBox2.Click
    54. Label1.ForeColor = Color.Black
    55. Label2.ForeColor = Color.Black
    56. Label3.ForeColor = Color.Black
    57. Label4.ForeColor = Color.Black
    58. Label5.ForeColor = Color.Black
    59. Label2.ForeColor = Color.Red
    60. wmpplay("http://87.230.53.70/iloveradio2.mp3")
    61. aktuell = "ILoveToDance"
    62. End Sub
    63. Private Sub Panel4_Click(sender As Object, e As EventArgs) Handles Panel4.Click, Label3.Click, PictureBox3.Click
    64. Label1.ForeColor = Color.Black
    65. Label2.ForeColor = Color.Black
    66. Label3.ForeColor = Color.Black
    67. Label4.ForeColor = Color.Black
    68. Label5.ForeColor = Color.Black
    69. Label3.ForeColor = Color.Red
    70. wmpplay("http://87.230.53.70/iloveradio3.mp3")
    71. aktuell = "ILoveTheDome"
    72. End Sub
    73. Private Sub Panel5_Click(sender As Object, e As EventArgs) Handles Panel5.Click, Label4.Click, PictureBox4.Click
    74. Label1.ForeColor = Color.Black
    75. Label2.ForeColor = Color.Black
    76. Label3.ForeColor = Color.Black
    77. Label4.ForeColor = Color.Black
    78. Label5.ForeColor = Color.Black
    79. Label4.ForeColor = Color.Red
    80. wmpplay("http://87.230.53.70/iloveradio4.mp3")
    81. aktuell = "ILoveYou"
    82. End Sub
    83. Private Sub Panel6_Click(sender As Object, e As EventArgs) Handles Panel6.Click, Label5.Click, PictureBox5.Click
    84. Label1.ForeColor = Color.Black
    85. Label2.ForeColor = Color.Black
    86. Label3.ForeColor = Color.Black
    87. Label4.ForeColor = Color.Black
    88. Label5.ForeColor = Color.Black
    89. Label5.ForeColor = Color.Red
    90. wmpplay("http://87.230.53.70/iloveradio5.mp3")
    91. aktuell = "ILoveMashUp"
    92. End Sub
    93. Public Sub wmpplay(ByVal url As String)
    94. AxWindowsMediaPlayer1.URL = url
    95. Button1.Enabled = False
    96. End Sub
    97. Private Sub Panel6_Paint(sender As Object, e As PaintEventArgs) Handles Panel6.Paint
    98. End Sub
    99. Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    100. If AxWindowsMediaPlayer1.playState = WMPLib.WMPPlayState.wmppsPlaying Then
    101. Button1.Text = "Pause"
    102. Label9.Text = aktuell + " v" + My.Settings.Version + "(Playing)"
    103. Button1.Enabled = True
    104. Else
    105. Button1.Text = "Play"
    106. Label9.Text = aktuell + " v" + My.Settings.Version
    107. End If
    108. Me.Text = Label9.Text
    109. End Sub
    110. Private Sub Label7_Click(sender As Object, e As EventArgs) Handles Label7.Click
    111. Me.Close()
    112. End Sub
    113. Private Sub Label8_Click(sender As Object, e As EventArgs) Handles Label8.Click
    114. WindowState = FormWindowState.Minimized
    115. End Sub
    116. #Region "Fenster bewegen mit Maus"
    117. Private CurrentPosition As New System.Drawing.Point
    118. Private MouseButton As System.Windows.Forms.MouseButtons = Nothing
    119. Private Overloads Sub OnMouseDown(ByVal Sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Panel7.MouseDown
    120. MyClass.MouseButton = e.Button()
    121. Me.Update()
    122. With MyClass.CurrentPosition
    123. .X = e.X()
    124. .Y = e.Y()
    125. End With
    126. End Sub
    127. Private Overloads Sub OnMouseMove(ByVal Sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Panel7.MouseMove
    128. Select Case MouseButton
    129. Case Is = Windows.Forms.MouseButtons.Left
    130. MyClass.Top = Windows.Forms.Cursor.Position.Y() - MyClass.CurrentPosition.Y()
    131. MyClass.Left = Windows.Forms.Cursor.Position.X() - MyClass.CurrentPosition.X()
    132. Me.Update()
    133. Case Is = Nothing
    134. Me.Update()
    135. Exit Sub
    136. End Select
    137. End Sub
    138. Private Overloads Sub OnMouseUp(ByVal Sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Panel7.MouseUp
    139. MyClass.MouseButton = Nothing
    140. End Sub
    141. #End Region
    142. Private Sub Label8_MouseEnter(sender As Object, e As EventArgs) Handles Label8.MouseEnter
    143. Label8.BackColor = Color.Gray
    144. End Sub
    145. Private Sub Label8_MouseLeave(sender As Object, e As EventArgs) Handles Label8.MouseLeave
    146. Label8.BackColor = Color.White
    147. End Sub
    148. Private Sub Label7_MouseEnter(sender As Object, e As EventArgs) Handles Label7.MouseEnter
    149. Label7.BackColor = Color.Gray
    150. End Sub
    151. Private Sub Label7_MouseLeave(sender As Object, e As EventArgs) Handles Label7.MouseLeave
    152. Label7.BackColor = Color.White
    153. End Sub
    154. End Class


    FormBorderStyle None
    Eigentlich sind nur die letzten 2 Wörter wichtig. Die hättest du sofort in den ersten Post packen sollen. Du versuchst ja da ein eigenes "Design" zu machen, auch für den Border. Das was du da aktuell machst ist ziemlich unschön (mal abgesehen vom andern Code). Windows stellt immer Ownerdrawing zur verfügung. Für den Clientbereich wird WM_PAINT zum Fenster gesendet und das Paint Event gefeuert, falls man darauf antwortet rendert man den Clientbereich selbst. Ebenso gibt's für den Nonclientbereich (Border, Caption etc) WM_NCPAINT, aber kein Event. Also informier dich mal über WM_NCPAINT und mal deine NCA selber. Dann braucht man garnichts fürs Resizen, Minimieren, Maximieren oder Verschieben tun. Um die Sachen noch etwas zu ändern, kann man auch noch auf WM_NCHITTEST antworten, aber such mal selbst