おニューのパソコンで早速作ってるゲームやってみるか!

よし、ちゃんと動いてるな。ん?

なんかゲーム画面の角丸くね?



ということで、今回は開発者サイドで↑を修正するという記事です。(言語はC++)



プレイヤーサイドの方は↓のサイトで角丸をなくすツールが紹介されていたので、参考になるかもしれません。

Windows11でウィンドウやフォルダーの角丸を無効化する「Corner Sharpness」




まず、Windows11では仕様でウィンドウの角が丸くなってしまうようです。

↓Microsoftのサイトにそんな感じのことが書いてあります。

Windows 11 向けデスクトップ アプリケーションで角の丸めを適用する

今回は↑のページの『角の丸めを選択する方法』という項目でAPIについて書かれていたのでそれを参考に修正してみることにしました。



で、さっそくプログラムなんですが、必要なのは

1.ライブラリのリンク「dwmapi.lib」

2.ヘッダーのインクルード「dwmapi.h」

3.2行のプログラム

です。



1.ライブラリのリンク「dwmapi.lib」

まずプロパティで「dwmapi.lib」へのリンクを通してやります。



2.ヘッダーのインクルード「dwmapi.h」

3のプログラムを書くファイルの頭に書いておきます。

#include <dwmapi.h>


3.2行のプログラム

DWM_WINDOW_CORNER_PREFERENCE cornerround = DWM_WINDOW_CORNER_PREFERENCE::DWMWCP_DONOTROUND;
DwmSetWindowAttribute(windowhandle, DWMWINDOWATTRIBUTE::DWMWA_WINDOW_CORNER_PREFERENCE, &cornerround, sizeof(cornerround));

ウィンドウを表示させる前あたりに書くのがいいと思います。(後でも動作します。)

2行目のwindowhandleに角丸を修正したいウィンドウのハンドルを渡します。

ちなみに自分はDXライブラリを使ってゲームを作っているのでwindowhandleのところにGetMainWindowHandle()という関数を入れています。




なおった~~~







次回に続く≫