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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
DarkMasterW
4 / 4 / 0
Регистрация: 25.10.2013
Сообщений: 227
#1

GUI без фреймворков - C++

17.08.2014, 03:13. Просмотров 1312. Ответов 17
Метки нет (Все метки)

Появилось желание обернуть программку в GUI(да и чего греха таить, в целом научиться делать интерфейсы). Начал собирать окошко через WinForms - смотрю оно фреймворки использует. Это дело я недолюбливаю и хотелось бы избежать полностью. Забил в гугл - практически все сводится к "не пишите на с++ интерфейсы, фрейморки, Qt". Задачи по кросплатформенности нет, требуется "джентльменский набор": пара кнопок, пара галок, возможно пара радиобаттонов и область для введения многострочного текста. За каким чертом для этого нужен фреймворк мне не понять. Qt смысла великого для таких задач использовать тоже не вижу. В общем: как создать обычное олдскульное(времен начала ХР) окно без всяких свистелок?
Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.08.2014, 03:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос GUI без фреймворков (C++):

Написание GUI руками, без привлечения специализированных фреймворков - нужно ли и если да, то в каких случаях? - C++
Хочется узнать мнение гуру по поводу написания GUI руками.Можно ли реально от этого выиграть в скорости работы программы и как это...

Как запустить GUI приложение (например, notepad.exe) без отображения GUI? - C++
Добрый день. Интересует есть ли такая возможность, как запустить GUI приложение (например, notepad.exe) без отображения GUI?

GUI С++ в eclipse без дополнительных библиотек - C++
Всем доброго времени суток и всех с наступающим НГ! Подскажите какую-нибудь библиотеку для работы с GUI для среды eclipse (под компилятор...

Приложение для доступа к БД программным путем без инструментов GUI - C++
Вопрос задавался не раз. Извиняюсь за дублирование. Столкнулся с базами данных(делать было нечего). В качестве СУБД пробовал MS Access,...

GUI - C++
Подскажите что это GUI

GUI в C++ - C++
Здравствуйте.Нужно на С++ сделать не большой графический интерфейс с парой кнопок и выбором файла. Подскажите пожалуйста как это делать и...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Avazart
Эксперт С++
7152 / 5329 / 278
Регистрация: 10.12.2010
Сообщений: 23,584
Записей в блоге: 17
17.08.2014, 03:17 #2
Изучай WinApi.
DarkMasterW
4 / 4 / 0
Регистрация: 25.10.2013
Сообщений: 227
17.08.2014, 03:34  [ТС] #3
Среда MSVS 2013. Забыл указать.
В студии возможно накидать форму на WinApi через визуальное редактирование? Не то чтобы это какое-то обязательное условие, я даже когда-то читал и заглушку оконную делал ручками, но имхо изврат рисовать чистым кодом, видя результат только при запуске. Это как изображение не а граф редакторе делать, а рисовать чистым кодом
moex
Заблокирован
17.08.2014, 03:36 #4
смотрю оно фреймворки использует.
И что теперь? Ну .NET это действительно не дело, мало того, что будет в самом .NET нуждаться, так еще и в VC++ Redist. Но Qt-то можно и статически отлинковать, тогда вообще ничего кроме ехе нужно не будет?

Изучай WinApi.
Верно. Вот хелловорлд (на чистом Си, кстати, хотя компилятором разумеется С++ тоже компилируется)
http://msdn.microsoft.com/ru-ru/library/bb384843.aspx
и во вложении - пара неплохих методичек по WinAPI.

Предупреждаю: не исключено, что это решение покажется вам слишком сложным и при кодинге будет сильно не хватать какого-либо фреймворка, необязательно кроссплатформенного, но хоть MFC (тоже линкуется статически, кстати). На то оно и WinAPI.
Вложения
Тип файла: zip C++ WinAPI.zip (438.4 Кб, 15 просмотров)
_Ivana
3060 / 1747 / 151
Регистрация: 01.03.2013
Сообщений: 4,930
Записей в блоге: 2
17.08.2014, 05:30 #5
Какая интересная для меня тема, и слова недавно узнанные - фреймворк, Qt и т.д. Буквально на днях впервые в жизни сделал тетрис на чистом ВинАпи, все в коде и ручками - и ничего, не напрягся. Хотел уже ТС посоветовать и ссылки дать, а он не хочет в коде формы рисовать... А если/когда если будет надо изменить параметры элементов и/или все формы в зависимости от действий пользователя, я не знаю как рисовалка окон не в коде справится с этим....
gazlan
3131 / 1906 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
17.08.2014, 07:31 #6
Цитата Сообщение от DarkMasterW Посмотреть сообщение
В общем: как создать обычное олдскульное (времен начала ХР) окно без всяких свистелок?
Петцольд Ч. Программирование для Windows 95. 1997, Издательство: BHV - Санкт-Петербург ISBN: 5-469-00005-2

Знаменитая книга Ч.Петцольда, с которой большинство разработчиков начинают своё знакомство с Windows API. Несмотря на то, что в книге описывается API для Windows 95, книга до сих пор является настольной для большинства Windows-разработчиков.

Большинство существующих библиотек для разработки Windows-приложений, такие как MFC, VCL являются обёртками для Windows API и не предоставляют всех возможностей операционной системы. Для того, чтобы использовать возможности Windows в полной степени зачастую требуется обращаться напрямую к операционной системе. Книга читается легко и с интересом.
А от себя посоветую MFC.
Убежденный
Системный программист
Эксперт С++
15517 / 7015 / 1110
Регистрация: 02.05.2013
Сообщений: 11,452
Завершенные тесты: 1
17.08.2014, 10:50 #7
Цитата Сообщение от DarkMasterW Посмотреть сообщение
В общем: как создать обычное олдскульное(времен начала ХР) окно без всяких свистелок?
DIALOG resource
http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx

DialogBoxParam function
http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx

CreateWindowEx function
http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx

Using Dialog Boxes
http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx

Windows
http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx
_Ivana
3060 / 1747 / 151
Регистрация: 01.03.2013
Сообщений: 4,930
Записей в блоге: 2
17.08.2014, 15:34 #8
А я бы еще вот эту ссылку добавил - хотя это в принципе то же самое
http://zetcode.com/gui/winapi/
dr.curse
388 / 344 / 16
Регистрация: 11.10.2010
Сообщений: 1,907
17.08.2014, 15:51 #9
DarkMasterW, Р. М. Ганеев.: Проектирование интерфейса средствами Win32 API
Voivoid
674 / 277 / 12
Регистрация: 31.03.2013
Сообщений: 1,339
17.08.2014, 17:09 #10
http://www.terrainformatica.com/sciter/
ForEveR
В астрале
Эксперт С++
7971 / 4733 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
18.08.2014, 10:03 #11
Цитата Сообщение от _Ivana Посмотреть сообщение
А если/когда если будет надо изменить параметры элементов и/или все формы в зависимости от действий пользователя, я не знаю как рисовалка окон не в коде справится с этим...
Кхм. А вы как считаете работает дизайнер окон? В любом случае создание всех окон будет описано в коде. Поэтому, нет никаких проблем с кастомизацией.
_Ivana
3060 / 1747 / 151
Регистрация: 01.03.2013
Сообщений: 4,930
Записей в блоге: 2
18.08.2014, 13:38 #12
Я не знаю как работает именно тот дизайнер окон, который имеется в виду. Предполагаю, что теоретически возможно 2 варианта:
1) рядом с файлом кода создается отдельный файл непонятного формата, в котором зашифрованы параметры визуализации и окон, и этот файл не переводится в код С/С++ а вклинивается в ассемблерный код на этапе или линковки или чего-то подобного. Или вообще не вклинивается, а лежит отдельным модулем. И тогда уже нет возможности ничего менять в коде. Я работал с подобным механизмом, в разных приложениях, правда не на С++. Например, в Матлабе можно создать элементы GUI руками в коде, а можно через подобный файл.
2) как вы и сказали - дизайнер окон может быть просто визардом, результат работы которого в конечном итоге пропишется явным образом в коде. Но тогда имхо лучше будет самому все руками в том же коде прописать.
dzrkot
zzzZZZ...
519 / 349 / 53
Регистрация: 11.09.2013
Сообщений: 1,997
18.08.2014, 13:51 #13
Цитата Сообщение от DarkMasterW Посмотреть сообщение
Qt смысла великого для таких задач использовать тоже не вижу. В общем: как создать обычное олдскульное(времен начала ХР) окно без всяких свистелок?
Спасибо.
ну в qt эт сделать будет легче, чем ковыряться в winAPI с этими обратными вызовами и кучей параметров(взялся как-то в это дело вникнуть, потратил пару дней, потом понял что ну не надо этим голову забивать т.к. если этим постоянно не заниматься то забуду всёравно, надо только для понимания...) - тут всё проще, создал кнопку, создал сигнал, создал слот, привязал к кнопке, всё. Ну только разве что придётся статическую qt собирать, но тут на форуме это всё тоже описано и проблем возникнуть не должно
Avazart
Эксперт С++
7152 / 5329 / 278
Регистрация: 10.12.2010
Сообщений: 23,584
Записей в блоге: 17
18.08.2014, 14:04 #14
Цитата Сообщение от DarkMasterW
Qt смысла великого для таких задач использовать тоже не вижу.
А что будет когда понадобится свистелки?
Собственно дизайнер форм это свистелка по вашему ?

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

Цитата Сообщение от dzrkot Посмотреть сообщение
Ну только разве что придётся статическую qt собирать, но тут на форуме это всё тоже описано и проблем возникнуть не должно
Да только размер экзешника будет > 5 МБ в сравнении с WinApi приложением многовато, собственно плата за удобство и кроссплатформенность.
dzrkot
zzzZZZ...
519 / 349 / 53
Регистрация: 11.09.2013
Сообщений: 1,997
18.08.2014, 14:13 #15
Цитата Сообщение от Avazart Посмотреть сообщение
Да только размер экзешника будет > 5 МБ в сравнении с WinApi приложением многовато, собственно плата за удобство и кроссплатформенность.
часто вы сталкивались с проблемой нехватки памяти? По-моему эта проблема уже в прошлом
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.08.2014, 14:13
Привет! Вот еще темы с ответами:

GUI C++ - C++
Создать класс ModelWindow для работы с моделями экранных окон. В качестве полей задаются: заголовок окна, координаты левого верхнего угла,...

GUI - C++
Всем привет. Хотелось бы посоветоваться по поводу GUI. Выбираю библиотеку для разработки GUI. Вот какие кандидаты у меня есть: mfc,...

Вывод числа в столбик с первой цифры, без массива, без строк - C++
#include <iostream> #include <math.h> using namespace std; void p(long a) { long i=0,z=a; while (z) { ...

MS VC++ WinApi GUI - C++
Добрый вечер. У меня задание, сделать окно с меню, такого вида: В меню colors - red, green, white; В меню Size - x2,x3; Все...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
18.08.2014, 14:13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru