dialog nicht in taskleiste
-
In der Taskleiste werden Fenster angezeigt die keinen Owner haben oder WS_EX_APPWINDOW gesetzt haben.
Über das ITaskbarList Interface kann man Fenster gezielt aus der taskbar entfernen:
http://msdn.microsoft.com/en-us/library/bb774652(VS.85).aspxAlternativ:
Erzeuge ein Dummy-Fenster, versteck das und gib dessen Handle für dein echtes Fenster bei CreateWindowEx() an. Dann hat dein Fenster einen Owner und wird nicht in der Taskleiste angezeigt.
-
danke! der dialog hat ja ein parent. Nur ich weiß nicht wie ich diesen setzten kann, da ich den Dialog als ressource hinzugefügt habe und nicht mit createwindowex. danke
-
Mach einfach noch nen Dummy-Dialog, versteck den (ShowWindow) und gib dessen Handle bei deinem echten CreateDialog() an.
-
danke, hab ich gemacht. es funktioniert auch alles. nur leider verhalten sich die fenster jetzt etwas ungünstig. z.b. das parent window kann nicht über die childs was ich sehr schlechte finde. außerdem werden die childs bei 0, 0 vom parent window und nicht vom bildschirm aus erstellt

-
Dann wird wohl der Weg über ITaskbarList eher ans Ziel führen:
http://msdn.microsoft.com/en-us/library/bb774648(VS.85).aspx
-
danke, leider benutze ich nicht die MFC sonder nur winapi
-
dialog5000 schrieb:
danke, leider benutze ich nicht die MFC sonder nur winapi
Jetzt musst Du uns nur noch verraten, was ITaskbarList mit der MFC zu tun hat...
-
er kennt die Funktion aber nicht
-
WER kennt sie nicht?
Und für die ganz Faulen:
http://msdn.microsoft.com/en-us/library/cc144179
-
// MyTaskBarDeleteIcon - deletes an icon from the taskbar status area. // Returns TRUE if successful, or FALSE otherwise. // hwnd - handle to the window that added the icon. // uID - identifier of the icon to delete. BOOL MyTaskBarDeleteIcon(HWND hwnd, UINT uID) { BOOL res; NOTIFYICONDATA tnid; tnid.cbSize = sizeof(NOTIFYICONDATA); tnid.hWnd = hwnd; tnid.uID = uID; res = Shell_NotifyIcon(NIM_DELETE, &tnid); return res; }dieser Code kann dass scheinbar. Als hwnd geb ich natürlich das Fenster handle an aber wie bekomme ich die ID von der task bar?
Und noch ne andere Frage die nichts damit zu tun hat.
Wäre es auch eine lösung das ich als parent das Desktop handle eintrage?
-
Das Ding löscht nur Icons die neben der Uhr platziert sind.
-
Verwende WS_EX_TOOLWINDOW
Creates a tool window; that is, a window intended to be used as a floating toolbar. A tool window has a title bar that is shorter than a normal title bar, and the window title is drawn using a smaller font. A tool window does not appear in the taskbar or in the dialog that appears when the user presses ALT+TAB. If a tool window has a system menu, its icon is not displayed on the title bar. However, you can display the system menu by right-clicking or by typing ALT+SPACE.
-
habe ich bereits probiert, der Dialog sollte jedoch vergrößert und verkleiner werden können (indem man bei den ecken zieht) und maximiert werden. Das ist scheinbar nicht möglich mit Toolfenstern.
-
dialog5000 schrieb:
habe ich bereits probiert, der Dialog sollte jedoch vergrößert und verkleiner werden können (indem man bei den ecken zieht) und maximiert werden. Das ist scheinbar nicht möglich mit Toolfenstern.
Ich kenne solch eine Einschränkung für WS_EX_TOOLWINDOW nicht.
Und Du hast auch WS_EX_APPWINDOW abgeschaltet bzw. nicht verwendet?
Forces a top-level window onto the taskbar when the window is visible.
Dann zeige mal bitte den Code, mit dem Du das erzeugst. Bist Du sicher, dass Du auch WS_OVERLAPPEDWINDOW verwendest?