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

时间:2014-07-22 00:01:15

标签: c++

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

我想做什么:

我想在lang.h中定义所有字符串(这样可以更容易翻译)。

然后,我想在WM_PAINT案例语句中使用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案例语句中在屏幕上绘制文本?

1 个答案:

答案 0 :(得分:0)

#define MSG_DBPATH L"Path to Database:"

注意没有等号,也没有分号。