none
WindowsフォームアプリケーションでCComboBoxクラスを使うには? RRS feed

  • 質問

  • 極めて基本的な質問で恐縮です。もし以前に同じようなスレッドがあったら、すみません。そのときはそのスレッドを教えてください。

    Visual Studio 2005 ACを使っています。

    Windowsフォームアプリケーションを作成しています。アプリケーション上から、コンボボックスのリストアイテムの追加と削除をしたいと思っています。調べたらCComboBoxというクラスを使用するとあったのですが、そのクラスの呼び方(用語は合っているでしょうか?)がわかりません。"afxwin.h"が必要だとあったので、stdafx.hに、

    #include <afxwin.h>

    という記述を追加してみると、今度は"afx.h"に関するエラーが出てしまいます。

    参考書を1冊買ったのですが、そこにも解決策は載っておらず、webでも探せませんでした。初歩的な質問で申し訳ないのですが、どうしたらフォームアプリケーションでCComboBoxクラスが使用できるようになるのか教えてください。

    よろしくお願いします。

    2006年7月5日 19:12

回答

  • Hongliangさん

    できました!!

    >次にその文字列を ComboBox の Items に追加します。

    このアドバイスが決め手でした。1行を取り込むことはできていたんですが、ComboBoxへアイテムを追加するにはCComboBoxクラスを使うってあったから、それしかできないものと思っていたんです。まさかComboBox->Items->Add()なんてメソッドがあるとは。

    返信くださったお二人には、とても感謝しています。ありがとうございました。

     

    2006年7月6日 5:18

すべての返信

  •  O.Diver さんからの引用

    Windowsフォームアプリケーションを作成しています。アプリケーション上から、コンボボックスのリストアイテムの追加と削除をしたいと思っています。調べたらCComboBoxというクラスを使用するとあったのですが、そのクラスの呼び方(用語は合っているでしょうか?)がわかりません。

    Windowsフォームアプリでコンボボックスを扱うならCComboBoxではなく、ComboBoxが楽です。ご使用の参考書はMFCアプリ用じゃないでしょうか。

    2006年7月5日 22:22
  • suzuki50さん

    返信ありがとうございます。ご指摘の通り、フォームのデザインの段階では、ComboBoxを使用しています。ですが、ComboBoxには、私がやりたいことができるメソッドが見つからなかったのです。

    私のやりたいことをもう少し具体的に書くと、アプリケーション上でファイルを読み込んで、そのファイルの内容の各行をComboBoxの各リストアイテムに加えたいのです。1行目をインデックス1のリストアイテムに、2行目をインデックス2のリストアイテムに・・・というようにです。ファイルの内容をStreamに取り込むことまではできています。

    もし、ComboBoxだけでこれを実装する手段をご存知でしたら教えていただけませんか?

     ちなみに使用している参考書は、MFCアプリの章が特別に用意されていたので、参考書自体はMFCアプリに特化したものではないです。ここで固有名詞を出していいのかわからないので本のタイトル等の掲載は控えます。

    2006年7月6日 1:02
  • System::IO::StreamReader::ReadLine 使ってアイテム追加していけばいいだけの話のように見えますが。

    ここで固有名詞を出していいのかわからないので本のタイトル等の掲載は控えます。

    なぜ本の名前出すのを躊躇われるのでしょうか。中身を転載するのは著作権的にまずい可能性もありますが(それだって「引用」の範囲を正しく守れば問題ありません)。回答者も参考したものが分かれば答えやすいです。

    2006年7月6日 3:09
  • Hongliangさん

    私が調べた中での認識では、System::IO::StreamReader::ReadLineは、ファイルから1行分の内容を読み出すことしかできなくて、コンボボックスへのアイテムの追加はできないと思っていました。間違っているのでしょうか。コンボボックスへアイテムを追加するための具体的な記述を教えていただけませんか?なにぶんヘッダのインクルードもままならない初心者なもので、1から教えていただけるとありがたいです。

    私が参考にしている本は、「秀和システムのVisualC++.NET逆引き大全500の極意」です。

     

    2006年7月6日 3:34
  • 一つで済ますんじゃなくて分けて考えましょう。

    まず ReadLine で一行読み込みます。

    次にその文字列を ComboBox の Items に追加します。

    2006年7月6日 4:00
  • Hongliangさん

    できました!!

    >次にその文字列を ComboBox の Items に追加します。

    このアドバイスが決め手でした。1行を取り込むことはできていたんですが、ComboBoxへアイテムを追加するにはCComboBoxクラスを使うってあったから、それしかできないものと思っていたんです。まさかComboBox->Items->Add()なんてメソッドがあるとは。

    返信くださったお二人には、とても感謝しています。ありがとうございました。

     

    2006年7月6日 5:18