Mr.C 发表于 2011-10-29 11:54:10

2011年十大未解之迷 送鱼币求解答

case WM_LBUTTONDOWN:
       hdc_draw = GetDC(hWnd);
       pt.x = LOWORD(lParam);
       pt.y = HIWORD(lParam);
break;

case WM_MOUSEMOVE:
       if(hdc_draw)                           //已初始为NULL
       {
             MoveToEx(hdc_draw, pt.x, pt.y, NULL);
             LineTo(hdc_draw, LOWORD(lParam), HIWORD(lParam));
             pt.x = LOWORD(lParam);
             pt.y = HIWORD(lParam);
      }
break;

case WM_LBUTTONUP:
      ReleaseDC(hWnd, hdc_draw);
break;

程序是要画线, 但没任何反应。问题出在哪。

送鱼币,求解答。

cqy55555 发表于 2011-10-29 11:54:11

貌似是没有指定画笔颜色,默认画笔颜色和背景颜色相同而看不出来。改个颜色试试看

Mr.C 发表于 2011-10-29 12:29:53

本帖最后由 Mr.C 于 2011-10-29 12:31 编辑

自己解决了,原来,在画线这个功能上,必须把 hdc_draw设置为全局变量。
不然,回调函数是无限刷的,在MOUSEMOVE过程中,hdc_draw一直被赋为NULL

画笔这个问题不可能产生,因为默认值就是黑色的。

immortalfaith 发表于 2016-9-11 17:04:47

来站坐

immortalfaith 发表于 2016-9-12 13:27:06


围观

immortalfaith 发表于 2016-9-12 13:27:42


围观

immortalfaith 发表于 2016-9-12 13:28:20


围观

immortalfaith 发表于 2016-9-12 13:29:00


围观

immortalfaith 发表于 2016-9-12 13:29:39


围观

immortalfaith 发表于 2016-9-12 13:30:18


围观

immortalfaith 发表于 2016-9-12 13:31:03


围观

immortalfaith 发表于 2016-9-12 13:31:35


围观

immortalfaith 发表于 2016-9-12 13:32:08


围观

immortalfaith 发表于 2016-9-12 13:32:49


围观

e马先森 发表于 2017-2-16 13:16:16

{:10_279:}
页: [1]
查看完整版本: 2011年十大未解之迷 送鱼币求解答