Форум программистов, компьютерный форум CyberForum.ru

scrnsave.lib - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ WinAPI Калькулятор на 4 действия с выбором системы счисления http://www.cyberforum.ru/cpp-beginners/thread162614.html
Всем привет! у меня простая, вроде бы, задачка написать калькулятор 4 действия и выбор системы исчисления (две радиокнопки двоичное и десятичное) на WinAPI C++ Вроде бі всё учла,но что-то не получается. Помогите, пожалуйста разобраться прилагаю код cpp ну и архив со всеми ресурсами #include<Windows.h> #include<tchar.h> #include<iostream> #include"resource.h"
C++ рекурсивный алгоритм Уважаемые программисты! Есть задача: разработать рекурсивный алгоритм на с++ для нахождения самого длинного несамопересекающегося пути коня на доске 6*6. Я рекурсию плохо понимаю. Подскажите, что именно должна делать рекурсивная функция. Не нужно в теме, посвящённой решению одной задачи размещать другую, пусть и в чём-то сходную. http://www.cyberforum.ru/cpp-beginners/thread162607.html
C++ Поиск по массиву
Уважаемые господа! Подскажите пожалуйста как осуществить поиск по двум массивам и занести одинаковые элементы в третий массив и аналогично для различных элементов...
C++ как написать свою библиотеку функций?
Я только начинаю изучать программирование на С++, параллельно разбираюсь с ООП. Вообще идеи ООП понятны и нравятся мне. Удобно разложить всё по полочкам, чтобы потом говорить программе, что с какой полки брать. Так вот, хочу построить шкаф, чтобы мысли не пылились на разрозненных полках :) - то бишь написать большую библиотеку финансовых (и не только) функций. По сути дела, написать каждую из...
C++ Найти 1+2+3+...+n рекурсивно и итеративно http://www.cyberforum.ru/cpp-beginners/thread162583.html
Уважаемые программисты!!! помогите разобраться, дали задачу. Найти 1+2+3+...+n. Первый способ, решить рекурсивно, а второй не рекурсивно. Чем текст программ будет различаться???
C++ n>=a в степени k вот решил задачу таким образом: задача: Напишите программу, находящую для заданных числел n и k максимальное число a, такое, что ak≤ n решение: #include <iostream> #include <cmath> using namespace std; подробнее

Показать сообщение отдельно
iama
 Аватар для iama
1249 / 974 / 48
Регистрация: 30.07.2010
Сообщений: 5,297
31.08.2010, 10:44     scrnsave.lib
C++
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
void CaptureScreen(HWND window)
{
    //Получаем прямоугольную область экрана
    RECT windowRect;
    GetWindowRect(window, &windowRect);
 
    //Размеры битмэпа
    int bitmap_dx = windowRect.right-windowRect.left;
    int bitmap_dy = windowRect.bottom-windowRect.top;
 
    BITMAPINFOHEADER bmpInfoHeader;
    BITMAPFILEHEADER bmpFileHeader;
    BITMAP* pBitmap;
 
    bmpFileHeader.bfType = 0x4d42;
    bmpFileHeader.bfSize = 0;
    bmpFileHeader.bfReserved1 = 0;
    bmpFileHeader.bfReserved2 = 0;
    bmpFileHeader.bfOffBits = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER);
 
    bmpInfoHeader.biSize = sizeof(bmpInfoHeader);
    bmpInfoHeader.biWidth = bitmap_dx;
    bmpInfoHeader.biHeight = bitmap_dy;
    bmpInfoHeader.biPlanes = 1;
    bmpInfoHeader.biBitCount = 24;
    bmpInfoHeader.biCompression = BI_RGB;
    bmpInfoHeader.biSizeImage = bitmap_dx*bitmap_dy*(24/8);
    bmpInfoHeader.biXPelsPerMeter = 0;
    bmpInfoHeader.biYPelsPerMeter = 0;
    bmpInfoHeader.biClrUsed = 0;
    bmpInfoHeader.biClrImportant = 0;
 
    BITMAPINFO info;
    info.bmiHeader = bmpInfoHeader;
 
    BYTE* memory;
    HDC winDC = GetWindowDC(window);
    HDC bmpDC = CreateCompatibleDC(winDC);
    //Создаем битмэп
    HBITMAP bitmap = CreateDIBSection(winDC, &info, DIB_RGB_COLORS, (void**)&memory, NULL, 0);
    SelectObject(bmpDC, bitmap);//Выбираем в контекст битмэп
    BitBlt(bmpDC, 0, 0, bitmap_dx, bitmap_dy, winDC, 0, 0, SRCCOPY);
    ReleaseDC(window, winDC);
 
    OPENFILENAME ofn;//Указатель на структуру с данными инициализации диалогового окна
    char strFilter[] = "Файлы данных *.bmp\0";
    char strFileName[MAX_PATH] = "";
    memset(&ofn, 0, sizeof(OPENFILENAME));//Обнуление ofn
    ofn.lStructSize = sizeof(OPENFILENAME);
    ofn.hwndOwner = window;
    ofn.lpstrFilter = strFilter;
    ofn.lpstrFile = strFileName;//Буфер для имени файла
    ofn.nMaxFile = MAX_PATH;//Размер файла
    ofn.lpstrInitialDir = NULL;
    ofn.Flags = OFN_SHOWHELP | OFN_OVERWRITEPROMPT;
    strcpy(strFileName, ofn.lpstrFile);
    GetSaveFileName(&ofn); //MessageBox(hwnd,"Невозможно сохранить файл","О программе...",MB_ICONINFORMATION);
    HANDLE hFile = CreateFile(
        ofn.lpstrFile, 
        GENERIC_WRITE, 
        0,
        NULL,
        OPEN_ALWAYS,
        FILE_ATTRIBUTE_NORMAL,
        NULL);
    if (hFile == INVALID_HANDLE_VALUE) 
        return;
    DWORD dwWritten = 0;
    WriteFile(hFile, &bmpFileHeader, sizeof(BITMAPFILEHEADER), &dwWritten, NULL);
    WriteFile(hFile, &bmpInfoHeader, sizeof(BITMAPINFOHEADER), &dwWritten, NULL);
    WriteFile(hFile, memory, bmpInfoHeader.biSizeImage, &dwWritten, NULL);
    CloseHandle(hFile);
}
а там уже мучьте битмап

Добавлено через 1 минуту
ещё пример
C++
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
// Create a normal DC and a memory DC for the entire screen. The 
// normal DC provides a "snapshot" of the screen contents. The 
// memory DC keeps a copy of this "snapshot" in the associated 
// bitmap. 
 
hdcScreen = CreateDC("DISPLAY", NULL, NULL, NULL); 
hdcCompatible = CreateCompatibleDC(hdcScreen); 
 
// Create a compatible bitmap for hdcScreen. 
 
hbmScreen = CreateCompatibleBitmap(hdcScreen, 
                     GetDeviceCaps(hdcScreen, HORZRES), 
                     GetDeviceCaps(hdcScreen, VERTRES)); 
 
if (hbmScreen == 0) 
    errhandler("hbmScreen", hwnd); 
 
// Select the bitmaps into the compatible DC. 
 
if (!SelectObject(hdcCompatible, hbmScreen)) 
    errhandler("Compatible Bitmap Selection", hwnd); 
 
        // Hide the application window. 
 
        ShowWindow(hwnd, SW_HIDE); 
 
         //Copy color data for the entire display into a 
         //bitmap that is selected into a compatible DC. 
 
        if (!BitBlt(hdcCompatible, 
               0,0, 
               bmp.bmWidth, bmp.bmHeight, 
               hdcScreen, 
               0,0, 
               SRCCOPY)) 
 
        errhandler("Screen to Compat Blt Failed", hwnd); 
 
        // Redraw the application window. 
 
        ShowWindow(hwnd, SW_SHOW);
 
Текущее время: 02:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru