Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Taskleiste

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
06.07.2003, 19:19 Uhr
~michael
Gast


Hi,
ich habe eine Dialogbasierende Anwendung. Nun möchte ich, daß wenn jemand auf minimieren drückt, der Button bzw das kleine Fester (was für jeden Procss offen ist) beseitigen! Also es soll nur nach das Icon im Systray vorhanden sein, mehr soll nicht in der Taskleiste zu sehen sein!

Michael
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
06.07.2003, 19:54 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Hallo, das lässt dein Fenster verschwinden:


C++:
ShowWindow(SW_HIDE);



das fügt dir ein Icon unten rechts in den Systray ein


C++:
NOTIFYICONDATA icon;
icon.uCallbackMessage = WM_USER+4532;
icon.hWnd = this->m_hWnd;
icon.hIcon = this->m_hIcon;
icon.uFlags = NIF_MESSAGE | NIF_ICON;
Shell_NotifyIcon(NIM_ADD,&icon);



dann solltest du, damit man wieder auf das Programm zugreifen kann WindowPorc deiner Dialogklasse überschreiben und folgendes hinzufügen:


C++:
LRESULT CYourDlgClass::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
    // ab hier neu:
    switch(message)
    {
    case WM_USER+4532:
        {
            switch(lParam)
            {
            case WM_LBUTTONDOWN:
                {
                    ShowWindow(SW_SHOW);
                } break;
            }
        } break;
    }
    return CDialog::WindowProc(message, wParam, lParam);
}


--
class God : public ChuckNorris { };

Dieser Post wurde am 06.07.2003 um 19:55 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
06.09.2003, 22:43 Uhr
~JOat
Gast


@FloSoft

was muss man ändern das das tray icon beim beenden der anwendung gelöscht wird?? denn jetzt wird das icon erst gelöscht wenn man mit der maus darüberfährt...

JOat
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
07.09.2003, 17:52 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


du musst an dem Punkt, wo das Icon verschwinden soll


C++:
Shell_NotifyIcon(NIM_DELETE,&icon);



aufrufen. In dafür solltest du natürlich das NOTIFYICONDATA struct z.b als Membervariable deiner Dialogklasse definieren.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
07.09.2003, 19:10 Uhr
~JOat
Gast


danke... hat geklappt


nur hab ich jetzt noch das problem das wenn ich die anwendung aus der tray zurück hohle erscheint sie nur in der taskleiste.... erst wenn man draufklick wird die anwendung gezeigt....

code zum wiederherstellen:


Code:
void CProjektDlg::OnMenWiederherstellen()
{
    ShowWindow(SW_SHOW);
    NOTIFYICONDATA iconData;
    iconData.cbSize = sizeof(NOTIFYICONDATA);
    iconData.hWnd = this->GetSafeHwnd();
    iconData.uID = 1;
    Shell_NotifyIcon(NIM_DELETE,&iconData);
}




Joat
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
07.09.2003, 19:27 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


probier mal statt SW_SHOW SW_RESTORE oder SW_SHOWDEFAULT
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
07.09.2003, 20:05 Uhr
JOat



thx... hat geklappt.....


JOat
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: