コンボボックスのエディットボックス部分に表示させるには? – プログラミング – Home

コンボボックスのエディットボックス部分...
 
通知
すべてクリア

[解決済] コンボボックスのエディットボックス部分に表示させるには?


ree
 ree
(@ree)
ゲスト
結合: 23年前
投稿: 240
Topic starter  

reeです。ちょっとわからないことがありますので教えてください。
下の例のようにコンボボックスに格納されている文字列をコンボボックスのエディットボックス部分に
表示していたのですが、コンボボックスに直接入力できないようにプロパティの[タイプ]
で「ドロップダウン」から「ドロップダウンリスト」に変更したところエディットボックス部分に
文字列が表示されなくなりました。
どなたかドロップダウンリストの設定でエディットボックス部分に文字列を表示する方法を教えてください。
よろしくお願いします。

//コンボボックス内の先頭の項目をエディットボックス部分に表示///////////////
CString Cmb1;
CComboBox* CMB1=(CComboBox*)GetDlgItem(IDC_COMBO1);

CMB1->GetLBText(0,Cmb1); // 先頭リスト項目文字列取得
CMB1->SetWindowText(Cmb1); // エディットボックス部分に表示
////////////////////////////////////////////////////////////////////////


引用未解決
トピックタグ
Hal
 Hal
(@Hal)
ゲスト
結合: 24年前
投稿: 67
 

Halです。
SetCurSel()で設定してみてください。
それでは。


返信引用
ree
 ree
(@ree)
ゲスト
結合: 23年前
投稿: 240
Topic starter  

Halさんどうもありがとうございました。
もうひとつ質問なのですが、同じ条件で(コンボボックスのタイプが「ドロップダウンリスト」)
エディットボックス部分に項目の番号で指定するのではなく、任意の文字列を指定してそれを
表示させるにはどうしたらよいのでしょう?
どなたかわかる方教えてください。宜しくお願いします。


返信引用
CdS
 CdS
(@CdS)
ゲスト
結合: 24年前
投稿: 176
 

「CComboBoxクラスメンバ」をMSDNで一通り眺めるくらいはしてください。
普通はなにかしら見つかるはずです。
なにかそういった努力というか最低限の調査を怠っているように思えてなりません。
失礼な言い方かもしれませんが、「この程度のこと」をいちいち聞いていては技術は向上しません。
どうしても分からないときは聞けばいいですが、自分で調べるということも必要です。
...違っていたら大変すいません。

回答としては、FindStringExactやFindStringで指定した文字列と一致する項目を持つインデックスを取得し、
SetCurSelすればいいです。

関数名だけを見ても、なんとなく分かりますよね...?


返信引用
ree
 ree
(@ree)
ゲスト
結合: 23年前
投稿: 240
Topic starter  

CdSさんのご指摘の通りです。申し訳ありませんでした。
機能の一部でコンボボックスの項目をほかのページで参照する・・・といったものを作っておりまして、
GetCurSel()を使って項目のインデックスを取得し、SetCurSel()していたのですが、
うまくいかずに、インデックスの値ではなく直接文字列を・・・と思い質問してしまいました。
原因は他の関数でインデックスの値を書き換えていたためでした。バグを修正したところ
GetCurSel()とSetCurSel()で期待値を取得できました。
どうもありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました