クライアント領域の立体枠の描画方法について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
wasawasa
記事: 94
登録日時: 11年前

クライアント領域の立体枠の描画方法について

#1

投稿記事 by wasawasa » 11年前

こんにちは、いつもお世話になっています。
APIを使ってウィンドウズ上で動くアプリを作ろうと今勉強中なのですが、アプリを作る中でWindows用のソフトウェアでよく使われている下図のような立体枠を使いたいと思いAPIを見て回っています。
様々なソフトで使われている以上、この枠を用意する何かしらのAPIがあると思い探しているのですが、中々見つからないので質問しました。
この立体枠を用意するAPIはあるのでしょうか?
また、この立体枠に何かしらの正式名称があればそちらも教えて頂けると幸いです。
どなたかよろしくお願いします。
添付ファイル
質問用.png
質問用.png (19.37 KiB) 閲覧数: 3016 回

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: クライアント領域の立体枠の描画方法について

#2

投稿記事 by みけCAT » 11年前

立体枠を自分で描画するのではなく、「ツールバー」を作ると楽かもしれません。
(よく知らないので、もしかしたら自分で描画しないといけないかもしれません)
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: クライアント領域の立体枠の描画方法について

#3

投稿記事 by みけCAT » 11年前

ツールバーのウィンドウに対し、SetWindowLong関数で、
拡張ウィンドウスタイルにWS_EX_CLIENTEDGEを追加するといいかもしれません

画像を見たら、ツールバーの下の方ですね。考え直したほうがよさそうです。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

ISLe
記事: 2650
登録日時: 14年前
連絡を取る:

Re: クライアント領域の立体枠の描画方法について

#4

投稿記事 by ISLe » 11年前

WS_EX_CLIENTEDGE拡張スタイルで良いと思いますが。
ただしAeroが有効だと変化しないようです。

自前で描画したいなら、DrawEdge関数を使うと良いでしょう。

wasawasa
記事: 94
登録日時: 11年前

Re: クライアント領域の立体枠の描画方法について

#5

投稿記事 by wasawasa » 11年前

返信ありがとうございます。
皆さんに提示していただいた物を読み込むうちに、立体枠は既にあるウィンドウを縁取るようにして描画するものであり、立体枠だけを作成するような物ではないという事が理解できました。
仮に私が提示した画像のようにするならばクライアント領域のツールバー以外の部分を覆うように新しいウィンドウを描画して、それを縁取るように描画する必要があるという方針が何となく見えてきたのでやってみたいと思います。
あと、返信が遅れてしまってすみませんでした。

閉鎖

“C言語何でも質問掲示板” へ戻る