CHogeDlg.h
class CHogeDlg : public CDialog{
// コンストラクション
public:
CHogeDlg(CWnd* pParent = NULL); // 標準のコンストラクタ
CString pszRetText; // Viewで値を取得するためのメンバ関数 (1)
CComboBox m_cBoxBase; // ダミーのComboBox
・・・
}
CHogeDlg.cpp
CEnsureVisible::CEnsureVisible(CWnd* pParent /*=NULL*/)
//: CDialog(CEnsureVisible::IDD, pParent)
: CDialog(IDD_DIALOG1, pParent){
//ComboBoxのオブジェクトを作成 (2)
m_cBoxBase.Create(0, CRect(0,0,100,10), pParent, 0);
}
・・・
BOOL CEnsureVisible::OnInitDialog()
{
CDialog::OnInitDialog();
CString cText;
//ダイアログのコンボボックスを取得 (3)
CComboBox *lpcBox = (CComboBox*)GetDlgItem( IDC_COMBO1 );
//コンボボックスにアイテムを登録していく (4)
for(int i = 0; i < m_cBoxBase.GetCount(); i++){
m_cBoxBase.GetLBText(i, cText);
lpcBox->AddString(cText);
}
return TRUE;
}
・・・
void CEnsureVisible::OnSelchangeCombo1()
{
//Dialogのコンボボックスを取得
CComboBox *lpcBox = (CComboBox*)GetDlgItem( IDC_COMBO1 );
//選択された文字列を取得する (5)
lpcBox->GetLBText(lpcBox->GetCurSel(), pszRetText);
}
CHogeHogeCtrlView.cpp
void CHogeHogeCtrlView::OnHoge(){
//ダイアログのオブジェクト作成 (6)
CHogeDialog HogeDlg(this);
//CListCtrlのリストの内容を渡す
LVITEM lvItem;
_TCHAR m_szBuff[MAX_PATH];
int cnt = m_tlist.GetItemCount();
for (int i = 0; i < cnt; i++){
lvItem.mask = LVIF_TEXT;
lvItem.iItem = i;
lvItem.iSubItem = 0;
lvItem.pszText = m_szBuff;
lvItem.cchTextMax = sizeof(m_szBuff);
m_tlist.GetItem(&lvItem);
//ダイアログのダミーコンボボックスに登録する (7)
HogeDlg.m_cBoxBase.AddString(lvItem.pszText);
}
//OKが押されてダイアログが閉じられたらデータを取得 (8)
if(HogeDlg.DoModal() == IDOK){
//コンボボックスで選択された文字列を取得
CString msg = HogeDlg.pszRetText;
//取得した文字列を表示する
MessageBox(msg,"",MB_OK);
}
}
|