C vs 2017设置全局变量 - 程序仅在调试中使用断点



我的" lclick"全局变量在我设置一个应将其设置为true的断点时成功设置为true,但如果不运行,则不会。请帮助!

in global.h:

#pragma once
extern bool lClick;

在global.cpp中:

#include "global.h"
bool lClick = false;

在main.cpp中:

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)
    {
        case WM_LBUTTONDOWN:
        {
            int iPosX = LOWORD(lParam);
            int iPosY = HIWORD(lParam);
            lClick = true;
            break;
        }
        case WM_PAINT:
        {
            PAINTSTRUCT ps;
            HDC hdc = BeginPaint(hWnd, &ps);
            // draw bitmaps
            DrawAll(hdc);
            EndPaint(hWnd, &ps);
        }

scrabble.cpp:

void DrawArrow(HDC hdc, int x, int y)
{
    Draw("arrowrt_mask.bmp", hdc, 110, 150, 1);
    Draw("arrowrt.bmp", hdc, 110, 150, 2);
}
void DrawAll(HDC hdc)
{
    InitPaint(hdc);
    Draw("board.bmp", hdc, 10, 50);
    Draw("racks.bmp", hdc, 770, 10);
    Draw("textarea.bmp", hdc, TEXT_AREAX, TEXT_AREAY);
    // display arrow if player left clicked somewhere on the board
    if (lClick)
    {
        DrawArrow(hdc, 0, 0);
    }

用户左键单击时,目标是在拼字板上的某个地方绘制箭头。

绘画仅在需要时才发生。您可能打算在鼠标点击上重新粉刷屏幕,但是如果是这样,则需要使窗口无效。

假设HWND是您的主窗口,将其添加为Case WM_LButtondown的最后一行(休息前(:

 InvalidateRect(hwnd, NULL, TRUE);

最新更新