با سلام.
چند وقتیه دنباله جواب این سوال هستم ولی به نتیجه ای نرسیدم. برنامه های زیادی هستن که استایل فرم رو تغییر میدن. ولی من یک OCX میخوام که بتونه استایل فرم رو کاملا شبیه ویندوزی که روی دستگاه کاربر نصبه بکنه. مثلا WinXPCEngine ocx چیز جالب و خوبیه ولی اشکالش اینه که فقط ویندوز XP رو داره !

با این روشی که الان به شما می گم نه تنها دکمه ها ، بلکه تمام کنترل های استاندارد به شکل ایکس پی ، ویستا در می آید . یعنی تو هر ویندوزی که اجرا بشه شکل همون ویندوز میشه :
اول یه فایل به نام زیر درست کنید :
Project1.exe.manifest
یادتون باشه که به جای Project1 باید اسم پروِژتون رو قرار بدید . حالا اون فایل رو با Notepad باز کنید و متن زیر رو در اون کپی کنید :
کد:
نقل قول: <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1"
manifestVersion="1.0">
<assemblyIdentity type="win32" processorArchitecture="*"
version="6.0.0.0" name="mash"/>
<description>Enter your Description Here</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
language="*"
processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
/>
</dependentAssembly>
</dependency>
</assembly>
و فایل رو Save کنید و در کنار فایل اجرایی برنامتون کپی کنید
پروژتون رو توی وی بی باز کنید و در قسمت کد اون این کد را بنویسید :
کد:
کد:
Private Declare Function InitCommonControls Lib "comctl32.dll" () As Long
Private Sub Form_Initialize()
InitCommonControls
End Sub
تموم شد حالا زمانی که فایل اجرایی برنامتون رو اجرا می کنید همه چیز همون طور که می خوایم شده . حواستون باشه وقتی که برنامه رو از توی وی بی اجرا می کنید ، تغییری نخواهید دید.
از کامپوننتهایی که برای این کار هستند استفاده کن activeskin که لینکش تو سایت هست یه سرچی بکن و skin craft(که دومی فکر کنم مال برنامه های .net هست)
برای اعمال استایل xp یه کدی هست اونو تو notepad مینویسی با پسوند xml سیو میکنی مینداری تو پوشه برنامت (کدشو پیدا کردم میزارم اینجا)
lord_viper نوشته است:از کامپوننتهایی که برای این کار هستند استفاده کن activeskin که لینکش تو سایت هست یه سرچی بکن و skin craft(که دومی فکر کنم مال برنامه های .net هست)
برای اعمال استایل xp یه کدی هست اونو تو notepad مینویسی با پسوند xml سیو میکنی مینداری تو پوشه برنامت (کدشو پیدا کردم میزارم اینجا)
سلام من گذاشتمش

سلام
آقا تو خیلی قانعی که می خوای فقط از Style جاری ویندوز استفاده کنی چون بعضی ها می خوان برنامه شون تو ویندوز 98 از Style ویستا استفاده کنه که باید کمپوننت بخرن.
وی بی:
من خودم از روشی که آقا محسن گفت برای مواقعی که عجله داشتم استفاده کردم ولی میتونی همون فایل project.exe.manifets رو توی پروژه از طریق ResourceEditor بصورت CustomeResource اضافه کنی تا دیگه لازم نباشه هر جا برنامه رو بردی اون فایل رو هم ببری.
دلفی:
توی دلفی هم که در بخش یونیت ها، یونیت XPMan رو اضافه می کنیم.
متفرقه:
در مورد وی بی حتما باید از تابع InitCommonControls استفاده بشه ولی فایل های اجرایی غیر از وی بی رو که حتی سورسشون رو هم نداری می تونی با یه نرم افزار Resource باز کنی و فایل Project.Exe.Manifest رو بهشون بچسبونی. مثلا با ResourceHacker از منوی Action گزینه AddANewResource رو می زنی بعد از انتخاب فایل manifest نوعش رو 24 انتخاب می کنی و اون رو اضافه می کنی.
من فایل اجرایی VB6.exe و Delphi32.exe رو اینجوری کردم تا زمان طراحی هم با Style ویندوز کار کنم. ولی قبلش یک کپی از فایل اجراییت بگیر. در ضمن پالت رنگ هم تو وی بی هم تو دلفی با این روش خراب میشه و با فریم ها هم مشکل داره (حالا کی میخواد از Frame استفاده کنه)
ممنون از همه ی دوستان مخصوصا محسن خان !
mojtabamalaekeh نوشته است:سلام
آقا تو خیلی قانعی که می خوای فقط از Style جاری ویندوز استفاده کنی چون بعضی ها می خوان برنامه شون تو ویندوز 98 از Style ویستا استفاده کنه که باید کمپوننت بخرن
اگه بگردی مجانیش هم پیدا میشه مخصوصا تو سایتهای چینی و روسی[/quote]
نقل قول: دلفی:
توی دلفی هم که در بخش یونیت ها، یونیت XPMan رو اضافه می کنیم.
واسه دلفی انقدر کامپوننت skin با bilder ش هست که ادم بعضی وقتا توش میمونه(من به شخصه از vclskin استفاده میکنم البته 3 تا کامپوننت اسکین دیگه هم دارم)
نقل قول: در ضمن پالت رنگ هم تو وی بی هم تو دلفی با این روش خراب میشه و با فریم ها هم مشکل داره (حالا کی میخواد از Frame استفاده کنه)
درسته
تستش هم کردم جواب داد و استایل کل فرم شبیه ساتایل دفالت ویندوز شد. دمت گرم

Manifest Text
Using Notepad. add the following text to a new file and name the file vb6.exe.manifest. Save to the same folder containing VB6.exe. Because Notepad likes to append .txt to all files it creates, regardless if you've provided another extension, be sure to check the filename and remove any appended .txt from the name.
--------------------------------------------------------------------------------
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Copyright ©1996-2007 VBnet, Randy Birch, All Rights Reserved.
' Some pages may also contain other copyrights by the author.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Distribution: You can freely use this code in your own
' applications, but you may not reproduce
' or publish this code on any web site,
' online service, or distribute as source
' on any media without express permission.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
<?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="Microsoft.VB6.VBnetStyles"
type="win32"
/>
<description>VBnet Manifest for VB6 IDE</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>
حالا که این مشکل حل شد به نظر شما دوستان نمیشه این فایل رو یه جوری چسبوند به برنامه ؟ یا یه جوری مخفیش کرد ؟ آخه کاربر راحت میتونه این فایل رو پاک کنه و بعد از پاک شدنش برنامه دوباره به همون حالت اولیه بر میگرده ... خیلی ستمه !!
دوست عزیزاگه یک بار این تاپیکو از بالا میخوندین جوابتونو میگرفتین
جناب mojtabamalaekeh در این مورد بطور کامل توضیح دادن