На этом шаге мы рассмотрим инициализацию окна Query Dialog.
const CFundDialog * GetFundDialog() {return &m_wndFundDialog;}
Рис.1. Добавление функции GetFundDialog()
#include "Mainfrm.h" #include "STUploadDoc.h" #include "FundDialog.h"
CMainFrame * pWnd = dynamic_cast< CMainFrame * > (AfxGetApp()->m_pMainWnd); ASSERT_VALID( pWnd ); CSTUploadDoc * pDoc = dynamic_cast< CSTUploadDoc * >( pWnd->GetActiveDocument() ); ASSERT_VALID( pDoc ); const CFundDialog * pFD = pWnd->GetFundDialog(); ASSERT_VALID( pFD ); // Размещаем перечень бумаг в поле со списком for( int n = 0; n < pFD->m_listBox.GetCount(); n++ ) { CString strBuf; pFD->m_listBox.GetText( n, strBuf ); m_dtFund.AddString( strBuf ); } // Выбираем в списке параметтр strCurrentFund int iPos = m_dtFund.FindStringExact( -1, pDoc->GetCurrentFund() ); m_dtFund.SetCurSel( iPos ); // Устанавливаем значения Date Time Pickers m_dtFrom.SetFormat( "d MMM yyy" ); m_dtTo.SetFormat( "d MMM yyy" );
Вам придется перегрузить функцию ОnОК() класса CQueryDialog, чтобы она получала информацию о выбранной ценной бумаге.
CString m_strFund;
int nChoice = m_dtFund.GetCurSel(); if(nChoice >= 0) m_dtFund.GetLBText(nChoice, m_strFund);
Текст измененного приложения можно взять здесь (71,5 Кб).
На следующем шаге мы рассмотрим создание диалогового окна Query Results.