Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.07.2009, 22:16   #1
diliana
Форумчанин
 
Аватар для diliana
 
Регистрация: 24.05.2009
Сообщений: 119
Вопрос графическое приложение (с API-функций)

Всем привет!!!
У меня задание
С помощью API-функций создать графическое приложение



Последний раз редактировалось diliana; 21.07.2009 в 02:40. Причина: удален ошибочный код
diliana вне форума Ответить с цитированием
Старый 20.07.2009, 23:50   #2
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

ну вот как то так в WM_PAINT

Код:
           HPEN hPen;
           hPen=CreatePen(PS_SOLID,5,RGB(0xff,0x00,0x00));
           SelectObject(hDC,hPen);
	Rectangle(hDC,0,0,50,50);
	hPen=CreatePen(PS_DASH,2,RGB(0x00,0xff,0x00));
	SelectObject(hDC,hPen);
	Ellipse(hDC,60,0,90,30);
http://vsokovikov.narod.ru/New_MSDN_..._simpl_ogl.htm
counter вне форума Ответить с цитированием
Старый 21.07.2009, 00:51   #3
0nni
Форумчанин
 
Аватар для 0nni
 
Регистрация: 24.07.2008
Сообщений: 279
По умолчанию

Код:
program Project3;
uses
  windows,  messages;//интерфейсные модули
{$R *.RES}
var
  MyWin: HWND;//переменная-дескриптор главного окна
  MyDC: HDC;// переменная-дескриптор сист.типа HDC

//оконная функция
function WindowFunc(MyWin: HWND; Mess,wParam,lParam: longint):longint; export; stdcall;
var ps : TPaintStruct;
    i : Integer;
    Pen : HPEN;
    brush : HBRUSH;
begin
  WindowFunc:=0;
  case Mess of
   WM_DESTROY: begin //обработчик сообщения
               PostQuitMessage(0);
               Exit;
               end;
   WM_Paint: begin //обработчик события
              BeginPaint(MyWin, ps);
                for i := 0 to 9 do
                begin
                  Pen :=  SelectObject(ps.hdc, CreatePen(PS_SOLID, 1, Random($ffffff + 1)));
                  brush := SelectObject(ps.hdc, CreateSolidBrush(Random($ffffff + 1)));
                    Ellipse(ps.hdc,
                      100 + i * 5,
                      100 + i * 5,
                      200 - i * 5,
                      200 - i * 5);
                  DeleteObject( SelectObject(ps.hdc, brush));
                  DeleteObject( SelectObject(ps.hdc, pen));
                end;
              EndPaint(MyWin, ps);
             end;
  else //<<туту была еще ошибка DefWindowProc не всегда нужно вызывать
  //вызов стандартного системного обработчика
  WindowFunc:=DefWindowProc(MyWin, Mess, wParam, lParam);
  end;
end;

//основная функция приложения
procedure WinMain;
var
  Mess: TMsg;//переменная-сообщение
  MyWClass: TWndClass;//переменная для описания оконного класса
begin

  MyWClass.lpfnWndProc:= @WindowFunc;//поле-адрес оконной функции
  MyWClass.lpszClassName:= 'MyClass'; //поле-имя оконного класса
  MyWClass.lpszMenuName:= nil;//поле-меню
  MyWClass.hCursor:= LoadCursor(0,IDC_ARROW);//поле-тип курсора
  MyWClass.hbrBackground:= Hbrush (COLOR_WINDOW);//поле-фон окна
  MyWClass.hIcon:= LoadIcon(0, IDI_ASTERISK);//поле-пиктограмма
  MyWClass.Style:= cs_VRedraw OR cs_HRedraw OR cs_DblClks;
  MyWClass.cbClsExtra:= 0;
  MyWClass.cbWndExtra:= 0;
  MyWClass.hInstance:= hInstance;//заполняем структуру типа TWNDCLASS
  // регестрируем класс окна
  if RegisterClass(MyWClass)=0 then Exit;//если неудачная регистрация
  //создаем главное окно
  MyWin:= CreateWindow('MyClass', 'Простое окно на API',
                         WS_OVERLAPPEDWINDOW,
                         100, 100, 400, 400, 0, 0,
                         hInstance, nil);

  ShowWindow(MyWin, CmdShow);//вывод на экран главное окно
  UpdateWindow(MyWin);
  while GetMessage(Mess, 0, 0, 0) do//цикл обработки сообщений
    begin
     TranslateMessage(Mess);
     DispatchMessage(Mess);
    end;
end;

BEGIN
  WinMain;//запуск приложения
END.
Сказал и загрустил от бесспорности своей правоты.

Последний раз редактировалось 0nni; 21.07.2009 в 00:59.
0nni вне форума Ответить с цитированием
Старый 21.07.2009, 00:51   #4
0nni
Форумчанин
 
Аватар для 0nni
 
Регистрация: 24.07.2008
Сообщений: 279
По умолчанию

упс :D дубль получился.
counter, а уничтожать кто все это будет?
Сказал и загрустил от бесспорности своей правоты.

Последний раз редактировалось 0nni; 21.07.2009 в 01:01.
0nni вне форума Ответить с цитированием
Старый 21.07.2009, 02:37   #5
diliana
Форумчанин
 
Аватар для diliana
 
Регистрация: 24.05.2009
Сообщений: 119
По умолчанию

0nni
спасибо Вам большое!!!!!!!!

Последний раз редактировалось rpy3uH; 21.07.2009 в 07:21.
diliana вне форума Ответить с цитированием
Старый 21.07.2009, 08:52   #6
0nni
Форумчанин
 
Аватар для 0nni
 
Регистрация: 24.07.2008
Сообщений: 279
По умолчанию

Цитата:
Сообщение от diliana Посмотреть сообщение
0nni
спасибо Вам большое!!!!!!!!
Если нужны комментарии, отпишись.
Сказал и загрустил от бесспорности своей правоты.
0nni вне форума Ответить с цитированием
Старый 21.07.2009, 09:19   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
diliana
Скачай себе APIx 2 - Visual WinAPI и кидь в нем на языке Делфи в чистом WIN API
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.07.2009, 15:05   #8
diliana
Форумчанин
 
Аватар для diliana
 
Регистрация: 24.05.2009
Сообщений: 119
По умолчанию

Цитата:
Сообщение от 0nni Посмотреть сообщение
Если нужны комментарии, отпишись.
приветик 0nni Комментарии очень даже нужны...

Цитата:
Сообщение от Stilet
Скачай себе APIx 2 - Visual WinAPI и кидь в нем на языке Делфи в чистом WIN API
Stilet
???
я ничего не поняла...
diliana вне форума Ответить с цитированием
Старый 21.07.2009, 15:12   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
diliana
Есть такая программа. Называется APIx. Это среда разработки а-ля Делфи (см. скрин в приложении). Вот с помошью нее можно получить код на языке Делфи на чистом Win API. Потом компилируешь полученный код в делфи и радуешся.
Изображения
Тип файла: jpg Безымянный.jpg (45.3 Кб, 140 просмотров)
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.07.2009, 18:25   #10
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
По умолчанию

Оно ведь http://piddlesoft.narod.ru/prj/apix/index.html
Alter вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С помощью API-функций diliana Помощь студентам 2 20.07.2009 19:24
Приложение Delphi API BOBAH13 Win Api 4 11.02.2009 22:11
обновление в блоге - Перехват API функций. Основы Pblog Обсуждение статей 0 20.01.2009 10:40
Использование API функций в Delphi (нужна инфа для курсовой) Abask Win Api 4 25.12.2008 01:56
Перехват API функций satana Win Api 4 21.08.2007 20:12