我想用MFC做一个简单的界面,就是里边放置一个小圆,我通过键盘上下左右来移动它,这个好实现吗?

解决方案 »

  1.   

    简单一点在OnDraw或者OnPaint函数中利用GDI函数Ellipse画圆,在响应上下左右按键时候改变坐标,然后InvalidateRect就可以了
      

  2.   

    成功运行-_-我也刚刚学MFC,如果方法很水,请大家不要笑我
    static LRESULT CALLBACK KeyboardProc(int code, WPARAM wParam, LPARAM lParam);
    LRESULT CALLBACK CYuanDlg::KeyboardProc(int code, WPARAM wParam, LPARAM lParam)
    {
    if (wParam==VK_LEFT)
    {
    x-=5;
    }
    else if (wParam==VK_RIGHT)
    {
    x+=5;
    }
    else if (wParam==VK_UP)
    {
    y-=5;
    }
    else if (wParam==VK_DOWN)
    {
    y+=5;
    }
    return CallNextHookEx(g_hKeyboard,code,wParam,lParam);
    }
    在OnPaint中
             SetTimer(1,0,NULL);                //刷新窗口,用Invalidate()圆会一直闪 CClientDC dc(this);
    CRect rect;
    GetClientRect(&rect);
    dc.Ellipse(CRect(x,y,x+100,y+100));
    其他要求在自己添加
    刚看MFC一个月,有什么好方法也可以说,我诚心学习~~
      

  3.   

    没判断X,Y和(rect),所以圆会出窗口