我的" 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);