两个问题:
1、我想用OnChar()实现键盘响应,但是为什么没有反应
代码如下:
void CrtyView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
CDC *pDC=GetDC();
CDC Dc;
if(Dc.CreateCompatibleDC(pDC)==FALSE)
AfxMessageBox(_T("Can't create DC")); //异常处理
Dc.SelectObject(m_redrectangle);
if((nChar==(char)'A')||(nChar==(char)'a'))
{
pDC->StretchBlt(40,50,28,78,&Dc,0,0,28,78,SRCCOPY);
}
}
为什么就是没有反应?是不是因为我在执行程序的时候,系统认为我就是没有按“A”或“a”?我想要的效果达不到啊。。
2、关于图片背景。我的是单文档程序,窗口放大时,背景就错乱了。
void CrtyView::OnDraw(CDC* pDC)
{
CrtyDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
// TODO: 在此处为本机数据添加绘制代码
CRect rect(0,0,1024,768);
GetClientRect(rect);///取得客户区域
pDC->FillRect(rect,&m_brushBackground); ///用背景画刷填充区域
}
BOOL CrtyView::OnEraseBkgnd(CDC* pDC)
{
CView::OnEraseBkgnd(pDC);
return 0;
}
帮忙看看好吗?我是新手,网上说OnEraseBkgnd函数是可以在窗口大小改变时自适应的,怎么实现不了?
多谢了,我是大学生,在做小学期实习。。。谢谢!!!!
可以讲具体一点吗?谢谢~
第一个问题我已经解决了~谢谢了~其实是我构造函数的时候弄错了。。没有使用向导。。
第二个问题还是无法解决,可能是我的背景图片比较奇葩。。可以QQ联系吗?想请教一些问题~
934947535 加我的时候留个说明吧~谢啦~
另外我有点不懂ONCHAR函数的使用。希望可以私聊,谢谢~会有追加分的~