• ベストアンサー

SDI形式での直接文字表示の方法について

こんにちは、前に一度書いたものです。日数が経ってしまってすいませんでした。 今悩んでることを率直に聞いてみたいと思います。よろしくお願いします。 今SDI形式でタイピングソフトを作っているのですが、お題が表示され、その下に文字を書きこんでいくという画面でお題となる文字列を表示させるのは簡単なんですが、その下に直接文字を打ちこんでいくという作業がどうやっていいかわかりません。どんな関数を使っていいのかもわからないのでできれば詳しく教えてください。自分の中の考えでこの問題を解こうと考え付いたことはSDIからその画面だけダイアログを表示させてそこに入力させて、SDIにまた戻ってくるということなのですが、これが実現可能なのかとういことを今調べているのですが中々すすみません。そして、やはり文字列の直接入力はSDIでは難しいのでしょうか?

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

  • ベストアンサー
  • alfeim
  • ベストアンサー率58% (114/195)
回答No.1

文字を描画するのは DrawText() DrawTextEx() TextOut() などのAPIを使えば大丈夫でしょう。 色、大きさ、フォントなどを変えたい場合はデバイスコンテキストの操作をする必要があります。ここで全部を書けるほど簡単な処理ではないので本屋さんなり図書館なり行って書籍を当たりましょう。 「Win32アニメーションプログラミング」や「Inside VisualC++」(ちょっと高いか)、「Inside Windows」当りがいいんじゃないでしょうか? 文字の取得は深く考えないならWM_CHARメッセージのハンドラで処理を書き、キーリピートの防止など、いろいろ細工を施すのであればWM_KEYUPやWM_KEYDOWNなどのハンドラで処理すれば大丈夫だと思います。 MFCベースで作られているのであればViewクラスのそれぞれのメッセージハンドラで引数として渡されてきます。 上記の方法では文字列ではなく押された文字やキーが帰るだけですので受け取った入力をもとに文字列に直す必要があります。

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

その他の回答 (1)

  • uyama33
  • ベストアンサー率30% (137/450)
回答No.2

あまり参考にはならないかも知れませんが、 同じようなことがあったので書きます。 1.エディットコントロールと同じようなものを自分で作ろうとしました. 2.イベントハンドラーのなかでキーイベントを取り出し処理しようとしたのですが、アルファベットの処理はできるのですが、漢字変換が上手くできません。 文字カーソル(キャレット)の場所を制御できなかったのです。 3.使っていたFEPはエイトクでした。 4.ジャストシステムのホームページにFEPを使って漢字変換するときに必要となる DLLがあります。 5.このDLLを使えばできると思います。

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

関連するQ&A