• ベストアンサー

VC#2005で逆さ文字を表示する

Visual C# 2005の環境で逆さ文字をLabel等のコントロールに表示させる事は出来ますでしょうか? 可能であれば、その手順を教えてください。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

WinAPIの StretchBltを使えば出来そうです   [DllImport("gdi32")]   public static extern int StretchBlt(IntPtr hdc1,     int x1, int y1, int w1, int h1,     IntPtr hdc2, int x2, int y2, int w2, int h2, uint rop);   const uint SRCCOPY = 0x00CC0020; といった具合にAPI宣言をします ラベルのペイントイベントなどで Graphics g = this.CreateGraphics(); g.DrawString("Sample", label1.Font, Brushes.Blue, new Point(0, 0)); IntPtr hDC = e.Graphics.GetHdc();  // 最初の100,0,56,24が Point(100,0) Size(56,24)へ描画  // 後ろがPoint(56,0) Size(-56,24) つまり Rect(0,0,56,24)を表します StretchBlt(hDC, 100, 0, 56, 24, g.GetHdc(), 56, 0, -56, 24, SRCCOPY); e.Graphics.ReleaseHdc(hDC); g.ReleaseHdc(); g.Dispose(); といった具合です 元の文字列の描画を フォームの0,0付近にしていますがこれを適当な大きさのImageオブジェクトに置き換えてください 描画する文字列にあわせて StretchBltの各座標は適宜修正してください

shis
質問者

お礼

WinAPIはまだ勉強中のため理解するのに若干苦労しましたがなんとか使う事が出来ました。 どうもありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.2
shis
質問者

お礼

ご回答ありがとうございます。 これは比較的シンプルなやり方で良いですね。 WinAPIでの実現に挫折したらこちらを使おうと思います。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ワードで逆さ文字入力

    ワードで逆さ文字を表示するにはどうしたらいいでしょうか。 ワードで文章を作成したのち、プリントした用紙を2つ折りにした時、裏表とも同じ方向に文字をが表示させるため、通常表示と逆さ表示を作成したいのです。

  • アルファベットを逆さ文字にする事は可能でしょうか?

    エクセル2010です。 文字を逆さにしたいのですが セルの書式設定でフォントを「@MS Pゴシック」にして 配置を90度にしたら確かに出来たのですが アルファベットだと横向きになってしまいます。 リンクの貼り付けで半句 この方法でアルファベットを逆さ文字にする事は可能でしょうか? 画像の文字はアルファベットのaです。

  • VC++でラベルに表示できない[.NET]

    VC++でラベルに表示できない[.NET] 以下のプログラムですがエラーが出ます。 #include "stdafx.h" #include "Form1.h" using namespace CursorXY1; [STAThreadAttribute] int main(array<System::String ^> ^args) { static POINT Point; // コントロールが作成される前に、Windows XP ビジュアル効果を有効にします Application::EnableVisualStyles(); Application::SetCompatibleTextRenderingDefault(false); // メイン ウィンドウを作成して、実行します Application::Run(gcnew Form1()); label1->Text="これはラベルです"; return 0; } エラー内容: 1>.\Form1.cpp(27) : error C2065: 'label1' : 定義されていない識別子です。 1>.\Form1.cpp(27) : error C2227: '->Text' : 左側がクラス、構造体、共用体、ジェネリック型へのポインタではありません。 1> 型は ''unknown-type'' です。 ヘッダーファイルに「Form1.h,resource.h,stdafx.h」があります。 Designerでlabel1を設置しました。 Windowsフォームアプリケーションを選択しました。 初心者ゆえにずっとつまいずいていて、このたび質問させていただくことになりました。 よろしくお願いします。

  • VC++でBitmapとText文字を表示させたいのですが、

    VC++でBitmapとText文字を表示させたいのですが、 Bitmap上に、Rectを作成しTextを表示させると、 OSや画面設定等により、配置が微妙に変わってしまいます・・・ そこで、 BitmapとTextを合成して、新たにBitmapを作成できれば、 Bitmapなので、画面設定等には影響しないかと思っておりますが、 新たなBitmapの作成は可能なのでしょうか? また、Bitmapを作成せずに、OS等に依存しない方法はありますでしょうか? 環境は、Microsoft Visual Studio 2008です。

  • Aの逆さの記号の出し方

    Aの逆さの文字をパソコンに表示させるにはどうしたらいいですか?また、名前はついているのでしょうか?

  • Javaで文字の角度を変えて表示させたい。

    JavaでdrawStringを使って文字を出力しますが、180度回転した文字 逆さ文字を表示させたいのですが、どのように記述すればよいのでしょうか? g.drawString("あ", 10,10); //あを逆さにしたい。 また、180度でなく、好みの角度の表示も可能でしょうか?

    • ベストアンサー
    • Java
  • Word2000文書でのコントロールツールの使い方が(初心者)

    Word文書のコントロール(CommandButton1)を押して、 Label1に文字を表示させたいのですが、 いろいろヘルプを読んでも分かりません。助けてください。 Word文書に コントロールツールボックス から CommandButton1 と Label1 をオブジェクトとして置きました。 コントロールツールボックス の デザインモードをクリックして、 CommandButton1 をクリックして、 Microsoft Visual Basic のウィンドウを開きました。 コードを以下のように記述しました。 Private Sub CommandButton1_Click() Label1.Caption = "文字を表示します" End Sub コントロールツールボックス の デザインモードを終了しまして、 CommandButton1 を クリックすると、 Label1 には確かに、「文字を表示します」と表示されました。 ・・・ここまではいいのですが、 このWord文書を名前をつけて保存したあと再び開くと、 CommandButton1 を押しても、何もおこりません。 どうしてでしょうか?

  • C# Label文字を徐々に浮かび上がらせるには?

    フォームにlabel文字を貼り付けます labelの背景色は透過色を指定します その状態で文字自体のOpacityを0から100に上げて、文字がフォーム上に徐々に浮かび上がるようなイメージを作りたいのです でもlabelコントロールにはOpacityが見当たりません どのようにすれば実現できるでしょうか? label以外のコントロールでも結構です、教えてください ワンワンわぁわぁ~わぁ~ん~!!!

  • VC++ 5.0 ProとVC++ 2008 Stanの両方を持ってい

    VC++ 5.0 ProとVC++ 2008 Stanの両方を持っているのですがどちらを先に勉強したら良いですか? Visual C++ 5.0 Professionalを勉強するのは時代遅れだからやめた方がいいですか? Visual C++ 2008 Standardを勉強した方がいいですか? 参考書も全く同じ著者(林晴比古)の書いたVisual C++5.0入門ビギナー編とVisual C++ 2008ビギナー編を持っているのですが、Visual C++ 2008ビギナー編の方を読んだ方が良いですか? 古い環境は簡単なのですが勉強する意味はないですか? 新しい環境にチャレンジした方が良いですか? Visual C++ 5.0は今使われているのですか?

  • Labelコントロールに数字を代入する

    開発環境はMicrofoft visual stdio 2005 で開発言語はC#を使い、Windousアプリケーションでプログラミングしているのですが LabelにInt型の変数の中身を代入する方法がわかりません。 ソースコードで書くと int a = 10; label1.Text = a;//こうするとInt型をString型に変換できませんと         //で る 参考書などには数字を表示したいならTextBoxを使いなさいとよく書かれているのですが、今のプログラムはユーザーに数字の表示を変えられるといけないので、悩んでいます。 どなたかLabelにInt型を入れる方法か、ユーザーがコントロールできないようなLabelに代わるものを教えていただけないでしょうか>< よろしくお願いします。