基于上篇博客代码下进行修改:
- 对于view建立keydown的类向导
void CMy7View::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CRect rect;
GetClientRect(&rect);
if (nChar == VK_LEFT) {
if (m_ptBegin.x - 10 > 0) {
m_ptBegin.x -= 10;
m_ptEnd.x -= 10;
}
else {
m_ptEnd.x -= m_ptBegin.x;
m_ptBegin.x =0;
}
}
else if (nChar == VK_UP) {
if (m_ptBegin.y - 10 > 0) {
m_ptBegin.y -= 10;
m_ptEnd.y -= 10;
}
else {
m_ptEnd.y -= m_ptBegin.y;
m_ptBegin.y = 0;
}
}
else if (nChar == VK_RIGHT) {
if (m_ptEnd.x + 10 < rect.right) {
m_ptBegin.x += 10;
m_ptEnd.x += 10;
}
else {
m_ptBegin.x +=rect.right-m_ptEnd.x ;
m_ptEnd.x = rect.right;
}
}
else if(nChar==VK_DOWN){
if (m_ptEnd.y + 10 < rect.bottom) {
m_ptBegin.y += 10;
m_ptEnd.y += 10;
}
else {
m_ptBegin.y += rect.bottom - m_ptEnd.y;
m_ptEnd.y = rect.bottom;
}
}
InvalidateRect(NULL);
CView::OnKeyDown(nChar, nRepCnt, nFlags);
}