在lang.h中定义字符串,并在WM_PAINT中使用它们

Define Strings in lang.h and use them in WM_PAINT?

本文关键字:PAINT WM 并在 lang 定义 字符串      更新时间:2023-10-16

我正在尝试自学c++,但遇到了一个障碍。这是我第一次尝试做一个简单的连接数据库的Win32程序。

我想做的:

我希望我所有的字符串都定义在lang.h中(这将允许更容易的翻译)。

然后我想在WM_PAINT case语句中使用DrawText()来绘制屏幕上某些位置的文本。


我已经得到了在屏幕上绘制的文本:

case WM_PAINT:
    {
        hdc = BeginPaint(hWnd, &ps);
        // TODO: Add any drawing code here...
        SelectObject(ps.hdc, GetStockObject(GRAY_BRUSH));
        Rectangle(ps.hdc, 100, 100, 500, 300);

        RECT rect;
        GetClientRect(hWnd, &rect);
        SetTextColor(ps.hdc, RGB(0, 0, 0));
        SetBkMode(ps.hdc, TRANSPARENT);
        rect.left = 110;
        rect.top = 110;
        LPCWSTR message = L"Connect to Database: ";
        DrawText(ps.hdc, message, -1, &rect, DT_SINGLELINE | DT_NOCLIP);

        EndPaint(hWnd, &ps);
    }
break;

但是,我真正想做的是使用lang。h

中定义的字符串

示例:(这不起作用,只是我尝试的许多事情之一)

//lang.h
#define MSG_DBPATH = L"Path to Database:";
//SimpleDBConnect.cpp
case WM_PAINT:
        {
            hdc = BeginPaint(hWnd, &ps);
            // TODO: Add any drawing code here...
            SelectObject(ps.hdc, GetStockObject(GRAY_BRUSH));
            Rectangle(ps.hdc, 100, 100, 500, 300);

            RECT rect;
            GetClientRect(hWnd, &rect);
            SetTextColor(ps.hdc, RGB(0, 0, 0));
            SetBkMode(ps.hdc, TRANSPARENT);
            rect.left = 110;
            rect.top = 110;
            DrawText(ps.hdc, MSG_DBPATH, -1, &rect, DT_SINGLELINE | DT_NOCLIP);

            EndPaint(hWnd, &ps);
        }
            break;

是否有可能在WM_PAINT案例语句中使用外部头文件中定义的文本在屏幕上绘制文本?

#define MSG_DBPATH L"Path to Database:"