gpt4 book ai didi

c++ - Win32 DrawText 颜色和显示

转载 作者:行者123 更新时间:2023-11-30 01:53:57 25 4
gpt4 key购买 nike

我正在尝试在我的窗口上显示一些文本。我在 C++ 中使用 Win32/OpenGL。

我找到了 this question这是我尝试实现的方法,不幸的是,我做错了,因为它不起作用。

这是我的回调函数:

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

最佳答案

您不能在 switch 语句中间声明变量。它必须在 block 内,或者在 switch 开始之前声明。

只需将 case 内的代码放在方括号 {} 中,错误就会消失。

关于c++ - Win32 DrawText 颜色和显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22515392/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com