各位兄弟:
    我的屏幕分辨率是1024*768,我引入了一个outlook风格的代码段,然后就写代码,在界面的右边加了许多对话框,刚好适合我屏幕分辨率。
    我今天把屏幕调回800*600,竟然发现我的程序执行后右边比800*600多出来的部分全显示不出来了,而且也不出左滚和右滚的条,总之怎么想办法界面也都是丢了一大块,我曾经试图把视类和里边包含的子对话框类的SCROLL属性都选择了,可还是不行,还是丢。加入的滚动条不是在最右边就是在最下边,根本在800*600上显示不出来。
    各位,能不能通过在我的程序中加点啥代码让这个界面能出个左右和上下的滚动条以滚动整个程序界面。

解决方案 »

  1.   

    哈哈,你先在800*600的下面工作就可以了啊!不过你已经做成了,肯定是不想改了。试一试布局时先让其出现滚动条!实在不行就用ChangeDisplaySettings()强行改变屏幕分辨率吧
      

  2.   

    首先你要能检测当前分辨率。
    根据当前分辨率调整窗口大小。
    根据窗口的大小调用setscrollinfo来显示滚动条,并处理滚动消息。
      

  3.   

    是不是基于对话框的啊,重载你的ONSIZE就可以了
      

  4.   

    是不是基于对话框的啊,重载你的ONSIZE就可以了
      

  5.   

    兄弟们有没有最简单的方法,就是让整个界面出个上下和左右的滚动条,当分辨率不适应的时候,这个滚动条就出来了,可以拖动,虽然我是引入了outlook风格,但是我的视类继承的是CFormView!!
      

  6.   

    在资源编辑器中设定DIALOG运行滚动条。
      

  7.   

    怎样用程序改变分辨率?---------------------------------------------------------------  
     
    LONG  ChangeDisplaySettings(  
       LPDEVMODE  lpDevMode,    //  graphics  mode  
       DWORD  dwflags                  //  graphics  mode  options  
    );  
     
    ---------------------------------------------------------------  
     
    int  nFullWidth=GetSystemMetrics(SM_CXSCREEN);  
    int  nFullHeight=GetSystemMetrics(SM_CYSCREEN);  
    bool  bChanged=0;  
    if(nFullWidth!=800    ¦  ¦  nFullHeight!=600)//change    to  800*600;  
    {  
    DEVMODE  lpDevMode;  
    lpDevMode.dmBitsPerPel=16;//Change  from  24  to  16  
    lpDevMode.dmPelsWidth=800;  
    lpDevMode.dmPelsHeight=600;  
    lpDevMode.dmDisplayFrequency=85;  
    lpDevMode.dmSize=sizeof(DEVMODE);  
    lpDevMode.dmFields  =DM_PELSWIDTH  ¦DM_PELSHEIGHT  ¦DM_BITSPERPEL  ¦DM_DISPLAYFREQUENCY;  
    LONG  result;  
    //EnumDisplaySettings(NULL,ENUM_REGISTRY_SETTINGS,&lpDevMode);  
    result=ChangeDisplaySettingsEx(NULL,&lpDevMode,NULL,0,NULL);  
    if  (result==DISP_CHANGE_SUCCESSFUL)  
    {  
    result=ChangeDisplaySettingsEx(NULL,&lpDevMode,NULL,CDS_UPDATEREGISTRY,NULL);  
     
    bChanged=1;  
    }  
    else  
    {  
    result=ChangeDisplaySettingsEx(NULL,&lpDevMode,NULL,0,NULL);  
    }  
    }  
     
    ---------------------------------------------------------------  
     
    LONG  ChangeDisplaySettings();