Check bei Tray Menu's
-
Habe das jetzt so:
void CTEstDlg::OnAutoStart() { bHaeckchen = !bHaeckchen; } void CTEstDlg::OnUpdateAutostart(CCmdUI* pCmdUI) { if (bHaeckchen) { CMenu *pMenu; pMenu = GetMenu()->GetSubMenu(0); // das erste menü pMenu->CheckMenuItem(ID_AUTOSTART, MF_BYCOMMAND | MF_CHECKED); // IDM_HAECKCHEN ist die ID des menü-items } }
Ich klaube das GetMenu is falsch.
[TRAY]
|-Menue1
|-LINE
|->PopUp->|-MENUE2
|-Menue3
|-Menue4
|->PopUp->|-MENUE5
|-Menue6
|-LINE
|-Menue7 <- Das da is Autostart
|-Menue8Welches muss ich bei GetMenue nu nehmen?
-
Kann ich nicht evl über die ID an die pos kommen oder über den String? Habe shcon einiges versucht aber nichts.
PS: bei code da oben stürtz das Prog ab.
-
Bin am verzweifeln. Wo rann kan das liegen das es nicht geht?
-
Probier mal GetSubMenu(8); ...
-
ne, das is quatsch, zeig mal den Code, bei dem dein TrayMenü angezeigt wird.
-
Ich werwende die ne Klasse:
int CTestDlg::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CDialog::OnCreate(lpCreateStruct) == -1) return -1; if (!m_TrayIcon.Create(NULL, // Parent window WM_ICON_NOTIFY, // Icon notify message to use _T("Test Tray"), // tooltip ::LoadIcon(NULL, IDI_ASTERISK), // Icon to use IDR_MENU_TRAY)) // ID of tray icon return -1; m_TrayIcon.SetMenuDefaultItem(1, TRUE); return 0; }
CSystemTray heist die
-
macht das Probleme?
-
Ja, wir kennen die Klasse nicht
-
Must mal versuchen is cool. ( http://codeguru.earthweb.com/shell/systemtray.shtml )
Aber zum Thema.
Die is ja nur zum anzeigen des Tray's. Aber hat GARKEINEN Bezug auf des setzen der Checks.
-
Also muss das mit den checks ja auch normal bleiben .