用API实现定时器画出DDA直线的演示

定义了全局数组来存放DDA算法生成的点

int PX[1000],PY[1000];

在菜单栏有 ID_SHOWSTEP

case ID_SHOWSTEP:
if(bSetTimer)
{
::KillTimer(hWnd,IDT_TIMER1);
bSetTimer = FALSE;
}
else
{
if(::SetTimer(hWnd,IDT_TIMER1,100,NULL) == 0)
{
::MessageBox(hWnd,"定时器安装失败","系统提示",MB_OK);
}
else
{
bSetTimer = TRUE;
}
}
return 0;

在这块实现画点:

case WM_TIMER:
{



                HDC hdc=::GetDC(hWnd);
if(wParam == IDT_TIMER1)
{

drawpixel (PX[k], int(PY[k]+0.5),50,RGB(0,0,0),hdc);  
//::MessageBeep(MB_OK);
}
     
   k++;
}
break;
主要是把点存放到数组,就可以实现

你可能感兴趣的:(用API实现定时器画出DDA直线的演示)