Hej
Jeg brugte denne kode i Vis c++ (miro)
void CMatildeView:
nKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: Add your message handler code here and/or call default
CPoint ScrollPoint=GetScrollPosition();
CRect rect;
CString msg1;
msg1="";
GetWindowRect(rect);
rect=rect-ScrollPoint;
if(nChar==VK_SHIFT)
bShift=1;
if(bShift)
nRepCnt=nJumpCnt;
else
nRepCnt=1;
switch(nChar)
{
case VK_DIVIDE:
{
nJumpCnt=10+nJumpCnt;
msg1.Format("Snap : %d",nJumpCnt);
}
break;
case VK_MULTIPLY:
{
nJumpCnt=10;
msg1.Format(" Snap grip : %d",nJumpCnt);
}
break;
case VK_ADD:
{
nJumpCnt++;
msg1.Format(" Snap grip : %d",nJumpCnt);
}
break;
case VK_SUBTRACT:
{
nJumpCnt--;
msg1.Format(" Snap grip : %d",nJumpCnt);
}
break;
case VK_SHIFT:
{
msg1.Format(" Snap grip : %d",nRepCnt);
}
break;
case VK_NUMPAD0:;
case '0'://0 eller keypad 0
{
if(AntalPoints>0)
{
SetCursorPos(Points[1].x+rect.left,Points[1].y+rect.top);
nPunkt=1;
}
else msg1.Format("Placer min 1 punkt ellers har 0 ikke nogen funktion. (0 er start punkt)");
}
break;
case VK_NUMPAD1:
case '1'://1 eller keypad 1
{
if(AntalPoints>1)
{
SetCursorPos(Points[2].x+rect.left,Points[2].y+rect.top);
nPunkt=2;
}
else msg1.Format("Placer min 2 punkt ellers har 1 ikke nogen funktion. (0 er start punkt)");
}
break;
case VK_NUMPAD2:
case '2'://2 eller keypad 2
{
if(AntalPoints>2)
{
SetCursorPos(Points[3].x+rect.left,Points[3].y+rect.top);
nPunkt=3;
}
else msg1.Format("Placer min 3 punkt ellers har 2 ikke nogen funktion. (0 er start punkt)");
}
break;
case VK_NUMPAD3:
case '3'://3 eller keypad 3
{
if(AntalPoints>3)
{
SetCursorPos(Points[4].x+rect.left,Points[4].y+rect.top);
nPunkt=4;
}
else msg1.Format("Placer min 4 punkt ellers har 3 ikke nogen funktion. (0 er start punkt)");
}
break;
case VK_NUMPAD4:
case '4'://4 eller keypad 4
{
if(AntalPoints>4)
{
SetCursorPos(Points[5].x+rect.left,Points[5].y+rect.top);
nPunkt=5;
}
else msg1.Format("Placer min 5 punkt ellers har 4 ikke nogen funktion. (0 er start punkt)");
}
break;
case VK_NUMPAD5:
case '5'://5 eller keypad 5
{
if(AntalPoints>5)
{
SetCursorPos(Points[6].x+rect.left,Points[6].y+rect.top);
nPunkt=6;
}
else msg1.Format("Placer min 6 punkt ellers har 5 ikke nogen funktion. (0 er start punkt)");
}
break;
case VK_NUMPAD6:
case '6'://6 eller keypad 6
{
if(AntalPoints>6)
{
SetCursorPos(Points[7].x+rect.left,Points[7].y+rect.top);
nPunkt=7;
}
else msg1.Format("Placer min 7 punkt ellers har 6 ikke nogen funktion. (0 er start punkt)");
}
break;
case VK_NUMPAD7:
case '7'://7 eller keypad 7
{
if(AntalPoints>7)
{
SetCursorPos(Points[8].x+rect.left,Points[8].y+rect.top);
nPunkt=8;
}
else msg1.Format("Placer min 8 punkt ellers har 7 ikke nogen funktion. (0 er start punkt)");
}
break;
case VK_NUMPAD8:
case '8'://8 eller keypad 8
{
if(AntalPoints>8)
{
SetCursorPos(Points[9].x+rect.left,Points[9].y+rect.top);
nPunkt=9;
}
else msg1.Format("Placer min 9 punkt ellers har 8 ikke nogen funktion. (0 er start punkt)");
}
break;
case VK_NUMPAD9:
case '9'://9 eller keypad 9
{
if(AntalPoints>9)
{
SetCursorPos(Points[10].x+rect.left,Points[10].y+rect.top);
nPunkt=10;
}
else msg1.Format("Placer min 10 punkt ellers har 9 ikke nogen funktion. (0 er start punkt)");
}
break;
case VK_RIGHT://Pile tast mod højre
{
if(AntalPoints>0)
{
Points[nPunkt].x=Points[nPunkt].x+nRepCnt;
SetCursorPos(Points[nPunkt].x+rect.left,Points[nPunkt].y+rect.top);
Invalidate();
}
else msg1.Format("Tegn min 1 punkt ellers har pil mod højre ikke nogen funktion.");
}
break;
case VK_LEFT://Pile tast mod venstre
{
if(AntalPoints>0)
{
Points[nPunkt].x=Points[nPunkt].x-nRepCnt;
SetCursorPos(Points[nPunkt].x+rect.left,Points[nPunkt].y+rect.top);
Invalidate();
}
else msg1.Format("Placer min 1 punkt ellers har pil mod venstre ikke nogen funktion.");
}
break;
case VK_DOWN://Pile tast ned
{
if(AntalPoints>0)
{
Points[nPunkt].y=Points[nPunkt].y+nRepCnt;
SetCursorPos(Points[nPunkt].x+rect.left,Points[nPunkt].y+rect.top);
Invalidate();
}
else msg1.Format("Placer min 1 punkt ellers har pilned ikke nogen funktion.");
}
break;
case VK_UP://Pile tast op
{
if(AntalPoints>0)
{
Points[nPunkt].y=Points[nPunkt].y-nRepCnt;
SetCursorPos(Points[nPunkt].x+rect.left,Points[nPunkt].y+rect.top);
Invalidate();
}
else msg1.Format("Placer min 1 punkt ellers har pilop ikke nogen funktion.");
}
break;
case VK_NUMLOCK://
{
}
break;
case VK_CAPITAL://
{
}
break;
case VK_SCROLL://
{
}
break;
default :
msg1.Format("Den aktiveret tastekode var : %d. Denne tast har ikke nogen funktion",nChar);
}
((CMainFrame*)AfxGetMainWnd())->m_wndStatusBar.SetPaneText(0,msg1);
CScrollView:
nKeyDown(nChar, nRepCnt, nFlags);
}
void CMatildeView:
nKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: Add your message handler code here and/or call default
if(nChar==VK_SHIFT)
bShift=0;
CScrollView:
nKeyUp(nChar, nRepCnt, nFlags);
}
Håber du kan bruges den til noget
Janus[Redigeret d. 18/11-02 19:23:39 af Janus S. Andersen]