MFC如如实现类似画图工具里的画布

intCHDPaintPView::OnCreate(LPCREATESTRUCTlpCreateStruct){if(CScrollView::OnCreate(lpC... int CHDPaintPView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CScrollView::OnCreate(lpCreateStruct) == -1)
return -1;

// TODO: Add your specialized creation code here
m_tracker.m_rect.SetRect(0,0,GetDocument()->m_cavasW,GetDocument()->m_cavasH);
m_tracker.m_nStyle = CRectTracker::resizeOutside;

// 此外必须为指针,如果为变量程序会崩溃

m_drawView = new CHDPaintView();

if (!m_drawView->CreateEx(WS_EX_LEFT | WS_EX_LTRREADING | WS_EX_RIGHTSCROLLBAR,
AfxRegisterWndClass(CS_VREDRAW | CS_HREDRAW,LoadCursor(NULL,IDC_CROSS),
(HBRUSH)GetStockObject(WHITE_BRUSH),NULL),
"",WS_CHILDWINDOW | WS_VISIBLE | WS_CLIPCHILDREN | WS_CLIPSIBLINGS,
m_tracker.m_rect.left,m_tracker.m_rect.top,
m_tracker.m_rect.right-1,m_tracker.m_rect.bottom-1,
this->m_hWnd,NULL))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
m_drawView->SetDocument((CHDPaintDoc*)m_pDocument);
m_drawView->ShowWindow(SW_NORMAL);
m_drawView->UpdateWindow();

SetClassLong(m_hWnd,GCL_HBRBACKGROUND,(long)GetStockObject(GRAY_BRUSH));

return 0;
}

上面是网上找到的代码。
原来的作者是自己实现了一个类,用来实现画布,但我在自己的程序中用了他的代码,却没有效果。还是显示一大片空白的客户区,没能显示一个灰色背景的画布。
区别是,他的程序是一个单文档程序,我的是多文档的。我不清楚还需要在哪里修改?
程序是的ChildFrame、View、MainFrame中的哪一个?或者是Doc类。。

自己的程序中添加代码后无效果
展开
 我来答
若以下回答无法解决问题,邀请你更新回答
tian27413
2013-04-15
知道答主
回答量:19
采纳率:0%
帮助的人:9.5万
展开全部
msdn中drawcli!
追问
示例代码里面确实有很多可以学习的东西,我先看下吧。多谢了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式