Check bei Tray Menu's
-
Hy
Ich habe Tray Menue. Dort habe ich eine Option Autostart. Ich möchte Überprüfen ob es Aktiviert ist.Damit ich dan die Aktivierung löschen kann. Wie mache ich das?
-
Wo wird denn der Autostart aktiviert.
Welcher Autostart - der von Windows ?Dann könntest du etwa in der Registry nach dem Key schauen - oder wenn du es so gemacht hast nachsehen, ob die Datei im Autostart-Ordner vorhanden ist.
-
DAs autostart setzen is nich das prob son das check setzen.
Ist das Check felt "autostart" ativ:
mach deaktiv
Trage Programm aus autostart raus.
Wenn nicht
mache aktiv
Trage Programm in autostart ein.So habe ich mir das gedacht. Aber ich weis nicht wie man einen Check setzt und wie man diesen abfragt.
-
Aso
Einfach die OnUpdate Funktion des Menüpunktes überschreiben und dort Folgendes hineinschreiben:pCmdUI->SetCheck(TRUE); // Häkchen setzen pCmdUI->SetCheck(FALSE); // Häkchen löschen
Abfragen kannst du ganz einfach dadurch ob die Funktion aktiviert ist, oder nicht also wie oben beschreiben.
Irgendwie wirst du auch sicher direkt auf das Häkchen abfragen können, aber das muss bitte jemand anderes machen, weil ich das nicht sicher weiß.
Ich hoffe ich habe dein Problem verstanden, sonst nochmal melden
[ Dieser Beitrag wurde am 15.02.2003 um 21:16 Uhr von CrazyOwl editiert. ]
-
Dein SetCheck ist sicher richtig aber. Aber wie kann ich das jetzt z.b auf ID_OPTIONEN beziehen?
-
ID_OPTIONEN ist die Bezeichnung des Menüpunktes nehm ich an.
Rechtsklick auf den Menüpunkt im Ressourceneditor->Klassenassistent->Hier die OnUpdate-Funktion für den Menüpunkt einfügen (Funktion hinzufügen->Code bearbeiten) -> dort schreibst du deinen Code rein
Letzter Versuch - ansonsten bin ich zu blöd das Problem richtig zu verstehen
-
Kann man das nich dirket ansteuern mit den hacken? Weil das über Update geht irgent wie net. Ich würd das ey lieder alles in meine Command drin haben.
-
Der Beitrag von "CurlyBrace" dürfte dich interessieren
-
Danke müster Super Funktionieren nur mein Problem ist was ist m_bSelect?
Aber eins is ganz klar das is das richtige.
-
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 .