0 / 0 / 0
Регистрация: 04.08.2009
Сообщений: 12

создание Windows Forms Aplication

04.08.2009, 10:30. Показов 8039. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
такой вопросик. Мне поставлена задача, сделать программу(калькулятор) используя "Visual C++ 2005", но при этом не разрешается использовать .NET
когда скачал студию "Visual C++ 2005 Expres Edition" то единственным разделом для создания форм
есть раздел new-> project-> CLR-> Windows Forms Aplication, но CLR есть часть платформы . NET.
есть там еще раздел Win32->Windows Console Aplication. но не создавать же мне калькулятор через консоль...(
и как быть? может надо до качать какие то обновления? может моя студия не полная?
заранее спасибо!
Евгений.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.08.2009, 10:30
Ответы с готовыми решениями:

Aplication Windows Forms на C++
Подскажите, есть ли программы для создания Windows Forms на C++ , кроме C++ Builder , и Qt. Я хочу писать на чистом C++ без всяких...

Создание нового элемента форма Windows forms
Здравствуйте , у меня проблема связана с MVS 2008, при создании нового элемента формы Windows forms при построении вылазит ошибка ...

Создание минимального интерфейса для .exe программы без исходников в windows forms
Доброго времени суток всем! Подскажите или направьте в нужное русло. Задача следующая: У меня есть некоторый обработчик wav файла...

28
0 / 0 / 0
Регистрация: 04.08.2009
Сообщений: 12
07.08.2009, 15:01  [ТС]
Студворк — интернет-сервис помощи студентам
с обвертками разобрался. а вот с MFC пока не хочу сталкиваться.. коль делать все на пальцах то давайте на пальцах.)

проблема в том что hButton1 я обьявляю в initialize
и уже в оконной функции этот дескриптор мне не доступен так как обьявлен в другой функции.
перемещение их в глобальный сектор не дало результатов. пишет
case expression not constant

switch
...
case hButton1:
DestroyWindow(hWnd);
break;
...
0
 Аватар для oxotnik
1665 / 1134 / 80
Регистрация: 21.08.2008
Сообщений: 4,734
Записей в блоге: 1
07.08.2009, 15:15
а зачем в главном окне обрабатывать сообщения для подчиненных?
каждый обрабатывает только свои сообщения, и не надо никуда выносить в глобальные переменные, это имхо моветон в рамках ООП
0
0 / 0 / 0
Регистрация: 04.08.2009
Сообщений: 12
07.08.2009, 15:41  [ТС]
я не знаю главное ли это окно.
но оконная функция она одна. - WndProc
и в ней только идет обработка всех сообщений?

а вот дескрпипторы hwnd, hButton1 .. и т.д.. были обьявлены в методе InitInstance
где я и создаю главное окно .и контролы которые на него вешаю.
0
 Аватар для oxotnik
1665 / 1134 / 80
Регистрация: 21.08.2008
Сообщений: 4,734
Записей в блоге: 1
07.08.2009, 16:04
http://www.firststeps.ru/mfc/winapi/r.php?170
1
0 / 0 / 0
Регистрация: 04.08.2009
Сообщений: 12
07.08.2009, 18:57  [ТС]
вот оно.

case WM_COMMAND:
{
if(((HWND)lParam == hButton2) && (HIWORD(wParam) == BN_CLICKED))
PostQuitMessage(0);}

то что я и хотел.
а кто подскажет можно ли как то хитро обьявить этот hButton2 как константу, что бы можно было его кейсом ловить? а не через иф ?

Добавлено через 1 минуту 11 секунд
так. на WIN API нет такого что бы обратиться к свойствам кнопочки или эдита.
их нет как таковых.
но можно ли как то менять поведение эдита его формы уже после его создания или цвета окошка...
что то в стиле
void setcolorcontrol (hwnd: hcontrol, int color);

кто подскажет список полезных апи функций для подобных манипуляций?
0
125 / 65 / 9
Регистрация: 19.04.2010
Сообщений: 196
05.05.2010, 22:19
Для каждого типа окон пишут свой класс обвертки.
class Window
class Control : public Window
class Label : public Control
и т.д.
C++
1
2
3
4
5
6
7
class Window
{
public:
 static virtual void WinProc(...);
protected:
 HWND m_hWnd;
}
0
2343 / 499 / 22
Регистрация: 01.04.2009
Сообщений: 2,200
06.05.2010, 09:32
Цитата Сообщение от Sudoki Посмотреть сообщение
Для каждого типа окон пишут свой класс обвертки.
не вводи в заблуждение.
классы - это на MFC и пр. "обертках".

Цитата Сообщение от b-e-s Посмотреть сообщение
кто подскажет список полезных апи функций для подобных манипуляций?
на WinAPI
цвет можно поменять функцией SetSysColors()
поведение окна можно поменять, изменив ему стиль, или переназначив WndProc (так и делается subclass) функцией SetWindowLong()
0
125 / 65 / 9
Регистрация: 19.04.2010
Сообщений: 196
06.05.2010, 15:30
Цитата Сообщение от Patch Посмотреть сообщение
цвет можно поменять функцией SetSysColors()
Это меняет цвета в системе в целом
0
2343 / 499 / 22
Регистрация: 01.04.2009
Сообщений: 2,200
06.05.2010, 16:16
Цитата Сообщение от Sudoki Посмотреть сообщение
то меняет цвета в системе в целом
ну да.
а если нужно отдельного окошка - то ловишь сообщения в WndProc, и рисуешь любым цветом и как угодно.
Painting and Drawing Messages
например, фон рисуется по WM_ERASEBKGND, неклиентская часть окна - по WM_NCPAINT и т.д.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.05.2010, 16:16

Управление мышью в Windows Forms Aplication
Подскажите, пожалуйста, такую вещь. На Visual 2010 c++ cоздается простейшее приложение: CLR->Windows Forms Aplication. На форму...

Создание приложения Windows Forms на C++/CLI в Windows 8
Добрый день! Нужно создать windows приложение на Си++, стоит 8, на 2013 много заморочек с созданием windows forms. Не подскажите, можно ли...

Создание приложения Windows Forms
Здравствуйте. В программировании ничего не понимаю, но работники нашей конторы плохо работают с аппаратурой по telnet(да еще и как...

Windows.Forms - создание приложения
было задание,нужно было написать программу, которая отвечала на вопрос без помощи массивов. Теперь надо создать приложение на основе кода ...

Создание диалога в Windows Forms на C++
Вот пример кода private: void button1_Click(System::Object ^ sender, System::EventArgs ^ e) { Form ^ dlg1 = gcnew...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
Опции темы

Новые блоги и статьи
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки. Добавлены следующие реквизиты типа Булево: - Буквы; - Цифры; - Символы. Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей. Самым главным критерием для. . .
Установка ChatGPT (Codex) на Windows без использования Microsoft Store
Fabien159 28.10.2026
Здравствуйте всем читающим! Опишу процесс установки ChatGPT (Codex) на Windows, если по каким-то причинам у вас не получается устанавить его через Microsoft Store. И так: 1. Скачиваем с. . .
Программное добавление префикса в нумерацию документов
Maks 27.10.2026
Реализация из решения ниже выполнена в самописной конфигурации на БСП (помощь начинающему коллеге). Задача: Программно добавить префикс в нумерацию документов. Решение: В модуле объекта. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru