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

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

新規登録して質問してみよう
ただいま回答率
85.48%
C++

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

Q&A

0回答

1685閲覧

他のウィンドウにオーバーレイ表示する方法

退会済みユーザー

退会済みユーザー

総合スコア0

C++

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

0グッド

0クリップ

投稿2019/01/30 09:32

編集2019/01/31 09:02

他のウィンドウに好きな文字を表示させる方法

実現したいことはタイトルの通りで、例えばウィンドウフルスクリーン(ボーダーレス)の状態でゲームをしてるときに
予め用意しておいた歌詞などの文字列をゲーム画面上に表示させたいのですが、
いくら調べても参考になるものが見つからなかったので丸投げする形になってしまいますが
その方法を教えてほしいです。
言語はできればC++でお願いしたいですが、知っていることがあれば他言語でも教えてほしいです。
わがままな質問ですみません、、、

追記

すいません、OS書くのすっかり忘れてました、、、
OSはwindows10 64bitです。

tmpさんのいう「常に最前面に表示」という選択肢も見つけたのですが、マウスで視点移動するゲームなのでマウスカーソルが出てきてマウスの反応が最前面のウィンドウに吸われてしまうのではないかと考えたのですが、、、それも回避して見た目、操作上オーバーレイ表示とほとんどかわらないものにできるのであれば教えてほしいです!それが無理ならやはりできれば他のwindowに表示させる方法がいいです、、、

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

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

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

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

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

takabosoft

2019/01/30 09:54

低評価付いてしまうかもですが、とりあえずOSは記載してください。質問欄は編集できます。
tmp

2019/01/31 03:30

ゲームWindowそのものではないですが、そのゲームWindowより前にWindowを置くことでできるかもしれません。「常に手前」「TopMost」などで検索するとやり方がでてきます。 ゲームWindow自体が常に手前のフラグがついている場合がありますので、その場合は、この方法では、できないかもしれません。 また、プログラムで組まなくても任意のウィンドウを常に手前にするツールもあるようなので一度それで試すことも可能です。 希望するのは、他のWindowに文字を表示させる方法ですか?
tmp

2019/02/01 09:21

拡張ウィンドウスタイルにWS_EX_LAYERED | WS_EX_TRANSPARENTを指定すれば、透過色でないところもクリック等スルーされます。 (透過色や透明度SetLayeredWindowAttributesで) ウィンドウの背景色を透過色とすれば、文字だけ表示されます。文字だけ表示だと醜くなるときがあるので縁取りなどの工夫がいると思います。 あとは問題は、ゲームによっては、TopMost同士の最前面の取り合いです。いい方法は知りません、定期的に前にすることで表示はされますが、背面になってる時みえないので点滅のようになります。いい方法があれば回答お願いします。 別の方法だとDirectXで、ビデオカードが対応していればオーバーレイがあったと思いますが、やったことがありませんので、その方法でやった時には、書いてくれるとありがたいです。(普通のスクリーンショットとっても黒くなるってやつ?) 他のWindowに文字を表示の方法が、描画させる方法だとDLLのフック等でできる可能性はありますが、個別にゲームソフト自体の解析も必要になると思われます。チートと判断される可能性も高いです。
takabosoft

2019/02/04 01:35

tmpさんのおっしゃるとおり、常に最前面+レイヤードウィンドウ+マウスイベント透過、が期待されている方法かと思います。 ただ、私の情報が古い可能性もありますが、例えばDirectXを使ったフル画面のゲームでは画面を排他モードで利用している場合があり、他のウィンドウをかぶせて表示できない可能性が一点、あと、DirectXの仕組み上、表画面と裏画面を交互に切り替えてアニメーション等を行っているため、ウィンドウを出せても激しくちらつく可能性があります。 その辺はゲームの作り次第なのでとにかくいろいろやってみてくださいとしか言えませんが。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問