一、动态生成任意数量的控件
以Button为例:
DWORD bn_dwStyle = WS_CHILD | WS_VISIBLE | WS_TABSTOP | BS_PUSHBUTTON | BS_BITMAP;//按钮风格、可贴图风格
for (int i = 0; i < ButtonCount; i++)
{
//这是动态创建Move to Pos1 Button处
CButton *btn = new CButton();
CRect ButtonRec; //用于初始化Button生成的位置
m_MotionListCtrl.GetSubItemRect(5,i+1, LVIR_LABEL, ButtonRec);
btn0->Create(_T(""), bn_dwStyle, ButtonRec,GetDlgItem(IDC_Motion_LIST), IDC_Button+i);//Button的创建语句
btn[i]=btn;//将指针存起来,生成之后对Button的操作全部通过该指针实现
}
以上便是动态创建Button控件的全部代码。
其中创建函数:
virtual BOOL Create(
LPCTSTR lpszCaption,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID
);
各参数含义:
lpszCaption:指定按钮控件显示的文本。