Почему не запускается форма на Visual C? - Страница 2
Реклама i
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Почему не запускается форма на Visual C?

Почему не запускается форма на Visual C?

Ответ
Поиск в этой теме
Непрочитано 13.03.2011, 19:50
Почему не запускается форма на Visual C?
МишаИнженер
 
Регистрация: 14.12.2008
Сообщений: 1,134

Помогите разобраться почему не запускается форма на Visual C
Создал проект, добавил форму, добавил на форму элементы управления.
Нажимаю треугольник, форма не запускается. Что ещё надо сделать чтобы форма запустилась?

Миниатюры
Нажмите на изображение для увеличения
Название: Почему не запускается форма на Visual C.jpg
Просмотров: 209
Размер:	39.0 Кб
ID:	55476  

Просмотров: 13250
 
Непрочитано 15.03.2011, 08:11
#21
_Oleg_


 
Регистрация: 28.09.2006
Dnepropetrovsk
Сообщений: 683


МишаИнженер, Думаю вам лучше погуглить готовые исходники программ и покопать их код. Результат будет выше, чем просто выдирать из кода цитаты и спрашивать почему не работает
Или покопать на спецфорумах
http://forum.sources.ru/index.php?showforum=2
http://forum.vingrad.ru/forum/C++C.html
http://www.codeproject.com/
_Oleg_ вне форума  
 
Непрочитано 15.03.2011, 08:42
#22
Лиспер


 
Регистрация: 11.10.2010
Сообщений: 979


Код накидал без проверок на красивость. VS2008.
Форма, может, и является классом, да вот проблема - в #13 чего-то не видел события Load.
P.S. От темы отписываюсь, поскольку разбираться с VC++ вместо того, чтобы читать C#, нет никакого желания.
Вложения
Тип файла: rar Test_vcpp(2011.03.15-08.37).rar (9.2 Кб, 45 просмотров)
__________________
(/= RegDate StartReadDate)
Лиспер вне форума  
 
Автор темы   Непрочитано 15.03.2011, 17:40
#23
МишаИнженер


 
Регистрация: 14.12.2008
Сообщений: 1,134


Лиспер, спасибо за подсказку! Но мне надо чтобы форма запускалась после выбора команды "Ввод данных" в меню "Файл", а не сразу при запуске проекта.
Посмотрел список объектов в своей программе, объекта или класса под названием "Приветствие" не нашёл. Значит такого класса ещё нет. Тогда как мне сообщить программе, что надо запустить форму "класса Привествие"?
МишаИнженер вне форума  
 
Непрочитано 15.03.2011, 17:56
#24
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от МишаИнженер Посмотреть сообщение
Лиспер, спасибо за подсказку! Но мне надо чтобы форма запускалась после выбора команды "Ввод данных" в меню "Файл", а не сразу при запуске проекта.
Посмотрел список объектов в своей программе, объекта или класса под названием "Приветствие" не нашёл. Значит такого класса ещё нет. Тогда как мне сообщить программе, что надо запустить форму "класса Привествие"?
Без обид, но... Вот смотри сколько времени уже прошло, а ты всё мечешься по разным форумам с одним и тем же вопросом, причём вопрос-то уровня детского сада (для тех кто пишет на Visual C++). Напрашивается вывод: а может всё же почитать книжку по теме, чем продолжать пребывать в ожидании? На разбор сего вопроса по книге у тебя ушло бы не более часа, а так ты уже второй день над ним сидишь в ожидании чьего-то ответа...
имхо.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 15.03.2011, 20:07
#25
Лиспер


 
Регистрация: 11.10.2010
Сообщений: 979


Чего-то в этой теме не того... У меня ощущение некоторой сюрреалистичности происходящего. МишаИнженер, переведи для тех, кто на бронепоезде, как понимать прикажешь фразу
Цитата:
Сообщение от МишаИнженер Посмотреть сообщение
надо чтобы форма запускалась после выбора команды "Ввод данных" в меню "Файл"

Как ты эту команду выберешь-та, ась? Откель вызывать собираисси?
__________________
(/= RegDate StartReadDate)
Лиспер вне форума  
 
Непрочитано 15.03.2011, 20:18
#26
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Лиспер Посмотреть сообщение
Чего-то в этой теме не того... У меня ощущение некоторой сюрреалистичности происходящего. МишаИнженер, переведи для тех, кто на бронепоезде, как понимать прикажешь фразу


Как ты эту команду выберешь-та, ась? Откель вызывать собираисси?
Да вроде понятно чего он хочет - в меню "Файл" автокада должен присутствовать пункт меню "Ввод данных". Миша на нём кликает мышкой и открывается его волшебное окошко.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 15.03.2011, 20:26
#27
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Form1->ShowDialog(); Может так? или Form1->Show(); В сях я нуб, но такое не стоит темы на форуме
gomer вне форума  
 
Непрочитано 15.03.2011, 20:41
#28
Лиспер


 
Регистрация: 11.10.2010
Сообщений: 979


Цитата:
Сообщение от hwd Посмотреть сообщение
в меню "Файл" автокада должен присутствовать пункт меню "Ввод данных"
Тю, так неинтересно
__________________
(/= RegDate StartReadDate)
Лиспер вне форума  
 
Автор темы   Непрочитано 16.03.2011, 05:03
#29
МишаИнженер


 
Регистрация: 14.12.2008
Сообщений: 1,134


В моей программе (код которой прикреплён к сообщениям, ищите наиболее позднюю версию) при запуске программы появляется окно которое не запрограммировано как форма, а оно просто само появляется, потому что программа такая. И в этом окне есть меню "Файл" в котором есть команда "Ввод данных" эту команду я сам туда прописал в это меню при помощи редактирования файла с расширением .rc (по моему). Этот файл из дерева объектов простым двоёным нажатием нельзя открыть так как при этом появлятся сообщение что этот файл занят другим редактором. Мне удалось открыть это файл только с помощью инструмента поиск данных. При поиске какой-то переменной открылся этот файл и в нём прописаны строки меню начального окна которое появляется при запуске программы. В это меню я добавил новую строку "Ввод данных" и присовил этому меню код ID_INPUT, которую предварительно объявил и определил.
Далее теперь надо чтобы после запуска программы при выборе команды "Ввод данных" в меню "Файл" запускалось диалоговое окно "Приветствие", но вместо этого запускается диалоговое окно "О программе" и заставить запускаться диалоговое окно "Приветствие" у меня никак не получается.
Я прошу помочь мне но многие или не знают как это делается или просто им лень разобраться в коде и посоветавать несколько строчек. Дело наверное в общем простое, но пока нигде в литературе я не нашёл как запускать формы с помощью выбора команды в меню или с помощью нажатия кнопки.
МишаИнженер вне форума  
 
Непрочитано 16.03.2011, 08:11
#30
Лиспер


 
Регистрация: 11.10.2010
Сообщений: 979


Да нет, это не программа такая... Это объяснения такие. МишаИнженер, ты хотя б на VBA чего-нибудь напиши сначала. Глядишь, и хоть понимание того, "что такое событие" придет... И фраз типа "само появляется" уже не будет.
__________________
(/= RegDate StartReadDate)
Лиспер вне форума  
 
Непрочитано 16.03.2011, 08:17
#31
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Лиспер Посмотреть сообщение
Да нет, это не программа такая... Это объяснения такие. МишаИнженер, ты хотя б на VBA чего-нибудь напиши сначала. Глядишь, и хоть понимание того, "что такое событие" придет... И фраз типа "само появляется" уже не будет.
На это Миша уже отвечал:
Цитата:
Сообщение от МишаИнженер Посмотреть сообщение
Книги читать очень дорого, долго и трудно, простите. Гораздо веселее постигать азы программирования в процесе общения!
Не мешайте парню веселиться
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Автор темы   Непрочитано 16.03.2011, 09:02
#32
МишаИнженер


 
Регистрация: 14.12.2008
Сообщений: 1,134


Да понимаю я что окно при запуске программы прописывается в коде:
Код:
[Выделить все]
//
//   ФУНКЦИЯ: InitInstance(HINSTANCE, int)
//
//   НАЗНАЧЕНИЕ: сохраняет обработку экземпляра и создает главное окно.
//
//   КОММЕНТАРИИ:
//
//        В данной функции дескриптор экземпляра сохраняется в глобальной переменной, а также
//        создается и выводится на экран главное окно программы.
//
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
   HWND hWnd;

   hInst = hInstance; // Сохранить дескриптор экземпляра в глобальной переменной

   hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
      CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);

   if (!hWnd)
   {
      return FALSE;
   }

   ShowWindow(hWnd, nCmdShow);
   UpdateWindow(hWnd);

   return TRUE;
}
А обработка сообщений меню в коде:
Код:
[Выделить все]
//
//  ФУНКЦИЯ: WndProc(HWND, UINT, WPARAM, LPARAM)
//
//  НАЗНАЧЕНИЕ:  обрабатывает сообщения в главном окне.
//
//  WM_COMMAND	- обработка меню приложения
//  WM_PAINT	-Закрасить главное окно
//  WM_DESTROY	 - ввести сообщение о выходе и вернуться.
//
//
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	int wmId, wmEvent;
	PAINTSTRUCT ps;
	HDC hdc;

	switch (message)
	{
	case WM_COMMAND:
		wmId    = LOWORD(wParam);
		wmEvent = HIWORD(wParam);
		// Разобрать выбор в меню:
		switch (wmId)
		{
		case IDM_INPUT:
//Сюда надо вставить код запуска формы

		case IDM_about:
			DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
			break;
		case IDM_EXIT:
			DestroyWindow(hWnd);
			break;
		default:
			return DefWindowProc(hWnd, message, wParam, lParam);
		}
		break;
	case WM_PAINT:
		hdc = BeginPaint(hWnd, &ps);
		// TODO: добавьте любой код отрисовки...
		EndPaint(hWnd, &ps);
		break;
	case WM_DESTROY:
		PostQuitMessage(0);
		break;
	default:
		return DefWindowProc(hWnd, message, wParam, lParam);
	}
	return 0;
}
Обратите внимание в этом коде есть строки:
Код:
[Выделить все]
case IDM_INPUT:
//Сюда надо вставить код запуска формы
Вот после этой строки надо вставить код запуска формы "Приветсвие"
Подскажите пожалуйста как это сделать!
Данный код находится в файле "Новый проект.cpp"
МишаИнженер вне форума  
 
Непрочитано 16.03.2011, 18:55
#33
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Это уже даже не смешно...
gomer вне форума  
 
Автор темы   Непрочитано 16.03.2011, 19:13
#34
МишаИнженер


 
Регистрация: 14.12.2008
Сообщений: 1,134


Не смешно то что никто не может помочь запустить форму? Мне то же от этого совсем не смешно
МишаИнженер вне форума  
 
Непрочитано 16.03.2011, 19:34
#35
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от МишаИнженер Посмотреть сообщение
Не смешно то что никто не может помочь запустить форму? Мне то же от этого совсем не смешно
Код:
[Выделить все]
case IDM_about:
			DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
			break;
И начать думать!
gomer вне форума  
 
Автор темы   Непрочитано 16.03.2011, 19:59
#36
МишаИнженер


 
Регистрация: 14.12.2008
Сообщений: 1,134


Так я уже делал, даже попробовал сделать вот так:
Код:
[Выделить все]
		case IDM_INPUT:
			hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
			  CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);
			ShowWindow(hWnd, nCmdShow);
			UpdateWindow(hWnd);
			break;
Но некоторые переменные оказываются неописанными и второй экземпляр приложения не запускается.
А вот как запустить форму "Приветствие"?
МишаИнженер вне форума  
 
Непрочитано 16.03.2011, 20:43
#37
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от МишаИнженер Посмотреть сообщение
Но некоторые переменные оказываются неописанными и второй экземпляр приложения не запускается.
А вот как запустить форму "Приветствие"?

Код:
[Выделить все]
case IDM_INPUT:
			DialogBox(hInst, MAKEINTRESOURCE(IDD_INPUTDATABOX), hWnd, INPUTDATA);
			break;
Прописать форму в файл ресурсов, переименовать соответственно, читать книги по WinAPI
gomer вне форума  
 
Непрочитано 17.03.2011, 01:48
#38
nikе

конструктор Лего
 
Регистрация: 21.10.2005
Краснодар
Сообщений: 205


МишаИнженер. Тебе действительно стоит начать с азов. Лучшая книга по С++ - Н.Н.Мартынова - двухтомник. Хороший ресурс - codeproject.com. Хотя интерфейс и прочие стандартные части программы на C# писать в десять раз легче, чем на плюсах. На плюсах в настоящее время лучше делать то, чего невозможно или трудно на С#. Например использовать готовый решатель на плюсах, а взамодействие с пользователем на шарпее.
nikе вне форума  
 
Автор темы   Непрочитано 17.03.2011, 05:29
#39
МишаИнженер


 
Регистрация: 14.12.2008
Сообщений: 1,134


nikе, скажи пожалуйста а вот "шарпей" это что такое? В интернете нашёл что это порода собак.
И ещё вопрос: если далее мне требуется получить доступ к объектам AutoCAD то на каком языке из семейста C лучше писать программу?
МишаИнженер вне форума  
 
Непрочитано 17.03.2011, 07:57
#40
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от МишаИнженер Посмотреть сообщение
nikе, скажи пожалуйста а вот "шарпей" это что такое? В интернете нашёл что это порода собак.
И ещё вопрос: если далее мне требуется получить доступ к объектам AutoCAD то на каком языке из семейста C лучше писать программу?
"Шарпей" - это C#, который по сути является самым новым и удобным в использовании из "семейства С", при этом не уступая по функционалу своим предкам (шарпей вобрал в себя всё лучшее из С++ и Java, а так же лишён их недостатоков - так пишут в букваре). Однако не думаю, что практикуемый тобою подход "изучения" (аля задам-ка я вопрос на форуме, вместо того, чтобы открыть букварь) будет иметь успех на шарпее.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Почему не запускается форма на Visual C?



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему двутавр 90Б1 высота 893мм ? dextron3 Разное 33 11.03.2009 23:31
почему не применяют трубы kiraa Конструкции зданий и сооружений 17 10.09.2008 19:24
Юмор 2007 Огурец Разное 1172 29.12.2007 11:16
Кто знает почему? Sleekka Программирование 4 26.05.2007 22:37
Почему балконные двери открываются во внутрь? Liliya Разное 45 27.11.2006 12:48