[C++][WinAPI] Nowoczesne przyciski, a nie z Windowsa 98

0

Problem jest taki, że gdy tworzę buttona, to on wygląda, jakbym miał Windowsa 98, a nie Windowsa 7.

http://iv.pl/images/80722850276303659601.jpg

W CLR od razu się tworzy nowoczesne przyciski, a w WinAPI są brzydkie. Jak osiągnąć przycisk po prawej w WinAPI?

0
Rev.pl napisał(a)

http://www.go4expert.com/forums/showthread.php?t=754

Chłopaki tam nie wiedzą o co kaman gdy nie działa w Visualu na win32 - to po prostu trzeba wyłączyć generowanie go, bo visual już taki manifest generuje, tylko, że brak w nim tych wpisów nt styli XP :>

0

Przeglądając pliki mojego projektu, znalazłem jakiś plik, o nazwie mojprogram.exe.intermediate.manifest o treści:

<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel level='asInvoker' uiAccess='false' />
      </requestedPrivileges>
    </security>
  </trustInfo>
</assembly>

Jest też mojprogram.exe.embed.manifest, lecz jest to klon powyższego, który ma tylko dodatkowe znaki NUL i SOH (Notepad++ tak pokazuje). Nie idzie go wkleić na forum.

Znalazłem także mojprogram.exe.embed.manifest, treść:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
      </requestedPrivileges>
    </security>
  </trustInfo>
</assembly>

Także jest dziwny plik zasobu: mojprogram_manifest:

1 /* CREATEPROCESS_MANIFEST_RESOURCE_ID */ 24 /* RT_MANIFEST */ "Debug\\mojprogram.exe.embed.manifest"

Lecz chciałbym, aby mój projekt wyglądał nowocześnie nie tylko na XP, lecz również na Viście i 7, gdyż ten manifest od XP nic nie zmienia w 7.

0

Lecz chciałbym, aby mój projekt wyglądał nowocześnie nie tylko na XP, lecz również na Viście i 7, gdyż ten manifest od XP nic nie zmienia w 7.
Jeśli program ma kilka manifestów, Vista czyta je w innej kolejności niż XP. Dlatego trzeba przerobić istniejący a nie dodawać nowy.

0

Próbowałem właśnie zmienić treści tych plików, lecz Visual Studio automatycznie je zmienia na swoje, czyżby chcieli mnie zmusić do przejścia na CLR? Nawet jak dodam jeden z tych plików do listy w projekcie (w programie) i go zmodyfikuję, to program mówi, że plik zmodyfikowany poza Visual Studio, xD Coś mi mówi, że trzeba pogrzebać w opcjach programu...

EDIT:
Tutaj znalazłem ciekawą lekturę, zaraz przetestuję:
http://msdn.microsoft.com/en-us/library/bb773175(VS.85).aspx

EDIT2:
Udało się :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1