| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1396 人关注过本帖
标题:[求助]关于LoadBitmap函数
只看楼主 加入收藏
hcygxr2008
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-7-27
收藏
 问题点数:0 回复次数:7 
[求助]关于LoadBitmap函数

麻烦高手看看 我在mfc中的view类中用了几个消息响应OnRotaryvane() ,OnWaterring()等,使用了 m_nIDType变量来接受BitMap的ID号 ,调试都没什么问题,但是怎么运行不出来呢??
#include "stdafx.h"
#include "初步设计.h"

#include "初步设计Doc.h"
#include "初步设计View.h"

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

/////////////////////////////////////////////////////////////////////////////
// CMyView

IMPLEMENT_DYNCREATE(CMyView, CView)

BEGIN_MESSAGE_MAP(CMyView, CView)
//{{AFX_MSG_MAP(CMyView)
ON_COMMAND(IDM_WATERRING, OnWaterring)
ON_COMMAND(IDM_ROTATINGPISTON, OnRotatingpiston)
ON_COMMAND(IDM_ROOTS, OnRoots)
ON_COMMAND(IDM_ROTARYVANE, OnRotaryvane)
ON_COMMAND(IDM_IONSPUTTERING, OnIonsputtering)
ON_COMMAND(IDM_DIFFUSION, OnDiffusion)
ON_COMMAND(IDM_CRYO, OnCryo)
ON_COMMAND(IDM_TURBOMOLECULAR, OnTurbomolecular)
ON_WM_ERASEBKGND()
//}}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()

/////////////////////////////////////////////////////////////////////////////
// CMyView construction/destruction

CMyView::CMyView()
{
// TODO: add construction code here
m_nPumpType=0;
m_nDrawType=0;
m_nIDType=0;
}

CMyView::~CMyView()
{
}

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

return CView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CMyView drawing

void CMyView::OnDraw(CDC* pDC)
{
CMyDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here

// return CView::OnEraseBkgnd(pDC);
}

/////////////////////////////////////////////////////////////////////////////
// CMyView printing

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

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

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

/////////////////////////////////////////////////////////////////////////////
// CMyView diagnostics

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

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

CMyDoc* CMyView::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CMyDoc)));
return (CMyDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CMyView message handlers

void CMyView::OnRotaryvane()
{
// TODO: Add your command handler code here

m_nIDType=IDB_BITMAP1;
}

void CMyView::OnWaterring()
{
// TODO: Add your command handler code here

m_nIDType=IDB_BITMAP2;
}

void CMyView::OnRotatingpiston()
{
// TODO: Add your command handler code here

m_nIDType=IDB_BITMAP3;
}

void CMyView::OnRoots()
{
// TODO: Add your command handler code here

m_nIDType=IDB_BITMAP4;
}

void CMyView::OnTurbomolecular()
{
// TODO: Add your command handler code here

m_nIDType=IDB_BITMAP5;
}

void CMyView::OnDiffusion()
{
// TODO: Add your command handler code here
m_nIDType=IDB_BITMAP6;
}
void CMyView::OnIonsputtering()
{
// TODO: Add your command handler code here

m_nIDType=IDB_BITMAP7;
}


void CMyView::OnCryo()
{
// TODO: Add your command handler code here

m_nIDType=IDB_BITMAP8;
}

BOOL CMyView::OnEraseBkgnd(CDC* pDC)
{
// TODO: Add your message handler code here and/or call default

CBitmap bitmap;
if(bitmap.m_hObject!=NULL)
bitmap.DeleteObject();
bitmap.LoadBitmap(m_nIDType);

BITMAP bmp;
bitmap.GetBitmap(&bmp);

CDC dcCompatible;
dcCompatible.CreateCompatibleDC(pDC);

dcCompatible.SelectObject(&bitmap);

CRect rect;
GetClientRect(&rect);
// pDC->BitBlt(0,0,rect.Width(),rect.Height(),&dcCompatible,0,0,SRCCOPY);
pDC->StretchBlt(0,0,rect.Width(),rect.Height(),&dcCompatible,
0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY);


return TRUE;
// return CView::OnEraseBkgnd(pDC);
}

[此贴子已经被作者于2006-10-30 12:17:19编辑过]

搜索更多相关主题的帖子: LoadBitmap 函数 
2006-10-28 15:04
maoguoqing
Rank: 6Rank: 6
来 自:重庆
等 级:贵宾
威 望:28
帖 子:2980
专家分:19
注 册:2005-12-5
收藏
得分:0 

没描述清楚,请附上代码。


天行健,君子以自强不息!!QQ:68660681
2006-10-28 16:05
hcygxr2008
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-7-27
收藏
得分:0 
重新编辑了一下 这是工程名为"初步设计"的view类的代码
请高手看看 并有什么问题 并介绍一下 LoadBitmap函数的奥妙
多谢了
2006-10-30 12:20
maoguoqing
Rank: 6Rank: 6
来 自:重庆
等 级:贵宾
威 望:28
帖 子:2980
专家分:19
注 册:2005-12-5
收藏
得分:0 
你为什么要在OnEraseBkgnd函数中显示位图呢?这样显示不会成功吧?
你把OnEraseBkgnd函数里的代码放到OnDraw中去试试。。
LoadBitmap就是加载一位图。并与一个CBitmap的对象关联起来

天行健,君子以自强不息!!QQ:68660681
2006-10-30 18:05
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
bitmap.LoadBitmap(m_nIDType);
m_nIDType是什么?位图ID?

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-10-30 22:13
hcygxr2008
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-7-27
收藏
得分:0 

谢谢各位了
我m_nIDType是自定义的view类的一个变量,哈哈
楼上的介绍的我去试试,还请各位多关照啊

2006-10-31 12:41
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
你在OnEraseBkgnd里写是对的,只是那个nIDType是不是表示错了?

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-10-31 12:54
jb1_1986432
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-5-25
收藏
得分:0 
bitmap.LoadBitmap(xxx);
xxx必须是一个位图的ID号

小菜一个~!
2006-11-03 19:50
快速回复:[求助]关于LoadBitmap函数
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027049 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved