给组合框设个焦点也产生bug,这代码昨天还好使呢!该怎么处理

给组合框设个焦点也产生bug,这代码昨天还好使呢!!
C/C++ code
#ifndef CMyCListCtrl_H
#define CMyCListCtrl_H __declspec(dllimport)
#endif

class CMyCListCtrl_H CMyCListCtrl : public CListCtrl
{

public:
    void CreateComboBox(UINT Row, UINT Col);
    CMyComboBox b;
};



C/C++ code
#ifndef CMyComboBox_H
#define CMyComboBox_H __declspec(dllimport)
#endif

class CMyComboBox_H CMyComboBox : public CComboBox
{
//。。。。
};


C/C++ code
void CMyCListCtrl::CreateComboBox(UINT Row, UINT Col)
{
    CRect r;
    b.Create(WS_CHILD | WS_VISIBLE | CBS_DROPDOWN, r, this, 1);
    
    this->GetSubItemRect(Row, Col, LVIR_LABEL, r);
    r.bottom = r.bottom + 300;
    b.MoveWindow(r);
}


C/C++ code
class CSDIDlg : public CDialog
{
    virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持
    CMyCListCtrl gridlist;
}

void CSDIDlg::DoDataExchange(CDataExchange* pDX)
{
    CDialog::DoDataExchange(pDX);
    DDX_Control(pDX, IDC_LIST1, gridlist);
}

BOOL CSDIDlg::OnInitDialog()
{
    CDialog::OnInitDialog();
    gridlist.SetExtendedStyle( LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT );
    gridlist.CreateComboBox(0,1);
    gridlist.b.SetFocus();
    return FALSE;
}




------解决方案--------------------
在OnInitDialog中调用CreateComboBox的时候gridlist有几行数据?
从你代码上看OnInitDialog时gridlist中是没有数据的,此时调用GetSubItemRect应该会报错的