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

Указатель на буфер - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Отключить предупреждение (character constant too long for its type [enabled by default]) http://www.cyberforum.ru/cpp-beginners/thread876660.html
Компилятор mingw32 пишет предупреждение: character constant too long for its type if (fileName == L'//' || fileName == L'\\') std::wstring ExtractFileName(const wchar_t* fileName) { std::wstring result;
C++ Написать программу, которая по одной из цифр 0,1,2,3, 4,5,6,7,8,9 – послед-ней цифре числа N - находит последнюю цифру квадрата этого числа Чтобы определить на какую цифру оканчивается квадрат целого числа, достаточно знать последнюю цифру самого числа. Написать программу, которая по одной из цифр 0,1,2,3, 4,5,6,7,8,9 – послед-ней цифре числа N - находит последнюю цифру квадрата этого числа. http://www.cyberforum.ru/cpp-beginners/thread876654.html
После каждого четного элемента массива вставить два элемента с тем же значением, после чего полученный массив отсортировать по убыванию C++
Ребят, помогите с задачкой новичку. После каждого четного элемента массива вставить два элемента с тем же значением, после чего полученный массив отсортировать по убыванию.(нужно еще выбор сортировки аргументировать для моей ргр). Другими словами, нужно четные элементы массива вывести 3 раза подряд в новом массиве, а нечетные оставить так же. например исх массив 1 2 0 12 14 пол массив 2 2...
C++ Числа, сумма цифр которых является
Доброго времени суток! Помогите, пожалуйста, с задачей. Числа, сумма цифр которых является квадратным числом и разность между соседними цифрами равна k. Например: 1357 → 1+3+5+7=16=4^2, при k=2, …
C++ Работа с файлами. Выведите список авторов в порядке убывания популярности, и названия издательств, которые публиковали их книги. http://www.cyberforum.ru/cpp-beginners/thread876643.html
Срочно надо сдать, а я не знаю даже с чего начать((( Проболела всю тему, мне бы кто объяснил, как для чайников... Я всё быстро схватываю) 1. Один файл містить список ПІБ письменників та поетів, та назви видавництв, в яких вони публікуються. В іншому файлі представлена інформація опитування: 12 студентів просили назвати трьох улюблених авторів. Виведіть список авторів в порядку зменшення...
C++ Алгоритм шифрования XTEA При построении решения, ошибок не выдает. Все работает. Вопрос вот в чем: при шифровании даже одной буквы, шифр текст выводится длиной 64 символа. При шифровании двух букв - так же и т.д. Но меняются лишь первые 16 символов, следующие всегда остаются одинаковыми. Не могу понять это ошибка? И разве шифр текст по длине не должен быть равен исходному тексту? Например(исходный текст - шифр): a -... подробнее

Показать сообщение отдельно
Auron
2 / 2 / 0
Регистрация: 11.05.2013
Сообщений: 99
24.05.2013, 03:27  [ТС]     Указатель на буфер
Цитата Сообщение от quwy Посмотреть сообщение
Написано вроде все правильно, вы уверены, что указатель передается при отсылке оконного собщения WM_PAINT? Или вы так обрабатываете стандартное уведомление от системы? :-)
Спасибо я решил так:
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
void Windows::drawLine(int x1, int y1, int x2, int y2, int* bitmap, int bitmap_width, int bitmap_height)
{
    int width = 800;
    int height = 600;
 
    int* ptr = new int [width * height];
 
    for (int i = 0; i < width; ++i)
    {
        ptr[i] = 0xff00ff;
    }
    
 
}
 
LRESULT CALLBACK MainWindowProc (HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
    PAINTSTRUCT ps;
    BITMAPINFO* bi = new BITMAPINFO;
 
    int width = 800;
    int height = 600;
 
    int* ptr = new int [width * height];
 
    bi->bmiHeader.biSize        = sizeof(BITMAPINFO);
    bi->bmiHeader.biWidth       = width;
    bi->bmiHeader.biHeight      = -height;
    bi->bmiHeader.biPlanes      = 1;
    bi->bmiHeader.biBitCount    = 32;
    bi->bmiHeader.biSizeImage   = 0;
    bi->bmiHeader.biCompression = BI_RGB;   
 
    for(int y = 0; y < height; ++y)
    {
        for(int x = 0; x < width; ++x)
        {
            ptr[y * width + x] = 0xff0000ff;
        }
    }
 
    _window.drawLine(10, 50, 100, 150, ptr, width, height);
 
    switch (msg)
    {
    case WM_PAINT:
        {
            BeginPaint(hWnd, &ps);
            SetDIBitsToDevice(ps.hdc, 0, 0, width, height, 0, 0, 0, height, ptr, bi, DIB_RGB_COLORS);
            EndPaint(hWnd, &ps);
        }
        break;
 
    case WM_KEYDOWN:
        {
            if (wParam == VK_ESCAPE)
            {
                DestroyWindow(hWnd);
                PostQuitMessage(0);
            }
            if (wParam == VK_UP)
            {
                MessageBoxEx(hWnd, "Нажата клавиша UP", "Test Window", MB_OK, 0);
            }
        }
        break;      
    }
    return DefWindowProc(hWnd, msg, wParam, lParam);
}
Последняя просьба помогите с рисовкой линии по точкам функцией drawLine. этот цикл если я его использую в MainWindowProc работает рисуется линия, а как правильно перенести этот цикл в drawLine
C++
1
2
3
4
for (int i = 0; i < width; ++i)
    {
        ptr[i] = 0xff00ff;
    }
чтобы при можно было указывать начальные и конечные координаты точек для отрисовки линии.
 
Текущее время: 16:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru