1、在dlg类中声明函数和变量(习惯)位置:
class CalibSelDlg : public CDialog
{
// Construction
public:
CalibSelDlg(CWnd* pParent = NULL); // standard constructor
IplImage *current_frame_rgb,grid;
IplImage *current_frame_gray;
// Dialog Data
//{{AFX_DATA(CalibSelDlg)
enum { IDD = IDD_CALIBRATIONSELECT };
// NOTE: the ClassWizard will add data members here
//}}AFX_DATA
………………
}
2、dlg类中变量初始化位置:
在dlg类中加入windows message handler事件wm_initdialog函数oninitdialog()函数,初始化的工作就放在此处。
3、dlg类中静态变量的声明和初始化工作
a、静态变量的声明和初始化工作应一次完成,不能分别声明和初始化。
b、静态变量的声明和初始化不能放在常规变量和函数的声明位置也即第“1”条中的位置;可以放在cpp文件的
const int NImages = 20; //Number of images to collect
const int NPoints = 7*7;//4*4;
const CvSize ChessBoardSize = cvSize(7,7);//cvSize(4,4);
CalibSelDlg::CalibSelDlg(CWnd* pParent /*=NULL*/)
: CDialog(CalibSelDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CalibSelDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
这个位置。
或放在OnInitDialog() 函数里。
4、基于formview类的程序,在后来添加的DLG对话框中,对话框的按钮响应函数不能放在DOc中去,否则响应函数体没反应。
这时的dlg是不能跟doc关联。