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

Программа рисования - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Построение классов http://www.cyberforum.ru/cpp-beginners/thread364144.html
Составить класс ДАТА.Класс должен включать в себя атрибуты,описывающие год,месяц,день и иметь методы:1)для вывода даты на экран в нескольких форматах(30.01.2001,30 Янв 01, 30 января 2001 г);2)для вычисления к хранимой дате следующей даты;3)для проверки високосности года,хранимого в дате.
C++ Выяснить, в каком из двух массивов больше положительных чисел Даны два одномерных массива, каждый из которых содержит по N чисел. Необходимо выяснить, в каком из них больше положительных чисел. Ввод: Первая строка содержит N \, (1 \le N \le 100) Следующие две строки содержат ровно по N элементов каждая Вывод: Вывод должен содержать одно из следующих утверждений: Number of positives in the first array is greater http://www.cyberforum.ru/cpp-beginners/thread364112.html
в чем разница между int a и int *a? C++
люди подскажите начинающему... чем переменная отличается от указателя? допустим переменные int a char a ? и переменные int *a, char *a. В первом случае все понятно переменные да переменные, а вот с указателями как они указывают что если char то множество символов каких то? и в чем разница их преминения? тоесть где лучше применять их? можно пример если есть у кого простой для понимания? и еще...
C++ Определить сумму чётных разрядов числа и произведение нечётных
Здравствуйте! Вот какое у меня задание. Дано целое число, определить сумму чётных разрядов и произведение нечётных Добавлено через 47 минут код, вот где ошибка? #include <stdio.h> #include <math.h> #include <conio.h> int main() {
C++ Найти вершину параболы http://www.cyberforum.ru/cpp-beginners/thread364098.html
Найдите вершину параболы ax2+bx+c для заданных a,b,c.
C++ Почему не взяли на обучение в CQG, на сайте нашел испытательное задание, сделал и отослал. Не взяли и не объяснили почему. Хочу услышать мнения. / Программа получает на вход текстовый файл и расшифровывает его первую строчку получая ключ. // #include "stdafx.h" //Запрещенные биграммы, т.е. для буквы А запрещено Q и т.д. Биграммы взяты из книги А.П.Алферов "Основы криптографии". это быиграммы запрещены для литературно текста. char A={'Q'}; char B={'B','C','D','F','G','H','K','M','N','P','Q','V','W','X','Z'};//запрещенные... подробнее

Показать сообщение отдельно
xAtom
914 / 739 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
11.10.2011, 03:04     Программа рисования
Tleck, вот код набросал, загляни ещё в раздел WinAPI там есть темы на твою специфику. Тут я кратко написал как дополнение.
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
74
75
76
77
78
79
80
81
82
83
#include <windows.h>
LRESULT CALLBACK  PaintProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
 
int main() {
   ShowWindow(GetForegroundWindow(), SW_HIDE); // делаем консоль невидимую
   MSG  msg;
   // создаём окно заимствуя класс - "STATIC"
   HWND wnd = CreateWindowA("STATIC", "Графика-GDI", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, 
                    GetDesktopWindow(), NULL, (HINSTANCE) GetModuleHandle(NULL), 0); 
   if(! wnd)
         return 1;
    SetWindowLong(wnd, GWL_WNDPROC, (LONG)PaintProc); // добавляем обработчик сообщений
    SetClassLong(wnd, GCL_HCURSOR, (LONG)LoadCursor(NULL, IDC_ARROW));  // курсор
    SetClassLong(wnd, GCL_HBRBACKGROUND, (LONG)GetStockObject(WHITE_BRUSH));  // фоновую заливку
    ShowWindow(wnd, SW_SHOWDEFAULT);  
    UpdateWindow(wnd);
    
    ZeroMemory(&msg, sizeof(MSG));
    while(GetMessageA(&msg, NULL, 0U, 0U)) {
           DispatchMessageA(&msg);
           TranslateMessage(&msg);
    }  
    DestroyWindow(wnd);
    return 0;
}
 
LRESULT CALLBACK  PaintProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) {
   PAINTSTRUCT  paint;
   HDC dc;
   static  HPEN   pen;
   static  HBRUSH brush = NULL;
   static  SIZE   size  = { 0L, 0L };
   HGDIOBJ old1, old2;
   HBITMAP bmp;
 
  switch(msg) {
     case WM_SHOWWINDOW:
        // создаём синие перо с размером 1-пиксель
        pen   = CreatePen(PS_SOLID, 1, RGB(0, 0, 255));  
   
        // здесь укажи свой путь к битмаповому файлу .bmp
        bmp = (HBITMAP)LoadImage((HINSTANCE)GetWindowLong(hwnd, GWL_HINSTANCE), "D:\\tiled.bmp", 
                   IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION | LR_LOADFROMFILE);
        if(bmp) {
             BITMAP sz;
             GetObject(bmp, sizeof(BITMAP), (LPVOID)&sz);
             size.cx = sz.bmWidth;
             size.cy = sz.bmHeight;
             brush  = CreatePatternBrush(bmp);
             DeleteObject(bmp);
             bmp  = NULL;
        } 
         break;
    case WM_PAINT:
        dc   = BeginPaint(hwnd, &paint);
        old1 = SelectObject(dc, pen);
        old2 = SelectObject(dc, brush); 
        // выводим картинку с начальных координат
        Rectangle(dc, 0, 0, size.cx, size.cy);
 
        // рисуем линию по середине
        MoveToEx(dc, 10, paint.rcPaint.bottom/2, NULL);
        LineTo(dc, paint.rcPaint.right-10, paint.rcPaint.bottom/2);
 
        SelectObject(dc, brush);
        SelectObject(dc, old1);
        EndPaint(hwnd, &paint);
             break;
     case WM_NCPAINT:
        InvalidateRect(hwnd, NULL, FALSE);
             return DefWindowProcA(hwnd, msg, wParam, lParam);
     case WM_SIZE:
        InvalidateRect(hwnd, NULL, FALSE);
            break;
     case WM_DESTROY:
         DeleteObject(pen);
         DeleteObject(brush);
         PostQuitMessage(0u);
         break;
     default: return DefWindowProcA(hwnd, msg, wParam, lParam);
   }
   return 0;
}
Перейди по ссылке я там делал примитивный растровый редактор посмотри его, не бойся там чистый WinAPI.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru