VC6.0中菜单的响应有关问题
VC6.0中菜单的响应问题
我在VC6.0中创建了一个菜单选项是插值,下面有一个子菜单是Lagrange,其ID实IDM_Lagrange。然后在WndProc 中添加代码为:
case IDM_Lagrange: // Lagrange响应函数
hdc=BeginPaint(hwnd,&ps);
GetClientRect(hwnd,&rect);
for(x=0;x<rect.right;x+=100)
{
MoveToEx(hdc,x,0,NULL);
LineTo(hdc,x,rect.bottom);
}
for(y=0;y<rect.bottom;y+=100)
{
MoveToEx(hdc,0,y,NULL);
LineTo(hdc,rect.right,y);
}
EndPaint(hwnd,&ps);
return 0;
想在客户区画网格,编译连接都没有错误,点击Lagrange选项时,没有实现预想的功能,到底是什么地方出错了呢?
------解决方案--------------------
可能重绘速度太快,被刷掉了。建议放在OnPaint里。
------解决方案--------------------
BeginPaint/EndPaint()是用在WM_PAINT消息处理中,其它地方请使用GetDC/ReleaseDC()
------解决方案--------------------
断点调试一下,看消息处理函数被执行到没
我在VC6.0中创建了一个菜单选项是插值,下面有一个子菜单是Lagrange,其ID实IDM_Lagrange。然后在WndProc 中添加代码为:
case IDM_Lagrange: // Lagrange响应函数
hdc=BeginPaint(hwnd,&ps);
GetClientRect(hwnd,&rect);
for(x=0;x<rect.right;x+=100)
{
MoveToEx(hdc,x,0,NULL);
LineTo(hdc,x,rect.bottom);
}
for(y=0;y<rect.bottom;y+=100)
{
MoveToEx(hdc,0,y,NULL);
LineTo(hdc,rect.right,y);
}
EndPaint(hwnd,&ps);
return 0;
想在客户区画网格,编译连接都没有错误,点击Lagrange选项时,没有实现预想的功能,到底是什么地方出错了呢?
------解决方案--------------------
可能重绘速度太快,被刷掉了。建议放在OnPaint里。
------解决方案--------------------
BeginPaint/EndPaint()是用在WM_PAINT消息处理中,其它地方请使用GetDC/ReleaseDC()
------解决方案--------------------
断点调试一下,看消息处理函数被执行到没