Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.11.2008, 20:43   #1
JamS007
Пользователь
 
Регистрация: 09.11.2008
Сообщений: 68
По умолчанию Как вызвать одну форму из другой?

Здравствуйте! Я в Visual C++ совсем новенький... Сам С++ знаю неплохо и консольное приложение накатаю легко, а вот оконное... В общем вопрос первый из очень многих последующих :

- Как вызвать одну форму из другой? Например в Delphi это можно сделать так: <ИмяФормы>.Show; А в С++?

P.S. Может кто знает и может подсказать литературу по Visual C++, желательно не старше 2005 версии. Буду очень благодарен!

Спасибо всем ответившим!!!

Последний раз редактировалось JamS007; 20.11.2008 в 17:28.
JamS007 вне форума Ответить с цитированием
Старый 19.11.2008, 21:31   #2
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

Подразумевается, что главная форма у вас уже есть. Создаете форму, делаете для нее класс(правой кнопкой мыши на форму->AddClass). Назовем его, допустим, CMyDialog. Подключаете вашу форму в класс главной формы
#include "MyDialog.h".
Допустим, ваша форма должна появляться при щелчке на кнопку. В обработчике этой кнопки пишите
Код:
     CMyDialog myDlg;
     myDlg.DoModal();
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
ACE Valery вне форума Ответить с цитированием
Старый 19.11.2008, 22:03   #3
JamS007
Пользователь
 
Регистрация: 09.11.2008
Сообщений: 68
По умолчанию

Спасибо за попытку... Только у нас с Вами наверное разные версии студии. У меня 2008.
- у меня нет пункта AddClass
- У свойств формы нет пункта DoModal

У меня получается только так:
CMyDialog myDlg;
myDlg.ShowDialog();

Но в таком случае вызывающая форма стает не доступной! А метод Show показывает форму только на какойто миг.

Если есть придложения буду весьма признателен!
JamS007 вне форума Ответить с цитированием
Старый 20.11.2008, 13:24   #4
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

Нет, студии у нас не разные.
Под словом Visual C++ я подразумеваю MFC. И в известных мне учебниках авторы тоже называют так именно MFC.
У меня есть предложение: опишите, как вы создаете проект.
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
ACE Valery вне форума Ответить с цитированием
Старый 20.11.2008, 17:27   #5
JamS007
Пользователь
 
Регистрация: 09.11.2008
Сообщений: 68
По умолчанию

Спасибо, за желание помочь

Проект я создаю следующим образом:
- File->New->Project
- Выбираю тип проекта Windows Forms Application

Чтобы создать новую форму я:
- Нажимаю на панели инструментов Add new item
- Выбираю Windows Form
JamS007 вне форума Ответить с цитированием
Старый 20.11.2008, 19:36   #6
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

А я выбираю тип проекта MFC Application.
А в учебниках по Visual C++ не рассказывается про Windows Forms.
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
ACE Valery вне форума Ответить с цитированием
Старый 20.11.2008, 20:20   #7
StarWorm
Форумчанин
 
Регистрация: 17.11.2008
Сообщений: 233
Смущение

А что-то наподобии делегатов здесь нету?!
Ну это указатели на функции вроде бы...
Вот в C# есть
Код:
delegate <return_value> name_delegate(<list_param>)
Ну или что-то наподобии этого...
В Си++ тоже что-то типо того должно быть!
StarWorm вне форума Ответить с цитированием
Старый 20.11.2008, 23:05   #8
filosof_x86
...
Форумчанин
 
Аватар для filosof_x86
 
Регистрация: 01.06.2008
Сообщений: 134
По умолчанию

В Си это так и называется: указатель на функцию.
filosof_x86 вне форума Ответить с цитированием
Старый 21.11.2008, 00:40   #9
StarWorm
Форумчанин
 
Регистрация: 17.11.2008
Сообщений: 233
По умолчанию

Цитата:
В Си это так и называется: указатель на функцию.
Ну я так и написал, что в Си++ это указатели на функцию... В книге Б.Страуструпа про них тоже написано (по моему даже отдельная глава или часть параграфа)...
StarWorm вне форума Ответить с цитированием
Старый 21.11.2008, 01:42   #10
filosof_x86
...
Форумчанин
 
Аватар для filosof_x86
 
Регистрация: 01.06.2008
Сообщений: 134
По умолчанию

Я вас, видимо, не так понял , что вы хотели сказать/спросить в первом сообщении?
filosof_x86 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как показать одну форму из другой в С++ по нажатию кнопки anton.metal Общие вопросы .NET 1 21.11.2008 19:38
по нажатию на кнопку вызвать другой фаил с расширением exe который находится в той же папке 1234 Общие вопросы Delphi 3 05.08.2008 12:32
Как изменить стандартную форму на форму любой сложности QwErEn Общие вопросы Delphi 9 08.06.2007 11:44
Как вызвать процедуру ??? Marat Помощь студентам 8 02.03.2007 15:11