改變第二個螢幕解析度 |
答題得分者是:taishyang
|
BCBNPC
一般會員 ![]() ![]() 發表:14 回覆:15 積分:5 註冊:2008-11-25 發送簡訊給我 |
大家好:
在我的電腦上,有兩個螢幕 一般來控制時,我用 Screen->Monitors[0]、Screen->Monitors[1]去控制第1、2個螢幕 但如題,若要只改變第二個螢幕的解析度,一直做不到 我有找許多相關文章,做出來卻變成只改變第一個螢幕解析度@@... 相關文章:delphi.ktop.com.tw/board.php 我的程式碼: 我這個做法,螢幕只會閃一下,不做動作 [code cpp] void __fastcall TForm1::Button1Click(TObject *Sender) { BYTE a[] = "\\.\Display2"; DEVMODE DeviceMode; strcat( DeviceMode.dmDeviceName, a ); DeviceMode.dmSize = sizeof(TDeviceMode); DeviceMode.dmPelsWidth = 1280; DeviceMode.dmPelsHeight = 1024; DeviceMode.dmFields = DM_ORIENTATION || DM_PELSWIDTH || DM_PELSHEIGHT; ChangeDisplaySettings( &DeviceMode, CDS_UPDATEREGISTRY); } [/code] 我用另外一個做法,會變成改變第一個螢幕解析度: [code cpp] void __fastcall TForm1::Button4Click(TObject *Sender) { DEVMODE deDisplayMode, deCurDisplayMode; EnumDisplaySettings( NULL, ENUM_CURRENT_SETTINGS, &deCurDisplayMode); EnumDisplaySettings( NULL, ENUM_CURRENT_SETTINGS, &deDisplayMode); unsigned char a[] = "\\.\Display2"; strcat( deDisplayMode.dmDeviceName, a ); deDisplayMode.dmPelsWidth = 1280; deDisplayMode.dmPelsHeight = 1024; deDisplayMode.dmSize=sizeof(deDisplayMode); ChangeDisplaySettings(&deDisplayMode, CDS_UPDATEREGISTRY); } [/code] 請問各位,該如何修改呢??謝謝! |
taishyang
站務副站長 ![]() ![]() ![]() ![]() ![]() ![]() 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
BCBNPC
一般會員 ![]() ![]() 發表:14 回覆:15 積分:5 註冊:2008-11-25 發送簡訊給我 |
抱歉~
請問做法是? 真是糟糕...經大大一提 我才發現多了個"Ex"...下次要看仔細了!.. ------------------------------------------------------------------------ 我剛剛試了一下 [code cpp] ChangeDisplaySettingsEx( NULL, &DeviceMode, NULL, CDS_UPDATEREGISTRY, NULL ); [/code] 還是沒有辦法,所以是我搞錯使用方式了嗎?~
編輯記錄
BCBNPC 重新編輯於 2009-09-10 16:59:23, 註解 無‧
|
BCBNPC
一般會員 ![]() ![]() 發表:14 回覆:15 積分:5 註冊:2008-11-25 發送簡訊給我 |
大家好:
我參考了一篇 寫出的結果如下 雖然是會調整(因為我用CDS_RESET),但是不是調整成1280*1024 該如何處置呢?~ [code cpp] int status; DISPLAY_DEVICE dv; DEVMODE dm; POINTL pt; dv.cb = sizeof(dv); dm.dmSize = sizeof(dm); dm.dmFields = DM_POSITION; dm.dmPelsWidth = 1280; dm.dmPelsHeight = 1024; status = EnumDisplayDevices( NULL, 1, &dv, 0); status = EnumDisplaySettings( dv.DeviceName, ENUM_CURRENT_SETTINGS, &dm ); status = ChangeDisplaySettingsEx( dv.DeviceName, &dm, NULL, CDS_RESET, NULL ); if( status == DISP_CHANGE_SUCCESSFUL ) ShowMessage( "OK" ); [/code] |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |