Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 |
hVideo = capCreateCaptureWindow("Meine WebCam", WS_CHILD | WS_VISIBLE, 0, 0, IMAGE_WIDTH, IMAGE_HEIGHT, hWinWindow, 1); if(!hVideo) { MessageBox(hWinWindow, "Webcam Render-Windeo kann nicht erstellt werden...", "Fehler", MB_ICONERROR); return 0; } if(!capDriverConnect(hVideo, 0)) { MessageBox(hWinWindow, "Treiber für die Webcam kann nicht geladen werden...", "Fehler", MB_ICONERROR); return 0; } capPreviewRate(hVideo, 30); capPreview(hVideo, true); capGetDriverDescription(0, acDeviceName, sizeof(acDeviceName), acDeviceVersion, sizeof(acDeviceVersion)); |
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »#Sound~Wave#« (25.06.2011, 18:57)
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 |
// Webcam Test.cpp : Definiert den Einstiegspunkt für die Anwendung. // #include "stdafx.h" #include "Webcam Test.h" #define MAX_LOADSTRING 100 // Globale Variablen: HINSTANCE hInst; // Aktuelle Instanz TCHAR szTitle[MAX_LOADSTRING]; // Titelleistentext TCHAR szWindowClass[MAX_LOADSTRING]; // Klassenname des Hauptfensters HWND hWindow, hVideo; char acDriverInfo[256]; // Vorwärtsdeklarationen der in diesem Codemodul enthaltenen Funktionen: ATOM MyRegisterClass(HINSTANCE hInstance); BOOL InitInstance(HINSTANCE, int); LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); void Draw(HWND hWnd); // WinMain Einstiegspunkt int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) { UNREFERENCED_PARAMETER(hPrevInstance); UNREFERENCED_PARAMETER(lpCmdLine); // TODO: Hier Code einfügen. MSG msg; HACCEL hAccelTable; // Globale Zeichenfolgen initialisieren LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING); LoadString(hInstance, IDC_WEBCAMTEST, szWindowClass, MAX_LOADSTRING); MyRegisterClass(hInstance); // Anwendungsinitialisierung ausführen: if(!InitInstance(hInstance, nCmdShow)) { return FALSE; } hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_WEBCAMTEST)); // Hauptnachrichtenschleife: while(GetMessage(&msg, NULL, 0, 0)) { if(!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) { TranslateMessage(&msg); DispatchMessage(&msg); } //qtApp->processEvents(); } return (int)msg.wParam; } // Registriert die Fensterklasse ATOM MyRegisterClass(HINSTANCE hInstance) { WNDCLASSEX wcex; wcex.cbSize = sizeof(WNDCLASSEX); wcex.style = CS_HREDRAW | CS_VREDRAW; wcex.lpfnWndProc = WndProc; wcex.cbClsExtra = 0; wcex.cbWndExtra = 0; wcex.hInstance = hInstance; wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_WEBCAMTEST)); wcex.hCursor = LoadCursor(NULL, IDC_ARROW); wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); wcex.lpszMenuName = MAKEINTRESOURCE(IDC_WEBCAMTEST); wcex.lpszClassName = szWindowClass; wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL)); return RegisterClassEx(&wcex); } // Speichert das Instanzenhandle und erstellt das Hauptfenster BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) { hInst = hInstance; // Instanzenhandle in der globalen Variablen speichern HWND hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, IMAGE_WIDTH * 2 + 10, IMAGE_HEIGHT + 100, NULL, NULL, hInstance, NULL); if(!hWnd) { return FALSE; } hWindow = hWnd; ShowWindow(hWnd, nCmdShow); UpdateWindow(hWnd); InvalidateRect(hWnd, NULL, true); // Webcamtreiber laden und Videostream in Childfenster anzeigen char acDeviceName[100], acDeviceVersion[100]; hVideo = capCreateCaptureWindow((LPSTR) "Meine WebCam", WS_CHILD | WS_VISIBLE, 0, 0, 640, 480, hWnd, 1); if(!capDriverConnect(hVideo, 0)) { MessageBox(hWnd, "Treiber für die Webcam kann nicht geladen werden...", "Fehler", MB_ICONERROR); return FALSE; } capPreviewRate(hVideo, 30); capPreview(hVideo, TRUE); capGetDriverDescription(0, acDeviceName, sizeof(acDeviceName), acDeviceVersion, sizeof(acDeviceVersion)); sprintf(acDriverInfo, "%s, %s", acDeviceName, acDeviceVersion); } // Verarbeitet Meldungen vom Hauptfenster. LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { int wmId, wmEvent; switch (message) { case WM_COMMAND: wmId = LOWORD(wParam); wmEvent = HIWORD(wParam); // Menüauswahl bearbeiten: switch (wmId) { case IDM_EXIT: DestroyWindow(hWnd); break; default: return DefWindowProc(hWnd, message, wParam, lParam); } break; case WM_PAINT: // TODO: Hier den Zeichnungscode hinzufügen. Draw(hWnd); break; case WM_DESTROY: capPreview(hVideo, FALSE) ; capDriverDisconnect(hVideo) ; PostQuitMessage(0); break; default: return DefWindowProc(hWnd, message, wParam, lParam); } return 0; } // zeichnet den Inhalt des Fensters void Draw(HWND hWnd) { PAINTSTRUCT ps; HDC hdc = BeginPaint(hWnd, &ps); RECT rect; rect.top = IMAGE_HEIGHT + 20; rect.left = 0; rect.right = IMAGE_WIDTH; rect.bottom = IMAGE_HEIGHT + 100; DrawText(hdc, acDriverInfo, strlen(acDriverInfo), &rect, DT_LEFT); EndPaint(hWnd, &ps); } |
Treue Seele
Werbeanzeige