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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.03.2010, 16:48   #1
inzener-tolik
Пользователь
 
Регистрация: 06.03.2010
Сообщений: 12
По умолчанию Создание GUI для WINDOWS

Доброго времени суток! Есть такая задача, в принципе немного похожа на тему: » Анимированный осциллограф на WinAPI (С++).
1) Нужно создать своё окно неправильной формы, в окне создать кнопку (на рабочей области).
Получается обычное окно, а вот как создать произвольную форму?(Окно создаётся с нуля).

2) При выполнении двойного клика левой кнопки мыши на поле формы окно закрывается, при выполнении двойных кликов левой кнопкой мыши рисуется фигура (например, квадрат это не важно). Нажатием на одну из клавиш F1 – F12 можно менять размер фигуры.
Это пока вообще не понятно

Последний раз редактировалось inzener-tolik; 06.03.2010 в 17:30.
inzener-tolik вне форума Ответить с цитированием
Старый 06.03.2010, 17:07   #2
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Я делал когда-то щас уж не помню!!!
Там вообщем Кидаешь картинку на форму фон отделяешь от самой картинки и всё!! В Делфи глазами хакера это описано!!
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 09.03.2010, 13:02   #3
inzener-tolik
Пользователь
 
Регистрация: 06.03.2010
Сообщений: 12
По умолчанию

Ну, всё понятно.Придётся втыкать самому.
inzener-tolik вне форума Ответить с цитированием
Старый 09.03.2010, 13:29   #4
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 18,136
По умолчанию

В DRKB есть несколько примеров по созданию не прямоугольных форм. Обычно для этого используются регионы.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 11.03.2010, 13:13   #5
inzener-tolik
Пользователь
 
Регистрация: 06.03.2010
Сообщений: 12
По умолчанию

Короче сделал окно вот так:
WinRgn = CreateRoundRectRgn (100,100,700,700,700,700);
SetWindowRgn(hwnd,WinRgn,true);
Можно сделать несколько регионов и объединить их.Однако все-равно так довольно сложно получать требуемую форму.
inzener-tolik вне форума Ответить с цитированием
Старый 11.03.2010, 15:24   #6
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

При помощи CreateRectRgn/CombineRgn можно слепить окно любой формы
http://programmersforum.ru/showpost....86&postcount=7

Чтоб при каждом запуске не заниматься этим мартышкиным трудом, полученный регион можно засунуть в ресурсы и использовать через ExtCreateRegion/SetWindowRgn
пыщь
JTG вне форума Ответить с цитированием
Старый 11.03.2010, 16:16   #7
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,432
По умолчанию

Вот мои тренировки по теме круглых окон:

http://programmersforum.ru/showpost....26&postcount=1

Правда утилитка bmptorgn по функционалу похуже будет чем MR.exe.
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 12.03.2010, 22:36   #8
inzener-tolik
Пользователь
 
Регистрация: 06.03.2010
Сообщений: 12
По умолчанию

Да спасибо! Окна научился делать.
Практически все сделал, отсалось вот это:Нажатием на одну из клавиш F1 – F12 можно менять размер фигуры.
Пока не пойму как заюзать эти клавиши
inzener-tolik вне форума Ответить с цитированием
Старый 13.03.2010, 11:39   #9
inzener-tolik
Пользователь
 
Регистрация: 06.03.2010
Сообщений: 12
По умолчанию

Все разобрался!
Нужно сделать так:
Код:
case WM_KEYDOWN:
switch (wparam)
	{
		 case VK_F1:
inzener-tolik вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание приложений Windows Application Александр Елис Помощь студентам 6 20.10.2009 22:24
Создание службы в Windows goblinyara Общие вопросы Delphi 8 03.01.2009 19:57
Забавы с Windows (создание заставки) SCS Свободное общение 4 05.10.2007 12:53