问题比较让人郁闷,可能。
mfc我没用过,都是写的C程序,但是我想mfc的对话框总也是先变成EXE文件内的资源加载进来的吧,那么应该MFC支持的Win32也支持的呀。
但是实际我发现,Win32对话框程序不支持很多东西,比方说那个长得比较好看的button(就是XP里有但是2000里面没有的那种),Slider Control,Tab Control等等。那个button在设计对话框的时候还是比较好看的,但是一旦DialogBox出来就变成了那种扁平的2000式的button了,至于滚动条什么的,放上去了对话框都显示不出来,函数直接结束了。
但是我开了一个mfc对话框程序,那个显示的就很正常啊,难道需要某些特殊的支持?

解决方案 »

  1.   

    你说的是visual style啊,这个和编码方式有关,你在win32程序中加入#define UNICODE
    #pragma comment(linker, "/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' \  version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
    试试。
      

  2.   

    我还以为是我xp版本的问题,结果昨夜连忙去装了sp3补丁。
      

  3.   

    哎呀,试着试着又发现了一个问题,只有用向导生成的Win32程序才有用,对于空项目,还是不行,估计还需要什么别的配置信息。
      

  4.   

    这个和STYLE有关,下面以VC6为例,添加xpstyle新建文本文档,复制以下代码,并命名为XPStyle.manifest,将其放至VC工程目录下:XPStyle.manifest内容:
     <?xml version="1.0" encoding="UTF-8" standalone="yes"?><assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"><assemblyIdentity  name="XP style manifest"  processorArchitecture="x86"  version="1.0.0.0"  type="win32"/><dependency>  <dependentAssembly>    <assemblyIdentity      type="win32"      name="Microsoft.Windows.Common-Controls"      version="6.0.0.0"      processorArchitecture="x86"      publicKeyToken="6595b64144ccf1df"      language="*"    />  </dependentAssembly></dependency></assembly>
    用记事本打开工程目录下的资源文件(*.rc),在文件最后加上一行:1 24 "XPStyle.manifest"1 24 "XPStyle.manifest"  : “1”代表资源ID,必须是“1”。“24”代表资源类型,是RT_MANIFEST。
      

  5.   


    重装了系统,解决了,不知道为什么重装之前只出现了一次好的。
    可能原因是我的VS集成开发环境中文版英文版翻来倒去好几遍,所以发生了一些我不知道的现象……
    也可能是装了sp3的缘故