• ベストアンサー

エディットボックスとプレグレスコントロール

今までCをやっており、最近C++.NETをやり始めたものです。 参考書片手に頑張っているのですがなかなかうまくいけません。 基礎的な事かもしれませんが、分かる方は教えてくださいm(_ _)m 開始ボタンを押すとエディットボックスにフォーカスをあわせて、 エディットボックスに文字が入力されるとそれにあわせてプログレスコントロールを動かしていきたいのです。 そして入力数が50になったら処理を終了させたいです。 フォーカスをあわすまではいけるのですが、そこから先が分かりません。もしよろしければ誰か教えてください。

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

  • ベストアンサー
  • buihyaku
  • ベストアンサー率29% (97/326)
回答No.1

エディットボックスのEN_CHANGEメッセージをハンドルすればエディットボックスに文字が入力されるたびに、処理が飛んできます。 そこでプログレスバーを進めればよいとおもいます。 EN_CHANGEハンドラは文字が削除されても飛んでくるので、そのつどEditコントロールの文字数をチェックしてプログレスバーを正しい位置にセットしてあげる必要があるかもしれません。

homelike
質問者

お礼

早い回答ありがとうございます! そして気づくのが遅くなって申し訳ありません。 言われたとおりにやったら普通に出来ました。ありがとうございます。 // TODO : これが RICHEDIT コントロールの場合、まず、CDialog::OnInitDialog() 関数をオーバーライドして、 // OR 状態の ENM_CORRECTTEXT フラグをマスクに入れて、 // CRichEditCtrl().SetEventMask() を呼び出さない限り、 // コントロールは、この通知を送信しません。 OnEnChange関数のこのメッセージが良く分からず気になって考えていました。普通に書いたらよかったのですね。。。。 明日には回答を打ち切りますので、得点をもらっちゃって下さい。 どうもありがとうございました☆

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

関連するQ&A

  • エディットボックスのカーソルが表示されない

    長いこと悩んでいますが、解決出来ないでいます。 お知恵を拝借したいと思います。 VC5.0, SDK, WinXPでの開発を行っています。 今、リストビューで直接書き込みをさせる為に、 リストビューのクリックされた位置にエディットボックスをかぶせて表示させてあたかも直接編集させているように見せています。 実際のエディットボックスの表示や書き込み等はうまく行っているのですが、表示したエディットボックスにSetFocusをしても、カーソルが表示される場合とされない場合が出てきています。 親画面を表示し、最初にリストビューをクリックした時のエディットボックスにはきちんとカーソルが表示されます。 しかし、2度目以降はまったくカーソルが表示されません。 ただ、フォーカスはあたっているのか、文字入力は正しく行われます。 また、エディットボックスでリターンキーを押されたタイミングでエディットボックスを破棄し、リストビューに文字列を反映させているのですが、このリターンキー押下後にエディットボックスを表示させた時はカーソルも表示されます。 エディットボックスの破棄には、上記リターンキーもしくはエディットボックスからフォーカスが無くなった時に行っているので、 この時の破棄のタイミング等の問題でカーソルが出たり出なかったりしているのだろうと色々調べているのですが、どうしても分かりません。 実際エディットボックスにフォーカスが当たっていればカーソルは自動的に出るものだと思っていたのですが、出ないという現象は何に問題があるのでしょうか? エディットボックス有効処理 Show( SW_SHOW ); BringWindowToTop( hwnd ); SetFocus( hwnd ); エディットボックス破棄(無効)処理 Show( SW_HIDE ); アドバイスを宜しくお願い致します。

  • VC++のエディットボックスの非表示

    VC++で、ダイアログを作りました。 エディットボックスを置いているのですが、 このエディットボックスは始めは非表示(入力を受け付けない)にするため、 このエディットボックスのプロパティにある "Disable"をtrueにして"Visible"もtrueにしました。 そこまではよかったのですが、 「入力」ボタンを押すと、エディットボックスが白く表示され、入力を受け付けるというようにしたいのですが、 エディットボックスのプロパティを変更する関数というのはあるのでしょうか? いろいろ検索などをしているのですが、方法がわかりません。よろしくお願いします。

  • エディットコントロールへの文字の出力について

    エディットコントロールへの文字の出力について ボタンコントロールを押すとそのイベントをつかんでエディットコントロールに、ある計算処理の結果を表示するプログラムをWINDOWSプログラミングで書いているのですが、ボタンを押すたびにエディットコントロールに書かれている内容が書き換わってしまいます。ボタンを押すたびにエディットコントロールに文字が追記されていくようにしたいのですが、分かる方どうか教えてください。 ちなみに現在はSetWindowText関数を使い出力している状態です。

  • Win32 API エディットボックス内文字列の色変更

    Win32 APIについて質問です。 (Microsoft Visual Studio .NET 2002、XP、API) エディットコントロールに表示されている文字列の 色(またはフォント)を変更したいと思っています。 エディットボックスに「0」という数字を入力し その後「更新ボタン」をクリックすると、「0」の 文字色が赤色(または赤太文字)へ変更される という具合です。 Win32 APIを始めて間もない者(Cも始めて間もないです) なので、かなり苦戦しております。 「SendMessage() 」みたいな関数を使用しエディット ボックスのハンドルへメッセージを送ることで 実現させるのかなぁ程度しか理解しておりません。 ご存じの方すいませんがよろしくお願いします。

  • 親ウィンドウの領域外でも表示されるエディットボックスについて

    親ウィンドウの領域外でも表示されるエディットボックスについて VisualStudio2005でMFCアプリを作っています。 親ウィンドウに指定したコントロールの領域外でも 表示されるようなエディットボックスを作りたいのですが、方法はありますか? イメージとしては、ダイアログ上にボタンがあって、 そのボタンを押すとエディットコントロールが表示され、入力待ちとなるようなものです。 このエディットには改行を入力させるのですが、改行してウィンドウサイズを大きくしていくと、 ダイアログの下の端でエディットボックスが途切れてしまいます。 ダイアログの下より大きくなっても全体が表示されるようにしたいんです。 このエディットの生成は次のような感じで行っています。 DWORD dwStyle = WS_CHILD | WS_VISIBLE | WS_VSCROLL | ES_AUTOHSCROLL | ES_MULTILINE | ES_WANTRETURN; m_edit.Create(dwStyle, rect, this/*ダイアログ*/, -1); よろしくお願いします。

  • スピンボタンとエディットボックスの連携

    VC++でスピンボタンを押すと値が1増えて、それが計算式に反映され、エディットボックスの値を変えるとそれも計算式に反映される。 というスピンボタンとエディットボックスを連携したプログラムの作成が上手くいきません。 エディットボックスのメッセージは何を用いればいいのでしょうか。具体的にはエディットボックスに値を入力し、エンターキーをクリックした時にすぐに計算式を実行できるようにしたいのですができません。そのやり方がわかりません。 できたとしてもスピンボタンとの連携が上手くいきません。何かよい方法はないか教えてください。

  • エディットボックスの処理で画面がちらつきます。

    VC++ 6.0 Win32APIにてダイアログベースのプログラムを作成しております。 ダイアログに18個のエディットボックスを配置しておりますが、そのエディットボックスのテキストを SetDlgItemText()を使って全て空欄にすると(第3引数に””を指定)画面がちらつきます。 同ダイアログ内のリストコントロールがダブルクリックされた際のイベントを拾ってエディットボックスクリアの処理を実行しているのですが、ちらつきを抑える手法はありますでしょうか?

  • スタティックテキストとエディットボックス等文字変更

    Visual C++ 6.0の初心者です。 スタティックテキストやエディットボックス及びボタンの文字の大きさ等を個別に変更したいのですがどうしたら良いでしょうか。 Borland C++Builder 6.0では、プロパティで個別に変更可能でした。 一昔のソフトについてですが教えてください。

  • エディットボックスの文字列制限のテストを簡単にする方法はない?

    例えばエディットボックスの文字数が250文字まで。 という仕様のテストですが ”0123456789”という文字列のを繰り返し入力して250文字分入力するのは面倒だし、わかりにくいです。 もっといいテスト方法はありませんでしょうか? ツールなどがあったら最高です。

  • エディットボックスの入力履歴を消すには?

    IE6にて、エディットボックスを持つページを開きます。 で、エディットボックスに文字を入力時、過去の入力履歴があると、それををドロップダウンリストで出してくれます。 この入力履歴を削除するにはどうしたらよいでしょうか? メニュー → ツール → インターネットオプション → 全般タブの ・クッキーの削除 ・ファイルの削除 ・履歴のクリア を全て行いましたが、ダメでした。どうか宜しくお願いします。