visual style

Intrebari despre programarea cu VC++ incluzand mediul de dezvoltare, instalare, setari, debugger, compilator, linker si documentatie.
Post Reply
nmg
Junior
Junior
Posts: 43
Joined: 12 Jul 2007, 07:36

visual style

Post by nmg » 12 Dec 2012, 13:12

Am un proiect facut in VC++ 2003 pe care vreau sa-l trec in VC 2005. Conversia a decurs fara probleme, mai putin stilul vizual, care a ramas tot cel vechi.
M-am incurcat de tot in partea cu manifest file ...

Ma poate indruma cineva ?



User avatar
Marius Bancila
Fondator
Fondator
Posts: 2343
Joined: 11 Jul 2007, 11:45
Judet: Timiş
Location: Timisoara
Contact:

Re: visual style

Post by Marius Bancila » 12 Dec 2012, 16:11

Pai zi-ne ce ai facut.

Banuiesc ca ai nevoie de "common control styles", asa ca uite aici cum se face: http://msdn.microsoft.com/en-us/library ... 73175.aspx.
Marius Bancila
Fondator Codexpert, Microsoft MVP VC++
Site personal | Blog

nmg
Junior
Junior
Posts: 43
Joined: 12 Jul 2007, 07:36

Re: visual style

Post by nmg » 12 Dec 2012, 16:44

N-am facut mare lucru, doar am deschis solutia de VC 2003 cu VC 2005, in rest am urmat indicatiile Wizzard-ului. A trebuit sa inlocuiesc unele functii cu varianta safe sau UNICODE, sau sa rezolv ceva warning-uri nesemnalate de VS 2003 dar n-am avut mari probleme la compilare.

Iar cu stylurile vizuale, m-am lamurit, odata cu link-ul de mai sus, si pe urma comparand proiectul meu cu unul generat de VS 2005.

Erau identice. mai putin cateva linii de cod in stdafx.h:

Code: Select all

#ifdef _UNICODE
#if defined _M_IX86
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
#elif defined _M_IA64
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='ia64' publicKeyToken='6595b64144ccf1df' language='*'\"")
#elif defined _M_X64
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")
#else
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
#endif
#endif
Acum am dat de alta belea: noul stil nu prea se potriveste cu controale mele owner draw: e mai mare rasul sa vezi cum se potrivesc butoanele mele cu iconite ca nuca-n perete cu stilul XP ...

Trebuie sa ma gandesc daca intr-adevar merita sau nu.

User avatar
Ovidiu Cucu
Fondator
Fondator
Posts: 3776
Joined: 11 Jul 2007, 16:10
Judet: Iaşi
Location: Iasi
Contact:

Re: visual style

Post by Ovidiu Cucu » 12 Dec 2012, 18:54

nmg wrote: Acum am dat de alta belea: noul stil nu prea se potriveste cu controale mele owner draw: e mai mare rasul sa vezi cum se potrivesc butoanele mele cu iconite ca nuca-n perete cu stilul XP ...
Asta da, belea! :D
De cand ma stiu programand UI, am intalnit tendinta unora de a face cu mana lor ceva mai fancy decat ce exista "standard", in Windows.
Incepand cu prima firma in care am lucrat, in care s-au chinuit bajetii sa faca "controale 3D". Numai bine ce-au terminat, c-au si aparut controalele 3D de la mama lor, care parca aratau si mai bine. Concuzie: munca in zadar. :)

In fine, sa trecem peste alte mode, tendinte si munci de pomana si sa ajungem in prezent, la controalele tale owner draw, cu iconite care stau "ca nuca-n perete".
Ca sa le faci sa arate ca in temele din XP si mai noi, nu merge cu functiile GDI clasice, ci cu cele specifice pentru Visual Styles.
Vezi in MSDN/Windows Dev Center: Using Visual Styles with Custom and Owner-Drawn Controls.
E un pic de transpirat insa nu-i un capat de lume... ;)
Bineiteles, pastrezi ce deja e implementat pentru sistemele care nu suporta Visual Styles cat si pentru tema "Windows Classic".

Post Reply