動態設定顯示的解析度,色彩,頻率 |
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
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 發送簡訊給我 |
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 發送簡訊給我 |
|
a8960905
一般會員 發表:30 回覆:47 積分:20 註冊:2003-09-19 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |