|
-
Jul 11th, 2006, 02:48 PM
#1
Thread Starter
New Member
Best way to add XP style to your controls
Let's Start (without introduction)
Design your form and put your necessary controls in it (e.g. Form1)
Change "Startup Object" to Sub Main
Add a module and insert in it this code
VB Code:
Private Type tagInitCommonControlsEx
lngSize As Long
lngICC As Long
End Type
Private Declare Function InitCommonControlsEx Lib "comctl32.dll" _
(iccex As tagInitCommonControlsEx) As Boolean
Private Const ICC_USEREX_CLASSES = &H200
Public Function InitCommonControlsVB() As Boolean
On Error Resume Next
Dim iccex As tagInitCommonControlsEx
' Ensure CC available:
With iccex
.lngSize = LenB(iccex)
.lngICC = ICC_USEREX_CLASSES
End With
InitCommonControlsEx iccex
InitCommonControlsVB = (Err.Number = 0)
End Function
Public Sub Main()
InitCommonControlsVB
' Start your Application here ( e.g. Form1.Show )
Form1.Show
End Sub
Now Build EXE Program ( for example test.exe )
Open Notepad and type
HTML Code:
<?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="CompanyName.ProductName.YourAppName"
type="win32" />
<description>Your application description here</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*" />
</dependentAssembly>
</dependency>
</assembly>
Save it in the directory you saved test.exe in it with name (test.exe.manifest)
Finally, execute your program (test.exe) you will see all comon controls with XP Styles...
-
Jul 12th, 2006, 08:21 AM
#2
Hyperactive Member
Re: Best way to add XP style to your controls
Nice Code, but it should be in the codebank
KAZAR
The Law Of Programming:
As the Number of Lines of code increases, the number of bugs generated by fixing a bug increases exponentially.
__________________________________
www.startingqbasic.co.uk
-
Jul 12th, 2006, 08:55 AM
#3
Re: Best way to add XP style to your controls
Now if I was being cynical, I'd say you'd just lifted that from vbAccelerator 
There's also an example there of having the manifest file as a resource, so it'll get compiled into the exe and you don't need to distribute it.
It should be noted that this will provide XP styles to Microsoft Windows Common Controls 5.0 not 6.0, as comctl32.ocx (ocx for v5) is dependant on comctl32.dll whereas mscomctl.ocx (ocx for v6) is not.
-
Jul 22nd, 2006, 08:00 AM
#4
Lively Member
Re: Best way to add XP style to your controls
I use this and i have a problem with the buttons. The last character of the caption get's put on a new line. Why is this and how can i fix it?
-
Jul 24th, 2006, 09:55 AM
#5
New Member
Re: Best way to add XP style to your controls
Warning!
Visual Basic 6.0 Does Not Support Windows XP Themes or Visual Styles
http://support.microsoft.com/?id=309366
-
Jul 24th, 2006, 10:20 AM
#6
Re: Best way to add XP style to your controls
Yes, but there have been workarounds for most of its limitations and bugs. Like using an option button in a frame will make it display as all black but if you place the option button in a picturebox inside the frame then it will draw correctly etc.
Not to mention that the code will not apply XP Themes UNLESS you are running Windows XP.
VB/Office Guru™ (AKA: Gangsta Yoda™ ®)
I dont answer coding questions via PM. Please post a thread in the appropriate forum. 
Microsoft MVP 2006-2011
Office Development FAQ (C#, VB.NET, VB 6, VBA)
Senior Jedi Software Engineer MCP (VB 6 & .NET), BSEE, CET
If a post has helped you then Please Rate it! 
• Reps & Rating Posts • VS.NET on Vista • Multiple .NET Framework Versions • Office Primary Interop Assemblies • VB/Office Guru™ Word SpellChecker™.NET • VB/Office Guru™ Word SpellChecker™ VB6 • VB.NET Attributes Ex. • Outlook Global Address List • API Viewer utility • .NET API Viewer Utility •
System: Intel i7 6850K, Geforce GTX1060, Samsung M.2 1 TB & SATA 500 GB, 32 GBs DDR4 3300 Quad Channel RAM, 2 Viewsonic 24" LCDs, Windows 10, Office 2016, VS 2019, VB6 SP6 
-
Oct 1st, 2006, 11:12 PM
#7
Member
Re: Best way to add XP style to your controls
Tested it on XP...
and it works fine without having the code in the module and the sub-main, just the manifest...
-
Oct 2nd, 2006, 01:15 AM
#8
Re: Best way to add XP style to your controls
 Originally Posted by vbaccelerator.com
Ensuring Your Application Links to ComCtl32.dll
If you provide a manifest, but your application does not link to ComCtl32.dll, then it will fail to load - sometimes with no error message!. You need to call at least InitCommonControls before any visual elements are displayed. Sometimes, you don't need to do anything because your application may already link to ComCtl32.dll (for example, if it includes any of the Windows Common Controls provided with Visual Basic), however, to be certain it works it is best to call InitCommonControls prior to displaying any forms.
VB/Office Guru™ (AKA: Gangsta Yoda™ ®)
I dont answer coding questions via PM. Please post a thread in the appropriate forum. 
Microsoft MVP 2006-2011
Office Development FAQ (C#, VB.NET, VB 6, VBA)
Senior Jedi Software Engineer MCP (VB 6 & .NET), BSEE, CET
If a post has helped you then Please Rate it! 
• Reps & Rating Posts • VS.NET on Vista • Multiple .NET Framework Versions • Office Primary Interop Assemblies • VB/Office Guru™ Word SpellChecker™.NET • VB/Office Guru™ Word SpellChecker™ VB6 • VB.NET Attributes Ex. • Outlook Global Address List • API Viewer utility • .NET API Viewer Utility •
System: Intel i7 6850K, Geforce GTX1060, Samsung M.2 1 TB & SATA 500 GB, 32 GBs DDR4 3300 Quad Channel RAM, 2 Viewsonic 24" LCDs, Windows 10, Office 2016, VS 2019, VB6 SP6 
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|