伊莉討論區

標題: (OpenCV&DevC++)怎麼讓程式自動變更主要視窗? [打印本頁]

作者: ab78910    時間: 2010-5-1 09:42 AM     標題: (OpenCV&DevC++)怎麼讓程式自動變更主要視窗?

以下是我的程式碼
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <cv.h>
  4. #include <cvaux.h>
  5. #include <highgui.h>
  6. #include <cvcam.h>
  7. int main()
  8. {
  9. char x[20]={0}, n[20]={0};
  10. int i=0,j=0;
  11. p r i n t f("請輸入你的英文名子: ");
  12. s c a n f("%s", &x);
  13. CvCapture* capture = cvCreateCameraCapture(0);
  14. IplImage *Img;
  15. cvNamedWindow("按任意鍵拍照", 1);
  16. cvMoveWindow("按任意鍵拍照", 300, 260);
  17. while((Img = cvQueryFrame(capture))!=0)
  18. {
  19. cvShowImage("按任意鍵拍照", Img);
  20. if((cvWaitKey(50))!= -1)
  21. {
  22. s p r i n t f(n, "%s.jpg", x);
  23. cvSaveImage(n, Img);
  24. p r i n t f("儲存了名為%s的照片\n",x);
  25. i++;
  26. }
  27. if (i>j)
  28. {
  29. p r i n t f("請輸入你的英文名子: ");
  30. s c a n f("%s", &x);
  31. j=i;
  32. }
  33. }
  34. }
複製代碼


目前的情況是:
1.一開始使用者輸入完名子後,顯示的視訊視窗會被蓋住,有函式可以讓他顯示後就蓋過Dos視窗,變成主要視窗嗎?
2.按任意鍵拍照後,要用滑鼠按Dos視窗才能輸入名子,有函式可以讓Dos變主要視窗,直接輸入名子嗎?不用用到滑鼠
3.第2次輸入完名子,又要用滑鼠按視訊的視窗才能拍照...

不知道有沒有函式可以直接變更目前的主要視窗,麻煩高手教我了~~~!
我希望這個程式可以不用用到滑鼠去點視窗~^^
作者: superjoeliao    時間: 2010-5-1 04:47 PM

透過API-SetActiveWindow來實現
相關參考資料
http://msdn.microsoft.com/en-us/library/ms646311(VS.85).aspx
作者: ab78910    時間: 2010-5-1 06:18 PM

本帖最後由 ab78910 於 2010-5-1 06:22 PM 編輯

非常感謝您的回覆!

不過我把程式碼改成以下的樣子,沒有效果耶=.=

能否教我用法~感恩!!^^

再問一個問題~怎麼抓Dos的handle??
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <cv.h>
  4. #include <cvaux.h>
  5. #include <highgui.h>
  6. #include <cvcam.h>

  7. int main()
  8. {
  9.     char x[20]={0}, n[20]={0};
  10.     int i=0,j=0;
  11.     p r i n t f("請輸入你的英文名子: ");
  12.     s c a n f("%s", &x);   
  13.     CvCapture* capture = cvCreateCameraCapture(0);
  14.     IplImage *Img;
  15.     cvNamedWindow("按任意鍵拍照", 1);
  16.     cvMoveWindow("按任意鍵拍照", 300, 260);
  17.    
  18.     HWND hWnd1 = cvGetWindowHandle("按任意鍵拍照");
  19.     SetActiveWindow(hWnd1);

  20.     while((Img = cvQueryFrame(capture))!=0)
  21.     {  
  22.        cvShowImage("按任意鍵拍照", Img);
  23.        if((cvWaitKey(50))!= -1)
  24.        {         
  25.           s p r i n t f(n, "%s.jpg", x);
  26.           cvSaveImage(n, Img);
  27.           p r i n t f("儲存了名為%s的照片\n",x);
  28.           i++;
  29.        }
  30.        if (i>j)
  31.        {
  32.           p r i n t f("請輸入你的英文名子: ");   
  33.           s c a n f("%s", &x);
  34.           j=i;
  35.           //cvGetWindowHandle("按任意鍵拍照");
  36.        }      
  37.     }
  38. }   
複製代碼





歡迎光臨 伊莉討論區 (http://a401.file-static.com/) Powered by Discuz!