void DrawBoxOutline (HWND hwnd, POINT ptBeg, POINT ptEnd)
{
HDC hdc ;
hdc = GetDC (hwnd) ;
SelectObject(hdc,GetStockObject(BLACK_PEN));
SetROP2 (hdc, R2_NOT) ;
SelectObject (hdc, GetStockObject (NULL_BRUSH)) ;
Rectangle (hdc, ptBeg.x, ptBeg.y, ptEnd.x, ptEnd.y) ;
ReleaseDC (hwnd, hdc) ;
}。。
case WM_LBUTTONDOWN :
ptBeg.x = ptEnd.x = LOWORD (lParam) ;
ptBeg.y = ptEnd.y = HIWORD (lParam) ;
DrawBoxOutline (hwnd, ptBeg, ptEnd) ;
SetCursor (LoadCursor (NULL, IDC_CROSS)) ;
fBlocking = TRUE ;
return 0 ;
case WM_MOUSEMOVE :
if (fBlocking)
{
SetCursor (LoadCursor (NULL, IDC_CROSS)) ;
DrawBoxOutline (hwnd, ptBeg, ptEnd) ;
ptEnd.x = LOWORD (lParam) ;
ptEnd.y = HIWORD (lParam) ;
DrawBoxOutline (hwnd, ptBeg, ptEnd) ;
}
return 0 ;
case WM_LBUTTONUP :
if (fBlocking)
{
DrawBoxOutline (hwnd, ptBeg, ptEnd) ;
ptBoxBeg = ptBeg ;
ptBoxEnd.x = LOWORD (lParam) ;
ptBoxEnd.y = HIWORD (lParam) ;
SetCursor (LoadCursor (NULL, IDC_ARROW)) ;
fBlocking = FALSE ;
fValidBox = TRUE ;
InvalidateRect (hwnd, NULL, TRUE) ;
}
return 0 ;
如果去掉case WM_MOUSEMOVE 里的第一个
DrawBoxOutline (hwnd, ptBeg, ptEnd) ;
会产生什么效果???(我试过了)请问这句的作用是什么?为什么???
{
HDC hdc ;
hdc = GetDC (hwnd) ;
SelectObject(hdc,GetStockObject(BLACK_PEN));
SetROP2 (hdc, R2_NOT) ;
SelectObject (hdc, GetStockObject (NULL_BRUSH)) ;
Rectangle (hdc, ptBeg.x, ptBeg.y, ptEnd.x, ptEnd.y) ;
ReleaseDC (hwnd, hdc) ;
}。。
case WM_LBUTTONDOWN :
ptBeg.x = ptEnd.x = LOWORD (lParam) ;
ptBeg.y = ptEnd.y = HIWORD (lParam) ;
DrawBoxOutline (hwnd, ptBeg, ptEnd) ;
SetCursor (LoadCursor (NULL, IDC_CROSS)) ;
fBlocking = TRUE ;
return 0 ;
case WM_MOUSEMOVE :
if (fBlocking)
{
SetCursor (LoadCursor (NULL, IDC_CROSS)) ;
DrawBoxOutline (hwnd, ptBeg, ptEnd) ;
ptEnd.x = LOWORD (lParam) ;
ptEnd.y = HIWORD (lParam) ;
DrawBoxOutline (hwnd, ptBeg, ptEnd) ;
}
return 0 ;
case WM_LBUTTONUP :
if (fBlocking)
{
DrawBoxOutline (hwnd, ptBeg, ptEnd) ;
ptBoxBeg = ptBeg ;
ptBoxEnd.x = LOWORD (lParam) ;
ptBoxEnd.y = HIWORD (lParam) ;
SetCursor (LoadCursor (NULL, IDC_ARROW)) ;
fBlocking = FALSE ;
fValidBox = TRUE ;
InvalidateRect (hwnd, NULL, TRUE) ;
}
return 0 ;
如果去掉case WM_MOUSEMOVE 里的第一个
DrawBoxOutline (hwnd, ptBeg, ptEnd) ;
会产生什么效果???(我试过了)请问这句的作用是什么?为什么???
解决方案 »
- OpenCV 关于Harris Corner Detector
- 进程的工作空间有没有包括硬盘空间
- 请教几个VC连接数据库的问题
- 如何读取SCSI硬盘唯一系列号,解决再开贴送200分!!!
- 谁碰到过这种问题:任务管理器进程中内存使用一栏的值不停上涨,但...
- 在线等待,请问mfc 对话框怎样屏蔽 Esc 和Endter 键按下时关闭对话框的功能
- FREEPY(自由拼音)编译成功后怎么不能用?
- 'ASSERT': identifier not found,快崩溃了,实在找不到原因
- 【怎么用A组合框控制B组合框中选项?】
- 诸位大虾,c真的很难学吗?小弟好怕怕!
- 切分窗口能不能两边都是基于CFormView类的
- 字体。颜色的问题
可能是画边框
{
HDC hdc ;
hdc = GetDC (hwnd) ;
SelectObject(hdc,GetStockObject(BLACK_PEN));
SetROP2 (hdc, R2_NOT) ;
SelectObject (hdc, GetStockObject (NULL_BRUSH)) ;
Rectangle (hdc, ptBeg.x, ptBeg.y, ptEnd.x, ptEnd.y) ;
ReleaseDC (hwnd, hdc) ;
}
我觉得这一点书上说得比较清楚,另外,要注意请教MSDN
书上没有说啊。怎么用的?