Win32 DrawText Цвет и дисплей

Я пытаюсь отобразить текст в моем окне. Я использую Win32 / OpenGL с C ++.

я нашел этот вопрос это метод, который я пытаюсь реализовать, к сожалению, я делаю что-то не так, поскольку он не работает.

Это моя функция CALLBACK:

LRESULT CALLBACK WinProc(HWND hWnd,UINT uMsg, WPARAM wParam, LPARAM lParam){
LONG    lRet = 0;
PAINTSTRUCT    ps;

switch (uMsg)
{
case WM_SIZE:
if(!g_bFullScreen)
{
SizeOpenGLScreen(LOWORD(lParam),HIWORD(lParam));
GetClientRect(hWnd, &g_rRect);
}
break;
case WM_PAINT:
//BeginPaint(hWnd, &ps);

//adding code from SO question here
HDC hdc = BeginPaint(hWnd, &ps);  //line 403

RECT rec;
//       SetRect(rect, x ,y ,width, height)
SetTextColor(hdc, RGB(255,255,255))
SetRect(&rec,10,10,100,100);
//       DrawText(HDC, text, text length, drawing area, parameters "DT_XXX")
DrawText(hdc, TEXT("Text Out String"),strlen("Text Out String"), &rec, DT_TOP|DT_LEFT);

EndPaint(hWnd, &ps);
ReleaseDC(hWnd, hdc);

//EndPaint(hWnd, &ps);
break;
case WM_KEYDOWN: //line 418
//some key presses

case WM_CLOSE:
PostQuitMessage(0);
break;

default://line 510
lRet = DefWindowProc (hWnd, uMsg, wParam, lParam);
break;
}

return lRet;
}

Кажется, я что-то неправильно реализую или упускаю из виду, потому что просто не вижу этого.

Это ошибки с этим: \main.cpp(403) : see declaration of 'hdc'

Если бы кто-то мог предложить изменить или помочь мне, где я иду не так, это было бы здорово. Заранее спасибо.

Обновить

Есть ошибки (добавлены строки в код выше):

main.cpp(418): error C2360: initialization of 'hdc' is skipped by 'case' label
main.cpp(506): error C2360: initialization of 'hdc' is skipped by 'case' label
main.cpp(510): error C2361: initialization of 'hdc' is skipped by 'default' label

1

Решение

Вы не можете объявить переменную в середине switch заявление. Он должен быть либо внутри блока, либо объявлен до начала switch,

Просто поместите код внутри case в скобках {} и ошибка исчезнет.

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]