Re: Sprechblase ohne Focus

Tech-Archive recommends: Fix windows errors by optimizing your registry



Lothar Geyer schrieb:
> In einer Anwendung kommen ab und zu "Popups" hoch, wenn z.B. irgendetwas
> Neues passiert ist, das dem Benutzer mitgeteilt werden soll. Bisher
> mache ich das mit eigenen MDIforms, die sich ggfls. nach einigen
> Sekunden selbst wieder schließen.
> Das hat jedoch einen gravierenden Nachteil: der Focus wandert zu meinen
> "Popup" und das kann dazu führen, daß ich eine Funktion auslöse, die ich
> gar nicht wollte (z.B. wenn ich in einem anderen Fenster gerade blind
> einen Text erfasse).

4.4 Wie zeige ich ein neues Formular an ohne es zu aktivieren?
http://faq.vb-hellfire.de/article.php?id=39

> Ich möchte daher so etwas wie eine Sprechblase anzeigen, die keinen
> Focus erhält. Bei Windows XP habe ich solche Mitteilungen gesehen - oder
> auch beim Netscape Messenger, wenn neue eMails eintreffen.

Ungetestest:
Multiline Tooltips Class v2
http://www.mvps.org/emorcillo/download/vb6/ctl_tips2.zip

Wenn das Ding Balloon-Tips erzeugen kann und auch die freie
Positionierung dieser Tooltips erlaubt, dann solltest Du dennoch
beachten, dass Balloon-Tips erst mit Win2000/ME eingeführt wurden.

> Dabei gibt's zwei Möglichkeiten: die MDIform ist minimiert oder nicht.
> Wenn sie minimiert ist, sollte die "Sprechblase" aus der Taskleiste
> heraus erscheinen.

Wird wohl nicht so einfach zu realisieren sein, da Du aus dem Programm
heraus nicht so ohne weiteres ermitteln kannst, an welcher Position
gerade die Schaltfläche Deiner Anwendung in der Taskleiste angebracht
ist.

Alternativ würde ich vorschlagen, dass Du für Deine Anwendung ein
Symbol im Systemstatusbereich (links neben der Uhr) anbringst [1], wie
das z.B. Outlook macht. Hierüber kannst Du dann den Anwender entweder
über die eingebauten Balloon-Tips informieren, wobei hier die gleiche
Einschränkung gilt, dass diese erst mit Win2000/Me eingeführt wurden,
oder Du zeigst ein Popup-Fenster in der nähe dieses Bereichs an, wie
die Benachrichtigung neuer Mails. Dabei käme wieder o.g. Verweis zum
Tragen.

Die Frage ist natürlich, ob der Anwender Popups Deiner Anwendung sehen
möchte, wenn diese gerade minimiert ist. Zumal VB die Macke hat, alle
Fenster der Anwendung in den Vordergrund zu holen, wenn ein Fenster
daraus angezeigt wird. Abhilfe schafft hier eventuell, die Auslagerung
des Popups in ein ActiveX DLL Projekt. Aber auch das ist ungetestet.

[1] http://www.vb-hellfire.de/download/other/trayicon3.zip

Thorsten Dörfler
--
vb-hellfire - einfach anders
http://www.vb-hellfire.de/
.



Relevant Pages

  • Fenster in den Vordergrund bringen
    ... Das Fenster wird zwar in den Vordergrund gebracht ... und der Focus wird auf das erste Textfeld gelegt, ... Prev by Date: ... Next by Date: ...
    (microsoft.public.de.german.entwickler.dotnet.vb)
  • Re: Focus-Setzen in Form greift nicht
    ... 'Focus' aufrufen, da 'Focus' in dieser Situation nicht funktioniert. ... Normalerweise kann man ja über Control.CanFocus überprüfen, ... dass das mit buttonClose assoziierte Fenster aktiv ist. ... Debug.Prints eingefügt, um herauszufinden, was beim Aufruf von SetFocus() ...
    (microsoft.public.de.german.entwickler.dotnet.csharp)
  • [openbox] Focus-Problem
    ... Fenster zwar sowohl ein Raise als auch ein Focus erhält, ... auf ein normalgroßes uxterm umschalte und die Maus noch in einem Bereich ... von openbox steht, dann bekommt Opera den Focus, nicht das uxterm. ...
    (de.comp.os.unix.x11)
  • =?UTF-8?B?UmU6IEZlbnN0ZXIgdmVybGllcnQgRm9jdXMgd2VubiBNYXVzemVpZ2U=?= =?UTF-8?B?ciBkYXMgRmVuc
    ... wenn der Mauszeiger vom Terminal auf den Desktop fährt. ... und nebenbei der mplayer im Fenster keine Videos widergeben kann ... binden, also dass in deinem Fall immer das Fenster den Focus hat, über ... dem sich die Maus befindet. ...
    (de.comp.os.unix.apps.gnome)
  • Optisches Deaktivieren eines Fenster verhindern?
    ... Anwendung logischerweise den Focus. ... Hat jemand Ideen, ... da nur 1 Fenster zur Zeit ... noch innerhalb meines Hauptfenster geklickt hat. ...
    (microsoft.public.de.german.entwickler.dotnet.vb)