我的程序刚刚从vc6.0移到vc7.0,移植后,CFileDialog显示的是xp风格(左边带有一条竖的文件夹图标)。可是到98下CFileDialog却显示不出来(没有任何反映)。
奇怪的是,我用vc7.0生成一个新的工程,在里面显示CFileDialog时,却为老的风格(左边没有一条竖的文件夹图标),在98下也能正常显示出来。
我的程序很大,不可能重新生成工程,再把文件add新工程进去,再说肯定是有某个原因引起的。那位打下能help me??谢谢!!!

解决方案 »

  1.   

    因为你声明了m_ofn.lStructSize=88这是win2000开始支持的,有左边的那种。如果98就显示不出来了。你可以设定m_ofn.lStructSize=76成为老的对话框,98就显示出来了。最好根据操作系统的版本自己判断。int structsize; 
    DWORD dwVersion,dwWindowsMajorVersion,dwWindowsMinorVersion; 
    //¼ì²âÄ¿Ç°µÄ²Ù×÷ϵͳ£¬GetVersion¾ßÌåÓ÷¨Ïê¼ûMSDN 
    dwVersion = GetVersion(); 
    dwWindowsMajorVersion = (DWORD)(LOBYTE(LOWORD(dwVersion))); 
    dwWindowsMinorVersion = (DWORD)(HIBYTE(LOWORD(dwVersion))); 
    // Èç¹ûÔËÐеIJÙ×÷ϵͳÊÇWindows NT/2000 
    if ((dwWindowsMajorVersion>=4 && dwWindowsMinorVersion>=90)||dwWindowsMajorVersion>=5)  
    structsize =88;//ÏÔʾеÄÎļþ¶Ô»°¿ò 
    else 
    //ÔËÐеIJÙ×÷ϵͳWindows 95/98  
    structsize =76;//ÏÔʾÀϵÄÎļþ¶Ô»°¿ò 
      

  2.   

    int structsize; 
    DWORD dwVersion,dwWindowsMajorVersion,dwWindowsMinorVersion; dwVersion = GetVersion(); 
    dwWindowsMajorVersion = (DWORD)(LOBYTE(LOWORD(dwVersion))); 
    dwWindowsMinorVersion = (DWORD)(HIBYTE(LOWORD(dwVersion))); 
    //Windows NT/2000 
    if ((dwWindowsMajorVersion>=4 && dwWindowsMinorVersion>=90)||dwWindowsMajorVersion>=5)  
    structsize =88; 
    else 
    //Windows 95/98  
    structsize =76;