こんにちは、いつもお世話になっています。
APIを使ってウィンドウズ上で動くアプリを作ろうと今勉強中なのですが、アプリを作る中でWindows用のソフトウェアでよく使われている下図のような立体枠を使いたいと思いAPIを見て回っています。
様々なソフトで使われている以上、この枠を用意する何かしらのAPIがあると思い探しているのですが、中々見つからないので質問しました。
この立体枠を用意するAPIはあるのでしょうか?
また、この立体枠に何かしらの正式名称があればそちらも教えて頂けると幸いです。
どなたかよろしくお願いします。
クライアント領域の立体枠の描画方法について
Re: クライアント領域の立体枠の描画方法について
立体枠を自分で描画するのではなく、「ツールバー」を作ると楽かもしれません。
(よく知らないので、もしかしたら自分で描画しないといけないかもしれません)
(よく知らないので、もしかしたら自分で描画しないといけないかもしれません)
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: クライアント領域の立体枠の描画方法について
ツールバーのウィンドウに対し、SetWindowLong関数で、
拡張ウィンドウスタイルにWS_EX_CLIENTEDGEを追加するといいかもしれません。
画像を見たら、ツールバーの下の方ですね。考え直したほうがよさそうです。
拡張ウィンドウスタイルにWS_EX_CLIENTEDGEを追加するといいかもしれません。
画像を見たら、ツールバーの下の方ですね。考え直したほうがよさそうです。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: クライアント領域の立体枠の描画方法について
WS_EX_CLIENTEDGE拡張スタイルで良いと思いますが。
ただしAeroが有効だと変化しないようです。
自前で描画したいなら、DrawEdge関数を使うと良いでしょう。
ただしAeroが有効だと変化しないようです。
自前で描画したいなら、DrawEdge関数を使うと良いでしょう。
Re: クライアント領域の立体枠の描画方法について
返信ありがとうございます。
皆さんに提示していただいた物を読み込むうちに、立体枠は既にあるウィンドウを縁取るようにして描画するものであり、立体枠だけを作成するような物ではないという事が理解できました。
仮に私が提示した画像のようにするならばクライアント領域のツールバー以外の部分を覆うように新しいウィンドウを描画して、それを縁取るように描画する必要があるという方針が何となく見えてきたのでやってみたいと思います。
あと、返信が遅れてしまってすみませんでした。
皆さんに提示していただいた物を読み込むうちに、立体枠は既にあるウィンドウを縁取るようにして描画するものであり、立体枠だけを作成するような物ではないという事が理解できました。
仮に私が提示した画像のようにするならばクライアント領域のツールバー以外の部分を覆うように新しいウィンドウを描画して、それを縁取るように描画する必要があるという方針が何となく見えてきたのでやってみたいと思います。
あと、返信が遅れてしまってすみませんでした。