SetButtonInfo,总报错PButton=null ?

masterjames 2012-10-17 02:15:31
class CStyleBar : public CMFCToolBar
{
public:
CComboBox m_comboBox;
CFont m_font;
};
static UINT BASED_CODE styles[] =
{
// same order as in the bitmap 'styles.bmp'
ID_SEPARATOR, // for combo box (placeholder)
//ID_SEPARATOR


};

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (!m_wndStyleBar.Create(this, WS_CHILD|WS_VISIBLE|CBRS_TOP|
CBRS_TOOLTIPS|CBRS_FLYBY, IDW_STYLES) ||
// !m_wndStyleBar.LoadBitmap(IDB_MENU_IMAGES_16) ||
!m_wndStyleBar.SetButtons(styles, sizeof(styles)/sizeof(UINT)))
{
TRACE0("Failed to create stylebar\n");
return FALSE; // fail to create
}



// Create the combo box


if (!m_wndStyleBar.m_comboBox.Create(
CBS_DROPDOWNLIST|WS_VISIBLE|WS_TABSTOP,
CRect(0, 0, 200, 280), &m_wndStyleBar, IDW_COMBO))
{
TRACE0("Failed to create combo-box\n");
return FALSE;
}

m_wndStyleBar.SetButtonInfo(0,IDW_COMBO, TBBS_SEPARATOR, 0);
}

错误:CMFCToolBarButton* pButton = GetButton(nIndex);
if (pButton == NULL)
{
ASSERT(FALSE);
return;
}
...全文
75 点赞 收藏 7
写回复
7 条回复
schlafenhamster 2012年10月17日
vc6:
int idx=0;
while(m_wndToolBar.GetItemID(idx) != ID_COMBO_IN_BAR) idx++;
回复 点赞
schlafenhamster 2012年10月17日
你要找到那个 id 才行
回复 点赞
masterjames 2012年10月17日
那应该是多少呢
回复 点赞
schlafenhamster 2012年10月17日
SetButtonInfo(int nIndex, UINT nID, UINT nStyle, int iImage)
nIndex 不对吧。
回复 点赞
masterjames 2012年10月17日
ASSERT(FALSE);
回复 点赞
masterjames 2012年10月17日
这个是调试错误信息
void CMFCToolBar::SetButtonInfo(int nIndex, UINT nID, UINT nStyle, int iImage)
{
ASSERT_VALID(this);

CMFCToolBarButton* pButton = GetButton(nIndex);
if (pButton == NULL)
{
ASSERT(FALSE);
return;
}

ASSERT_VALID(pButton);

pButton->m_nStyle = nStyle;
pButton->m_nID = nID;
pButton->SetImage(iImage);

if ((nStyle & TBBS_SEPARATOR) && iImage > 0) // iImage parameter is a button width!
{
AdjustLayout();
}

InvalidateButton(nIndex);
}
回复 点赞
schlafenhamster 2012年10月17日
GetButton(nIndex);//??
回复 点赞
发动态
发帖子
VC/MFC
创建于2007-09-28

7895

社区成员

42.1w+

社区内容

VC/MFC相关问题讨论
社区公告
暂无公告