Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++/CLI Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.68
ilya_123
1 / 1 / 0
Регистрация: 05.01.2012
Сообщений: 11
#1

приложения типа windows form - C++/CLI WinForms

05.01.2012, 16:52. Просмотров 2321. Ответов 8
Метки нет (Все метки)

подскажите пожалуйта как создавать приложения windows form
p.s. я могу написать простенькое консольное приложение на с++
http://www.cyberforum.ru/cpp-cli-winforms/thread1653607.html
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.01.2012, 16:52
Я подобрал для вас темы с готовыми решениями и ответами на вопрос приложения типа windows form (C++/CLI WinForms):

Переделать программу из консольного приложения в Windows Form
Помогите переделать программу из консольного приложения в Windows Form в Visual...

OpenCV и Form Application. При создании приложения выводится ошибка
Доброго времени суток, при создании приложения выводится ошибка, хотя на...

Windows Form на VS C++
Есть стремление изучить WinForm на С++, но никакой подходящей конкретной...

C++ windows form application
Как удалить созданный PictureBox? Заранее спасибо)

Windows Form и .cpp
Пишу в Visual Studio 2010 C++,возникла проблема .Создал я Windows Form и...

8
Gepar
1181 / 537 / 77
Регистрация: 01.07.2009
Сообщений: 3,517
05.01.2012, 16:57 #2
Петзольд - программирование для Windows 95. Ну и вот его самый первый пример из книги
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
83
84
85
86
87
88
89
90
91
#include <windows.h>
#include "Mmsystem.h"
#pragma comment (lib, "Winmm")
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
 
//точка входа, hInstance описатель приложения, hPrevInstance - описатель предыдущего окна приложения
//szCmdLine - командная строка приложения, включает имя программы, iCmdShow - управление отображением окна
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
    static char szAppName[]="HelloWin"; //имя приложения
    HWND hwnd; // описатель окна
    MSG msg; //объект структуры
    WNDCLASSEX wndclass; //объект структуры (окно)
 
    wndclass.cbSize=sizeof(wndclass); //размер нашего класса
    wndclass.style=CS_HREDRAW | CS_VREDRAW; //стиль отображения
    wndclass.lpfnWndProc=WndProc; //указатель на окно
    wndclass.cbClsExtra=0;//доп байты
    wndclass.cbWndExtra=0;//доп байты
    wndclass.hInstance=hInstance;//указатель на экземпляр содержащий процедуру окна класса
    wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
    wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);
    wndclass.hbrBackground=(HBRUSH) GetStockObject(WHITE_BRUSH);//фон
    wndclass.lpszMenuName=NULL;// меню
    wndclass.lpszClassName=szAppName;//имя класса
    wndclass.hIconSm=LoadIcon(NULL, IDI_APPLICATION);//описатель для маленькой иконки асоциированной с классом
 
    RegisterClassEx(&wndclass); //зарегистрировать класс окна
 
    hwnd= CreateWindow( //создать окно
        szAppName, //имя класса окно (связывает класс и создание окна)
        "The Hello Program", //заголовок окна
        WS_OVERLAPPEDWINDOW, //стиль окна (тип DWORD)
        CW_USEDEFAULT, // позиция по x
        CW_USEDEFAULT, // позиция по y
        CW_USEDEFAULT, // размер по x
        CW_USEDEFAULT, // размер по y
        NULL, // окно-родитель
        NULL, // описатель меню (NULL - ничего не делать)
        hInstance, // указатель на описатель для асоциации с окном
        NULL);//указатель на значение нужное для создания структуры...
 
    //показать окно
    ShowWindow(hwnd, iCmdShow);// hwnd - описатель окна, iCmdShow (int) - тип отображения
    UpdateWindow(hwnd); //обновить окно
 
    //приём сообщений функцией
    //msg - указатель на структуру MSG, которая принимает сообщения из очереди
    //NULL - указатель на окно с которого надо принимать сообщения, если NULL то приём со всех окон
    //0 - значение кода наименьшего сообщения что нужно принимать
    //0 - значение наибольшего кода сообщения что нужно принимать
    while (GetMessage(&msg,NULL,0,0))
    {
        TranslateMessage(&msg); //перевести виртуальное сообщение в текстовое
        DispatchMessage(&msg);//отправить сообщение wndproc
    }
    return msg.wParam; //wParam - инфо о сообщении, значение зависит от остальных составляющих структуры
}
 
//HWND - описатель окна, iMsg -  сообщение, wParam и lParam - доп. параметры
LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
    HDC hdc;
    PAINTSTRUCT ps;// структура для рисования областей окна
    RECT rect; //структура содержащая размеры и положения прямоугольника (4 координаты)
 
    switch(iMsg)
    {
    case WM_CREATE: //#define WM_CREATE                       0x0001
        //PlaySound("hellowin.waw",NULL,SND_FILENAME | SND_ASYNC);
        return 0;
 
    case WM_PAINT:
        hdc=BeginPaint(hwnd, &ps);//hwnd - описатель окна, ps - указатель на структуру с которой брать данные для рисования
        GetClientRect(hwnd, &rect);// возвращает координаты окна области пользователя
 
        //выводит форматируемый текст в заданную область пользовательского окна
        //hdc - описатель окна, lpchText - строка (если сл. параметр -1 то в конце должен быть /0)
        //rect - координаты прямоугольника где нужно разместить текст
        //uFormat - форматирование текста
        DrawText(hdc,"Hello, Windows!",-1,&rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER);
        EndPaint(hwnd,&ps);
        return 0;
 
    case WM_DESTROY: //#define WM_DESTROY                      0x0002
        PostQuitMessage(wParam); //индикатор что приложение должно завершиться
        return 0;
    }
 
    return DefWindowProc(hwnd, iMsg, wParam, lParam);
}
0
sandye51
программист С++
833 / 592 / 147
Регистрация: 19.12.2010
Сообщений: 2,016
05.01.2012, 18:36 #3
Gepar, в каком месте здесь Windows Forms?
0
Gepar
1181 / 537 / 77
Регистрация: 01.07.2009
Сообщений: 3,517
05.01.2012, 18:43 #4

Не по теме:

sandye51, ну окно же


Если серьёзно то я сразу почему-то решил что это автору winapi с его окнами надо, почитал вики и вижу что я ошибся.
0
sandye51
программист С++
833 / 592 / 147
Регистрация: 19.12.2010
Сообщений: 2,016
05.01.2012, 18:56 #5
ilya_123, создавать очень просто
1. открываешь VS
2. Файл - Создать - Проект - CLR - Приложение Windows Forms
3. Вводишь имя проекта и нажимаешь Готово

Собственно перед тобой форма. Нажимай F5 и приложение создано
Но оно ничего не делает, поэтому можно кидать на форму всякие control'ы, обрабатывать различные события. Если есть какие-то конкретные вопросы - внимательно слушаю.

Не по теме:

Gepar, бывает)

1
ilya_123
1 / 1 / 0
Регистрация: 05.01.2012
Сообщений: 11
05.01.2012, 21:40  [ТС] #6
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
#pragma once
 
namespace jkj {
 
    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:
        /// <summary>
        /// Требуется переменная конструктора.
        /// </summary>
        System::ComponentModel::Container ^components;
 
#pragma region Windows Form Designer generated code
        /// <summary>
        /// Обязательный метод для поддержки конструктора - не изменяйте
        /// содержимое данного метода при помощи редактора кода.
        /// </summary>
        void InitializeComponent(void)
        {
            this->components = gcnew System::ComponentModel::Container();
            this->Size = System::Drawing::Size(300,300);
            this->Text = L"Form1";
            this->Padding = System::Windows::Forms::Padding(0);
            this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
        }
#pragma endregion
    };
}
не понимаю смысл этого

Добавлено через 1 минуту
и ещё ну вытянул я кнопку на форму а что дальше делать то?
0
NoMasters
Псевдослучайный
1909 / 1120 / 90
Регистрация: 13.09.2011
Сообщений: 3,178
05.01.2012, 21:44 #7
Добавить ещё элементов? Писать код обработчиков событий? Собрать?
В общем и целом курить мануалы.
0
sandye51
программист С++
833 / 592 / 147
Регистрация: 19.12.2010
Сообщений: 2,016
05.01.2012, 22:55 #8
Цитата Сообщение от ilya_123 Посмотреть сообщение
что дальше делать то?
а что ты вообще делать то собрался?
0
novikov.ea
779 / 701 / 246
Регистрация: 10.06.2011
Сообщений: 1,340
05.01.2012, 23:54 #9
ilya_123,
Если вы не знаете, с чего начать изучение, читайте Общие сведения о Windows Forms.
Просто подряд всё читайте и пробуйте, тогда всё получится!
Как минимум прочтите раздел "Справка по созданию форм и элементов управления".
0
05.01.2012, 23:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.01.2012, 23:54
Привет! Вот еще темы с решениями:

Работа с Windows Form
Всем привет. Ребята подскажите плиз, ест ли какая книга где рассказывается как...

С++ Windows Form Application
У меня есть classname.cpp и classname.h куда правильно подключить класс чтобы с...

Windows Form потоки
Подскажите пожалуйста! Почему не создается второй поток? #include &quot;MyForm.h&quot;...

Windows Form Application C++
Извиняюсь если задеваю тему которая уже ранее здесь была..но я увы ничего не...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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