コンボBOXの選択された文字をエディットBOXに表示 – プログラミング – Home

コンボBOXの選択された文字をエディッ...
 
通知
すべてクリア

[解決済] コンボBOXの選択された文字をエディットBOXに表示


そら
 そら
(@そら)
ゲスト
結合: 25年前
投稿: 8
Topic starter  

XP VS2005 MFCです。
void CcmbDlg::OnCbnSelchangeCombo1()
{
// TODO: ここにコントロール通知ハンドラ コードを追加します。
CString cs1;
combo1.GetWindowText(cs1);
ed1.SetWindowTextA(cs1);
}

上記でエディットボックスに表示はできますが
表示が一つ前で選択されたデータになってしまいます。

1.コンボボックスクリック
2.表示されているB選択
3.ボックスを閉じる→エディットボックスにAと表示
4.コンボボックスクリック
5.表示されているC選択
6.ボックスを閉じる→エディットボックスBと表示

のようにひとつ前の選択されたデータが表示されてしまいます。
どなたかご存知の方がございましたら教えてください。


引用未解決
トピックタグ
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

イベント発生のタイミングでしょうかね。
CBN_SELCHANGイベントが起きた時点ではComboBoxのWindowText(エディットのところ)
はまだ反映されていません。

ですので、GetWindowTextで取得せず、GetCurSelからリストの何番目を選択したのか取
得し、GetLBTextでその文字列を取得するようにします。

void CcombotestDlg::OnCbnSelchangeCombo1()
{
// TODO: ここにコントロール通知ハンドラ コードを追加します。
CString cs1;
const int index = combo1.GetCurSel();
combo1.GetLBText(index, cs1);
ed1.SetWindowText(cs1);}


返信引用
そら
 そら
(@そら)
ゲスト
結合: 25年前
投稿: 8
Topic starter  

Blueさん親切に有難うございます。

見事解決しました。


返信引用
そら
 そら
(@そら)
ゲスト
結合: 25年前
投稿: 8
Topic starter  

Blueさん親切に有難うございます。

見事解決しました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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