大家好!
我写的程序是全屏的!运行以后,我(CTRL+D)然后修改分辨率,在切换到程序,他就不是全屏的了.怎么实现我切换回来,他还按照实时的分辨率改变窗口大小!我怎么才能得到WINDOWS改变分辨率的消息!???

解决方案 »

  1.   

    http://hi.baidu.com/nianxiaoyou/blog/item/b34d069069586988a977a4c9.html
      

  2.   

    我要的是VC的解决方法!delphi的我看不太懂!
      

  3.   

    有的,
    例如:
    分辨率是XGA 1024*768时 下创建的窗口A是400*300的
    当分辨率改为SXGA 1280*1024时 窗口的大小还是400*300的
    显然这种情况下,需要500*400的窗口才能满足要求。你可以通过
    1)紧凑窗口:只显示1024*768的大小,其他的空余。
    2)窗口重新构建:重新在新的分辨率下构造窗口。
    来完成以上操作。如果是商业软件,最好是重启计算机,
    重新构建虽然可以实现,但是影响太大,潜在风险太大。
      

  4.   

    //获取更改显示器分辩率刷新速度
    //将显示器分辨率修改为800*600 16位色 60Hz 5秒钟后恢复
    {
      //保存信息
      DEVMODE Save_DevMode = {0};
      Save_DevMode.dmSize = sizeof(DEVMODE);
      EnumDisplaySettings(NULL,ENUM_CURRENT_SETTINGS,&Save_DevMode);

      //新信息
      DEVMODE New_DevMode = Save_DevMode;
      New_DevMode.dmBitsPerPel = 16;
      New_DevMode.dmPelsWidth = 800;
      New_DevMode.dmPelsHeight = 600;
      New_DevMode.dmDisplayFrequency = 60;
      New_DevMode.dmFields  |= DM_BITSPERPEL|DM_PELSWIDTH|DM_PELSHEIGHT|DM_DISPLAYFREQUENCY;  //修改信息
      ChangeDisplaySettings(&New_DevMode,0);  //延时观察
      BeginWaitCursor();
      Sleep(5000);
      EndWaitCursor();  //恢复信息
      ChangeDisplaySettings(&Save_DevMode,0);
    }