帮忙看看这两个程序(一)

solarsea 2003-12-16 10:58:30
这是原来的程序:
// bbmpView.cpp : implementation of the CBbmpView class
//

#include "stdafx.h"
#include "bbmp.h"
#include "infoDlg.h"
#include "bbmpDoc.h"
#include "bbmpView.h"
#include "myvq.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CBbmpView

IMPLEMENT_DYNCREATE(CBbmpView, CView)

BEGIN_MESSAGE_MAP(CBbmpView, CView)
//{{AFX_MSG_MAP(CBbmpView)
ON_COMMAND(ID_INFO, OnInfo)
ON_COMMAND(ID_VQZipper, OnVQZipper)
//}}AFX_MSG_MAP
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CBbmpView construction/destruction

CBbmpView::CBbmpView()
{
// TODO: add construction code here

}

CBbmpView::~CBbmpView()
{
}

BOOL CBbmpView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs

return CView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CBbmpView drawing

void CBbmpView::OnDraw(CDC* pDC)
{
CBbmpDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
// DrawDibDraw(hdd,hdc,xDst,yDst,dxDst,dyDst,lpbi,lpBits,xSrc,ySrc,dxScr,dySrc,wFlags);


if (pDoc->begin==true)
{
if(pDoc->myVQ.cancel==true)
{
if(pDoc->timefirst==false)
{


pDoc->timefirst=true;
}
pDoc->mybmp.load(pDoc->myVQ.filepathname);
pDoc->myVQ.cancel=false;


}
pDoc->mybmp.Draw(pDC,0,0,-1,-1);

}}

/////////////////////////////////////////////////////////////////////////////
// CBbmpView printing

BOOL CBbmpView::OnPreparePrinting(CPrintInfo* pInfo)
{
// default preparation
return DoPreparePrinting(pInfo);
}

void CBbmpView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add extra initialization before printing
}

void CBbmpView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add cleanup after printing
}

/////////////////////////////////////////////////////////////////////////////
// CBbmpView diagnostics

#ifdef _DEBUG
void CBbmpView::AssertValid() const
{
CView::AssertValid();
}

void CBbmpView::Dump(CDumpContext& dc) const
{
CView::Dump(dc);
}

CBbmpDoc* CBbmpView::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CBbmpDoc)));
return (CBbmpDoc*)m_pDocument;


}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CBbmpView message handlers
void CBbmpView::OnInfo()
{
CBbmpDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: Add your command handler code here
infoDlg myinfo;
if(pDoc->begin==true)
{
myinfo.m_filename=pDoc->mybmp.Filename;
myinfo. m_filesize.Format("%d字节",pDoc->mybmp.m_Bmpsize);
myinfo.m_bicount.Format("%d位",pDoc->mybmp.m_pBIH->biBitCount);
myinfo. m_height.Format("%d",pDoc->mybmp.m_pBIH->biHeight);
myinfo.m_width.Format("%d",pDoc->mybmp.m_pBIH->biWidth);
if (pDoc->mybmp.m_pBIH->biCompression==0)
myinfo.m_compression="未压缩";
else if(pDoc->mybmp.m_pBIH->biCompression==1)
myinfo.m_compression="RLE8压缩算法";
else
myinfo.m_compression="RLE4压缩算法";
}
myinfo.DoModal();
}

void CBbmpView::OnVQZipper()
{
// TODO: Add your command handler code here

CBbmpDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if(pDoc->begin==true)
{
if(pDoc->mybmp.m_pBIH->biBitCount!=24)
{
AfxMessageBox("24 bit bmp Needed! ");
return;
}


pDoc->myVQ.filepathname=pDoc->mybmp.Filefullname;

pDoc->myVQ.DoModal();


}
else
{
AfxMessageBox("请先打开图像");
}
}

void CBbmpView::OnActivateView(BOOL bActivate, CView* pActivateView, CView* pDeactiveView)
{
Invalidate();
CView::OnActivateView(bActivate, pActivateView, pDeactiveView);
}


因为是从CView派生的所以显示位图时没有滚动条,只能显示图象的一部分。
...全文
46 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
solarsea 2003-12-17
  • 打赏
  • 举报
回复
我试着改成CScrollView了,可是显示不出来,程序在“帮忙看看这两个程序(二)”里
该怎么改?
UDX协议 2003-12-17
  • 打赏
  • 举报
回复
我试着改成CScrollView了,可是显示不出来,程序在“帮忙看看这两个程序(二)”里
该怎么改?
滚动区域,大小。
你再试试,不要问别人。
nava 2003-12-16
  • 打赏
  • 举报
回复
OnSize
flyelf 2003-12-16
  • 打赏
  • 举报
回复
要想添加滚动条,把CView改成CScrollView,并且设置滚动区域
wqs6 2003-12-16
  • 打赏
  • 举报
回复
那你现在想怎么样?

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧