bei minimize icon in der tray leiste



  • Wenn mein Dialogfenster minimiert wird würde ich es gerne nur in der Tray-Leiste anzeigen und nicht in der Taskleiste.
    Ich finde leider nichts in der MSDN darüber.. könnt ihr mir helfen 😕



  • Ich hab mal ne Basisklasse dafür geschrieben,
    du musst einfach statt von CDialog nur von CTrayDlg
    ableiten, und dann OnTray() aufrufen, das Icon kannst
    du auch setzen.

    CTrayDlg

    Devil



  • Wäre cool, wenn du es noch genauer beschreibst wie man es macht!
    Denn es gibt hier bestimmt einige die nicht wissen was damit gemeint ist 😕 😉



  • Code:

    void CMyDlg::OnSysCommand(UINT nID, LPARAM lParam)
    {
    	if (nID == SC_MINIMIZE)
        {
            OnTray(IDR_MAINFRAME,"ZipIt");
        }
    	else
    	{
    		if ((nID & 0xFFF0) == IDM_ABOUTBOX)
    		{
    			CAboutDlg dlgAbout;
    			dlgAbout.DoModal();
    		}
    		else
    		{
    			CTrayDlg::OnSysCommand(nID, lParam);
    		}
    	}
    }
    

    CMyDialog ist von CTrayDlg abgeleitet.

    Devil



  • Noch bissl genauer bitte wenns geht,
    ich habe nämlich die zwei dateien hochgeladen...
    hab den code unter --> ClassWizard --> OnSysCommand ... eingefügt..
    doch dann kommen fehler... = / muss ich noch was anderes machen?



  • Schau dazu doch einfach mal in die MFC FAQ, dort gibt es einen fertigen Lösungsweg, komplett beschrieben...



  • MstyleK schrieb:

    Noch bissl genauer bitte wenns geht,
    ich habe nämlich die zwei dateien hochgeladen...
    hab den code unter --> ClassWizard --> OnSysCommand ... eingefügt..
    doch dann kommen fehler... = / muss ich noch was anderes machen?

    Du musst deine Dialogklasse von CTrayDialog statt von CDialog ableiten, (search & replace CDialog -> CTrayDlg),
    dann musst du nur noch in deiner Dialogklasse OnTray aufrufen, und das Icon + den
    Tooltiptext übergeben.

    Devil


Anmelden zum Antworten