全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2512
推到 Plurk!
推到 Facebook!

動態設定顯示的解析度,色彩,頻率

 
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-11-11 11:11:59 IP:203.73.xxx.xxx 未訂閱
1.此篇文章的目的為何??
  主要的目的在示範如何動態取得及設定解析度、色彩、頻率    2.是否有完整的範例 Project (包含 Source Code) 可以下載??
  http://delphi.ktop.com.tw/loadfile.php?TOPICID=12630815&CC=282485    3.該如何操作這個範例??
  (1)下載及解壓縮檔案 Resolution1.zip,並執行檔案 Resolution1.exe
  (2)在「Resolution」ComboBox 選擇特定的解析度、色彩、頻率
  (3)按「Change」Button 即可看到設定後的結果    4.此範例可以在哪一個作業系統執行??
  理論上在 Windows 9X/ME/NT/2000/XP/2003 都可以執行,不過目前只有在
  Windows 2000 實際測試過,有興趣的會員,也請幫忙測試看看    5.有沒有相關的參考文件??
  http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/devcons_84oj.asp
  http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/devcons_7gz7.asp    6.如果寫得不好,或是有不對的地方,請大家多多指教
    -- 
        
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
kraen4468
初階會員


發表:66
回覆:112
積分:35
註冊:2003-12-04

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-05-19 14:34:58 IP:61.222.xxx.xxx 未訂閱
RaynorPao大大 試過你的檔案我覺的很好用,只是我有的小問題請教你 我想把頻率消除,只顯示"1024X768,16bit"這樣 可是我都把iCurFrequency有關頻率的都去掉還是不形也  
 void __fastcall TForm1::EnumResolution(void)
{
   DEVMODE dmResolution;
   int iCurrentMode=ENUM_CURRENT_SETTINGS;
   int iCurWidth=0;
   int iCurHeight=0;
   int iCurBitsPixel=0;
 //  int iCurFrequency=0;
   AnsiString szResolution;
   int iIndex=0;       ZeroMemory(&dmResolution, sizeof(DEVMODE));
   EnumDisplaySettings(NULL, iCurrentMode, &dmResolution);
   iCurWidth=dmResolution.dmPelsWidth;
   iCurHeight=dmResolution.dmPelsHeight;
   iCurBitsPixel=dmResolution.dmBitsPerPel;
  // iCurFrequency=dmResolution.dmDisplayFrequency;       iCurrentMode=0;
   ZeroMemory(&dmResolution, sizeof(DEVMODE));
   ComboBox1->Items->Clear();
   while(EnumDisplaySettings(NULL, iCurrentMode  , &dmResolution))
   {
      szResolution=IntToStr(dmResolution.dmPelsWidth) "x" 
         IntToStr(dmResolution.dmPelsHeight) ", " 
         IntToStr(dmResolution.dmBitsPerPel) " Bits ";// 
       //  IntToStr(dmResolution.dmDisplayFrequency) " Hz";
        if(dmResolution.dmPelsWidth>=800)
        { if(dmResolution.dmPelsHeight>=600)
          { if(dmResolution.dmBitsPerPel>=16)
           // {  if(dmResolution.dmDisplayFrequency<=0)
              {ComboBox1->Items->Add(szResolution);}
           // }
          }
        }
      if(dmResolution.dmPelsWidth==(DWORD)iCurWidth &&
         dmResolution.dmPelsHeight==(DWORD)iCurHeight &&
         dmResolution.dmBitsPerPel==(DWORD)iCurBitsPixel)// &&
        // dmResolution.dmDisplayFrequency==(DWORD)iCurFrequency)
      {
         ComboBox1->ItemIndex=iIndex;
      }
      iIndex  ;
      ZeroMemory(&dmResolution, sizeof(DEVMODE));
   }
}    void __fastcall TForm1::ChangeResolution(void)
{
   DEVMODE dmResolution;
   ZeroMemory(&dmResolution, sizeof(DEVMODE));
   int iCurrentMode=0;
   int iResult=DISP_CHANGE_BADMODE;
   AnsiString szResolution;       while(EnumDisplaySettings(NULL, iCurrentMode  , &dmResolution))
   {
      szResolution=IntToStr(dmResolution.dmPelsWidth) "x" 
         IntToStr(dmResolution.dmPelsHeight) ", " 
         IntToStr(dmResolution.dmBitsPerPel) " Bits ";// 
        // IntToStr(dmResolution.dmDisplayFrequency) " Hz";
      if(ComboBox1->Items->Strings[ComboBox1->ItemIndex]==szResolution)
      {
         dmResolution.dmFields=DM_PELSWIDTH | DM_PELSHEIGHT |
            DM_BITSPERPEL ;//| DM_DISPLAYFREQUENCY;
         iResult=ChangeDisplaySettings(&dmResolution, CDS_TEST);
         if(iResult==DISP_CHANGE_SUCCESSFUL)
         {
            ChangeDisplaySettings(&dmResolution, CDS_UPDATEREGISTRY);
         }
         break;
      }
   }
}
~我還在學習狀態希望多多向您學習~
kraen4468
初階會員


發表:66
回覆:112
積分:35
註冊:2003-12-04

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-05-19 15:11:20 IP:61.222.xxx.xxx 未訂閱
我再補充一下我怕我問的不夠詳細 下面的圖片 1024 X 768 會出現三個就是我的問題 ~我還在學習狀態希望多多向您學習~
a8960905
一般會員


發表:30
回覆:47
積分:20
註冊:2003-09-19

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-01-22 23:40:27 IP:24.159.xxx.xxx 未訂閱
RaynorPao 大大 謝謝您的提供, 但是下載範例好像失連了耶... (Jan 22, 2005)
系統時間:2024-05-04 22:36:04
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!