[VB.Net] Windows Configuratie aanpassen

Pagina: 1
Acties:

  • F-Tim
  • Registratie: November 2003
  • Laatst online: 11:17
Goeiemorgen allemaal,

ik heb vorige week een topic geopend over het maken van een "dikke" scrollbar. Toen kreeg ik als tip mee om zelf de scrollbar handling te programmeren bij een VScrollBar. Ik heb dit uitgezocht en voor 99% werkend gekregen. Echter zit ik dan nog met een aantal problemen. De scrollbar heeft een dood stuk op de balk.Als ik de maximum size kleiner maak dan dat het echt in pixels is, dan verdwijnt dit dode stuk, echter als ik dan weer een uitgebreider formulier gebruik, dan heb ik weer te weinig scrollbar, zelfs mét de maximumwaarde. Bovendien kon ik geen mousewheel gebruiken om te scrollen. Conclusie, ik ben er niet 100% tevreden over.

Na een hele dag stoeien ermee, kwam ik met een kleine ingeving. Waarom niet gewoon op OS niveau de scrollbars aanpassen? Windows ondersteunt het immers gewoon, dus waarom zou ik geen gebruik ervan maken? Even proberen of het werkte... Bureaublad -> Eigenschappen -> Vormgeving -> Scrollbar size aanpassen. Programma starten, en het werkte idd. Alle functionaliteiten die ik nodig had zaten erin. Maar als logisch gevolg zijn ze in Windows ook aangepast dan. En dat is niet zo charmant als je gaat multitasken ;)

Het betreft de volgende waarde:
Afbeeldingslocatie: http://img93.imageshack.us/img93/2228/advanced1mw.th.jpg

Mijn vraag was dus nu, hoe ik in VB.Net die waarde kan aanpassen? Ik ben op google gaan zoeken, en ben een aantal register waarden tegen gekomen op deze site, echter zijn deze totaal niet terug te vinden in het Windows Register? edit: Blijkt dat deze voor Windows CE zijn. Weet iemand welke regvalues er zijn voor Win XP?

Andere websites toonden in ieder geval geen informatie op omtrent het terugvinden van de waardes. Heb op codeproject wel iets gevonden betreffende een wrapper om zo de HScroll en VScroll messages af te vangen, maar daar staat niets op over het aanpassen van de breedte van de scrollbar in het OS zelf.

Kan iemand me hiermee dan op de goede weg sturen betreffende het programmaticaal veranderen van de scrollbar breedte in windows? Ik zou die persoon in ieder geval hartstikke dankbaar zijn!

Edit: Mods, kunnen jullie de topictitel veranderen naar "Windows Vormgeving Scrollbar Size aanpassen in VB.Net"? Denk dat dat wat duidelijker is. Gracias ;)

[ Voor 10% gewijzigd door F-Tim op 08-05-2006 11:35 . Reden: Verduidelijking ]

Wanna play?


  • Ciqniz
  • Registratie: Oktober 2002
  • Laatst online: 07-09-2023

Ciqniz

On the move...

Misschien heb je hier wat aan, is wel in VB6....

Visual Basic:
1
2
3
4
5
Dim ctrl as Control

For Each ctrl in Controls
  If TypeName(ctrl) = "VScrollBar" Then ctrl.Width = WidthInVBTwips
Next


Bron:
http://www.devx.com/vb2themax/Tip/18285

  • F-Tim
  • Registratie: November 2003
  • Laatst online: 11:17
Die code werkt helaas niet :( Maakt niet uit wat ik voor breedte opgeef, 0 of 100, in Twips of Pixels, geen verschil. Maakt ook niet uit wát ik doorloop, het form, de panel of de usercontrol, nergens kom ik @runtime de VScrollbar tegen. :( Denk dat Visual Studio 2005 hem op de een of andere manier kan hiden ofzo....

Had ook al een vergelijkbaar stuk code gebruikt, die werkte ook niet:
Visual Basic:
1
2
3
4
5
6
7
Dim X As Integer
For X = 0 To Schil.Controls.Count - 1
   If Schil.Controls(X).GetType.Name = "VScrollBar" Then
      Schil.Controls(X).Height = 0
      Schil.Controls(X).Width = 0
   End If
Next


Ik zal dus echt op de een of andere manier programmaticaal de settings van de vormgeving moeten kunnen aanpassen, maar wáár staan die, dát is de grote vraag ;)

Wanna play?


  • _js_
  • Registratie: Oktober 2002
  • Laatst online: 13-01 07:19
In de windows api gebruik je hier GetSystemMetrics en SetSystemMetrics voor, ik weet niet of die instellingen ergens in .Net terug te vinden zijn.

Het is trouwens niet gebruikelijk om systeem instellingen aan te passen alleen voor jouw progamma.

  • F-Tim
  • Registratie: November 2003
  • Laatst online: 11:17
_js_ schreef op dinsdag 09 mei 2006 @ 11:38:
In de windows api gebruik je hier GetSystemMetrics en SetSystemMetrics voor, ik weet niet of die instellingen ergens in .Net terug te vinden zijn.

Het is trouwens niet gebruikelijk om systeem instellingen aan te passen alleen voor jouw progamma.
Als ik het bij het switchen toch weer terug verander naar de originele waarde, zodat je op OS niveau niets ervan merkt, dan zie ik hier (voorlopig) het kwaad nog niet van in. Dat het wellicht niet netjes is ben ik helemaal met je eens, een nettere oplossing zal na verloop van tijd nog wel geïmplementeerd worden, maar voorlopig wil ik een werkende functionaliteit hebben ;) Voor perfectioneren is nog tijd genoeg, maar als ik niets heb óm te perfectioneren is het een lastig proces he?

Ik zal in ieder geval eens naar Get en SetSystemMetrics kijken, kijken wat deze voor me kunnen
betekenen, thanx.

Niet om offtopic te gaan overigens he, maar scripting talen worden met regelmaat gebruikt om systeeminstellingen te wijzigen he ;)

Wanna play?


  • sig69
  • Registratie: Mei 2002
  • Laatst online: 18:32
Feit blijft dat het gewoon een verschrikkelijk ranzige hack/workaround is. Dan zou ik nog liever de 99% werkende implementatie gebruiken, aangezien je toch tijd genoeg hebt om te perfectioneren.

Roomba E5 te koop


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 00:22

Janoz

Moderator Devschuur®

!litemod

hmmm
• Je applicatie houd niet het door mij om wat voor reden dan ook ingesteld ui profiel aan
• Bij een crash van de applicatie of de computer laat hij de computer in een andere staat achter, zelfs na reboot
• De applicatie kan enkel draaien als je admin rechten hebt
• Ondersteund niet alle standaard interactie methoden (muiswieltje bv)

Lijkt me niet een applicatie die ik ooit ook maar in de buurt wil hebben van mijn computer.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • F-Tim
  • Registratie: November 2003
  • Laatst online: 11:17
Janoz schreef op dinsdag 09 mei 2006 @ 13:21:
hmmm
• Je applicatie houd niet het door mij om wat voor reden dan ook ingesteld ui profiel aan
Wel degelijk hoor, alle kleurgebruik is ingesteld op systeeminstellingen, alleen moet de scrollbar verbreed worden van standaard 16 naar 25 pixels, anders is het niet te bedienen met een touchscreen
• Bij een crash van de applicatie of de computer laat hij de computer in een andere staat achter, zelfs na reboot
Hier heb je helaas gelijk in, daarom wil ik het ook netter oplossen, maar ik wil het eerst werkend hebben, als iets werkt kun je het altijd nog netjes maken, maar dan heb je wel al een werkende basis
• De applicatie kan enkel draaien als je admin rechten hebt
Dit kan idd een probleempunt zijn :o had ik nog geeneens aan gedacht!
• Ondersteund niet alle standaard interactie methoden (muiswieltje bv)
Alle standaard interactie methoden werken wel ;) Ik gebruik nl. een AutoScroll

Lijkt me niet een applicatie die ik ooit ook maar in de buurt wil hebben van mijn computer.
En ja, het is een ranzige workaround, welke op de lange termijn wordt vervangen door de nette zelfgemaakte scrollbar welke wél goed functioneert ;) Maar op korte termijn is het gewoon noodzakelijk dat het moet werken. De rest van de UI moet nl. specifiek hierop afgestemd worden omdat het op een Touchscreen gebruikt gaat worden, en als ik nu alles "afmeet" op kleine scrollbars, dan zul je zien dat ik op lange termijn het gehele UI design moet aanpassen ;) en dat is niet zo'n prettig vooruitzicht :P

Overigens denk ik ook niet dat het een applicatie is die op een standaard computer geinstalleerd wordt ;) Dus maak je maar niet druk Janoz :P

Wanna play?


  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 20-02 03:31

Gerco

Professional Newbie

Als je een touchscreen gebruikt, wat is eer dan op tegen om de UI instellingen standaard op "Grote fonts, grote scrollbars en grote buttons" te zetten? Dat lijkt je *juist* voor een touchscreen wel handig en dan hoef je in je applicatie ook minder rekening te houden met het uiteindelijke uitvoerdevice.

Je applicatie is makkelijker te combineren met touchscreens met hoge res (dan wil je de scrollbar misschien wel 30 of 35 pixels breed) of kleine screens met een stylus (normaal formaat). Ik snap niet dat je dit ene UI element wilt aanpassen aan je omgeving, maar niet alle andere elementen die net zo makkelijk via de systeeminstellingen kunnen.

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!

Pagina: 1