直接上代码了,主要是思路,代码不难理解:
#define MAX_COUNT (33) // CheckBox的总个数 #define MAX_ROW (2) // 一排最大放2个CheckBox #define IDC_CHECKBOX (0x11) // 控件的ID号 CButton* pButton = NULL; CString strText(_T("")); CONST UINT MAX_CHECKBOX_WIDTH = 120; // 定义CheckBox的宽度 CONST UINT MAX_CHECKBOX_HEIGHT = 20; // 定义CheckBox的高度 CONST UINT MAX_CHECKBOX_X_GAP = 20; // 定义CheckBox之间的水平间隔距离 CONST UINT MAX_CHECKBOX_Y_GAP = 20; // 定义CheckBox之间的垂直间隔距离 CRect rect; rect.SetRectEmpty(); for(int i = 0; i != MAX_COUNT; ++i) { if(0 == (i % 2)) { rect.left = 10; rect.top = rect.bottom + MAX_CHECKBOX_Y_GAP; } else { rect.left = rect.right + MAX_CHECKBOX_X_GAP; } rect.right = rect.left + MAX_CHECKBOX_WIDTH; rect.bottom = rect.top + MAX_CHECKBOX_HEIGHT; strText.Format(_T("CheckBox - %d"), i+1); pButton = new CButton; ASSERT(NULL != pButton); VERIFY(pButton->Create(strText, WS_TABSTOP | WS_VISIBLE | WS_CHILD | BS_AUTOCHECKBOX, rect, this, IDC_CHECKBOX + i)); }
有问题可以留言。