「●XVGA解像度変更」の編集履歴(バックアップ)一覧はこちら
「●XVGA解像度変更」(2009/05/31 (日) 17:29:00) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
*情報
作者名:はっぱ
引用元:[[なでしこプログラム掲示板「はっぱのサンプル集57」>http://www.himanavi.net/cgi/nade-bbs/cbbs.cgi?mode=al2&namber=734&rev=&no=0]]
リンク:[[●窓ハンドルフルスクリーン]]、[[●マウス消去]]、[[●解像度変更]]
*概要
解像度をXGAに変更します。
環境依存ですので成功する保証はありません。
XGAとは:1024×768ピクセルの解像度のこと。
*サンプルプログラム
XVGA解像度変更。
*//本体
●EnumDisplaySettings(lpszDeviceName,iModeNum,lpDevMode)=DLL("user32.dll","DWORD EnumDisplaySettingsA(LPCTSTR lpszDeviceName,DWORD iModeNum,LPDEVMODE lpDevMode)")
●ChangeDisplaySettings(lpDevMode,dwflags)=DLL("user32.dll","LONG ChangeDisplaySettingsA(LPCTSTR lpDevMode,DWORD dwflags)")
●ディスプレイセッティング列挙
セッティングに148を確保
セッティングリストは空
1のループ
もしEnumDisplaySettings(『』,回数-1,POINTER(セッティング))=0ならば、抜ける
ビット数はセッティングの105を『INT』でバイナリ取得
横解像度はセッティングの109を『INT』でバイナリ取得
縦解像度はセッティングの113を『INT』でバイナリ取得
ディスプレイフラグはセッティングの117を『INT』でバイナリ取得
もしディスプレイフラグが0ならば、ディスプレイフラグは『カラー』
もしディスプレイフラグが1ならば、ディスプレイフラグは『白黒』
もしディスプレイフラグが2ならば、ディスプレイフラグは『カラー:インタレース』
もしディスプレイフラグが3ならば、ディスプレイフラグは『白黒:インタレース』
画面周波数はセッティングの121を『INT』でバイナリ取得
セッティングリストに(横解像度&『×』&縦解像度&『/』&ビット数&『bits/』&画面周波数&『Hz/』&ディスプレイフラグ)を配列追加
セッティングリストで戻る
!ビット数変更=$40000
!横変更=$80000
!縦変更=$100000
!周波数変更=$400000
●XVGA解像度変更
セッティングに148を確保
新規セッティング番号は空
ディスプレイセッティング列挙で反復
もし(対象が『1024×768』に正規表現マッチ)ならば
新規セッティング番号は回数-1
もし新規セッティング番号が空でなければ
もしEnumDisplaySettings(『』,新規セッティング番号,POINTER(セッティング))=0でなければ
セッティングの41に(横変更+縦変更)を『INT』でバイナリ設定
もしChangeDisplaySettings(POINTER(セッティング),0)が0ならば、戻る
『エラー』と言う
----
#comment()
----
*情報
作者名:はっぱ
引用元:[[なでしこプログラム掲示板「はっぱのサンプル集57」>http://www.himanavi.net/cgi/nade-bbs/cbbs.cgi?mode=al2&namber=734&rev=&no=0]]
リンク:[[●窓ハンドルフルスクリーン]]、[[●マウス消去]]、[[●解像度変更]]
*概要
解像度をXGAに変更します。
環境依存ですので成功する保証はありません。
XGAとは:1024×768ピクセルの解像度のこと。
*サンプルプログラム
XVGA解像度変更。
*//本体
●EnumDisplaySettings(lpszDeviceName,iModeNum,lpDevMode)=DLL("user32.dll","DWORD EnumDisplaySettingsA(LPCTSTR lpszDeviceName,DWORD iModeNum,LPDEVMODE lpDevMode)")
●ChangeDisplaySettings(lpDevMode,dwflags)=DLL("user32.dll","LONG ChangeDisplaySettingsA(LPCTSTR lpDevMode,DWORD dwflags)")
●ディスプレイセッティング列挙
セッティングに148を確保
セッティングリストは空
1のループ
もしEnumDisplaySettings(『』,回数-1,POINTER(セッティング))=0ならば、抜ける
ビット数はセッティングの105を『INT』でバイナリ取得
横解像度はセッティングの109を『INT』でバイナリ取得
縦解像度はセッティングの113を『INT』でバイナリ取得
ディスプレイフラグはセッティングの117を『INT』でバイナリ取得
もしディスプレイフラグが0ならば、ディスプレイフラグは『カラー』
もしディスプレイフラグが1ならば、ディスプレイフラグは『白黒』
もしディスプレイフラグが2ならば、ディスプレイフラグは『カラー:インタレース』
もしディスプレイフラグが3ならば、ディスプレイフラグは『白黒:インタレース』
画面周波数はセッティングの121を『INT』でバイナリ取得
セッティングリストに(横解像度&『×』&縦解像度&『/』&ビット数&『bits/』&画面周波数&『Hz/』&ディスプレイフラグ)を配列追加
セッティングリストで戻る
!ビット数変更=$40000
!横変更=$80000
!縦変更=$100000
!周波数変更=$400000
●XVGA解像度変更
セッティングに148を確保
新規セッティング番号は空
ディスプレイセッティング列挙で反復
もし(対象が『1024×768』に正規表現マッチ)ならば
新規セッティング番号は回数-1
もし新規セッティング番号が空でなければ
もしEnumDisplaySettings(『』,新規セッティング番号,POINTER(セッティング))=0でなければ
セッティングの41に(横変更+縦変更)を『INT』でバイナリ設定
もしChangeDisplaySettings(POINTER(セッティング),0)が0ならば、戻る
『エラー』と言う
----
#comment()
----