各位大虾:
我在用vc编一个数据采集的程序,用菜单来控制,我这个采集程序可以连续不停的菜数据,当我用菜单控制其采数据时,在采集的过程中菜单一直处在被选中状态,其他所有的按钮都不响应,我做了一个菜单项来控制采集停止,但是在采数据的过程中“停止键”根本选不中。这是为什么?
如果我想停止采集就必须关掉整个程序。我该怎样做才能在采数据的过程中其他菜单项也能工作?
请各位高手帮帮小弟,不胜感激!!!
我在用vc编一个数据采集的程序,用菜单来控制,我这个采集程序可以连续不停的菜数据,当我用菜单控制其采数据时,在采集的过程中菜单一直处在被选中状态,其他所有的按钮都不响应,我做了一个菜单项来控制采集停止,但是在采数据的过程中“停止键”根本选不中。这是为什么?
如果我想停止采集就必须关掉整个程序。我该怎样做才能在采数据的过程中其他菜单项也能工作?
请各位高手帮帮小弟,不胜感激!!!
我现在已经实现了采集部分用辅助线程,在采集的过程中可以进行其它操作。
但是有出来新的问题:我想边采集边显示,我现使用的是opengl,但是线程控制函数是一个全局函数,把opengl中的图形显示函数放进去,就出这样的错误:*** undeclared identifier。
另外如果我只把采集有辅助线程来实现,而显示不用,这样在显示的过程中其他菜单项还是不响应,所以怎么样才能把画图部分也放到线程控制函数中。
我也这样试过,但是当我把绘图代码放到线程控制函数中后它还是回报错,因为线程控制函数是全局函数。
下面是绘图的源代码:
HWND hWnd=GetSafeHwnd();
HDC hDC=::GetDC(hWnd);
wglMakeCurrent(hDC,m_hRC);
glPushMatrix();
glPointSize(2.0);
glBegin(GL_POINTS);
for(j=0;j<1300;j++)//increase width 1 pixel by 1 pixel
{
c0[0]=-0.91+(2.0/1300)*j;
c0[1]=-0.91+(2.0/8)*(log10(data_phys[0][j]*15));
color[0]=1.0;
color[1]=0.0;
color[2]=0.0;
glColor3dv(color);
glVertex2dv(c0);
} glEnd();
glFlush();
glBegin(GL_POINTS); for(j=0;j<1300;j++)
{
c0[0]=-0.91+(2.0/1300)*j;
c0[1]=-0.91+(2.0/8)*(log10(data_phys[1][j]*15));
color[0]=1.0;
color[1]=1.0;
color[2]=0.0;
glColor3dv(color);
glVertex2dv(c0);
} glEnd();
glPopMatrix();
wglMakeCurrent(NULL,NULL);
SwapBuffers(hDC);
glFlush();
当我把他们放到线程控制函数中后,就出如下错误:
error C2065: 'GetSafeHwnd' : undeclared identifier
error C2065: 'm_hRC' : undeclared identifier
我该怎么办?
但是GetSafeHwnd()函数是opengl绘图必须要用到的。如果不用他就画不出图来。我该怎么做哪?