Toon posts:

[VB / XP] Manifests + Common controls 6 = niks

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi

Zowel in de search als via google, als via de MSDN niks nuttigs kunnen vinden, dus.... :)

Ik probeer al een tijdje m'n applicatie mooi onder XP te laten draaien, maar dat wil niet echt lukken... Met manifest is geen probleem, alleen skinned hij dan alleen de knopjes, en andere standaard dingen... de windows common controls (WCC) 6 (dus de .ocx versie van VB, en niet de 'echte' versie 6 van winXP) worden niet geskinned, dus ng steeds moet ik tegen die 'lelijke' tabjes, toolbars, etc. aankijken, het ziet er dus niet uit! :(
Het vreemde is dat WCC 6 deel 3 (de coolbar) wél geskinned wordt. Ook WCC versie 5 worden Goed geskinned! :? :'(

Heeft iemand enig idee hoe ik ook WCC 6 geskinned krijg?

Koen

PS Ik heb een bende voorbeelden bekeken waar wel geskinnde toolbars op stonden, maar die maken allemaal heel sneeky gebruik van de WCC 5, zodat het lijkt alsof het wel kan, maar ze maken dan wel gebruik van een sterk verouderd versie...

Verwijderd

Damn, je hebt gelijk.

Ik ff mijn VB progjes onder XP bekijken, zijn al die tabs niet in XP-style (MS Tabstrip control).

Ik zal ff met je mee zoeken!

edit:
De tabs van Office XP zijn ook niet XP-style, maar ik wil de tabs hebben zoals in t Control Panel!

Verwijderd

De versie 5 common controls worden bij mij ook niet geskinnded.

MsComCtl32.dll (versie 6 dus) in in Widows XP van mei 2000, niet veranderd dus, gewoon SP4 (bij SP5 is Comctl-1 niet veranderd). Blijkbaar gebruikt ie niet de Tab uit ComCtl32.dll, die dus wel de nieuwe style bevat.

Verwijderd

Topicstarter
dev: dan moet je voor de gein eens een WCC 5 tabstrip in je progje zetten. Zie daar: WEL geskinned! Echt bezopen, dat de oude versie het wél doet....

[Edit]
Je moet wel in de gaten dat MsComCtl32.dll en MsComCtl32.ocx totaal verschillend zijn, volgens mij loopt de .ocx één versie achter... Of zoiets :?

Verwijderd

Topicstarter
Als je deze
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 
<assemblyIdentity 
    version="1.0.0.0" 
    processorArchitecture="X86" 
    name="XPThemes.exe"
    type="win32" 
/> 
<description>My XPThemes Demo App</description>
<dependency>
    <dependentAssembly>
      <assemblyIdentity
        type="win32"
        name="Microsoft.Windows.Common-Controls"
        version="6.0.0.0"
        processorArchitecture="X86"
        publicKeyToken="6595b64144ccf1df"
        language="*"
      />
    </dependentAssembly>
</dependency>
</assembly>

manifest gebruikt, en vervolgens je EXE compileert naar een dir waar een filetje staat met bovenstaande tekst, en als naam [exenaam].exe.manifest
dan zouden WCC 5 controls écht geskinned moeten worden, bij mij werkt het in ieder geval...

Verwijderd

Je hebt gelijk, ik snap er helemaal niks van, v5 is prima, en v6 doet niks!

WCC 5 is geen optie, dan zou ik 5 en 6 moeten meeleveren.

Ik kan bij MSDN, Google enzo niks vinden, is er dan niemand met hetzelfde probleem?

Verwijderd

Je moet eerst InitCommonControls aanroepen in je app.

Verwijderd

Topicstarter
De decl van InitCC =
code:
1
2
'just to enable the new ComCtl32.dll if ' is there.
Private Declare Function InitCommonControls Lib "COMCTL32.DLL" () As Long

en dan moet je in form_initialize() InitCommonControls aanroepen, maar dat helpt bij mij ook niks :(

Heeft iemand het ooit met WCC 6 aan de praat gekregen?

[Edit]
O, ja: let goed op dat je On error resume next voor de aanroep van de functie zet! Anders kan je app wel eens crashen op oude OS'en!!!!

Verwijderd

Hier lijkt iemand ook een probleem te hebben, maar volgens MS werkt het wel gewoon, niet dus:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dn_voices_askgui/html/askgui10232001.asp

Verwijderd

Op zondag 02 december 2001 12:52 schreef dev het volgende:
WCC 5 is geen optie, dan zou ik 5 en 6 moeten meeleveren.
hou je hier rekening mee als je wat gaat leveren?
Unlike earlier versions of ComCtl32.dll, version 6 is not redistributable.he only way you can use version 6 of the dynamic-link library (DLL) is to use an operating system that contains it.

Verwijderd

Topicstarter
ik heb ook al geprobeerd om een manifest met de naam mscomctl.ocx.manifest in de system dir te gooien, in de hoop dat dat helpt, maar nee :'(. Ik vind het echt vreemd dat hierover niks te vinden is op inet...

Verwijderd

Op zondag 02 december 2001 13:52 schreef Yarvieh het volgende:

[..]
hou je hier rekening mee als je wat gaat leveren?
[..]
Dat gaat over de DLL, die lever ik niet mee idd, de DLL van de Windows versie wordt gewoon gebruikt. Het gaat erom dat ik dat beide ocx bestanden moet meeleveren.

Verwijderd

Nu doet de rest t wel, alle frames, knoppen etc, maar de tabs en toolbars doet t niet :(

edit:

Ik heb ook een probleem met de command buttons op de frames, die krijgen een vage zwarte rand :?

Verwijderd

Topicstarter
Die zwarte rand is idd ook een probleem. Het enige wat er tegen help is óf de knop niet óp maar óver de frame te zetten zodat het lijkt alsof ie er op staat, maar da's eigenlijk geen optie. Wat beter werkt is om een picturebox met borderstyle = 0 op je frame te zetten, en daar als je controls in te zetten, maar da's ook weer extra overhead...

Oftewel, die styles werken helemaal niet lekker in VB, ik hoop dat hiet snel wat aan veranderd!

Verwijderd

Het is nogal behelpen ja, VB is natuurlijk ouder als XP. Raar dat MS hier geen enkele info over geeft.

De enige mogelijkheid is om PictureBoxen te gebruiken ipv frames.

Zitten er in de WCC 5 dingen die anders zijn dan in WCC 6? Misschien moet ik anders maar WCC 5 gebruiken.

Verwijderd

Topicstarter
WCC 5 is STERK verouderd! Je hebt bv. geen flat-toolbars, en veel minder controls... Ik zou het niet doen, tenzij je app. alleen voor XP is, want onder win < XP ziet WCC er gewoon niet uit...

Verwijderd

Het is verouderd, maar die tabs & toolbars zijn spuuglelijk in XP.

Wat ik gebruik is:
-Listview (heel veel)
-Tabstrip
-Toolbar (3D)

Zitten daar verder nog problemen in? De bugs zijn er met de SP's toch wel uit gehaald?

Verwijderd

Topicstarter
Ik moet zeggen dat ik niet zo heel veel weet van versie 5. Wel weet ik dat ik me af en toe verbaasde over de smerige hacks die je moest uitvoeren om bepaalde dingen in WCC 5 voor elkaar te krijgen...
Van de listview 5 weet ik helemaal niks...
He is trouwens wel mogelijk om ook met WCC 5 de toolbar flat te krijgen, op www.vb2themax.com staat volgens mij een voorbeeldje (je moet een bepaalde message sturen...)

Maar eigenlijk is het natuurlijk geen oplossing, om een oude versie te gaan gebruiken...

Verwijderd

Da's waar, maar je moet n keuze maken. Of lelijke toolbars/tabs of een paar 'hacks'.

[edit]
Zo'n flat toolbar is idd wel erg handig af en toe, maar vb2themax is down :( Heb jij m toevallig liggen?

Verwijderd

Topicstarter
Ik heb het nergens liggen, mischien staat er bij Google iets? Mischien is het TBSTYLE_FLAT, dat zag ik staan, maar wat de waarde daarvan is, weet ik niet... Morgen zal vb2themax wel online zijn... beetje flutserver hebben ze :'( Verder coole site :P.

Mischien is er op www.pscode.com iets te vinden? (ook al zo'n brakke server), Oh, ik heb het al :): http://www.planet-source-code.com/xq/ASP/txtCodeId.5820/lngWId.1/qx/vb/scripts/ShowCode.htm .

Verwijderd

Bedankt, k ga ns proberen of t wat wordt met WCC 5.

Verwijderd

Minder, heb net de WCC5 geprobeerd, irritant, heleboel dingen werken een stuk minder (arrange van listview enzo) en je moet allerlei extra meuk erbij gooien om er iets van te kunnen maken.

Maar ik heb wel gevonden waar ons probleem door komt!

Why Upgrade?
Visual Basic version 5.X common controls were contained in two .OCX files: ComCtl32.ocx and ComCt232.ocx. Both of these files called into the ComCtl32.dll file, a system file, for functionality. The new control versions are contained in two new files: MsComCtl.ocx and MsComCt2.ocx. Neither of these files are linked to the ComCtl32.dll file. Besides the new controls added to these files, another reason for upgrading is easier distribution and maintenance. The file changes are summarized below:

WCC6 is dus niet gelinkt naar ComCtl32.dll! Logisch dat ie het dan niet doen. Hoe zou dit op te lossen zijn?

Manifests hebben geen zin, wat dat .... v6 ding wil alles zelf doen ipv de DLL te gebruiken.

Misschien toch maar weer met 5 verder :(

Verwijderd

Gezipt zijn de WCC 5 controls < 300 kb zie ik. Voorlopig moet ik dan maar deze ook erbij stoppen voor de tabs/toolbars.

Verwijderd

Topicstarter
Ik geef het op :( :'( :(

Ik wacht wel tot ik het een keer tegenkom / hoor, want er is gewoon nu niks mee te beginnen, of je moet heel moeilijk doen, en WCC 5 zijn idd heel primitief...

Hier is in ieder geval wat meer info, mischien heb je er wat aan...
1) Officiele M$ info: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwxp/html/xptheming.asp
2) not meer officiele info: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/CommCtls/Userex/Overview/cookbook.asp
3) Hier staan een aantal voorbeelden, maar die gebruiken allemaal versie 5 : http://www.planet-source-code.com/vb/scripts/BrowseCategoryOrSearchResults.asp?lngWId=1&B1=Quick+Search&blnWorldDropDownUsed=TRUE&txtMaxNumberOfEntriesPerPage=10&blnResetAllVariables=TRUE&txtCriteria=xp+manifest&optSort=Alphabetical

Succes!

PS Volgens mij zijn de links iets te lang voor de pagina :)

Verwijderd

Ik geef t ook op.

Het is gewoon niet mogelijk imo, omdat WCC 6 zelf alles "tekend", en t niet door Widows laat doen (vraag me af waarom, hij is 2x zo groot als WCC 5 daarom).

Ik ga maar kijken welke delen van 5 ik erbij ga gebruiken.
Pagina: 1