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

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

Войти
Регистрация
Восстановить пароль
 
Darkauron
0 / 0 / 0
Регистрация: 26.10.2012
Сообщений: 5
#1

Связь нескольких форм - C++

26.10.2012, 17:04. Просмотров 1150. Ответов 6
Метки нет (Все метки)

Добрый вечер, народ.
Я столкнулся с такой проблемой, как связка форм в С++. Я писал на дельфи, там намного легче с этим вопросом, подскажите как связать две формы, как вызвать одну форму, посредством нажатия на Button. И в какие файлы писать код?

У меня есть:
Заголовочные файлы: Form1.h, Form2.h, resource.h, stdafx.h
И файлы исходного кода: AssemblyInfo.cpp, stdafx.cpp, и файл (название проекта).cpp

Если можете, объясните, за что отвечает каждый файл?
Заранее спасибо =)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.10.2012, 17:04     Связь нескольких форм
Посмотрите здесь:

Обработчик форм - C++
Я видел, что обработчик html формы можно зделать на с++. Но какой там код? Зарание всем благодарен. Добавлено через 2 часа 56 минут ...

Автозаполнение форм - C++
Здравствуйте. Есть вот допустим сайт на котором забылся пароль, но логин мы помним. Как заставить машину заполнять строки: "Введите логин",...

Переключение форм - C++
Я в формах только начал работать.Как в Борланде сделать переключение между формами?Например, на первой форме вводим данные энного числа...

Сравнение шестнадцатеричных форм - C++
Такая задача:считать из потока 2-байтовое число, перевести в 16-ричную систему счисления и сравнить с заданным 16-ричным числом. помогите...

Широкий диапазон форм - C++
У Дейтлов есть задача В 3.22 печатался квадрат из звездочек **** **** **** **** В 3.23 - такой же квадрат, но из...

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

Динамическое создание форм (Не MFC) - C++
Допустим есть созданная форма в ресурснике, а в ней есть поле для ввода(Edit Control) и даже кнопка(Button)! :) Подскажите пожалуйста,...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
prosto_lynx
49 / 24 / 1
Регистрация: 09.06.2008
Сообщений: 226
26.10.2012, 18:30     Связь нескольких форм #2
Ты чью-то программу взял и хочешь в ней разобраться или свою пишешь?..

И в чем суть "связки форм"?
Если тебе, например, по нажатию кнопки с первой формы нужно сделать активной или видимой вторую форму, то так и пишешь в обработчике кнопки:
C++
1
2
3
Form2->SetFocus();
//или
Form2->Visible = true;
Darkauron
0 / 0 / 0
Регистрация: 26.10.2012
Сообщений: 5
27.10.2012, 12:26  [ТС]     Связь нескольких форм #3
Ошибка 1 error C2065: Form2: необъявленный идентификатор c:\documents and settings\администратор\мои документы\visual studio 2010\projects\erwrwrwr\erwrwrwr\Form1.h 78 1 erwrwrwr
Ошибка 2 error C2227: выражение слева от "->SetFocus" должно указывать на тип класса, структуры или объединения либо на универсальный тип c:\documents and settings\администратор\мои документы\visual studio 2010\projects\erwrwrwr\erwrwrwr\Form1.h 78 1 erwrwrwr

вот что пишет, когда я пишу в обработчик кнопки: Form2->SetFocus();

Полностью код кнопки:

C++ (Qt)
1
2
3
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {                
                 Form2->SetFocus();
 }};}
Что мне делать?
prosto_lynx
49 / 24 / 1
Регистрация: 09.06.2008
Сообщений: 226
27.10.2012, 18:53     Связь нескольких форм #4
Form2 - в исполняемом файле не объявлена, допишите в нем рядом с
#include "Form1.h"
еще и
#include "Form2.h"
Darkauron
0 / 0 / 0
Регистрация: 26.10.2012
Сообщений: 5
28.10.2012, 13:50  [ТС]     Связь нескольких форм #5
Теперь пишет такие ошибки!

Ошибка 1 error C2143: синтаксическая ошибка: отсутствие ";" перед "->" c:\documents and settings\администратор\мои документы\visual studio 2010\projects\x\x\Form1.h 80 1 x
Ошибка 2 error C2143: синтаксическая ошибка: отсутствие ";" перед "->" c:\documents and settings\администратор\мои документы\visual studio 2010\projects\x\x\Form1.h 80 1 x
Ошибка 3 error C2143: синтаксическая ошибка: отсутствие ";" перед "->" c:\documents and settings\администратор\мои документы\visual studio 2010\projects\x\x\Form1.h 80 1 x
Ошибка 4 error C2143: синтаксическая ошибка: отсутствие ";" перед "->" c:\documents and settings\администратор\мои документы\visual studio 2010\projects\x\x\Form1.h 80 1 x
prosto_lynx
49 / 24 / 1
Регистрация: 09.06.2008
Сообщений: 226
28.10.2012, 19:58     Связь нескольких форм #6
Если вы выложите исходные коды, то понять ошибки будет гораздо проще...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.10.2012, 18:37     Связь нескольких форм
Еще ссылки по теме:

Существует ли конструктор форм для C++ - C++
Существует ли конструктор форм для с++ как в visual studio на с#. Что бы можно было перетаскивать компоненты и не писать код.

Связь с интернетом - C++
Добрый день. Решил перебраться с Сишника на WEB-программирование. Но для того что бы лучше понять что оно из себя представляет хочу...

Связь по TCP - C++
Здравствуйте , уважаемые программисты. Я начинающий программист и моя задача состоит в том, чтобы обеспечить связь сервера на котором...

Связь списков - C++
Доброго времени суток, В процессе решения задачи, встретилась проблема: есть структура struct TStruct { std::string *...

С++ , связь программ - C++
Добрый день, уважаемый форумчане. Хотелось бы потолковать с вами на такую тему: Я - начинающий программист, расскажите мне, каким образом...


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

Или воспользуйтесь поиском по форуму:
Darkauron
0 / 0 / 0
Регистрация: 26.10.2012
Сообщений: 5
29.10.2012, 18:37  [ТС]     Связь нескольких форм #7
Цитата Сообщение от prosto_lynx Посмотреть сообщение
Form1.h"
Это код в файле Form1.h

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#pragma once
#include "Form2.h"
 
namespace forms {
 
    using namespace System;
    using namespace System::ComponentModel;
    using namespace System::Collections;
    using namespace System::Windows::Forms;
    using namespace System::Data;
    using namespace System::Drawing;
 
    /// <summary>
    /// Сводка для Form1
    /// </summary>
    public ref class Form1 : public System::Windows::Forms::Form
    {
    public:
        Form1(void)
        {
            InitializeComponent();
            //
            //TODO: добавьте код конструктора
            //
        }
 
    protected:
        /// <summary>
        /// Освободить все используемые ресурсы.
        /// </summary>
        ~Form1()
        {
            if (components)
            {
                delete components;
            }
        }
    private: System::Windows::Forms::Button^  button1;
    protected: 
 
    private:
        /// <summary>
        /// Требуется переменная конструктора.
        /// </summary>
        System::ComponentModel::Container ^components;
 
#pragma region Windows Form Designer generated code
        /// <summary>
        /// Обязательный метод для поддержки конструктора - не изменяйте
        /// содержимое данного метода при помощи редактора кода.
        /// </summary>
        void InitializeComponent(void)
        {
            this->button1 = (gcnew System::Windows::Forms::Button());
            this->SuspendLayout();
            // 
            // button1
            // 
            this->button1->Location = System::Drawing::Point(49, 53);
            this->button1->Name = L"button1";
            this->button1->Size = System::Drawing::Size(184, 166);
            this->button1->TabIndex = 0;
            this->button1->Text = L"button1";
            this->button1->UseVisualStyleBackColor = true;
            this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);
            // 
            // Form1
            // 
            this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
            this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
            this->ClientSize = System::Drawing::Size(292, 271);
            this->Controls->Add(this->button1);
            this->Name = L"Form1";
            this->Text = L"Form1";
            this->ResumeLayout(false);
 
        }
#pragma endregion
    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
        Form2->Visible = true;   }
    };
}

###################################################################


Это код в файле "мой проект.cpp"
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#pragma once
#include "Form2.h"
 
namespace forms {
 
    using namespace System;
    using namespace System::ComponentModel;
    using namespace System::Collections;
    using namespace System::Windows::Forms;
    using namespace System::Data;
    using namespace System::Drawing;
 
    /// <summary>
    /// Сводка для Form1
    /// </summary>
    public ref class Form1 : public System::Windows::Forms::Form
    {
    public:
        Form1(void)
        {
            InitializeComponent();
            //
            //TODO: добавьте код конструктора
            //
        }
 
    protected:
        /// <summary>
        /// Освободить все используемые ресурсы.
        /// </summary>
        ~Form1()
        {
            if (components)
            {
                delete components;
            }
        }
    private: System::Windows::Forms::Button^  button1;
    protected: 
 
    private:
        /// <summary>
        /// Требуется переменная конструктора.
        /// </summary>
        System::ComponentModel::Container ^components;
 
#pragma region Windows Form Designer generated code
        /// <summary>
        /// Обязательный метод для поддержки конструктора - не изменяйте
        /// содержимое данного метода при помощи редактора кода.
        /// </summary>
        void InitializeComponent(void)
        {
            this->button1 = (gcnew System::Windows::Forms::Button());
            this->SuspendLayout();
            // 
            // button1
            // 
            this->button1->Location = System::Drawing::Point(49, 53);
            this->button1->Name = L"button1";
            this->button1->Size = System::Drawing::Size(184, 166);
            this->button1->TabIndex = 0;
            this->button1->Text = L"button1";
            this->button1->UseVisualStyleBackColor = true;
            this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);
            // 
            // Form1
            // 
            this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
            this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
            this->ClientSize = System::Drawing::Size(292, 271);
            this->Controls->Add(this->button1);
            this->Name = L"Form1";
            this->Text = L"Form1";
            this->ResumeLayout(false);
 
        }
#pragma endregion
    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
        Form2->Visible = true;   }
    };
}

#################################################################


Это код в файле AssemblyInfo.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include "stdafx.h"
 
using namespace System;
using namespace System::Reflection;
using namespace System::Runtime::CompilerServices;
using namespace System::Runtime::InteropServices;
using namespace System::Security::Permissions;
 
//
// Общие сведения об этой сборке предоставляются следующим набором
// атрибутов. Отредактируйте значения этих атрибутов, чтобы изменить
// общие сведения об этой сборке.
//
[assembly:AssemblyTitleAttribute("forms")];
[assembly:AssemblyDescriptionAttribute("")];
[assembly:AssemblyConfigurationAttribute("")];
[assembly:AssemblyCompanyAttribute("WareZ Provider ")];
[assembly:AssemblyProductAttribute("forms")];
[assembly:AssemblyCopyrightAttribute("Copyright (c) WareZ Provider  2012")];
[assembly:AssemblyTrademarkAttribute("")];
[assembly:AssemblyCultureAttribute("")];
 
//
// Сведения о версии сборки состоят из следующих четырех значений:
//
//      Основной номер версии
//      Дополнительный номер версии
//      Номер построения
//      Редакция
//
// Можно задать все значения или принять номер построения и номер редакции по умолчанию,
// используя "*", как показано ниже:
 
[assembly:AssemblyVersionAttribute("1.0.*")];
 
[assembly:ComVisible(false)];
 
[assembly:CLSCompliantAttribute(true)];
 
[assembly:SecurityPermission(SecurityAction::RequestMinimum, UnmanagedCode = true)];


######################################################################


Это код в файле asdafx.cpp
C++
1
2
#include "StdAfx.h"
#include "Form2.h"
Yandex
Объявления
29.10.2012, 18:37     Связь нескольких форм
Ответ Создать тему
Опции темы

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