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

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

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

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

C++

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

Q&A

2回答

632閲覧

ファイルを実行中も手動でウィンドウの端をカーソルで引っ張りウィンドウや文字や画像の大きさを変えられるようにしたい

R-ogiura

総合スコア60

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

C++

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

0グッド

0クリップ

投稿2019/11/17 00:44

画像や文字の大きさをプログラム自体に書き込んで変化させる方法はわかったのですが、
実行中のウィンドウの端をカーソルで引っ張りウィンドウと描画されている文字や画像の大きさを変える方法がわかりません。

#include <DxLib.h> int Key[256]; int gpUpdateKey() { char tmpKey[256]; GetHitKeyStateAll(tmpKey); for (int i = 0; i < 256; i++) (tmpKey[i] == 0) ? (Key[i] = 0) : Key[i]++; return 0; } class Str { const char* str; int frame; int pos; int count; public: Str(const char* str, int frame) : str(str), frame(frame), pos(0), count(0) {} void drawString(int x, int y, int color) { if (count == 0 && str[pos]) pos += 1 + IsDBCSLeadByte(str[pos]); if (++count == frame) count = 0; DrawFormatString(x, y, color, "%.*s", pos, str); } void reset() { pos = count = 0; } }; int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { SetFontSize(25); //サイズを64に変更 ??? SetFontThickness(10); //太さを8に変更 ??? ChangeFont("MS 明朝"); //種類をMS明朝に変更 ChangeFontType(DX_FONTTYPE_ANTIALIASING); //アンチエイリアスフォント SetGraphMode(780, 680, 32); // ウィンドウの大きさを指定 ChangeWindowMode(TRUE); // 全画面ではなくウインドウを使用 if (DxLib_Init() == -1) return -1; // DXライブラリ初期化処理 SetDrawScreen(DX_SCREEN_BACK); // 裏画面を使用する設定 SetWindowSizeChangeEnableFlag(FALSE, FALSE); //SetGraphMode(780, 680, 32); // 画面サイズは最大の780*680にしておく //SetWindowSize(780, 680); // 最初は 640x480 にしておく ??? int talk = 0; int Green = GetColor(0, 255, 0); int gh = LoadGraph("04.png"); Str str1("あいうえおあい\nあい", 50); // 6文字を 50フレームごとに 1文字追加 Str str2("かきくけこ", 50); // 6文字を 50フレームごとに 1文字追加 // 全部で 300フレーム(5秒) int t = 0; while (!ScreenFlip() && !ProcessMessage() && !ClearDrawScreen()) { gpUpdateKey(); if (talk == 0) { str1.drawString(100, 500, Green); } if (Key[KEY_INPUT_A] == 1) { talk = 1; } if (talk == 1) { str2.drawString(100, 500, Green); } if (++t == 60 * 9) { t = 0; str1.reset(); } // 9秒ごとにリセット LoadGraphScreen(50, 100, "04.png", TRUE); // 画像を描画する DrawExtendGraph(50, 300, 300, 600, gh, TRUE);//画像の倍率を変える } DxLib_End(); // DXライブラリ終了処理 return 0; }

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

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

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

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

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

guest

回答2

0

マウスのクリックイベントを拾ってきて、その後のマウスのドラッグ位置に合わせて、ウィンドウのサイズを変更するような処理を書きましょう。
また、それに合わせて文字の大きさ、画像の大きさを変更する処理も必要ですね

投稿2019/11/17 01:23

y_waiwai

総合スコア87719

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

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

0

コード中に現れる位置大きさに関わるすべての引数
windowサイズの増減比に合わせて調整することになります。

投稿2019/11/17 01:01

episteme

総合スコア16614

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問