对话框中的死循环
我用dll实现了一个对话框。需动态画上许多图形及控件。在显示前还需进行大量计算。而在计算函数中又需发送WM_PAIN消息(Invalidate())这样便导致很多显示的问题(死循环)请问个位高手这些函数调用应放在哪里?
例如:在对话框的OnPain()函数中调用如下(CListCtrl m_LabelList)
m_LabelList.DeleteAllItems();
str.Format("%d",i);
tempItem=m_LabelList.InsertItem(i,str);
DisplayValue=DftValue[i]/coefTotle*100.0;
str.Format("%4.2f%s",DisplayValue,"%");
m_LabelList.SetItemText(tempItem,1,str);
便出现死循环(不停的发送ON_PAIN消息)。
问题点数:20、回复次数:11Top
1 楼zswzwy(酒是穿肠毒药 @ 色是刮骨钢刀)回复于 2003-01-04 19:20:16 得分 0
是不是在运行过程中调用了刷新函数,形成了反复刷新,相当于死机?Top
2 楼lfpj(星光依旧)回复于 2003-01-04 19:28:09 得分 0
是这样的
可是这些函数我应该在那里加呢。是必要的啊Top
3 楼everandforever(Forever)回复于 2003-01-04 19:28:44 得分 5
计算时为什么要INVALIDATE()?不过WM_PAINT应该不会造成死循环.
建议采用 内存DC .Top
4 楼lfpj(星光依旧)回复于 2003-01-04 19:46:58 得分 0
我做的是根据采样来的数据,画出波形。根据数据计算出个谐波分量。然后用图形显示。要求用柱状图和柄状图。并且显示的谐波分量系数可选择。在鼠标单击波形时,就要算其对应点的傅立叶系数。算完后既要显示其系数。各位大虾,帮忙想一下该怎么做,不反复发送INVALIDATE()行吗?Top
5 楼demetry(智者橡木)回复于 2003-01-04 19:54:41 得分 0
必须要实时显示吗?Top
6 楼lfpj(星光依旧)回复于 2003-01-04 19:58:16 得分 0
必须实时显示Top
7 楼demetry(智者橡木)回复于 2003-01-04 20:56:38 得分 0
采样的周期事都少?Top
8 楼lfpj(星光依旧)回复于 2003-01-04 21:13:17 得分 0
是分段采样Top
9 楼crystal_heart(笑看风云)回复于 2003-01-04 22:02:47 得分 0
upTop
10 楼wyljery( VC Coder)回复于 2003-01-05 10:06:08 得分 5
这些修改控件的方法不要在onpaint里调用,控件自己就会完成重会为什么要paintTop
11 楼guanxg(紫色天使)回复于 2003-01-05 14:40:41 得分 10
不要在对话框的OnPain()中处理,应该在对话框的WM_INITDIALOG消息处理函数里处理Top




