Здравствуйте, Dark_2k, Вы писали:
D_>Здравствуйте, migel, Вы писали:
D_>Я пробовал подобным образом, не копмилируется. Не может привести тип в методе ::DoModal. При вызове DialogBoxParam(..., T::IDD, ...).
class CAboutDlg:
public CDialogImpl<CAboutDlg>
{
public:
CAboutDlg() : IDD(IDD_ABOUT){;}
static DWORD IDD;
}
в cpp файле не забудь определить
DWORD CAboutDlg::IDD = IDD_COLOR;
Здравствуйте, migel, Вы писали:
D_>>Есть необходимость, в одном классе, использовать ресурсы с одними и теми же контролами, но немного по разному расположеными. Только вот как это поумнее и попроще сделать, пока не представляю? M>Попробу енум заменить переменной класса и инициализируй ее по мере надобности: M>
WTL. Есть странное желание использовать разные IDD в зависимости от некоторого условия.
Сейчас, диалог объявляем как обычно:
class CAboutDlg:
public CDialogImpl<CAboutDlg>
{
public:
enum {IDD = IDD_ABOUT};
проблема в том, что непонятно как потом этот IDD поменять?
Есть необходимость, в одном классе, использовать ресурсы с одними и теми же контролами, но немного по разному расположеными. Только вот как это поумнее и попроще сделать, пока не представляю?
Здравствуйте, Dark_2k, Вы писали:
D_>WTL. Есть странное желание использовать разные IDD в зависимости от некоторого условия.
D_>Сейчас, диалог объявляем как обычно:
D_>проблема в том, что непонятно как потом этот IDD поменять?
D_>Есть необходимость, в одном классе, использовать ресурсы с одними и теми же контролами, но немного по разному расположеными. Только вот как это поумнее и попроще сделать, пока не представляю?
Попробу енум заменить переменной класса и инициализируй ее по мере надобности:
class CAboutDlg:
public CDialogImpl<CAboutDlg>
{
public:
CAboutDlg() : IDD(IDD_ABOUT){;}
DWORD IDD;
}
Так, конечно, работает, но есть одна неприятность — приходится тело функций переносить в заголовочные файлы, что не очень удобно.
Другие варианты есть?
MNZ>А если во время компиляции, то MNZ>[ccode] MNZ>template <int t_IDD> MNZ>class CAboutDlg: MNZ> public CDialogImpl<CAboutDlg>
Здравствуйте, Dark_2k, Вы писали:
D_>Так, конечно, работает, но есть одна неприятность — приходится тело функций переносить в заголовочные файлы, что не очень удобно. D_>Другие варианты есть?
Вряд ли. А что вы хотели? Издержки шаблонов на текущий момент. Тут варианта два: либо реализовывать все шаблоны в заголовочных файлах (на то они, собственно, и шаблоны), либо отказаться от шаблонов.
Ну хотел то простого, — использовать немного разные диалоги в случае работы программы под Pocket PC или Smartphone.
Exeшник один.
MNZ>Вряд ли. А что вы хотели?