ウィンドウモード、フルスクリーンモードの切り替えが行えるゲームの作成を行っています。
切り替え処理自体はなんとか作成できたのですが、ゲームを起動した時のウィンドウと、フルスクリーンからウィンドウに切り替えた際ではウィンドウの枠のデザインが異なっているため、どちらかに統一したいのですが設定の記述をどのように行うのかがわかりません。設定方法について教えてもらえないでしょうか。
ゲーム制作はWindows7、64bitのOSで制作しています。
VisualStudio 2013 proを使用していて、プラットフォームツールセットはv120を選択しています。
ゲーム起動時にはWindows7のエクスプローラなどと同じデザインのウィンドウの見た目ですが、フルスクリーンからウィンドウに切り替えた際にはWindowsXPかVISTAなどの古いデザインになるようです。
ウィンドウの枠の違いは以下の通りです。
①ゲーム起動時にウィンドウの枠は半透明で、下にあるものが透けて見えるが、ウィンドウ切り替え後は不透明になる。
②ウィンドウ右上の最小化ボタン、最大化ボタン、閉じるボタン、のデザインが変わっている。ボタンの形と位置、オンカーソルした際のエフェクトが違う。
参考までに、ウィンドウの作成は以下のように行っています。
WNDCLASSEX wndclass;
{
(wndclassの値の設定は省略します。)
RegisterClassEx(&wndclass);
//メインウィンドウ作成
AdjustWindowRectEx(&g_WindowRect, g_WndStyle, FALSE, 0);
g_hwndApp = CreateWindowEx(0, ”ClassName”, ”ProgName”,
WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX | WS_SYSMENU,
CW_USEDEFAULT, CW_USEDEFAULT, g_WindowRect.right - g_WindowRect.left, g_WindowRect.bottom - g_WindowRect.left,
(HWND)NULL,(HMENU)NULL,
g_hInstApp, (LPSTR)NULL);
SetWindowPos(g_hwndApp, 0,
(::GetSystemMetrics(SM_CXSCREEN) - g_WindowRect.right + g_WindowRect.left) / 2,
(::GetSystemMetrics(SM_CYSCREEN) - g_WindowRect.bottom + g_WindowRect.top) / 2,
g_WindowRect.right - g_WindowRect.left, g_WindowRect.bottom - g_WindowRect.top, SWP_NOZORDER);
}
フルスクリーンからウィンドウへの切り替えは以下の通りです。
ZeroMemory(&d3dppApp, sizeof(d3dppApp));
d3dppApp.Windowed = TRUE; // ウィンドウモード
d3dppApp.SwapEffect = D3DSWAPEFFECT_DISCARD; // 垂直同期でフリップ
d3dppApp.BackBufferFormat = dmode.Format;
d3dppApp.BackBufferCount = 1;
d3dppApp.MultiSampleType = D3DMULTISAMPLE_NONE; // マルチサンプリング無し
d3dppApp.hDeviceWindow = g_hwndApp; // 要らない?
SetWindowLong(g_hwndApp, GWL_STYLE, WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX | WS_SYSMENU);
SetWindowLong(g_hwndApp, GWL_EXSTYLE, 0);
(中略)
SetWindowPos(g_hwndApp, 0,
(::GetSystemMetrics(SM_CXSCREEN) - g_WindowRect.right + g_WindowRect.left) / 2,
(::GetSystemMetrics(SM_CYSCREEN) - g_WindowRect.bottom + g_WindowRect.top) / 2,
g_WindowRect.right - g_WindowRect.left, g_WindowRect.bottom - g_WindowRect.top, SWP_NOZORDER);
何かご存じの方は教えていただけると助かります。よろしくお願いします。
ウィンドウのデザインが変わってしまう。
ページ移動
- 掲示板
- ↳ C言語何でも質問掲示板
- ↳ 四聖龍神録2 掲示板
- ↳ 四聖龍神録Plus掲示板
- ↳ AerobeatPlus掲示板
- 副次コンテンツ
- ↳ 作品お披露目掲示板
- 登録ユーザー用コンテンツ
- ↳ 登録ユーザー掲示板
- コミュニティフォーラム
- ↳ みんなでソースコードをレビューしよう
- ↳ 3DCGソフト使用者のコミュ
- ↳ Win32 API
- ↳ 組み込み系スクリプト言語をつかってみよう
- ↳ 東方好きあつまれ
- ↳ C言語誰でも交流サイト - mixC++ -
- ↳ ビット論理演算が好きな人♪
- ↳ 企画関係について語ろうか
- ↳ エフェクトアニメーション
- ↳ 学生で集まってみる?
- ↳ DirectX SDK
- ↳ マイコン/FPGA電子工作部
- ↳ PHPに可能性を無限大
- ↳ Code Golf を楽しもう!
- ↳ 作曲している人で話し合ってみませんか♪
- ↳ ソフト制作コミュ
- ↳ El Shaddai - エルシャダイ -
- ↳ PSPプログラミング
- ↳ CINEMA 4D
- ↳ お絵かきコミュニティ
- ↳ 素材作ってみたよ!
- ↳ OpenGL
- ↳ OpenCV
- ↳ RPGを作りたい!
- ↳ ポケモン好き集まれ
- ↳ ならば .NETをやらないか?
- ↳ 1から勉強してみないか?
- ↳ 赤髪超大好き♪
- ↳ ノースリーブ
- ↳ 伝説の戦士プリキュアを語ろう
- ↳ コンテストコミュニティー
- ↳ DXライブラリ何でも質問コミュニティ
- ↳ 四聖龍神録コミュニティ
- ↳ HTML/CSS/JavaScript
- ↳ 生放送コミュ
- ↳ サンプルを共有するコミュニティ
- ↳ おすすめマーカー
- ↳ minecraft
- ↳ Xtal Language
- ↳ マインクラフト
- ↳ 数学やらないか?
- ↳ 習ったことをプログラムで表してみよう!
- ↳ 小物アプリ作成や ら な い か
- ↳ AIの可能性は無限大
- ↳ 自作OS製作(GUI入門)[雑談]
- ↳ リレーコーディング
- ↳ Unix/Linux
- ↳ 競技プログラミングごっこやろうぜ
- ↳ 夏休みプログラミングイベント2012 in MixC++
- ↳ D言語を広めよう
- ↳ Scala布教の会
- ↳ 3Dゲーム作ろうぜ!モデリング~プログラミングまで
- ↳ 言語に興味を持ったら是非!!
- ↳ レイヴンズ・ネスト
- ↳ C言語とC++言語のコミュニティー!
- ↳ 放課後ふぁんたじあ
- ↳ マイ サンプルズ
- ↳ ガンヲタの館
- ↳ 歯科機器
- ↳ 歯科機器情報
- ↳ 52歳からはじめるC言語
- mixC++更新・仕様変更履歴