Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.57/23: Рейтинг темы: голосов - 23, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 27.02.2010
Сообщений: 18
1

Форма на MSVC++ 6.0

23.03.2010, 02:41. Показов 4538. Ответов 36
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!
Написана программа на С по работе с девайсом и работе с мускульной БД...Осталось сделать интерфейсную часть проекта. Использую IDE MSVC++ 6.0, нужно сделать форму след. содержания: чтобы выводилось фото человека, его ФИО, дата рождения, курс, факультет, в той же форме должно быть 6 кнопок и таблица, содержащая три столбца) Я так понял если создать проект MFC AppWizard(exe), то нужно юзать С++ и вообщем ООП, а если проект Win32Application, то юзаю С используя WinAPI? Прочитал книгу Холзнера Учебный курс Visual C++ 6.0. 14 уроков, но с визуальной средой всё равно проблемы, так как программирую под линукс всё)))
Помогите как и с чего начать?

Спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.03.2010, 02:41
Ответы с готовыми решениями:

Почему в MSVC++ 2008 компилируется, а в MSVC++ 2010 вылезает много ошибок?
Кстати, перед запуском в 2010 предлагает конвертировать код. Ну а чем эти две студии отличаются,...

Переход от MSVC 2017 к MSVC 2019
Добрый день, До сих пор я использовал MSVC 2017 x64, но планирую перейти на компилятор MSVC 2019...

Добавление записи в Listview(1 форма) через Диалоговое окно(3 форма) другой формы (2 форма)
Всем доброго дня и с наступающими праздниками! Знаю, тема 7 частых вопросов по WinForms уже не...

Форма 1 вызывает форму 2, форма 2 закрывается, форма 1 продолжает работать дальше
Вынес предстартовые действия формы1 в форму2 (там у меня проверка существования файлов, их закачка...

36
0 / 0 / 0
Регистрация: 27.02.2010
Сообщений: 18
24.04.2010, 18:59  [ТС] 21
Author24 — интернет-сервис помощи студентам
Вывел в контролы диалога значение переменных row[4], row[5] и т.д.
только в контроле диалога получаю, вместо вывода нужных значений вопросительные знаки ???????

смотрел в дебагере, как только захожу в цикл while((row = mysql_fetch_row (res)))
то сразу все переменные row заполняются знаками вопросами.

Дата вывелась т.к. там цифры, тут видимо какой-то баг с кодировкой, не хочет кириллицу выводить(
можете что-нибудь подсказать по этому поводу???
0
2343 / 499 / 22
Регистрация: 01.04.2009
Сообщений: 2,200
24.04.2010, 19:24 22
1)сменить кодировку вывода
после подключения к базе попробуйте что-то вроде
C++
1
mysql_query("SET NAMES 'cp1251'");
2)возможно, данные испорчены уже в базе
для проверки сделайте добавление и считывание новой строки
0
0 / 0 / 0
Регистрация: 27.02.2010
Сообщений: 18
24.04.2010, 23:07  [ТС] 23
Цитата Сообщение от Patch Посмотреть сообщение
1)сменить кодировку вывода
после подключения к базе попробуйте что-то вроде
C++
1
mysql_query("SET NAMES 'cp1251'");
на это не реагирует, у меня изначально стояло, когда на консоль выводил
C++
1
mysql_query("SET NAMES 'cp866'");
данные выводились правильно и русскими буквами.


2)возможно, данные испорчены уже в базе
для проверки сделайте добавление и считывание новой строки
Нет, данные не могут быть испорчены...
Когда исходный код на С компилил, всё выводилось верно.

А сейчас он выводит в кодировке latin1. одни знаки вопроса. У меня была раньше такая проблема.
Но я её решил после установки соединения с БД, строчкой
C++
1
mysql_query("SET NAMES 'cp866'");
Добавлено через 1 час 59 минут
Вроде как получилось, только два поля вывел нормально, название фкультета и курса, а ФИО по прежнему осталось знаками вопроса...
непонятно, как-то, если у всех один тип mysql_row, то почему тогда одни данные корректно отображает, а др. нет...поменял уже тип столбцов у ФИО, всё равно не помогает.
0
0 / 0 / 0
Регистрация: 27.02.2010
Сообщений: 18
29.04.2010, 01:01  [ТС] 24
всё вывел всё отлично, кроме mysql_query(SET NAMES "cp1251"), нужно было ещё использовать
mysql_set_character_set(), которая все возвращаемые через это соединение значения преобразует в нужную кодировку автоматически.
Вот осталось не разобранными два вопроса: Один по поводу таймера, а второй по поводу картинки.
По поводу первого вопроса, у меня сейчас приложение работает, вот так: лежит карточка на считыватели, запускаем приложение всё считалось и вывелось в диалог, если же мы убираем карточку и подносим снова её или же другую, то данные уже не выводятся...аналогично, если мы запустили приложение без карточки на считыватели, а потом поднесли, то снова информация не выводится, я так полагаю...нужно как-то с таймером ковырять...
ЧТо касается второго вопроса, то нужно каким-то образом в picture control вывести картинку с БД, ну или хотя бы с файла?
Подскажите пожалуйста, как можно реализовать эти две возможности?
0
2343 / 499 / 22
Регистрация: 01.04.2009
Сообщений: 2,200
29.04.2010, 10:45 25
Цитата Сообщение от guschin Посмотреть сообщение
нужно каким-то образом в picture control вывести картинку с БД
насколько я помню - исключительно через попу.
функций для работы с картинками в MFC практически нет.
если не подключать чужие библиотеки, то алгоритм такой:
открыть файл(ручками, через CFile),
создать битмэп,
создать буфер для хранения строки битмэпа
распаковать часть исходного файла в буфер(тоже ручками - правильность алгоритма распаковки картинки в битмэп на вашей совести)
скопировать буфер в битмэп
и повторять это, пока не распакуешь всю картинку.
а потом - в функции отрисовки окна, выбираешь свой битмэп и "рисуешь" им,
если не ошибаюсь, функцией CDC::DrawState(...).

можно, конечно, хранить в базе и сами битмэпы(и это сильно упростит процедуру) - но это опять-же зависит целиком от вас.

такие вот пироги...
0
0 / 0 / 0
Регистрация: 27.02.2010
Сообщений: 18
07.05.2010, 00:09  [ТС] 26
Цитата Сообщение от Patch Посмотреть сообщение
насколько я помню - исключительно через попу.
функций для работы с картинками в MFC практически нет.
если не подключать чужие библиотеки, то алгоритм такой:
открыть файл(ручками, через CFile),
создать битмэп,
создать буфер для хранения строки битмэпа
распаковать часть исходного файла в буфер(тоже ручками - правильность алгоритма распаковки картинки в битмэп на вашей совести)
скопировать буфер в битмэп
и повторять это, пока не распакуешь всю картинку.
а потом - в функции отрисовки окна, выбираешь свой битмэп и "рисуешь" им,
если не ошибаюсь, функцией CDC:rawState(...).

можно, конечно, хранить в базе и сами битмэпы(и это сильно упростит процедуру) - но это опять-же зависит целиком от вас.

такие вот пироги...
а если использовать gdi+ или класс CImage? как тогда тут быть?
0
2343 / 499 / 22
Регистрация: 01.04.2009
Сообщений: 2,200
07.05.2010, 12:26 27
Цитата Сообщение от guschin Посмотреть сообщение
а если использовать gdi+ или класс CImage?
на gdi+ много жалоб. глючный.

а класса CImage в MSVC++ 6.0 еще нет.
можно руками, конечно, подключить...
скопировать объектные библиотеки, dll и хэдеры из новых версий.
0
0 / 0 / 0
Регистрация: 27.02.2010
Сообщений: 18
12.05.2010, 22:35  [ТС] 28
Цитата Сообщение от Patch Посмотреть сообщение
на gdi+ много жалоб. глючный.

а класса CImage в MSVC++ 6.0 еще нет.
можно руками, конечно, подключить...
скопировать объектные библиотеки, dll и хэдеры из новых версий.
вообщем как я понимаю, тут геморроя больше чем было(
да, плохо...
а где его можно взять Cimage со всеми dll, libами и хэдерами?

Добавлено через 22 часа 24 минуты
а можно пример по работе с классом Cimage?
0
125 / 65 / 9
Регистрация: 19.04.2010
Сообщений: 196
12.05.2010, 22:41 29
Для таких дел Builder подойдет.
Ты в нем интерфейс накидаешь в три секунды.
И потом сиди занимайся разбором файла и чего хочешь.
В нем есть мощные средства для работы с файлами TFileStream TFle
0
0 / 0 / 0
Регистрация: 27.02.2010
Сообщений: 18
14.05.2010, 01:39  [ТС] 30
заюзал класс CImage
вот кусок кода для загрузки картинки и прорисовки в picture control на диалоге:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
CStatic m_photo;
CImage image;
image.Load("670.jpg");
 
HBITMAP hbmp=m_photo.GetBitmap();
CBitmap* bmp=CBitmap::FromHandle(hbmp);
CDC dc;
dc.CreateCompatibleDC(NULL);
CBitmap* old=dc.SelectObject(bmp);
m_photo.SetBitmap(image);
 
int x=0;
int y=0;
 
image.AlphaBlend(dc,x,y,0xff,AC_SRC_OVER);
 
dc.SelectObject(old);
 
m_photo.Invalidate();
только вот картинку он в объект image загружает, а почему то саму картинку не прорисовывает, только чертит рамку по размеру фото. Что тут не так?(
0
125 / 65 / 9
Регистрация: 19.04.2010
Сообщений: 196
14.05.2010, 08:46 31
Это работать не будет.
Алгоритм примерно такой.
1) При старте программы загружаете свою картинку
2) Создаете CStatic
3) Каждый раз при перерисовании окна OnPaint() выводите картинку в CDC объекта CStatic
0
0 / 0 / 0
Регистрация: 27.02.2010
Сообщений: 18
14.05.2010, 23:04  [ТС] 32
Цитата Сообщение от Sudoki Посмотреть сообщение
Это работать не будет.
Алгоритм примерно такой.
1) При старте программы загружаете свою картинку
2) Создаете CStatic
3) Каждый раз при перерисовании окна OnPaint() выводите картинку в CDC объекта CStatic
угу ка же, работает однако, только пришлось использовать функцию BOOL OnEraseBkgnd(CDC* pDC) для прорисовки картинки прямо на диалоге...
теперь надо как-то уменьшить размеры картинки, есть какие-нибудь методы в классе CImage (например, что-нибудь вроде resize) я как-то не нашёл(
0
125 / 65 / 9
Регистрация: 19.04.2010
Сообщений: 196
14.05.2010, 23:07 33
StretchBlt
BitBlt
В помощь
0
5 / 5 / 1
Регистрация: 29.11.2009
Сообщений: 42
16.05.2010, 23:39 34
Цитата Сообщение от guschin Посмотреть сообщение
Здравствуйте!
Написана программа на С по работе с девайсом и работе с мускульной БД...Осталось сделать интерфейсную часть проекта. Использую IDE MSVC++ 6.0, нужно сделать форму след. содержания: чтобы выводилось фото человека, его ФИО, дата рождения, курс, факультет, в той же форме должно быть 6 кнопок и таблица, содержащая три столбца) Я так понял если создать проект MFC AppWizard(exe), то нужно юзать С++ и вообщем ООП, а если проект Win32Application, то юзаю С используя WinAPI? Прочитал книгу Холзнера Учебный курс Visual C++ 6.0. 14 уроков, но с визуальной средой всё равно проблемы, так как программирую под линукс всё)))
Помогите как и с чего начать?

Спасибо.
Мой тебе совет скачай Microsoft Visual C++ 2008 Express Edition или 2010 проще чем в 6.0
Официальний сайт Microsoft лучше загружай продукт в самом низу Загрузите Visual Studio 2008 Express Edition
там читире среди в комплекте те которие на странице
http://www.microsoft.com/rus/e... fault.aspx

А здесь все продукти за 2010 год
там тоже в самом пости низу есть надпись
All - Offline Install ISO image file ето комплектом скачать четире среди http://www.microsoft.com/express/Downloads/
0
2343 / 499 / 22
Регистрация: 01.04.2009
Сообщений: 2,200
17.05.2010, 10:46 35
Цитата Сообщение от luk4196 Посмотреть сообщение
Microsoft Visual C++ 2008 Express Edition или 2010 проще чем в 6.0
О_о
проще?? ну-ну...
0
0 / 0 / 0
Регистрация: 27.02.2010
Сообщений: 18
06.06.2010, 23:14  [ТС] 36
Всё вывел картинку отлично, прилагаю код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
CImage image, image2;
image.Load(LPCTSTR(m_reader->Foto));
int w = image.GetWidth(); 
int h = image.GetHeight();  
int tnh = 200;
int tnw = 200 * w / h;
int bpp = image.GetBPP();
    
image2.Create(tnw,tnh,bpp);
HDC h2 = image2.GetDC();
 
SetStretchBltMode(h2, HALFTONE);
image.StretchBlt(h2,0,0,tnw,tnh,SRCCOPY);   
image2.ReleaseDC();
m_photo.SetBitmap(image2);
Вопрос на засыпку.
Если проект собрался с поддержкой динамических библиотек, можно переделать для статич. не создавая по новому проект? среда MSVC++ 6.0 либо VS2005
0
125 / 65 / 9
Регистрация: 19.04.2010
Сообщений: 196
07.06.2010, 08:49 37
Цитата Сообщение от guschin Посмотреть сообщение
Вопрос на засыпку.
Если проект собрался с поддержкой динамических библиотек, можно переделать для статич. не создавая по новому проект? среда MSVC++ 6.0 либо VS2005
Да поставте использовать Static lib вместо shared точно не помню студия не стоит

Добавлено через 1 минуту
Но для этого Вы должны обладать всеми статически подключаемыми библиотеками (lib-файлами). И их добавить в линкере Input lib. К тем что уже добавлены по умолчанию.
0
07.06.2010, 08:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.06.2010, 08:49
Помогаю со студенческими работами здесь

Qt 5.7 MSVC and C++11
Вообщем, почему то не видит умные указатели (std::shared_ptr), которые как я понимаю должны быть в...

Qt Creator or MSVC
Доброе утро. У меня вопрос, не хочу холивара, но стоит выбор между этими двумя IDE. То что qt...

Отладчик MSVC
Здравствуйте, уважаемые! Такая проблема - http://imageshack.us/photo/my-images/17/60685387.png/....

DirectX и MSVC
при попытке скомпилировать вот этот код: #include "stdafx.h" #include "TeacherTheCubeSector.h"...


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

Или воспользуйтесь поиском по форуму:
37
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru