1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【C++】ウィンドウスタイルを維持しながらタイトルバーを消す方法

Last updated at Posted at 2020-10-19

C++/Win32でテキストエディタを作成しています。自分のブログでも書いたのですが、海外の方で悩まれてる方が多そうなのでこちらでも記載。ウィンドウスタイルを維持しながらタイトルバーを消す方法です。
タイトルバーを自作したい人向けです。タイトルバーを自作したい人っていますか?

C++でやるならこれ一択と思いました。私が調べて実装した内容がほぼすべて網羅されているように思います。対象OSもWindows7/8/8.1/10なので十分ですね。

BorderlessWindow
https://github.com/melak47/BorderlessWindow

ただ、このウィンドウにも問題があって、ウィンドウスタイルを残すために DwmExtendFrameIntoClientArea で上下左右に 1px 枠線を付けているのですが、ウィンドウの色が白であればいいんですが黒にすると目立っちゃうんですよね。

解決策が見つからず悩んでいたのですが、この枠線(非クライアント領域)は GDI+ だと上書きできるようです。もし、悩んでいる方がいたら是非試してみてください。ちなみにDirect2Dでも上書きできました。アルファ値を設定できる描画だと上書きできるようです。

・変更前の白枠線がある状態
無題.png
・GDI+で青線上書後
無題1.png

※タイトルバーだけ消して、ウィンドウの影やエフェクトはそのままです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?