PDA

Просмотр полной версии : Гуи приложения в Visual Studio


_nic
05.10.2009, 12:30
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
Оно?
http://social.msdn.microsoft.com/Forums/ru-RU/architecture/thread/7a989ad6-abd4-42c9-b791-42abde5b7c83
Я вообще хз что это.
В соседнем треде, ака "Начинаем программировать на..." есть )
Там есть по С и С++.А мне нужно по конкретной среде.По Visual Studio C++

Ra$cal
05.10.2009, 16:21
Щупак "Win32 API"

_nic
05.10.2009, 18:11
Щупак "Win32 API"
Читай выше
А мне нужно по конкретной среде.По Visual Studio C++

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

_nic
05.10.2009, 18:59
твою ж мать, читай книгу. особенности не в среде разработки, а в ядре операционной системы. к среде разработки применимо одно различие - надстройка над графической подсистемой ОС. Например для мс - это мфц. Для борланд - это всл. РТФМ кароч, ибо пока не научишься читать тебе никто не бьудет все разжевывать.
блин да что ж никто непоймет.Мне не нужна литература о ЯЗЫКАХ или ТЕХНОЛОГИЯХ мне нужна литература о КОНКРЕТНОЙ СРЕДЕ РАЗРАБОТКИ
По разработке гуи приложений в 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
лол, это по твоему 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
тыкание по менюшкам не даст никакого результата. Понимать надо, что делаешь. Это не делфи с васиком.
Вот для этого я испрашивал литературу
ЗЫ:у меня нет Resource Script

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

_antony
06.10.2009, 16:00
Вот для этого я испрашивал литературу
ЗЫ:у меня нет 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
тут (http://tinyurl.com/5c2qfm)

_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
Если студент - тебе по скану студня выдадут бесплатный ключ и на студию и на винду и прочую лажу типа склсервера на год. Правда не со всеми странами работает.
Защитился этим летом :(
Есть какая то разумная альтернатива борланду с его 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
В экспресс версии нету редактора ресурсов :( Есть ещё какие то варианты,но не кряки?
возьми любой другой редактор. или создавай все окна с помощью api.

_nic
08.10.2009, 17:52
возьми любой другой редактор
Какой?

Hiro Protagonist
08.10.2009, 21:17
блокнот подойдет в том числе. Если нужен визуал то ResEd доставляет =)

zeppe1in
09.10.2009, 01:35
дада. я когда писал про ResEd думал)