2013-03-17 14 views
-1

這是相當愚蠢的問題,但仍然..有沒有辦法使用Win API功能旋轉屏幕?如何使用Win API函數旋轉屏幕?

+2

是的,這是可能的 - 一切都可能與API – deepmax 2013-03-17 16:09:35

+0

你的意思是在90度的增量,對不對? – chris 2013-03-17 16:17:19

+0

@deepmax先生,這個問題是真正的問題,它爲什麼關閉? – 2017-02-13 12:29:51

回答

1

試試這個代碼

DEVMODE dm; 
dm.dmSize=sizeof(DEVMODE); 
dm.dmDriverExtra=0; 
EnumDisplaySettings(NULL,ENUM_CURRENT_SETTINGS,&dm); 
dm.dmDisplayOrientation=DMDO_90; 
DWORD temp=dm.dmPelsHeight; 
dm.dmPelsHeight=dm.dmPelsWidth; 
dm.dmPelsWidth=temp; 

LONG ret; 
ret=ChangeDisplaySettings(&dm,0); 

返回值必須是ret == DISP_CHANGE_SUCCESSFUL。但是,如果一切正常,您應該看到結果。

-1

我怎麼會做:

  1. 屏幕捕捉得到的圖像。 (Possable)
  2. 然後根據需要旋轉/變換圖像。 (Possable)
  3. 用該圖像繪製屏幕而不是圖像窗口呈現。 (Possable,困難,並可能導致在步驟1中的問題)

編輯:這是假設你正在嘗試用任意角度不neccisarraly涉及90度角工作。

+0

這個詞是可能的。而且必然。另外,如何旋轉屏幕圖像?除非顯示設備是方形的,否則不適合! – 2013-03-17 16:34:07

+0

對不起,學習C++不是英文。 :)一種方法是將其作爲紋理插入到OpenGL中。否則,您將需要經過手工編寫OpenGL。移動像素,用背景色填充空白區域,裁剪圖像... – 2013-03-17 16:50:56

+1

如果屏幕是矩形的,旋轉90度會給你一張不適合的圖像。 – 2013-03-17 17:14:21