Visual C++ 6.0でコンボボックスに設定した文字列を取得するにはどうしたらよいのでしょうか?
インデックスがどんな選択をしても0の場合の文字列だけが返ってきてしまいます。
宜しくお願いします。
>インデックスがどんな選択をしても0の場合の文字列だけが返ってきてしまいます。
実際どのように記述していますか?
コンボボックスのリストの文字列なら(MFCのCCombBoxなら)GetLBTextあたりを使うんですが。
すみません。
GetLBText関数を使うと数値が戻ってきますよね?
選択した文字列を返したいのですが。
>選択した文字列を返したいのですが。
そういう関数仕様ではないですよね?
<MSDN>
CComboBox::GetLBText
void GetLBText( int nIndex, CString& rString ) const;
戻り値
文字列の終わりを示す NULL 文字を除く文字列の長さ (バイト数) を返します。
nIndex に無効なインデックスを指定した場合は、CB_ERR を返します。
引数
nIndex
コピーするリスト ボックス文字列を 0 から始まるインデックスで指定します。
rString
CString への参照。
解説
コンボ ボックスのリスト ボックスから文字列を取得します。2 番目の形式のメンバ関数は、
項目のテキストを CString オブジェクトで受け取ります。
</MSDN>
文字列がほしいのならば、第2引数で受け取ってください。
CString text;
m_combo.GetLBText(0, text); // インデックス0番目の文字列を取得
AfxMessageBox(text);
それと、
http://madia.world.coocan.jp/cgi-bin/Vcbbs/wwwlng.cgi?print+200611/06110010.txt
他のインターフェースの関数を使うには?
放置しないでください。(放置は最低な行為だと思う。)
MSDNを見たほうが早いような・・・VC2005用ですが変更は無いと思うので。
http://msdn2.microsoft.com/ja-jp/library/zcy9kze7(VS.80).aspx
int GetLBText(
int nIndex, // インデックス
LPTSTR lpszText // 取得文字列(CString版もあり)
) const;
戻り:文字列の終端を示す NULL 文字を除いた文字列の長さ (バイト数)
選択した文字列を返す関数が欲しいなら、自分でGetLblTextを包んだ関数なりを作って戻りをlpszTextなりにすればいいかと思います。
>Visual C++ 6.0でコンボボックスに設定した文字列を取得するにはどうしたらよいのでしょうか?
取得したいだけならlpszTextに入っているはずです。入っていなければ何か別の問題が。。。
Blueさん、失礼しました・・・回答が被りました。
ありがとうございます。
解決いたしました。
ツイート | ![]() |