WinAPI kontrolki w klasycznym stylu Win98

WinAPI kontrolki w klasycznym stylu Win98
M0
  • Rejestracja:ponad 14 lat
  • Ostatnio:ponad 9 lat
0

Witam, zacząłem się niedawno uczyć WinAPI i już mam poważny problem. Otóż, gdy korzystam z kontrolek, to wyświetlają się one w klasycznym stylu (win98), co nie jest zbyt zadowalające. Oczywiście szukałem rozwiązania i dość dużo osób ma ten problem, tylko, że nic mi nie pomogło. Korzystam z VS C++ 2010 Express i testuję programy zarówno na XP jak i na Win7. Kompilowane są pod Win7. Może przedstawię co już próbowałem (każdy sposób robiony w osobnym projekcie dla pewności):

  1. Wstawienie dyrektywy:
Kopiuj
#pragma comment(linker,"\"/manifestdependency:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
  1. http://msdn.microsoft.com/en-us/library/aa289524%28VS.71%29.aspx#vbtchusingwindowsxpvisualstyleswithcontrolsonwindowsformsanchor3
  2. http://www.go4expert.com/forums/showthread.php?t=754
    W każdym przypadku na Win7 działa (są prawidłowe kontrolki), a na XP wyświetla puste okno bez kontrolek. Można by przypuszczać, że źle zrobiłem, ale jak na Win7 działa to coś to daje. Musi być jakiś sposób, żeby to działał prawidłowo na każdej wersji Win. W końcu jest tyle programów i jakoś sobie radzą. WinAPI uczę się z Megatutoriala i ze strony darkcult.nazwa.pl tylko, że tam wszystko jest robione na Win98, więc nie piszą o takim problemie.
    Proszę o jakieś rady ;)
edytowany 2x, ostatnio: mark075
KR
  • Rejestracja:prawie 16 lat
  • Ostatnio:6 miesięcy
  • Postów:2514
0

http://msdn.microsoft.com/en-us/library/ms235229.aspx

generalnie to co powoduje że aplikacja wygląda nowo to pliki "manifest" albo zewnętrzne albo dodane do zasobów programu


░█░█░█░█░█░█░█░█░█░█░█░
edytowany 1x, ostatnio: krwq
M0
  • Rejestracja:ponad 14 lat
  • Ostatnio:ponad 9 lat
0

Problem w tym, że plik manifest jest już domyślnie tworzony, ale to nic nie daje. Nawet po ustawieniu, żeby tworzył osobny plik jest bez zmian (wygląd z Win98). Nie wiem, co jeszcze można by pozmieniać w opcjach. Ale, gdy go sam napiszę tak jak w linkach, które podałem, są efekty. Tylko, że na Win7, a na XP znowu nie widać wcale kontrolek (pusty obszar klienta).

EDIT:
Udało mi się znaleźć rozwiązanie. Trochę dziwne, ale ważne, że działa. Mianowicie dodaję plik manifest tak jak poprzednio, ale dodatkowo trzeba wywołać, gdzieś funkcję GetOpenFileName(NULL), np. zaraz pod WinMain. Nie wnikam jakim cudem to pomogło, najważniejsze, że pomogło :)

edytowany 1x, ostatnio: mark075

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.