Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Гуи приложения в Visual Studio (https://forum.antichat.xyz/showthread.php?t=145834)

_nic 05.10.2009 12:30

Гуи приложения в Visual Studio
 
1.Как вклинится в обработку оконных сообщений.
2.Какая есть литература? А то нехрина непонятно по каком оно вообще принципу работает :(

Gray_Wolf 05.10.2009 12:51

Оно?
http://social.msdn.microsoft.com/Forums/ru-RU/architecture/thread/7a989ad6-abd4-42c9-b791-42abde5b7c83

razb 05.10.2009 13:05

Цитата:

Какая есть литература? А то нехрина непонятно по каком оно вообще принципу работает
В соседнем треде, ака "Начинаем программировать на..." есть )

_nic 05.10.2009 15:43

Цитата:

Сообщение от Gray_Wolf
Оно?
http://social.msdn.microsoft.com/Forums/ru-RU/architecture/thread/7a989ad6-abd4-42c9-b791-42abde5b7c83

Я вообще хз что это.
Цитата:

Сообщение от razb
В соседнем треде, ака "Начинаем программировать на..." есть )

Там есть по С и С++.А мне нужно по конкретной среде.По Visual Studio C++

Ra$cal 05.10.2009 16:21

Щупак "Win32 API"

_nic 05.10.2009 18:11

Цитата:

Сообщение от Ra$cal
Щупак "Win32 API"

Читай выше
Цитата:

Сообщение от _nic
А мне нужно по конкретной среде.По Visual Studio C++


Ra$cal 05.10.2009 18:18

твою ж мать, читай книгу. особенности не в среде разработки, а в ядре операционной системы. к среде разработки применимо одно различие - надстройка над графической подсистемой ОС. Например для мс - это мфц. Для борланд - это всл. РТФМ кароч, ибо пока не научишься читать тебе никто не бьудет все разжевывать.

_nic 05.10.2009 18:59

Цитата:

Сообщение от Ra$cal
твою ж мать, читай книгу. особенности не в среде разработки, а в ядре операционной системы. к среде разработки применимо одно различие - надстройка над графической подсистемой ОС. Например для мс - это мфц. Для борланд - это всл. РТФМ кароч, ибо пока не научишься читать тебе никто не бьудет все разжевывать.

блин да что ж никто непоймет.Мне не нужна литература о ЯЗЫКАХ или ТЕХНОЛОГИЯХ мне нужна литература о КОНКРЕТНОЙ СРЕДЕ РАЗРАБОТКИ
По разработке гуи приложений в MS Visual Studio C++
Потому что:
1.Я незнаю как в ней меняется свойство компонентов
2.Мне неясно как обрабатывать события
И т.д.

gold-goblin 05.10.2009 19:05

Цитата:

По разработке гуи приложений в MS Visual Studio C++
Потому что:
1.Я незнаю как в ней меняется свойство компонентов
2.Мне неясно как обрабатывать события
И т.д.
Вопрос правильно ставить надо, я подумал ты про инжект пытаешся узнать.....
Есть тема начинаем программировать, берешкнигуи читаешь про gui (есть в любой книге ближе к концу)

Ra$cal 05.10.2009 19:07

омг. ты хоть пробовал читать книжки что тебе посоветовали? Ну свойства менять еще ладно, можно в редакторе ресурсов, нажми View - Resource View. Там нужный тип ресурсов, Дальше View - Properties Window. Все. А по поводу обработки событий - руками их блиа задавать, хоть в блокноте, хоть в чем - главное что руками. А для этого читай, что такое оконная процедура, что такое оконные сообщения, что такое нотифаи элементов управления, что такое основной цикл и прочее прочее прочее.

intNet 05.10.2009 19:09

Windows кодинг он и в Aфрике windows кодинг. От среды\компилятора тут ничего не зависит. Читай любую книжку по программированию для windows. Кстати, они большинство заточены под студию.

_nic 05.10.2009 19:25

Ппц какие все умные,даже и в африке.А ну скажите тогда гении африканские кодеры где тут обработчик оконных сообщений
Код:

#pragma once


namespace Keys {

        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
        ///
        /// Внимание! При изменении имени этого класса необходимо также изменить
        ///          свойство имени файла ресурсов ("Resource File Name") для средства компиляции управляемого ресурса,
        ///          связанного со всеми файлами с расширением .resx, от которых зависит данный класс. В противном случае,
        ///          конструкторы не смогут правильно работать с локализованными
        ///          ресурсами, сопоставленными данной форме.
        /// </summary>
        public ref class Form1 : public System::Windows::Forms::Form
        {
        public:
                Form1(void)
                {
                        InitializeComponent();
                        //
                        //TODO: добавьте код конструктора
                        //
                }

        protected:
                /// <summary>
                /// Освободить все используемые ресурсы.
                /// </summary>
                ~Form1()
                {
                        if (components)
                        {
                                delete components;
                        }
                }

        protected:

        private:
                /// <summary>
                /// Требуется переменная конструктора.
                /// </summary>
                System::ComponentModel::Container ^components;

#pragma region Windows Form Designer generated code
                /// <summary>
                /// Обязательный метод для поддержки конструктора - не изменяйте
                /// содержимое данного метода при помощи редактора кода.
                /// </summary>
                void InitializeComponent(void)
                {
                        this->SuspendLayout();
                        //
                        // Form1
                        //
                        this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
                        this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
                        this->ClientSize = System::Drawing::Size(292, 266);
                        this->Name = L"Form1";
                        this->Text = L"Form1";
                        this->ResumeLayout(false);

                }
#pragma endregion
        };
}

Где HWND,WPARAM и т.д. Где?

Shaitan-Devil 05.10.2009 19:41

В Visual Studio есть два основных инструмента для разработки ГУИ: MFC и CRL(C++.NET). ПО MFC много книг, а по CRL есть оффициальная документация на мсдн.

razb 05.10.2009 19:51

Цитата:

Ппц какие все умные,даже и в африке.А ну скажите тогда гении африканские кодеры где тут обработчик оконных сообщений
Ты для начала разберись что ты хочешь юзать, managed c++ + .net или c++ + mfc wtl, etc

Ra$cal 05.10.2009 19:58

лол, это по твоему C++ ?

_nic 05.10.2009 20:36

Цитата:

Сообщение от Ra$cal
лол, это по твоему C++ ?

Я дотнет часть как бы неинсталил.А других гуевых проектов там нету.

Ra$cal 05.10.2009 21:18

есть там другие гуевые проекты. New Project -> C++ -> Win32 -> Win32 (не Console)
еще раз повторю - бери книги и читай. тыкание по менюшкам не даст никакого результата. Понимать надо, что делаешь. Это не делфи с васиком. Если хочется обойтись менюшками и программированием с помощью мышки - гоу к делфи. Там минимальный порог вхождения, думать особо не требуется, как и читать.

_antony 06.10.2009 00:33

Открываем студию( у меня 6 ).
1 New project -> Win32 Application.
2. File - > New -> Resource Script , правый клик Insert -> Dialog
3.Перетащили кнопку.
4.File -> New -> C++ Source File .

Код:

#include<windows.h>
#include"resource.h"

int WINAPI DialogProc( HWND hWnd , UINT msg , WPARAM wp , LPARAM lp )
{

        if( msg == WM_COMMAND )
        {

                if( wp == IDC_BUTTON1 )
                {

                        MessageBox( hWnd , "Pressed" , "Button:" , NULL );
                }
        }

        if( msg == WM_CLOSE )
        {

                EndDialog( hWnd , 0 );
        }

        return 0;
}


int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd )
{

        DialogBoxParam( hInstance , MAKEINTRESOURCE(IDD_DIALOG1) , 0 , DialogProc , 0 );
        return 0;
}

resource.h сгенирила сама студия на основе элементов которые ты положил на форму в редакторе ресурсов.

Код:


//{{NO_DEPENDENCIES}}
// Microsoft Developer Studio generated include file.
// Used by rs.rc
//
#define IDD_DIALOG1                    101
#define IDC_BUTTON1                    1000

// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE        102
#define _APS_NEXT_COMMAND_VALUE        40001
#define _APS_NEXT_CONTROL_VALUE        1001
#define _APS_NEXT_SYMED_VALUE          101
#endif
#endif

http://s50.radikal.ru/i129/0910/6c/8eb461cc31e2.jpg

_nic 06.10.2009 10:34

Цитата:

Сообщение от Ra$cal
тыкание по менюшкам не даст никакого результата. Понимать надо, что делаешь. Это не делфи с васиком.

Вот для этого я испрашивал литературу
ЗЫ:у меня нет Resource Script

_antony 06.10.2009 14:36

Ну я же сказал вам , у меня шестая студия , ну думаю в других тоже что-то похожее должно быть( никогда не ставил ничего выше 6 версии)

_antony 06.10.2009 16:00

Цитата:

Сообщение от _nic
Вот для этого я испрашивал литературу
ЗЫ:у меня нет Resource Script

И так уважаемый вы плохо смотрели =) Я даже ради интереса поставил 2008 студию благо она бесплатная и так начнем)

1. Запускаем студию.
2. File->New Project -> Win32->WIn32Project
3. Вылетает мастер настроек , жмем next , ставим галку Empty Project , Finish.
4. Слева дерево проекта , правой кнопкой мыши по Resource Files -> Add - > New Item
Выбираем
Resource File.

http://i047.radikal.ru/0910/cc/42771ccf9659.jpg

Дерево ресурсов левее.

http://i037.radikal.ru/0910/37/d02033dbbc58.jpg

Правая кнопка , Add Resource . Выбираешь Dialog.

Переносишь кнопку , Сохраняешь , Добавляешь в проект C++ Source File.
Далее знакомый код :

Код:

#include<windows.h>
#include"resource.h"

int WINAPI DialogProc( HWND hWnd , UINT msg , WPARAM wp , LPARAM lp )
{

        if( msg == WM_COMMAND )
        {

                if( wp == IDC_BUTTON1 )
                {

                        MessageBoxA( hWnd , "Pressed" , "Button:" , NULL );
                }
        }

        if( msg == WM_CLOSE )
        {

                EndDialog( hWnd , 0 );
        }

        return 0;
}


int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd )
{

        DialogBoxParam( hInstance , MAKEINTRESOURCE(IDD_DIALOG1) , 0 , DialogProc , 0 );
        return 0;
}

И все получается =)
http://i028.radikal.ru/0910/fb/b00fa42eb4d4.jpg

_nic 06.10.2009 22:21

В экспресс версии нету редактора ресурсов :( Есть ещё какие то варианты,но не кряки?

Ra$cal 06.10.2009 22:43

тут

_antony 06.10.2009 22:44

2008 бесплатная))

Ra$cal 06.10.2009 22:55

http://shop.ixbt.com/catalog/index.php?CID=352

каким местом она бесплатная? Правда есть программа dreamspark. Если студент - тебе по скану студня выдадут бесплатный ключ и на студию и на винду и прочую лажу типа склсервера на год. Правда не со всеми странами работает.

_antony 06.10.2009 23:09

"Правда есть программа dreamspark" этим местом и бесплатная =).

Цитата:

В экспресс версии нету редактора ресурсов Есть ещё какие то варианты,но не кряки?
6 версию ставьте там все есть=)

_nic 07.10.2009 01:33

Цитата:

Сообщение от Ra$cal
Если студент - тебе по скану студня выдадут бесплатный ключ и на студию и на винду и прочую лажу типа склсервера на год. Правда не со всеми странами работает.

Защитился этим летом :(
Есть какая то разумная альтернатива борланду с его VCL?

_antony 07.10.2009 01:55

нда=)

Вот кстати на досуге можете почитать http://www.wasm.ru/publist.php?list=1

razb 07.10.2009 12:51

Цитата:

Есть какая то разумная альтернатива борланду с его VCL?
MFC, WTL, Qt, GTK, wxWidgets, etc.

zeppe1in 08.10.2009 01:05

Цитата:

Сообщение от _nic
В экспресс версии нету редактора ресурсов :( Есть ещё какие то варианты,но не кряки?

возьми любой другой редактор. или создавай все окна с помощью api.

_nic 08.10.2009 17:52

Цитата:

Сообщение от zeppe1in
возьми любой другой редактор

Какой?

Hiro Protagonist 08.10.2009 21:17

блокнот подойдет в том числе. Если нужен визуал то ResEd доставляет =)

zeppe1in 09.10.2009 01:35

дада. я когда писал про ResEd думал)


Время: 15:05