![]() |
|
![]() ![]() ![]() |
|
eugeniy |
|
|||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 23.3.2010 Где: Петрозаводск Репутация: нет Всего: нет |
Здравствуйте!
Написана программная часть на С по работе с девайсом и работе с мускульной БД в IDE MSVC++ 6.0. Осталось сделать интерфейсную часть проекта. Использую IDE MSVC++ 6.0, нужно сделать форму след. содержания: чтобы выводилось фото человека, его ФИО, дата рождения, курс, факультет, в той же форме должно быть 6 кнопок и таблица, содержащая три столбца))) Прочитал книгу Холзнера Учебный курс Visual C++ 6.0. 14 уроков, но с визуальной средой всё равно проблемы, так как программирую под линукс всё))) Помогите как и с чего начать? |
|||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 2 Всего: 135 |
Посмотри в сторону Qt
IMHO там нужно не 14 уроков, а 1-2 P.S. Правда "слезть" с него куда сложнее, чем "залезть" ![]() Это сообщение отредактировал(а) borisbn - 23.3.2010, 07:31 -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
Albor |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 589 Регистрация: 28.2.2009 Репутация: 7 Всего: 9 |
Создай проект использующий MFC, выбери диалоговое приложение. Получишь макет формы и панель элементов. Дальше интуитивно понятно.
|
|||
|
||||
eugeniy |
|
|||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 23.3.2010 Где: Петрозаводск Репутация: нет Всего: нет |
borisbn:
С QT уже времени мало ковыряться, 2 месяца до сдачи проекта, думал либо в Делфи интерфейсную часть сделать потом в библиотеку собрать и подключить к VC++, либо в VS2005 написать на VB, но думаю что будут проблемы с интеграцией языков, поэтому решил в той же среде делать где и программная часть написана. Только вот дилема получается, либо Win32Application создавать и делать на чистом С используя WinAPI, либо создать проект MFCAppWizard(exe) и юзать С++ и МFC, но С++ не знаю((( соответственно с MFC особо не знаком, да и говорят что очень надо долго ковыряться, чтобы хоть простейшую форму накидать...но с другой стороны и с WinAPI никогда не работал, поэтому получается такая шляпа! где быстрее будет и понятней не известно( Albor: Все эти кнопки и прочие элементы я уже накидал на форму и отредактировал, а как теперь с самой проги на С, вызвать обработчик событий по тому или иному действию? (Например, у меня прога делает запрос к БД по определённому критерию, та возвращает результат запроса (например: дата рождения) и помещает в переменную, и как теперь мне тут поступить чтобы эта "дата рождения" отобразилась в интерфейсной части в поле??? ), получается как-то надо обработать это событие? вот здесь и возникает вся суть выше изложенного( |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Если используешь MFC, принцип простой. Весь обмен нужно запихать в функцию DoDataExchange в виде DDX-statements, которые связывают поля формы и переменные со значениями. Выглядит примерно так:
void CMyDialog::DoDataExchange (CDataExchange* pDX) { CMyParams* pParms = get... // здесь ты добываешь указатель на данные, которые нужно читать\писать DDX_Text (pDX, IDC_NAME, pParms->m_sName); // IDC_NAME - ид-р поля с именем ... // остальные переменные в том же духе } В принципе, если ты делал диалог мастером, то он должен был тебе костяк накидать. Далее, когда нужно прочитать данные с формы, вызываешь UpdateData (TRUE). А когда записать в форму - UpdateData (FALSE). Скажем, пользователь нажимает кнопку "Запомнить", ты вызываешь в обработчике этой кнопки UpdateData (TRUE), а потом посылаешь заполненную структуру в БД. -------------------- ... |
|||
|
||||
Albor |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 589 Регистрация: 28.2.2009 Репутация: 7 Всего: 9 |
Я думаю, что интерфейсная часть должна использовать программу на С, а не наоборот. Раз уж у программы есть взаимодействие с пользователем, то пусть запрос отображаемых данных инициируется формой (пользователем), вызывая функции С-кода. Данные можно разместить в переменных формы, как писала Earnest, а можно и напрямую взаимодействовать с элементами формы, получая соответствующий указатель ф-цией GetDlgItem(ID_ITEM).
|
|||
|
||||
Alca |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 6 Всего: 50 |
||||
|
||||
eugeniy |
|
|||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 23.3.2010 Где: Петрозаводск Репутация: нет Всего: нет |
если можно поподробней, что это и для чего? Это сообщение отредактировал(а) eugeniy - 25.3.2010, 23:18 |
|||
|
||||
Alca |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 6 Всего: 50 |
гуишная либа на чистом WinAPI
Это сообщение отредактировал(а) Alca - 25.3.2010, 23:23 |
|||
|
||||
eugeniy |
|
||||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 23.3.2010 Где: Петрозаводск Репутация: нет Всего: нет |
можно здесь поподробней пожалуйста. Доустим имеется поле "фамилия" - тип static, и поле куда выводиться фамилия - edit box. фамилия: edit box. визардом добавил переменную m_surname, Category - control, variable type - CEdit. как теперь запихать в поле edit box - определённую фамилию, которая допустим содержиться в переменной в коде на С? Добавлено через 1 минуту и 16 секунд
да я вот уже не знаю с винапи или с мфц ковыряться? вроде с мфц как-то больше советов дают |
||||
|
|||||
Albor |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 589 Регистрация: 28.2.2009 Репутация: 7 Всего: 9 |
Если бы ты визардом добавил переменную типа CString для Edit-контрола, то визард бы сам добавил строчку DDX... и тебе бы нужно было просто присвоить значение полю m_surname и вызвать UpdateData. Лично я предпочитаю первый способ (без DDX), а если на форме много элементов, то пользуюсь указателями на них и переменные в классе не создаю. Это сообщение отредактировал(а) Albor - 26.3.2010, 08:17 |
|||
|
||||
eugeniy |
|
|||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 23.3.2010 Где: Петрозаводск Репутация: нет Всего: нет |
исходный файл на С переделал под visual c++...
но всё равно не получается в edit box вывести содержимое переменных row[4],row[5],row[6],birth,kurs_name[0],fakultet_name[0] прилагаю к вашему вниманию мой проект http://ifolder.ru/17299372 если вам не составит труда, посмотрите пожалуйста, что там не так... сейчас при компиляции пишет: --------------------Configuration: reader - Win32 Debug-------------------- Compiling... readerDlg.cpp c:\program files\microsoft visual studio\vc98\bin\reader\readerdlg.cpp(100) : error C2064: term does not evaluate to a function c:\program files\microsoft visual studio\vc98\bin\reader\readerdlg.cpp(102) : error C2059: syntax error : '{' c:\program files\microsoft visual studio\vc98\bin\reader\readerdlg.cpp(102) : error C2143: syntax error : missing ';' before '{' c:\program files\microsoft visual studio\vc98\bin\reader\readerdlg.cpp(102) : error C2447: missing function header (old-style formal list?) c:\program files\microsoft visual studio\vc98\bin\reader\readerdlg.cpp(102) : error C2143: syntax error : missing ';' before '}' c:\program files\microsoft visual studio\vc98\bin\reader\readerdlg.cpp(112) : error C2065: 'birth' : undeclared identifier c:\program files\microsoft visual studio\vc98\bin\reader\readerdlg.cpp(117) : error C2440: '=' : cannot convert from 'class CReader *' to 'int' This conversion requires a reinterpret_cast, a C-style cast or function-style cast c:\program files\microsoft visual studio\vc98\bin\reader\readerdlg.cpp(118) : error C2227: left of '->Reader_Init' must point to class/struct/union c:\program files\microsoft visual studio\vc98\bin\reader\readerdlg.cpp(119) : error C2146: syntax error : missing ')' before identifier 'EndDialog' Error executing cl.exe. readerDlg.obj - 9 error(s), 0 warning(s) |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
eugeniy, мало желающих найдется качать твой проект и ковыряться в нем. Если у тебе не компилируется, так приведи конкретный код, который не компилируется. Только бога ради не полный проект. Цени чужое время.
-------------------- ... |
|||
|
||||
Albor |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 589 Регистрация: 28.2.2009 Репутация: 7 Всего: 9 |
По приведенным ошибкам, необходимо проверить фигурные скобки и ; , то бишь - синтаксис.
|
|||
|
||||
eugeniy |
|
|||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 23.3.2010 Где: Петрозаводск Репутация: нет Всего: нет |
все ошибки исправил
BOOL CReader::Card_read() { while((row = mysql_fetch_row (res))) { snprintf(kurs,50,"SELECT tech_name FROM kursnames WHERE kurs_id = %s", row[34]); mysql_query(conn,kurs); if (!(res=mysql_store_result(conn))) //exiterr(2); kurs_name = mysql_fetch_row(res); snprintf(fakultet,100,"SELECT tech_name FROM faculty WHERE faculty_id = %s", row[35]); mysql_query(conn,fakultet); if (!(res=mysql_store_result(conn))) // exiterr(2); fakultet_name = mysql_fetch_row(res); birth=strtok(row[10], " "); printf("%s %s %s %s %s %s\t",row[4],row[5],row[6],birth,kurs_name[0],fakultet_name[0]); fprintf(file,"%s %s %s %s %s %s\t",row[4],row[5],row[6],birth,kurs_name[0],fakultet_name[0]); printf("\n"); fprintf(file, "\n"); } } как мне с этого кода вывести значение переменных в диалог в поля edit box? вот вроде бы конкретный код... |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |