Так же AppWizard использовал специальный класс для вида - COleDBRecordView. От него был поражден класс CTestTemplateView.
class CTestTemplateView : public COleDBRecordView
{
......
};
И в нем находится ссылка на класс CTestTemplateSet, который мы смотрели в прошлом шаге.
class CTestTemplateView : public COleDBRecordView
{
......
enum{ IDD = IDD_TESTTEMPLATE_FORM };
CTestTemplateSet* m_pSet;
//}}AFX_DATA
};
Общая идея такова.
class C***View : public COleDBRecordView
{
public:
C***set *m_pSet;
};
Звездочки это переменная часть, которая зависит от названия приложения. Самое интересное находиться в OnInitialUpdate().
m_pSet = &GetDocument()->m_testTemplateSet; // получаем ссылку
{
CWaitCursor wait; // курсор ожидания, как только выйдет за скобку тут же станет нормальный
HRESULT hr = m_pSet->Open(); // открыть
if (hr != S_OK)
{
// если ошибка открытия, то флаги будут установлены перед первой
// и одновременно после последней, то есть нигде, что заблокирует
// кнопки навигации
m_bOnFirstRecord = TRUE;
m_bOnLastRecord = TRUE;
}
}
COleDBRecordView::OnInitialUpdate();