想动态生成n个 button,如何实现?

解决方案 »

  1.   

    template<typename Tbase>
    class CNormalCtrlImpl : public CWindowImpl<CNormalCtrlImpl, Tbase>
    {
    public:
    BEGIN_MSG_MAP(CNormalCtrlImpl)
    END_MSG_MAP()
    };CNormalCtrlImpl<CButton> *lpButton = new CNormalCtrlImpl<CButton>();
    lpButton->Create(hParentWnd,rc,NULL,WS_CHILD|WS_VISIBLE|BS_CHECKBOX|WS_TABSTOP,0,id);
    lpButton->SetCheck(FALSE);
    if(po->hasProperty("CheckStatus"))
    {
    if(stricmp(po->GetProperty("CheckStatus").c_str(),"TRUE") == 0)
    lpButton->SetCheck(TRUE);
    }
    lpWnd = (CWindowImplRoot<CWindow>*)lpButton;
      

  2.   


                CButton *pWindow;
                pWindow=new CButton();
                pWindow->Create(m_hWnd, m_Rect, NULL,WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON|BS_BITMAP|WS_TABSTOP,0,m_nChkButtonCounter1++);
      

  3.   

    每次循环时,都计算一下m_Rect,m_nChkButtonCounter1是创建Button的ID。