から継承するCDialog
( と呼ばれる、および、などNBDialog
のコントロールのいくつかの派生オブジェクトを設計しました。
これは 1 つのプロジェクトであり、コントロールは他のプロジェクトにあります。CEdit
CDateTimeCtrl
CComboBox
NBDialog
当然、すべてのコントロールはダイアログに配置され、ダイアログのメソッドを使用する
ため、リンカー用のファイル#include NBDialog.h
を追加する必要があります。.lib
また、これらすべてのコントロールをダイアログから処理したいのでNBDialog.h
、次の行に書きました。
class NBCommonEditBox;
class NBDateTimeCtrl;
class NBCommonComboBox;
CMapWordToOb* NBGetEditBoxMap();
NBCommonEditBox* NBGetEditBoxById(unsigned long ID);
CMapWordToOb* NBGetDateTimeMap();
NBDateTimeCtrl* NBGetDateTimeById(unsigned long ID);
CMapWordToOb* NBGetComboBoxMap();
NBCommonComboBox* NBGetComboBoxById(unsigned long ID);
この方法NBDialog.h
では、オブジェクトのコンテキストはわかりませんが、それらが存在することを認識し、マップに格納します。
ここで、NBDialog
プロジェクトを拡張し、すべてのコントロールの印刷情報を取得するメソッドを追加して、継承されたすべてのオブジェクトがNBDialog
このメソッドを使用できるようにします。印刷情報は、コントロールの実装で定義されます。
編集:でこのメソッドを記述した場合、コントロールのクラスのコンテキストがわからないNBDialog.cpp
ため、コンパイルできません。NBDialog
CStringList* NBDialog::NBGetMainTexts()
{
CStringList* mainTexts = new CStringList();
POSITION pos;
WORD key;
NBCommonEditBox* currEdit = NULL;
for (pos = this->NBGetEditBoxMap()->GetStartPosition(); pos != NULL;)
{
this->NBGetEditBoxMap()->GetNextAssoc(pos, key, (CObject*&)currEdit);
currEdit->NBStringsToPrint(mainTexts);
}
return mainTexts;
}
目的のメソッドを記述する方法はありますか?