?--vb6.0转换到vb2008控件显示问题
--------------------编程问答-------------------- 你应该搜索一下 manifest,VB的按钮其实是标准的按钮,而XP样式的按钮其实是非标的,如果要实现 XP样式按钮,需要使用 manifest,在VC中,可以将 manifest 及数据封装到自己的资源中,而 VB6 就只有通过在外部托一个与执行文件同名的 manifest 文件,在 .net 中,IDE自动将资源套入了manifest信息,所以如果你转换的VB6代码,是标准Windows接口按钮,没有manifest信息,所以样式就和.net的不一样。因为.net没有帮你加入manifest信息,不过采用老办法,在外部生成一个同名的manifest文件一样可以解决这个问题。比如你的程序编译后是“工程1.exe”
那么在与他相同路径的地方建立一个“工程1.exe.manifest”文件,文件内容是文本的,具体为
<?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="工程1.exe"
type="win32"
/>
<description>WindowsExecutable</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>
然后运行你的“工程1.exe”,就会发现所有控件都套上了系统样式,VB6也可这么做,至于想封装manifest到程序里,VC可以做到,只是指定资源名和编号而已,但因为VB6的资源管理没那么灵活,所以无法实现。只有挂在外面了 --------------------编程问答-------------------- vb6转2008基本上要重写了
--------------------编程问答-------------------- 窗体部分用vb2008重新画
补充:VB , 基础类