求助 onpaint的问题 在xxxview中添加了onPaint()绘图,在别的电脑上可以,但是自己的电脑上就是一直在等待显示窗口,鼠标一直是转圈的等待,没法点击窗口 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 死循环,是不是程序什么地方在反复调用onPaint() 都是win7的机子void CimgMFCView::OnPaint() { CPaintDC dc(this); // device context for painting CimgMFCDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); //if open a file if((pDoc->flagOpen==1)) { SetDIBitsToDevice(dc.m_hDC, //DIB as output device 300, // 100, // pDoc->bitInfoHead.biWidth, //DIB width pDoc->bitInfoHead.biHeight, //DIB height 0, //DIB output x postion 0, //DIB output y postion 0, // pDoc->bitInfoHead.biHeight, // pDoc->imgData, // pDoc->bitInfo, // DIB_RGB_COLORS); // } Invalidate(FALSE);}我写的onpaint,放在xxxView里面的 在OnPaint里面,事件结束后,重画窗口结束,而函数Invalidate使窗口再次重画,这样就陷入了无限循环.可以看看msdn关于WM_PAINT 消息的说明. VC映射消息 vc 画图 的速度问题 createwindow可以指定拥有者窗口? 关于异或线的问题 如何在98下关联进程与端口 MFC控件显示透明问题 activex 中的消息相应顺序和messagebox问题 关于winsock几个小问题 MFC反串行化显示指针内容遇到点问题? VS 上不同平台工具集,对系统有什么不同的要求? 音乐播放器按钮问题 工程设置中linker的 Command line 选项里的内容怎么更改?
{
CPaintDC dc(this); // device context for painting CimgMFCDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc); //if open a file
if((pDoc->flagOpen==1))
{
SetDIBitsToDevice(dc.m_hDC, //DIB as output device
300, //
100, //
pDoc->bitInfoHead.biWidth, //DIB width
pDoc->bitInfoHead.biHeight, //DIB height
0, //DIB output x postion
0, //DIB output y postion
0, //
pDoc->bitInfoHead.biHeight, //
pDoc->imgData, //
pDoc->bitInfo, //
DIB_RGB_COLORS); //
}
Invalidate(FALSE);
}我写的onpaint,放在xxxView里面的
这样就陷入了无限循环.可以看看msdn关于WM_PAINT 消息的说明.