想用POINT结构限制坐标点的数量,(仿照Programming Windows上面的一段)。先用static POINT point[1000];然后“case WM_MOUSEMOVE:
if(wParam&&iCount<1000){
point[iCount].x=LOWORD(lParam); <------一加上这句运行时就崩溃
point[iCount++].y=HIWORD(lParam); <------同上
hdc=GetDC(hwnd);
SetPixel(hdc,LOWORD(lParam),HIWORD(lParam),0);
ReleaseDC(hwnd,hdc);
}
return 0; ”
只要把point那两句话去掉,运行正常,可以用鼠标绘出点。这是为什么?
if(wParam&&iCount<1000){
point[iCount].x=LOWORD(lParam); <------一加上这句运行时就崩溃
point[iCount++].y=HIWORD(lParam); <------同上
hdc=GetDC(hwnd);
SetPixel(hdc,LOWORD(lParam),HIWORD(lParam),0);
ReleaseDC(hwnd,hdc);
}
return 0; ”
只要把point那两句话去掉,运行正常,可以用鼠标绘出点。这是为什么?
解决方案 »
- 想把PNG格式的图片作为按钮的背景,怎么在VC里引入PNG文件
- 程序控制关闭一个钩子应用程序前,怎么样卸载钩子!
- vc里有没有反向搜索字串的函数类似ReverseFind(TCHAR ch)
- CFormView中一个CListBox的WM_PAINT消息 送给了谁?引起了哪些函数的调用?
- 怎么样通过编码来关闭文件选择窗口
- 关于给球体进行纹理映射(贴图),程序可正常运行,可是贴出的世界地图在球体上却反了
- 请帮我解释一下 int apientry winmain(.....) 中的apientru和winmain都是什么啊?
- 100分绝望求救,请各位硬件大虾帮忙,一个函数,编译不能通过。有关DDK的
- 在单文档中,如保禁用滚动条?
- 异想天开的问题???,进来就给分!!!!
- 谁有《opengl参考手册》?
- release为何不行?
if(wParam&&iCount<1000&&iCount>=0)
case WM_LBUTTONDOWN:
iCount=0;
InvalidateRect(hwnd,NULL,true);
return 0;
case WM_MOUSEMOVE:
if(wParam&&iCount<1000&&iCount>=0){
point[iCount].x=LOWORD(lParam);
point[iCount++].y=HIWORD(lParam);
hdc=GetDC(hwnd);
SetCursor(LoadCursor(NULL,IDC_UPARROW));
ShowCursor(true);
SetPixel(hdc,LOWORD(lParam),HIWORD(lParam),0);
ReleaseDC(hwnd,hdc);
}
return 0;
case WM_LBUTTONUP:
InvalidateRect(hwnd,NULL,false);
return 0;
if(wParam&&iCount<1000&&iCount>=0)
改成
if(wParam&&(iCount<1000)&&(iCount>=0))
试试。我象可能跟运算符的优先级有关,你没有跟踪一下吗?
如果iCount是局部变量,每次函数结束都将销毁,没法正确保存你的点的数目