はじめまして。谷と申します。
過去ログを参考にしたんですが、よくわからなくて質問します。
VC++6 sp5 MFC win2000 sp2 です。
CComboboxをダイアログの上に貼り付けているのですが、
文字の追加してもみえません。
OnInitDialogの中で、
m_combo.AddString(aaa) ;
とかはちゃんと見えるのですが、できるのですが、
OnButtonStart() //(スタートボタンが押されたときの関数)の中で、
{
UpdateData() ;
CString str ;
m_combo.GetWindowText(str) ;
m_combo.AddString(str) ;
...
UpdateData(FALSE)
}
としても、AddString自体は実行されているようなのですが、
空欄になってしまいます。
(空欄が実行する度にどんどん増えていく感じです。)
その後その空欄を選択すると、選択されたものはやはり空欄です。
m_combo.UpdateData() (TRUE)も(FALSE)も試してみましたが
だめでした。
m_pathName.InsertString(-1,str) ;(-1)とか(0)とか(1)とかもだめです。
ComboBoxのスタイルはドロップダウン、オーナードローしないに
なってます。
m_comboはクラスウィザードからメンバ変数でコントロールで作りました。
要は入力した文字列をどんどんためていきたいのですが、何かやり方
間違っているのでしょうか。
m_combo.GetWindowText(str) ;
でstrにちゃんと文字列は入ってきますか?
コンボボックスのエディットボックスに入力してからスタートボタンとやらを押してます?
レスありがとうございます。こんな時間に質問するほうも阿保なのですが、
頭爆発しそうになって今寝る前なのでまた明日お聞きします。
で、状況だけはご報告します。
>m_combo.GetWindowText(str) ;
>でstrにちゃんと文字列は入ってきますか?
はい。入ってきています。
実際のPGでは、
CFileFind find ;
if(find.FindFile(str) == 0 )
{
AfxMessageBox( パスが存在しません。) ;
return ;
}
と言う風になっています。(ちゃんと通過してます。)
>コンボボックスのエディットボックスに入力してからスタートボタンとやらを押してます?
押したので、空欄が挿入されています。
上記のif文を取っ払ったりして(もちろん他の部分も取っ払って)、
質問の個所だけにしても同じ状況なんです。
明日もう一度、新しいプロジェクトで試してみようと思います。
それでも同じ症状のときにまたここで質問させてください。
夜分遅くすみませんでした。
void CDlg::OnBnClicked()
{
UpdateData();
CString str;
m_IDC_COMBO1.GetWindowText( str );
m_IDC_COMBO1.AddString( str );
UpdateData(FALSE);
}
↑こんな感じで試してみましたが、正常に動きますよ。
UpdateData()はあってもなくても動きます。
お騒がせしました。解決いたしました。ただの凡ミスでした。
strの部分が PathName だったのですが、
AddStringしていたのが FileName でした。
先ほど見たらすぐに気づきました。やっぱり夜更かしは良くないですね。
藤本(み)様、お手数を煩わして本当にすみませんでした。