游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3026|回复: 2

一个奇怪问题...

[复制链接]

6

主题

6

帖子

24

积分

注册会员

Rank: 2

积分
24
发表于 2003-8-30 19:27:00 | 显示全部楼层 |阅读模式
我想做一个地图编辑器...

用MFC框架拆分成两个视图,一个为MapLibView用做显示地图图库,另一个为MapEditView用做地图编辑时使用.

想法是MapLibView用CGI处理,MapEditView由于需要快速显示就用HoHo处理,为了节省内存MapLibView和MapEditView都使用同一个图库,于是
我就在MainFrame里定义了一个iBitmapX变量起名为m_MapLib由MapLibView和MapEditView使用.可问题出来了MapEditView可以正常显示
.当我使用在MapLibView的OnDraw里使用如下语句时出错.

void CMapLibView::OnDraw(CDC* pDC)
{
CMapEditDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
CMainFrame *MainFrame;

MainFrame=(CMainFrame *)GetParentFrame();

if(MainFrame->m_MapLib == NULL )
{
        return;
}

CDC DC;
HDC hDC;

MainFrame->m_MapLib->GetSurface()->GetDC( &hDC ); //语句出错
DC.Attach(hDC);
pDC->BitBlt(0,0,300,1000,&DC,0,0,SCRRCOPY);
DC.DC.Detach();
MainFrame->m_MapLib->GetSurface()->ReleaseDC( &hDC );
}
高手们能不能告诉我怎么解决啊?

5

主题

21

帖子

21

积分

注册会员

Rank: 2

积分
21
发表于 2003-8-30 22:49:00 | 显示全部楼层

Re:一个奇怪问题...

  两个窗口要各创建一个HOHO对象,这两个HOHO也不能共享BITMAPX,要分别创建各自的BITMAPX。解决办法是不要折分,只创建一个视图,自己写代码控制地图和图库的显示。
  这是我的经验,当然也许斑主有更好的办法,呵呵-_-

1万

主题

1万

帖子

2万

积分

管理员

中级会员

Rank: 9Rank: 9Rank: 9

积分
20527
发表于 2003-8-31 11:00:00 | 显示全部楼层

Re:一个奇怪问题...

是的,两边的资源是无法公用,因为HoHo创建出来的LP_BITMAPX是自己进行管理的内存块,结构和Surface不同,所以是无法直接进行Blt复制。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-7-5 10:51

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表