новое окно

  • Автор темы aandreevich
  • Дата начала
A

aandreevich

Гость
#1
VS 2008
Vista
------------
Вопрос такой:
2 формы: MainForm и Next_Form.
На MainForm кнопка, которая должна вызвать Next_Form.
Так как это сделать?
Раньше работал в delphi, так теми способами создания не получается (я понимаю что pascal это не C++, н оя запутался ...).
Help me,pls .
 
A

aandreevich

Гость
#3
не, ну эт спасибо конечно, так как мне вызватт -то мою вторую форму ?
Я так понял нужно в основной файл программы *.сpp включить оба MainForm.h и Next_Form.h и так же в MainForm.h "приинклюдить" Next_Form.h
А что в обработчике, для вызова формы Next_Form писать-то ?
 
A

aandreevich

Гость
#5
создал новый проект: CLR Win Forms Application, напичкал главне окно всякими там чекбоксами, эдитами да дутонами, а теперь, для каждлго обработчика добавляю Windows form, на последних окнах делаю "что-нибудь". Всё, конечный продукт. Осталось только сделать вызов из первой формы, посредствам кнопок и др. , соответствующие дочерние !
Во так всё делаю или опять "делфийские шаблоны мышления" завёли куда-то в тупик ?
 
04.09.2006
2 566
2
Минск
#6
Я Вас в первом посте не правильно понял. Я думал вы про "чистый" С++ и создание окон на WinApi. А в Win Forms я не помощник :)
 
A

aandreevich

Гость
#7
ну спасибо за намериния, но вопрос остаётся открытым...
 
@

@LE}{@NDER

Гость
#8
Возможно уже поздно, но дофига работы и нет времени по форумам лазить. Если речь идет о Windows.Forms, то пост наверное должен быть в теме .NET. Если я понял все правильно, то следующее должно помочь

Код:
private void ConnectBtn_Click(object sender, EventArgs e) //Подразумевается, что кнопка ConnectBtn и метод ConnectBtn_Click существуют
{
AddForm dlg = new AddForm(); //Подразумевается, что форма и класс формы AddForm существует в неймспейсе
if (dlg.ShowDialog() == DialogResult.OK)
{
MessageBox.Show("OK");
}
else
{
MessageBox.Show("Cancel");
}
}
 
A

aandreevich

Гость
#9
сыпится сразу на первой строке
error c2750 ,
что-то не то (
 
@

@LE}{@NDER

Гость
#11
Сорри, народ, я подумал сначала, что вы на С шарпе пишите и запостил код на С шарпе.
Вот код на С++ для Windows::Forms

[codebox]
private: System::Void AddFormBtn_Click(System::Object^ sender, System::EventArgs^ e)
{
TestWinForms::AddForm^ dlg = gcnew TestWinForms::AddForm(); //Подразумевается, что форма и класс формы AddForm существует в неймспейсе
if (dlg->ShowDialog() == System::Windows::Forms::DialogResult::oK)
{
MessageBox::Show("OK");
}
else
{
MessageBox::Show("Cancel");
}
}
[/codebox]

Вот сорцы - http://narod.ru/disk/5399628000/TestWinForms.zip.html (правда на 2008й студии).
 
A

aandreevich

Гость
#12
сенкс, помогло, всё функционирует:
Код:
TestWinForms::AddForm^ dlg = gcnew TestWinForms::AddForm();
dlg->ShowDialog();
только что вот этот домик обозначает ^ ?
 
@

@LE}{@NDER

Гость
#13
только что вот этот домик обозначает ^ ?
Очевидно майкрософту * в качестве указателя не нравилась, вот и решили втулить домик ^ :)

Ну а если без шуток, то инфу по изменениям в синтаксисе кода, можно почитать здесь (правда на инглише) http://en.wikipedia.org/wiki/C%2B%2B/CLI
 
A

aandreevich

Гость
#14
вот уже , лишь бы запутать )))).
Я так понял можно использовать и * и ^ даже однговременно... вот блин, ну да ладно. ещё раз сенкс. будем работать дальше )