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

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

Войти
Регистрация
Восстановить пароль
 
Misterkat
7 / 7 / 0
Регистрация: 16.11.2012
Сообщений: 84
#1

Динамическое создание форм (Не MFC) - C++

04.08.2013, 11:32. Просмотров 792. Ответов 6
Метки нет (Все метки)

Допустим есть созданная форма в ресурснике, а в ней есть поле для ввода(Edit Control) и даже кнопка(Button)!
Подскажите пожалуйста, как заставить Button создать еще одно поле для ввода?
ЗЫ:Для тех, кто любит делать умный вид и спрашивать "А на каком языке?", скажу сразу(хоть и так вопрос лежит в разделе С++) на C++!
ЗЫЫ:Не MFC.
ЗЗЫЫ: Заранее благодарен за ответы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.08.2013, 11:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Динамическое создание форм (Не MFC) (C++):

Создание документа в MFC и Win32 - C++
Как создать на с++ документы из программы если нужно написать программу MFC Аналогичный вопрос относительно WIN 32

Создание табуляции, MFC в диалоговом окне - C++
Помогите разобратся плиз! вот собственно код,нужно создать чтобы считало по формуле вот формулы e в степени x+tg*(x) #include...

Создание форм в visual studio - C++
Здравствуйте, установил себе visual studio 2013 пробную и не найду меню где делать гуй, до этого баловался на c++ builder, скажите...

Динамическое создание матрицы - C++
Как сделать ввод n и m с клавиатуры? (размер матрицы) #include "stdafx.h" #include "conio.h" #include "windows.h" #include...

Динамическое создание компанентов - C++
Возможно я повторюсь, но я пролистал форум а ответа на свой вопрос не нашел, хотя как-то видел. Ну да ладно ... Проблема состоит в...

Динамическое создание функций - C++
всем доброго времени суток. меня собственно интересует такой вопрос можно ли в с++ динамически создавать функции?(то есть прописать в коде...

6
Nick Alte
Эксперт С++
1639 / 1011 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
04.08.2013, 11:47 #2
Есть два варианта. Можно сделать второе поле заранее, спрятать его (Visible = False), а при нажатии кнопки сделать видимым (ShowWindow). Либо можно по-настоящему создать это поле при обработке нажатия на кнопку функцией CreateWindow.
1
Misterkat
7 / 7 / 0
Регистрация: 16.11.2012
Сообщений: 84
04.08.2013, 12:03  [ТС] #3
Цитата Сообщение от Nick Alte Посмотреть сообщение
Есть два варианта. Можно сделать второе поле заранее, спрятать его (Visible = False), а при нажатии кнопки сделать видимым (ShowWindow). Либо можно по-настоящему создать это поле при обработке нажатия на кнопку функцией CreateWindow.
К сожалению первый вариант не подходит, ибо нужно создать много кнопок, и конструктор не разрешает создать форму меньше. Я понял, что вы ничего не поняли, для этого объясняю: есть окно 400х300, нужно при нажатии на кнопку создать еще одну, на 20px ниже, чем предыдущая, и так далее одна кнопка должна создавать "столбик" кнопок. Второй способ пробовал, но к сожалению он не работал.
Попытки:
C++
1
2
3
4
        if(wParam == IDC_BUTTON2)
        {
            DWORD SecondButton = CreateWindow("button", "SecondButton", WS_VISIBLE, 20, 300, 25, 100, m_hwnd, (HMENU)1001, NULL, (LPVOID)lParam);
        }
.
0
Nick Alte
Эксперт С++
1639 / 1011 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
04.08.2013, 12:07 #4
Цитата Сообщение от Misterkat Посмотреть сообщение
Я понял, что вы ничего не поняли
Поди пойми при таких сумбурных "объяснениях". Какая связь между тем, что надо создать много кнопок и "конструктор не разрешает создать форму меньше" - вообще загадка. Ну и разумеется, работают оба способа, было бы желание.
1
Misterkat
7 / 7 / 0
Регистрация: 16.11.2012
Сообщений: 84
04.08.2013, 14:19  [ТС] #5
Цитата Сообщение от Nick Alte Посмотреть сообщение
Поди пойми при таких сумбурных "объяснениях".
Согласен, что хуже объяснить может только пьяный.
Цитата Сообщение от Nick Alte Посмотреть сообщение
Какая связь между тем, что надо создать много кнопок и "конструктор не разрешает создать форму меньше"
Если попробовать создать кнопку с координатами 25х200, а окно попытаться "перетащить" в размер *х199, то в результате окно не станет меньше, ибо там кнопка( SetWindowPos - аналогично)!
Ладно, попытаюсь еще раз объяснить суть:
Есть окно: 400х300, допустим есть кнопка, пока вроде все ясно... При нажатии на кнопку должна появится еще одна, но с координатами предыдущей(первой)+25 px по оси Y, при следующем нажатии первой кнопки должна появиться еще одна с координатами предыдущей(второй)+25 px по оси Y и т.д.
Не работоспособность "скрывания" заключается в том, что кнопок может быть бесконечное(в разумном пределе) количество, а размер окна не должен увеличиваться(не поверите, но даже скролл есть ).

Добавлено через 1 час 52 минуты
Нуу посоны, никто помочь не может что ли?
0
Jupiter
Каратель
Эксперт С++
6556 / 3977 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
04.08.2013, 14:40 #6
Цитата Сообщение от Misterkat Посмотреть сообщение
Второй способ пробовал, но к сожалению он не работал.
"не работал" это как? где код?
1
Misterkat
7 / 7 / 0
Регистрация: 16.11.2012
Сообщений: 84
04.08.2013, 15:14  [ТС] #7
Цитата Сообщение от Jupiter Посмотреть сообщение
где код?
C++
1
2
3
4
5
6
    case WM_COMMAND:
        if(wParam == IDC_BUTTON2)
        {
            HWND SecondButton = CreateWindow("button", "SecondButton", WS_VISIBLE, 20, 300, 25, 100, m_hwnd, (HMENU)1001, NULL, (LPVOID)lParam);
        }
    break;
ЗЫ:Есть подозрения на hInstance = NULL, но не понимаю откуда его взять, если диалог создан в ресурснике...

Добавлено через 27 минут
hInstance получил, но все равно ничего не работает.
C++
1
2
3
4
5
6
7
    case WM_COMMAND:
        if(wParam == IDC_BUTTON2)
        {
            HINSTANCE hInstance = (HINSTANCE)GetWindowLong(m_hwnd, GWL_HINSTANCE);
            HWND SecondButton = CreateWindow("button", "SecondButton", WS_VISIBLE, 20, 300, 25, 100, m_hwnd, (HMENU)1001, hInstance, (LPVOID)lParam);
        }
    break;
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.08.2013, 15:14
Привет! Вот еще темы с ответами:

Динамическое создание массива - C++
Помогите пожалуйста. Пытаюсь создать массив char* выделяя под него память динамически int x = ptrLast - ptrFirst; char*...

Динамическое создание переменных - C++
Есть строка введённая с клавиатуры пользователем, к примеру такая: "a+b+c", как создать динамические переменные, допустим типа int a, b,...

Динамическое создание структуры - C++
У меня есть h файл в котором описаны структуры. Можно ли его подключить к проекту динамически? То есть сейчас я подключаю этот файл,...

Динамическое создание файлов. - C++
Очень нужен пример такой на С/С++ (поф,ибо у меня DEV-C++).Кто поможет ?:( ЗЫ: Вылетает Unhandled Win32 exception =_= в моем примере


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

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

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