使用C ++绘制矩形拖放

时间:2017-03-14 16:00:30

标签: c++ user-interface winapi paint

我的代码有问题。所有逻辑似乎都没问题,但在函数OnKeyDown中有错误,表示

  

在此之前不允许使用功能定义' {'令牌

在OnDestroy函数中同样是

  

预计' {'在输入结束时

下面是我的代码,我在MsgHandlers.h中的所有定义

void OnPaint(HWND hwnd, HDC hdc)
{
    HPEN prevPen;
    HBRUSH prevBrush;

    prevPen = (HPEN)SelectObject(hdc, MyPen);
    prevBrush = (HBRUSH)SelectObject(hdc, MyBrush);
for(int i=0;i<CurrentRect;i++)
    Rectangle(hdc, MyRect[i].left, MyRect[i].top, MyRect[i].right,         MyRect[i].bottom);

SelectObject(hdc, prevPen);



void OnKeyDown(HWND hwnd, WPARAM keyCode)
{
    switch (keyCode)
    {
    case VK_LEFT:
        break;
    case VK_UP:
        break;
    case VK_RIGHT:
        break;
    case VK_DOWN:
        break;
    case 0x43: // C
        break;
    case 0x45: // E
        EraseBkgnd ^= 0x00000001;
        break;
    case 0x49: // I
        break;
    case 0x52: // R
        break;
    case 0x53: // S
        break;
    }
    //InvalidateRect(hwnd, NULL, EraseBkgnd);
}




void OnDestroy(HWND hwnd)
{
    KillTimer(hwnd, 1);

    DeleteObject(MyPen);
    DeleteObject(MyBrush);
}

2 个答案:

答案 0 :(得分:2)

好像忘记了OnPaint()中的结束括号,它抱怨你将OnKeyDown()放在其中

答案 1 :(得分:0)

似乎你在OnPaint

的末尾错过了一个“}”