Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Вопрос проще простого!!!


Автор: Parasit 27.4.2007, 23:35
Я только вчера установил среду Визуал 2005
поэтому полностью растерян.

Я хочу чтоб при нажатии кнопки (или выполнения действия)
Появлялось новое окно в котором вводились бы данные.

Вопрос простой но синтаксис среды другой помогите

Допустим кнопка находится на Form1
а дополнительное окно list

Заранее всем спасибо

Автор: Greeen 28.4.2007, 09:00
Parasit, трудности перехода с билдера  smile 
Нужно создать шаблон диалогового окна в редакторе ресурсов, потом создать на его основе класс (например CMyDialog) и в обработчике BN_CLICKED твоей кнопки написать:
Код

CMyDialog().DoModal();

Что непонятно спрашивай.

Автор: Parasit 28.4.2007, 16:38
Вот на счёт класса как Создать

Автор: zkv 28.4.2007, 19:02
правой кнопкой в редакторе ресурсов на созданном диалоге -> Add class, можно и ручками конечно, но не стоит, если такие вопросы появляются  smile   
хорошо все по шагам расписано на firststeps.ru

Автор: Parasit 29.4.2007, 11:15
Спасибо ща буду грысть камень науки smile 

Автор: Parasit 29.4.2007, 19:59
Что не то 
Я создал wfapplacation

потом добавил как класс 
в главный инклуд прописал
потом написал на действии

окно(). - выходит вспомогательное окно 
но DoModal() там нет



Автор: zkv 29.4.2007, 20:08
Цитата(Parasit @  29.4.2007,  19:59 Найти цитируемый пост)
Я создал wfapplacation

???
Windows Form Application (.NET)?

давайте лучше дополнять свои мысли кодом smile

Автор: Parasit 29.4.2007, 21:20
именно Windows Form Application
Ну всмысле обычное приложение.

Потом Resource view  
там на имени окошка  нажимаю свойство
и выбираю пункт add->Class вибираю в появивщемся окне Windows Form

Вот после этого у меня как бы два окна 
одно основное второе добавленный "класс"

теперь что делать чтоб из основного окна вызвать
добавленный "класс"

----------------------------------------------------

Что сделал я  smile  :
прописал в главном -
include "second.h";

потом на обработчике события кнопки 
пишу
second(). -

a DoModal() там нет

Добавлено через 2 минуты и 30 секунд
и где это окно 
"Event Handler Wizard - Sketcher"

Автор: Samotnik 30.4.2007, 03:27
2 Parasit
Если ты про MFC ,  то , чтобы создать новый класс, нужно:
Insert- New Class 
ВСЕ. 
Затем появиться окошко. В нем:  
Class type:  MFC Class
Name : "Ну сам напишеш какое захочешь"
Base Class:  CDialog
Вод собственно и все!!!!!  Проще паренной рЭпы!!
А чтобы

Цитата(Parasit @  27.4.2007,  23:35 Найти цитируемый пост)
Я хочу чтоб при нажатии кнопки (или выполнения действия)Появлялось новое окно в котором вводились бы данные.


То нужно:
Во-первых: Создать Новый диалог (Для этого клацаеш слева закладку  ResourceView, наводиш на надпись Dialog, прваой кнопкой мыши  Insert, Dialog, New)  ВСЕ  Диалог создан
Во-вторых: Открываеш ГлавныйклассDlg.cpp (Dlgшник) создаеш ф-цию.(она конечно должна обрабатывать событие одного нажатия на кнопку, через кот ты хочеш вызвать другой диалог) и в ней пишеш что-то вроде
Код

ClassName dlg;
dlg.DoModal();
 
Вод и все!!!!!   smile

Добавлено через 3 минуты и 6 секунд
Забыл!!!
Конечно же  нужно в главный ClassNameDlg.cpp  включить твой новый класс
Код

#include "имя_нов_класса.h "

И в новый класс, в случае если небудет
Код

#include "ClassNameDlg.h"


Автор: Parasit 30.4.2007, 10:10
Парни  надеюсь мы говорим на одном языке 
Microsoft Visual C++ 2005?

потому что чето не могу найти таких окон как диалог  
там что то есть но когда я создаю его (диалоговое окно)
он создаёт его под именем арр.rs 

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

Неужеле так не просто добавить вторую форму 
в проект ????

Элементарно же должно быть!
нужна вторая форма в проект .
т.е какието события произойдут при её открытии 
А чё то у миня совсем дела плохи (((

Может кто нибудь скинет исходники 
как так сделать плиз (если я их смогу открыть
а то проект открою старый снова 
а та токо одно окно smile )

Добавлено через 3 минуты и 45 секунд
Да и почему у мня вместо .сср выходят лишь .h

Автор: Parasit 30.4.2007, 10:50
Цитата(Samotnik @ 30.4.2007,  03:27)
Если ты про  MFC

Может загвоздка в том что я создаю не MFC, a
WFA - windows form aplication


окрываеться окно с формой
form1.h

я в ResourceView  добавляю Add -> Class 

в открывшемя окне выбиираю Windows form


в form1.h прописыаю в самом верху #include "имя второго окна(класса)";

потом выбираю форму ставлю на неё кнопку
кликаю на неё два раза, открывается form1.h 
на месте обработки события click

пишу имя второго окна(класса). 
и тут вот никакого DoModal() нету!!!

Автор: Samotnik 30.4.2007, 11:58
2 Parasit
C 2005 Visuai дело имел тока раз 10 не больше, но ты посмотри по внимательнее? при создании проекта тебе следует указать , чтото вроде MFC AppWizard(exe)
Потому что е сли 

Цитата(Parasit @  30.4.2007,  10:50 Найти цитируемый пост)
пишу имя второго окна(класса). и тут вот никакого DoModal() нету!!!


То это плохо, даже очень
Да к тому же еще

Цитата(Parasit @  30.4.2007,  10:10 Найти цитируемый пост)
Да и почему у мня вместо .сср выходят лишь .h


Это вдвойне плохо, т.к. в MFC(да и не только) код пишиться (основной) в файлах  .cpp!!!!! 
А в Header(.h) файлах пишится лиш обьявление методов и переменных!!!!!!!!!!!
Запомни ету простую истину!

Автор: zkv 30.4.2007, 12:04
Parasit, у тебя .NET приложение, там все немного(или много) по другому, поэтому думаю все что тебе говорили раньше тебе вряд ли пригодится (могу ошибаться. тк практически не знакомsmile ) Почитай про .NET  smile Больше ничего не скажу - боюсь еще больше запутать smile


ps ранее речь шла об MFC приложениях, и если уж берешься за .NET то лучше, считаю, писать на C# - он родной для этой платформы. 

Автор: Greeen 30.4.2007, 12:56
Parasit, как уже сказано все ответы касались только MFC. Создается MFC приложение так: File->New->Project->Visual C++->MFC->MFC Application->Dialog based application

Автор: zkv 30.4.2007, 13:34
Цитата(Greeen @  30.4.2007,  12:56 Найти цитируемый пост)
Создается MFC приложение так: File->New->Project->Visual C++->MFC->MFC Application->Dialog based application 

запутаешь человека, будет считать что все MFC-приложения - поголовно диалоговые smile

Автор: Greeen 30.4.2007, 17:58
zkv, ни в коем случае не хочу никого запутать, но я думаю человеку будет легче сначала разобраться с диалоговыми приложениями, т.к.
Цитата(Parasit @  27.4.2007,  23:35 Найти цитируемый пост)
Я только вчера установил среду Визуал 2005
поэтому полностью растерян.


Автор: Samotnik 30.4.2007, 22:36
2 all
Дык ребята, может человек лучше сначала элементарную литературу почитает, а потом уж начнет классы добавлять и диалоги описывать!!   И тока  потом уж и с вопросами на форум, а то это безсмысленно каждый пустяк(Такой как создание MDI, SDI, DIALOG) разьяснять. 

Автор: Parasit 1.5.2007, 22:38
Спасибо разжували немного!

Вот по поводу книг не сомневайтесь много разобрал
очень "водоносно" написано (Если есть что посоветовать то я за)
пришлось скачать на английском языке что бы было
перевожу нечё норма токо долго.

Вопрос сразу :
значит обычные приложения пишем через МФС
так хорошо.    smile 

А насчёт глупых вопросах могу сказать что такие
вопросы должны быть 
Вы представте себе вот (я) новичок узнал о сайте 
пришёл что я делаю =\\ я не задаю глупых вопросов --
Я ищу на них ответы
и если при первом входе я вижу уже ответ 
мне да и всем я думаю было бы приятно

И я считаю это не вкоем случае не понижает статус форума 
, а наоборот  привлекает может будуших великих (это о себе - без лишней скромности  smile )
программистов .))
Спасибо еще раз 


Да но я еще не прощаюсь 
: )

Автор: Samotnik 2.5.2007, 11:49
2 Parasit

Цитата(Parasit @  1.5.2007,  22:38 Найти цитируемый пост)
А насчёт глупых вопросах могу сказать что такиевопросы должны быть 

Вопросы то всегда должны быть, нато этот и форум нужен, и я не в коем случае тебя не гоню, а как раз таки  ВСЕГДА  ПОЖАЛУЙСТА!!!!!
Тока вот вопросы типа как создать приложение, диалог, .......      Такие вопросы проще у препода спросить, он обьяснит и ты раз и на всегда запомниш!!    


Пэ.Эс
Не забудь в конце  галочку поставить  "Пометить вопрос как решенный"

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)