| |
Visual-Basic EinsteigerScreen minimieren | | | Autor: caramba | Datum: 20.07.12 13:55 |
| Hallo,
folgende Ausgangslage:
- auf dem Desktop befinden sich 2 Screens meiner Applikation, welche sich überlagern.
(Hauptmenü, überlagert durch Screen für Rechnungen)
- Kunde klickt auf die Minimieren-Schaltfläche
- Rechnungsmaske wird minimiert und über der Taskliste angezeigt. Die Menümaske
bleibt unverändert stehen.
Jetzt reklamiert der Kunde das, aus seiner Sicht, nicht standardmässige Verhalten an. Er
wünscht, dass alle Screens der Applikation minimiert und in der Taskleisteange-
zeigt werden. Bei einem Klick auf das minimalisierte Icon in der Taskleiste soll das Programm
wieder maximalisiert im Vordergrund angezeigt werden.
Besteht eine Möglichkeit, diese Forderung zu erfüllen und wenn ja, wie ?
Danke für Eure Hilfe.
Gruss, Rainer | |
Re: Screen minimieren | | | Autor: Manfred X | Datum: 20.07.12 17:27 |
| Hallo!
Ich vermute, Du meinst, dass auf einem Bildschirm (Screen)
zwei Windows (Fenster, Formulare) angezeigt werden. ????
Soll das jeweils minimierte Window in der Taskleiste als Button oder als
ICON (in Systray) angezeigt werden? (Icons erstellt man normalerweise
für die Anwendung als solche, aber nicht für einzelne Fenster.
Man verwendet dann ein Kontextmenü.)
Handelt es sich um eine MDI-Anwendung? Sollen Child-Windows verwaltet werden?
Was genau bedeutet "bei einem Click auf das minimalisierte (?) Icon,
soll das Programm (?) maximalisiert im Vordergrund (?) angezeigt werden?
Soll das MainMenü-Formular der Anwendung in den Vordergrund (Windowstate =
Maximized)? Oder das zuletzt benutzte und dann minimierte Formular?
Sollen mit einem Click alle Formulare der Anwendung ausgeblendet
und per Icon-Click wieder "restauriert" werden können?
MfG
Manfred | |
Re: Screen minimieren | | | Autor: caramba | Datum: 21.07.12 07:48 |
| Hallo Manfred,
auf einem Bildschirm hat man ja in der Regel oben rechts die 3 Button Mimimize, Maximize und Close.
Klickt der Benutzer auf den Minimize-Button sollen alle Formulare der Applikation ausgeblendet und
in der Taskbar als Icon angezeigt werden. Der Benutzer sieht so, dass die Applikation noch geöffnet
ist. Mit einem Doppelklick auf des Programm-Icon in der Taskbar soll die Anwendung wieder restauriert
werden.
Es handelt sich nicht um eine MDI-Anwendung.
Gruss
Rainer | |
Re: Screen minimieren | | | Autor: Manfred X | Datum: 21.07.12 14:58 |
| Hallo!
Wenn ein minimiertes Fenster nicht in der Taskbar erscheint,
sondern darüber angezeigt wird, steht die Eigenschaft "ShowinTaskbar"
vermutlich auf false.
Falls es darum geht, alle Fenster einer Anwendung parallel beim
Minimieren auszublenden und über einen Button (!) in der Taskleiste
wieder herzustellen:
Eine Hauptform: Form1
Eine untergeordnete Form: Form2, wobei ShowInTaskbar = false
'Form1
Option Explicit
'untergeordnete Instanzen von Form2
Dim WithEvents f2 As Form2
Dim WithEvents f3 As Form2
Private Sub Form_Load()
Set f2 = New Form2
Set f3 = New Form2
Me.Show
f2.Top = Me.Top + 400: f2.Left = Me.Left + 400
f2.Show
f2.ZOrder 0
f3.Top = Me.Top + 800: f3.Left = Me.Left + 800
f3.Show
f3.ZOrder 0
End Sub
Public Sub HideSubWindows(Optional ByVal minimize As Boolean = True)
f2.Hide: f3.Hide
If Me.WindowState <> vbMinimized And minimize Then _
Me.WindowState = vbMinimized
End Sub
Public Sub ShowSubWindows()
f2.WindowState = vbNormal: f3.WindowState = vbNormal
f2.Show: f3.Show
End Sub
'Benachrichtigung verarbeiten
Private Sub f2_Minimized()
HideSubWindows
End Sub
Private Sub f3_Minimized()
HideSubWindows
End Sub
Private Sub Form_Resize()
If Me.WindowState = vbMinimized Then
HideSubWindows False
Else
ShowSubWindows
End If
End Sub
'Form2
Public Event Minimized()
Private Sub Form_Resize()
If Me.WindowState = vbMinimized Then
RaiseEvent Minimized
End If
End Sub
Beitrag wurde zuletzt am 21.07.12 um 14:59:40 editiert. | |
Re: Screen minimieren | | | Autor: caramba | Datum: 22.07.12 10:30 |
| Hallo,
leider funktioniert noch immer nicht. Ich habe nun eine Routine eingebaut, welche das
Programm-Icon im SystemTray anzeigt. Bei einem Doppelklick auf das Icon soll die Form
angezeigt werden (vorgängig Me.Visible = False); bei einem Rechtsklick soll ein PopUp
aufgehen wo der Benutzer verschiedene Aktionen machen kann.
Jetzt ist es aber so, dass bei einem Rechtsklick das ganze Programm beendet wird. Die
Kontrolle geht automatisch an das Startmodul zurück, welches die Verarbeitung beendet.
Aufruf der Applikation vom Startmodul aus (Module1)
...
MenuForm1.Show vbModal
End If
' ------------------------------------------- Mutex löschen
UnloadForms
Exit Sub
ErrInfo:
MsgBox Err.Number & ", " & Err.Description
Resume Next
End Sub Routine zum Abarbeiten des Mausevents auf dem Icon im SystemTray
Sobald der Rechtsklick erfolgt, wird das Programm automatisch beendet. Eigentlich sollte
unter dem Icon ein kleines Menü erscheinen; was aber nicht der Fall ist.
Public Function SubWndProc(ByVal hwnd As Long, ByVal msg As Long, ByVal wParam _
As Long, ByVal lParam As Long) As Long
Dim point As POINTAPI
Select Case msg
Case WM_TASKBAREVENT
Select Case (lParam And &HFFFF&)
' --------------------------------- linke Maustaste (Doppelklick)
Case WM_LBUTTONDBLCLK
MenuForm1.Show
' --------------------------------- rechte Maustaste (Klick)
Case WM_RBUTTONDOWN
GetCursorPos point
MenuForm1.PopupMenu MenuForm1.popup_m, , point.X * _
Screen.TwipsPerPixelX, _
point.Y * Screen.TwipsPerPixelX
End Select
End Select
' ------------------------------------------ Ursprüngliche WinProc aufrufen
SubWndProc = CallWindowProc(PrevWndProc, hwnd, msg, wParam, lParam)
End Function Momentan drehe ich irgendwie im Kreis. Trotz Googeln usw. finde ich keine Lösung.
Gruss
Rainer | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevISDN 1.0
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats sevOutBar 4.0
Vertikale Menüleisten á la Outlook
Erstellen von Outlook ähnlichen Benutzer- interfaces - mit beliebig vielen Gruppen und Symboleinträgen. Moderner OfficeXP-Style mit Farbverläufen, Balloon-Tips, u.v.m. Weitere Infos
|