轉 WinCE6 0下如何動態設定系統解析度

2021-09-13 08:30:24 字數 1393 閱讀 5829

由於wince的顯示驅動是本地驅動,不能像流驅動一樣動態載入。所以,一般情況下不能動態修改和除錯。前兩天曾介紹過一種在應用程式中針對相同解析度但不同尺寸的lcd的除錯方法。這裡繼續介紹wince6.0下動態設定系統解析度的一種方法。我們可以通過系統提供的changedisplaysetting***()函式實現動態修改系統的解析度。

設定系統解析度的參考**如下:
複製**

1 dword dwwidth, dwheight;

2 devmode dm;

34 dwwidth = getdlgitemint(idc_combo_width, null, false);

5 dwheight = getdlgitemint(idc_combo_height, null, false);

6 memset((char*)&dm, 0, sizeof(devmode));

7 dm.dmsize = sizeof(devmode);

8 dm.dmpelswidth = dwwidth;

9 dm.dmpelsheight = dwheight;

10 dm.dmfields = dm_pelswidth | dm_pelsheight;

1112 if (disp_change_successful == changedisplaysetting***(null, &dm, null, 0, null))

13 複製**

通過這個函式,我們還可以實現螢幕的旋轉,參考**如下:

複製**

1 dword dwangle;

2 devmode dm;

34 dwangle = senddlgitemmessage(idc_combo_angle, cb_getcursel, null, null);

5 memset((char*)&dm, 0, sizeof(devmode));

6 dm.dmsize = sizeof(devmode);

7 dm.dmdisplayorientation = dmdo_0 + (dwangle <= dmdo_180 ? dwangle : 4);

8 dm.dmfields = dm_displayorientation;

910 if (disp_change_successful == changedisplaysetting***(null, &dm, null, 0, null))

11 複製**

動態修改系統解析度和旋轉螢幕的效果圖如下。

image

image

image

測試平台原始解析度是800*480,先後將解析度改為640*480和480*272,並在480*272的解析度下將螢幕旋轉90°。

如何安裝WinCE6 0

說實話,這個也寫一篇blog,實在不應該。今天重新安裝了wince6.0的開發環境,感覺還是挺累的。所以還是寫一篇吧,這個寫起來比較簡單,也算是這個月最後一篇blog了。下面開始 1.首先安裝visual studio 2005。7.當然,以後如果出了新的補丁,也要繼續打下去了。現在要公升級.net...

盤點WinCE6 0下的小遊戲

以下介紹的所有遊戲在下面平台下測試 ok 軟體平台 wince6.0 硬體平台 深圳友堅恒天科技 arm11 開發板 ut s3c6410 開發板 當前,基於 arm核的 cpu效能越來越高,比如三星的 arm11 cpu s3c6410 其主頻支援 533 667mhz 最高甚至可以達到 800m...

wince6 0下調整工作列和工作區

1 將工作列提到視窗頂端 wince 的整個視窗分為工作區 workarea 和動作欄 taskbar 一般預設為動作欄在底端總是顯示在最前面,而工作區 workarea 就是除去動作欄所剩餘的空間,他們的視窗定義都在目錄 public shell oak myshell ceshell explo...