1 添加状态栏数组
ResourceView -> String Table->ID_IMGINFO //添加ID
MainFrm.cpp中找到如下数组
static UINT indicators[] =
{
ID_SEPARATOR,
ID_IMGINFO, //添加
ID_INDICATOR_CAPS,
ID_INDICATOR_NUM,
ID_INDICATOR_SCRL,
};
将m_wndStatusBar类型改为public
2 在view类中添加图像尺寸显示函数如下
void CImageSegmentationView::ShowWindowInfo()
{
CString winInfo;
CMainFrame *pFrame = (CMainFrame *)AfxGetApp()->m_pMainWnd;//获得主框架窗口
CStatusBar *pStatus = &pFrame->m_wndStatusBar; //获得状态栏指针
CImageSegmentationDoc *pDoc=GetDocument();
ImgDib *pDib=pDoc->GetPDib();
if(pStatus)
{
pStatus->SetPaneStyle(1,SBPS_POPOUT);
winInfo.Format("宽= %d | 高= %d",pDib->m_imgWidth,pDib->m_imgHeight);
CClientDC dc(this);
CSize sz=dc.GetTextExtent(winInfo);
pStatus->SetPaneInfo(1, ID_IMGINFO, SBPS_NORMAL, sz.cx);
pStatus->SetPaneText(1,winInfo); //显示信息
}
else AfxMessageBox("Can not get StatusBar pointer!");
}
3 在**View类中的OnDraw函数中添加如下代码,实现图像显示函数
if(pDib->m_pImgData!=NULL)
{
ShowWindowInfo();
}
4 在**view.cpp中添加
#include "MainFrm.h"
至此应该大功告成,最后结果如下
如果没有正常显示则还需继续进行如下步骤:
5 在MainFrm.h中加上
afx_msg void OnUpdate1(CCmdUI *pCmdUI);
6 在MainFrm.cpp中加上
ON_UPDATE_COMMAND_UI(ID_IMGINFO, OnUpdate1)
void CMainFrame::OnUpdate1(CCmdUI *pCmdUI)
{
pCmdUI->Enable();
}
Now Over!