2 Fragen zu Vista (VC++6.0)
-
Hallo
1. Die Funktion einer dialogfeldbasierenden Anwendung in "InitInstance" "SetDialogBkColor(....) scheint nicht mehr zu funktionieren; Hintergrund- und Textfarbe bleiben Vista-Standard. Kann ich das irgendwie anders realisieren?
2. Möglicherweise kennt ihr die Funktion, die jemand beim Codeguru mal gepostet hat; es gut darum zu erkennen, welches Betriebssystem installiert ist. Hier die Funktion:
OSVERSIONINFO winfo; winfo.dwOSVersionInfoSize=sizeof(OSVERSIONINFO); GetVersionEx(&winfo); if(winfo.dwPlatformId==VER_PLATFORM_WIN32_NT) { if(winfo.dwMajorVersion>=5) { if(winfo.dwBuildNumber<=2195) return WIN_2K; else return WIN_XP; } else return WIN_NT4; } else if(winfo.dwPlatformId==VER_PLATFORM_WIN32_WINDOWS) { if(winfo.dwMinorVersion<10) return WIN_95; else if(winfo.dwMinorVersion<90) { if(winfo.dwBuildNumber<=2222) return WIN_98; else return WIN_98SE; } else return WIN_ME; }...der gute Mann hat das bisher leider nicht weiterentwickelt; wie erkenne ich denn, ob Vista installiert ist?
Vielen Dank im Vorraus.
-
Zu 2. musst du einfach die Info der OSVERSIONINFO Struktur weiter auswerten.
Siehe aktuelle Doku unter http://msdn2.microsoft.com/en-us/library/ms724834.aspxdwMajorVersion von Vista und Longhorn ist 6.
-
@2: Eine gute Idee ist es, sich eine aktuelle Dokumentation von GetVersionEx() anzusehen (die Funktion dort wertet auch nur deren Rückgaben aus) - für Windows Vista hast du dwMajorVersion==6, dwMinorVersion==0 und dwPlatformID==VER_PLATFORM_WIN32_NT.
-
-
SetDialogBkColor wird schon lange nicht mehr unterstützt. Verwende statt dessen WM_CTLCOLORDLG!
-
Hi
Jo, Danke für die schnellen Antworten; hab´s hinbekommen.