質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

Win32 API

Win32 APIはMicrosoft Windowsの32bitプロセッサのOSで動作するAPIです。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

2回答

2595閲覧

GUIをカスタマイズするプログラム

strike1217

総合スコア651

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

Win32 API

Win32 APIはMicrosoft Windowsの32bitプロセッサのOSで動作するAPIです。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

1グッド

1クリップ

投稿2016/12/16 00:17

編集2016/12/16 03:22

以前、C++ / win32 APIを使用してwindowsプログラミングをしていました。

前から疑問だったのですが、Windows GUIの look and feel ってどうやってカスタマイズしているのですか??
例えば、以下のようなものです。
リンク内容
このようなものを自分で作りたいです。

Linux であればgnomeの自作テーマを作ることはできますよね。

HDDの中にGUIを構成するボタンなどのデザインが保存されていて、それを表示してるだけなのですか??

「win32で外部のウィンドウハンドル取得して、カスタマイズする」という方法をやってみたのですが、これでは結構面倒ですし、1つのウィンドウのみ対象になってしまいます。

もし「GUIのデザインというのはハードディスクの中にそのデザインがイメージファイルとして入っている」なら、そのイメージ画像を別の変えてしまえば、自分好みの見た目に作り変えられますよね??
そのようなことってできるのでしょうか??

以下のようなサイトも見つけました。
リンク内容

どなたか教えてください。

maisumakun👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

.themeファイルはテキストファイルなので、テキストエディタで内容が確認できますが、中身は他のリソースを参照するようになっていて、ウィンドウのデザインなどは.msstylesファイルに定義されています。

とはいえ、「macOS風にする」ぐらいに豪快なことをしようと思えば、ウィンドウの描画システムから入れ替える必要が出てくるので、いくつかシステムDLLの差し替えが必要となるようです。

投稿2016/12/16 01:12

maisumakun

総合スコア145121

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

strike1217

2016/12/16 01:16

ありがとうございます。 .themeというファイルはwindowsに存在するファイルですか?
maisumakun

2016/12/16 01:27

はい、もともと付いている分もありますし、さっきの「macOS風」にもファイルがあります(ドットファイルではなくて、拡張子です)。
strike1217

2016/12/16 01:45

おお! 左様でございますか! 調べてみますね
guest

0

HDDの中にGUIを構成するボタンなどのデザインが保存されていて、それを表示してるだけなのですか??

そういうものもあるでしょう。しかしデザインにはいろいろな要素があります。イメージ、位置、形状(長方形限定なのか、任意のパスを許すかなど)状態変化による色の変化のさせかた等々。そのなかで単純なイメージで決まるもので画像データによって決まる部分もあれば描画論理で実装されている部分もあるでしょう。画像データによって決まる部分については画像データがDLLなどの内部に埋め込まれていることもあるでしょうしファイルシステム上にjpgなどのよく知られたフォーマットで置かれている場合もあるでしょう。最後にある「ファイルシステム上にjpgなどのよく知られたフォーマットで置かれている」場合のみ単純な画像ファイル置き換えでカスタマイズが可能ということになるでしょう。

Linux であればgnomeの自作テーマを作ることはできますよね。

これはカスタマイズ方法が仕様として公開されているのでできるということになります。X Window Systemのようなオープンソースのものは多くの開発者の手によって「色々な場面で広く適用できることをよし」として設計されている傾向があると思います。X Window Systemの例でいえばUnixベースのシステムでの適用が多いですがやろうと思えばWindowsベース上に搭載することもできます。またgnome以外のウィンドウマネージャーも搭載可能です。そのくらい柔軟に設計されているわけです。

一方Windowsはそこまでの柔軟性を必要とせずに設計されていると思います。Microsoftが「必要」と認めカスタマイズ方法を公開しているならその範囲でならカスタマイズは容易ですがその範囲を超えてしまうと「調べないとわからない世界」になってしまうと思います。興味に従ってそういうことをしたいという場合、基本的にはWindowsの仕組みを調べてその方法を知り非公開の内容であれば「自己責任でやってみる」ことになると思います。一般的に(多くのプログラマーも含めて)OSが提供する外観はカスタマイズ方法が公開されている範囲内で利用することが多いと思いますので「人があまりやらないこと」なら自分で調べてやるしかないと思います。

投稿2016/12/16 01:47

KSwordOfHaste

総合スコア18392

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

strike1217

2016/12/16 02:04

「画像データによって決まる部分もあれば描画論理で実装されている部分もある」 なるほど〜〜って思いました。 ありがとうございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問