You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
912 B
36 lines
912 B
#ifndef DIALOG_H_INCLUDED
|
|
#define DIALOG_H_INCLUDED
|
|
|
|
class CDialogBase
|
|
{
|
|
protected:
|
|
virtual INT_PTR DialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) = 0;
|
|
|
|
public:
|
|
virtual ~CDialogBase() {}
|
|
};
|
|
|
|
class CPropertyPage: public CDialogBase
|
|
{
|
|
public:
|
|
void SetPropSheetPageMembers(PROPSHEETPAGE* ppsp)
|
|
{
|
|
ppsp->lParam = (LPARAM) this;
|
|
ppsp->pfnDlgProc = CPropertyPage::StaticProc;
|
|
}
|
|
|
|
private:
|
|
static INT_PTR StaticProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
|
|
};
|
|
|
|
class CDialog: public CDialogBase
|
|
{
|
|
public:
|
|
INT_PTR DoModal(HINSTANCE hInstance, LPCTSTR lpTemplate, HWND hWndParent)
|
|
{return DialogBoxParam(hInstance, lpTemplate, hWndParent, CDialog::StaticProc, (LPARAM) this);}
|
|
|
|
private:
|
|
static INT_PTR StaticProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
|
|
};
|
|
|
|
#endif //!DIALOG_H_INCLUDED
|