循环运行后是死循环,总是无响应,要怎么修改呢?

目标:点击video按钮在视频区域画框,点击exit按钮结束;问题:点击video按钮后循环是死循环,点击exit无响应,总是需要在任务管理器结束任务,该如何修改呢?
         case VIDEO:    
                while(Bianliang==1){
                  //if (!bPhotoFileOpen){
                    strcpy(photoFile, "D://x.bmp"); 
                    capDriverConnect(hwndPhoto, 0);  // 与驱动连接  
                    capPreviewScale(hwndVideo, TRUE); // 使图像延伸到所设定的视窗大小  
                    capPreviewRate(hwndVideo, 1); // 每秒图像变化张数  
                    capPreview(hwndVideo, TRUE); // 预览图像显示  
                    capEditCopy(hwndVideo);  
                     if (capFileSaveDIB(hwndVideo, photoFile)){  
                      //hwndPhoto=capCreateCaptureWindow((LPSTR) "Save Bmp File Succeeded!", WS_CHILD | WS_VISIBLE,0, 0, 640, 480,(HWND) hWnd,(int)1);  
                    }              
                     hWinDC=GetDC(hWnd);
                    ReadBmpFile("D://x.bmp",Image);
                    SkindetectionHSV(Image, SkinImage, ImageWidth, ImageHeight);
                    drawkuang(Image, SkinImage,ImageWidth, ImageHeight,0,0);
                    while(exit==1){
                        Bianliang=0;
                        DestroyWindow(hWnd);
                        break;                                                                                                                                                                                        
                    }
                }
                break;

Bianliang的值在17行的while循环中有修改,但是 exit这个变量的值再哪里修改的呢,如果这个变量的值不修改,17行的whilie循环就是死循环了,内外层while循环也就无法结束。
不建议在事件响应函数中进行死循环操作,这样会导致当前线程的处理程序一直占用CPU,也就无法相应其它按钮的操作。如果是绘图操作,应该有鼠标按下和释放的响应函数才对啊。
正常的操作应该是:
在vedio按钮按下后,把Bianliang的状态置1,在鼠标按下时,响应鼠标按下事件,根据Bianliang的状态进行绘制,也就是while(Bianliang)中的内容,但是不需要用while循环,绘制由鼠标事件触法。
点击exit按钮后,更改Bianliang的值为0即可,这样就不会导致死循环了。

你应该在点击exit的时候Bianliang改为0,

//这两行放exit的点击监听里面
Bianliang=0;
DestroyWindow(hWnd);