Динамическое создание объектов в Visual Studio C++
От: MYS  
Дата: 30.04.11 16:12
Оценка:
Как копировать(создавать) элементы окна в программе, созданной в Visual Studio?А именно(см. снимок экрана):

Тоесть новый элемент создаётся вручную уже пользователем готовой программы.Никак не знаю как это реализовать(уже пытался, но знаний пока что маловато, а сделать прогу нужно как можно скорее).Как бы создаётся новый объект типа textBox.
Пожалуйста очень прошу кинуть проект, с реализованной прогой как на скриншоте.
Делаю программу, которая решает системы уравнений, собственно есть всё, кроме графической оболочки(см.выше).
П.С. во флеше на AC 2.0. есть такая хорошая штука как duplicateMovieClip, которая копируюет объекты, тут бы что-нибудь подобное.
c++ cpp visual studio
Re: Динамическое создание объектов в Visual Studio C++
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 01.05.11 01:25
Оценка:
Здравствуйте, MYS, Вы писали:

MYS>Как копировать(создавать) элементы окна в программе, созданной в Visual Studio?А именно(см. снимок экрана):


См. функцию CreateWindow/CreateWindowEx.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re: Динамическое создание объектов в Visual Studio C++
От: dmitry_npi Россия  
Дата: 01.05.11 19:50
Оценка:
Здравствуйте, MYS, Вы писали:

MYS>Как копировать(создавать) элементы окна в программе, созданной в Visual Studio?А именно(см. снимок экрана):


как-то так:

    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) 
             {
                 int count = Int32::Parse(textBox1->Text);
                 for(int i=0; i<count; i++)
                 {
                    TextBox^ tb = gcnew TextBox();
                    tb->Size = System::Drawing::Size(30, 20);
                    tb->Location = Point(10+i*40, 70);
                    this->Controls->Add(tb);
                 }

             }
Атмосферная музыка — www.aventuel.net
Re: Динамическое создание объектов в Visual Studio C++
От: ZegSoft Россия  
Дата: 01.05.11 20:26
Оценка: +1
Здравствуйте, MYS, Вы писали:

MYS>Как копировать(создавать) элементы окна в программе, созданной в Visual Studio?А именно(см. снимок экрана):

MYS>
MYS>Тоесть новый элемент создаётся вручную уже пользователем готовой программы.Никак не знаю как это реализовать(уже пытался, но знаний пока что маловато, а сделать прогу нужно как можно скорее).Как бы создаётся новый объект типа textBox.
MYS>Пожалуйста очень прошу кинуть проект, с реализованной прогой как на скриншоте.
MYS>Делаю программу, которая решает системы уравнений, собственно есть всё, кроме графической оболочки(см.выше).
MYS>П.С. во флеше на AC 2.0. есть такая хорошая штука как duplicateMovieClip, которая копируюет объекты, тут бы что-нибудь подобное.

Самый простой вариант, который можешь быстро реализовать, не вникая в тонкости уже названных функций CreateWindow/CreateWindowEx состоит в том, чтобы заранее создать множество полей воода и скрывать те, которые тебе не нужны, функцией ShowWindow. Такой вариант может подойти, если ты заранее знаешь, что максимальное количество полей невелико (например, не больше 10). Тогда после ввода пользователем числа ты просто делаешь выдимыми нужное количество полей той же самой функцией ShowWindow. Как вариант, можно не скрывать эти поля, а просто делать их неактивными функцией EnableWindow. Это позволит не мозолить глаза пустым местом на формочках ну и к тому же будет интуитивно подсказывать пользователю о том, какое максимальное количество переменных может быть в программе. Если же ограничений на максимальное количество полей ввода нет или же их может быть намного больше 10, то тут уже придется пользоваться функциями CreateWindow/CreateWindowEx для динамического создания этих полей. Кроме того, если максимальное количество полей заренее неизвестно, возникает вопрос их размещения на форме. То есть тебе может не хватить места на форме и тогда придется ее растягивать. Рано или поздно формочка не будет влезать на экран и придется решать проблему скороллинга. Поэтому я бы для этих целей использовал какой-нибудь GridCtrl. Самый простой вариант: размещаешь стандартный CListCtrl (или даже CListBox) и одно поле ввода CEdit. Эти классы позволяют очень легко задать максимальное количество строк, а редактировать данные можно через CEdit. Для этого нужно лишь обработать событие изменение выделения строки в CListBox или CListCtrl. То есть при выделении строки она заносится в CEdit, пользователь вводит новое значение, которое запоминается, затем выделяется вторая строка и так далее. Более сложный вариант — использовать редактируемые CListCtrl или CListBox (для этого нужно перегружать соответствующие методы, в инете куча примеров, в том числе уже готовых реализаций), тогда можно вообще отказаться от CEdit. Или же вообще применить для этих целей что-то посерьезнее, например, MFC GridCtrl, который можно взять на codeproject.com.
Re: Динамическое создание объектов в Visual Studio C++
От: MasterZiv СССР  
Дата: 02.05.11 07:58
Оценка:
On 04/30/2011 08:12 PM, MYS wrote:

> Тоесть новый элемент создаётся вручную уже пользователем готовой программы.Никак

> не знаю как это реализовать(уже пытался, но знаний пока что маловато, а сделать
> прогу нужно как можно скорее).Как бы создаётся новый объект типа textBox.

Открой для себя другие элементы управления: ListBox, SysListview32.
Posted via RSDN NNTP Server 2.1 beta
Re: Динамическое создание объектов в Visual Studio C++
От: Abyx Россия  
Дата: 02.05.11 09:20
Оценка:
Здравствуйте, MYS, Вы писали:

это WindowsForms и к C++ отношения не имеет
In Zen We Trust
Re[2]: Динамическое создание объектов в Visual Studio C++
От: BulatZiganshin  
Дата: 02.05.11 11:24
Оценка:
Здравствуйте, Abyx, Вы писали:

A>это WindowsForms и к C++ отношения не имеет


managed c++ в руки и вперёд. никто ведь не удосужился спросить какая gui либа им используется
Люди, я люблю вас! Будьте бдительны!!!
Re[3]: Динамическое создание объектов в Visual Studio C++
От: Abyx Россия  
Дата: 02.05.11 13:18
Оценка:
Здравствуйте, BulatZiganshin, Вы писали:

BZ>никто ведь не удосужился спросить какая gui либа им используется

так по скрину видно же какая
In Zen We Trust
Re: Динамическое создание объектов в Visual Studio C++
От: fdn721  
Дата: 02.05.11 14:06
Оценка: :)
А что сессия скоро?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.