void CScreenEditView::DrawScreenObjects(CDC *pDC) { Screen *pWorkScreen; ScreenObject *pScreenObject; CFEManDoc* pDoc = GetDocument(); // Only draw the screen object if there is one screen selected. if(pDoc->GetNumSelectedScreenIcons() != 1) return; //CPen defaultBackgroundPen(PS_SOLID, 1, RGB(0, 0, 0)); //CBrush defaultBackgroundBrush(RGB(156, 125, 97)); pWorkScreen = pDoc->GetFirstSelectedScreen(); pScreenObject = pWorkScreen->GetFirstScreenObject(); while(pScreenObject) { pScreenObject->Draw(pDC); pScreenObject = (ScreenObject *)pScreenObject->GetNext(); } }
void CScreenEditView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) { CFEManDoc* pDoc = GetDocument(); CPoint workPoint = lastLeftClick; unsigned long moveDist = 0; Screen *pWorkScreen; ScreenObject *pWorkObject; // Only draw the screen object if there is one screen selected. if(pDoc->GetNumSelectedScreenIcons() != 1) return; pWorkScreen = pDoc->GetFirstSelectedScreen(); if(pDoc->gridActive) { moveDist = pDoc->gridSpacing; } else { moveDist = 1; } switch(nChar) { case VK_LEFT: workPoint.x -= moveDist; pWorkScreen->RelocateSelectedScreensObjects(&lastLeftClick, &workPoint); lastLeftClick = workPoint; break; case VK_RIGHT: workPoint.x += moveDist; pWorkScreen->RelocateSelectedScreensObjects(&lastLeftClick, &workPoint); lastLeftClick = workPoint; break; case VK_UP: workPoint.y -= moveDist; pWorkScreen->RelocateSelectedScreensObjects(&lastLeftClick, &workPoint); lastLeftClick = workPoint; break; case VK_DOWN: workPoint.y += moveDist; pWorkScreen->RelocateSelectedScreensObjects(&lastLeftClick, &workPoint); lastLeftClick = workPoint; break; case VK_TAB: pWorkObject = pWorkScreen->GetFirstSelectedScreenObject(); if(pWorkObject) { pWorkObject = pWorkScreen->GetFirstSelectedScreenObject(); pWorkObject = (ScreenObject *)pWorkObject->GetNext(); pWorkScreen->ClearAllSelectedScreenObjects(); if(pWorkObject) { pWorkScreen->SelectScreenObject(pWorkObject); } else { pWorkScreen->SelectScreenObject(pWorkScreen->GetFirstScreenObject()); } } else { pWorkScreen->SelectScreenObject(pWorkScreen->GetFirstScreenObject()); } break; } Invalidate(); CView::OnKeyDown(nChar, nRepCnt, nFlags); }