Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/16: Рейтинг темы: голосов - 16, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 20.12.2009
Сообщений: 36

Допилить Графический редактор

09.05.2012, 17:50. Показов 3440. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, ребята. Нужна помощь - делаю для курсового графический редактор и не получается реализовать сохранение\открытие картинки .bmp (ИМЕННО BMP нужно). Окошки по открытию\сохранению открываются, но ничего не открывает (картинка не появляется в окне), и не сохраняет (если быть точнее, то сохраняет пустой файл в 0 байт).
Буду благодарен , если поможете допилить прогу

Вот , что я сделал, исходник прикрепил
Вложения
Тип файла: rar Kurs3.rar (2.89 Мб, 157 просмотров)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.05.2012, 17:50
Ответы с готовыми решениями:

Графический редактор WinAPI
Доброго вечера всем!!! Проблема с графическим редактором, пустое окно просто и ничего нет. Чем это может сопровождаться?! #include...

Простой графический редактор (перевести с C# на C++)
есть код простенького графического редактора, нужно перевести с с# на c++ namespace OpenSave_1_ { public partial class Form1 :...

Калькулятор, редактор списка строк, графический редактор
Калькулятор:

18
 Аватар для Игорь с++
500 / 474 / 63
Регистрация: 26.01.2011
Сообщений: 2,033
09.05.2012, 18:08
открытие можно сделать вот так

а вот сохранение как то не вдавался в подробности , без надобности было!!!
Вложения
Тип файла: rar просмотр картинок bmp.rar (13.6 Кб, 97 просмотров)
1
0 / 0 / 0
Регистрация: 20.12.2009
Сообщений: 36
09.05.2012, 18:41  [ТС]
Цитата Сообщение от Игорь с++ Посмотреть сообщение
открытие можно сделать вот так

а вот сохранение как то не вдавался в подробности , без надобности было!!!
Спасибо, перерыл весь интернет и не смог найти ничего толкового, а вы так помогли
Ещё бы сохранить как-то

Добавлено через 28 минут
Программа, которую вы скинули - не компилируется. Помогите

Так, добавил нехватающую библиотеку #include "commdlg.h" и заработало
Компилируется, но не появляется меню главное, где "Открыть"
0
0 / 0 / 0
Регистрация: 20.12.2009
Сообщений: 36
09.05.2012, 19:27  [ТС]
Добавил, всё внимательно делал....
При компиляции выбивает ошибку
Прикрепляю исходник
Вложения
Тип файла: rar Kurs3.rar (2.84 Мб, 36 просмотров)
0
0 / 0 / 0
Регистрация: 20.12.2009
Сообщений: 36
09.05.2012, 19:42  [ТС]
Ошибка такая
Run-Time Check Failure #3 - The variable 'buf' is being used without being initialized.

на строчке
hBitmap = (HBITMAP)LoadImage(NULL, buf, IMAGE_BITMAP, sx, sy, LR_LOADFROMFILE);
0
0 / 0 / 0
Регистрация: 20.12.2009
Сообщений: 36
09.05.2012, 20:03  [ТС]
Ошибку исправил. Как сделать так теперь, чтобы по этой картинке можно было поверх рисовать, а то получается так, что только 1 деталь рисует по ней, когда следующую рисую, то она рисуется, но предыдущая пропадает...
А ещё как правильно прописать параметры hwnd главного, чтобы картинка открывалась сразу ровненько, а то она появляется у меня только после того, как сделаю окно fullscreen ?
Обновил архив (если вдруг кто скачал, была нерабочая область)
Вложения
Тип файла: rar Kurs3.rar (2.92 Мб, 127 просмотров)
0
0 / 0 / 0
Регистрация: 20.12.2009
Сообщений: 36
09.05.2012, 20:47  [ТС]
Понял фишку, что если в строчке hWnd (где мы создаём галвное окно) в параметрах прописать его размеры 800 на 600 например, то картинка открытая появляется за пределами этих 800 на 600 , а рисуется только в области 800 на 600, а на области картинки не рисуется (точнее остаётся последнее действие )

Как исправить ?
0
 Аватар для Игорь с++
500 / 474 / 63
Регистрация: 26.01.2011
Сообщений: 2,033
09.05.2012, 21:16
Цитата Сообщение от lexeres Посмотреть сообщение
А ещё как правильно прописать параметры hwnd главного, чтобы картинка открывалась сразу ровненько, а то она появляется у меня только после того, как сделаю окно fullscreen ?
откройте мою готовую программу и посмотрите , что картинка сразу открывается по окну

Добавлено через 23 минуты
C++
1
2
3
4
5
6
7
8
    case ID_EDIT:
 
    case WM_SIZE:
        DeleteObject(hBitmap);
        InvalidateRect(hWnd,NULL,FALSE);
         sx=LOWORD(lParam);
        sy=HIWORD(lParam);
        hBitmap = (HBITMAP)LoadImage(NULL, buf, IMAGE_BITMAP, sx, sy, LR_LOADFROMFILE);
это текст из вашей программы(дальше не стал копировать),
1)у вас имеет место сосуществование - case ID_EDIT: а break-а для него я не нашёл,
2)почему или зачем у вас совмещение 2-х кейсов (ID_EDIT и case WM_SIZE).
0
0 / 0 / 0
Регистрация: 20.12.2009
Сообщений: 36
09.05.2012, 21:19  [ТС]
Цитата Сообщение от Игорь с++ Посмотреть сообщение
откройте мою готовую программу и посмотрите , что картинка сразу открывается по окну

Добавлено через 23 минуты
C++
1
2
3
4
5
6
7
8
    case ID_EDIT:
 
    case WM_SIZE:
        DeleteObject(hBitmap);
        InvalidateRect(hWnd,NULL,FALSE);
         sx=LOWORD(lParam);
        sy=HIWORD(lParam);
        hBitmap = (HBITMAP)LoadImage(NULL, buf, IMAGE_BITMAP, sx, sy, LR_LOADFROMFILE);
это текст из вашей программы(дальше не стал копировать),
1)у вас имеет место сосуществование - case ID_EDIT: а break-а для него я не нашёл,
2)почему или зачем у вас совмещение 2-х кейсов (ID_EDIT и case WM_SIZE).
исправил, поставил break; после ID_EDIT , но ничего не помогло ....
У меня очень много кода уже, сложно разобраться вроде бы всё как у вас сделал (добавил в прогу), а открывает странно
0
 Аватар для Игорь с++
500 / 474 / 63
Регистрация: 26.01.2011
Сообщений: 2,033
09.05.2012, 21:28
разлите case ID_EDIT и case WM_SIZE: что бы они были не совмещенны!

Добавлено через 5 минут
попробуйте сделать что то типо такого -
C++
1
2
3
4
5
6
case ID_EDIT:
//что то делаем 
break;
    case WM_SIZE:
//что то делаем
break;
0
0 / 0 / 0
Регистрация: 20.12.2009
Сообщений: 36
09.05.2012, 21:36  [ТС]
Доделал прогу ещё немного, добавил выбор цвета 5-ой кнопкой, доставил нехватающих Брейков в функции (что не помогло в принципе, гляньте - так разделить ?) . Осталось реализовать сохранение нормальное
http://zalil.ru/33206882
0
 Аватар для Игорь с++
500 / 474 / 63
Регистрация: 26.01.2011
Сообщений: 2,033
09.05.2012, 21:50
Вы знаете очень трудно разобраться в вашем коде т.е. где то не достаёт скобок , где то они есть где впринцепе не должно их быть , как вы её вообще пишите,вы сами ещё не запутались где и чего должно быть ?
1
0 / 0 / 0
Регистрация: 20.12.2009
Сообщений: 36
09.05.2012, 21:52  [ТС]
и ещё вопрос - как мне на кнопки всунуть свои картинки вместо ножниц? Я понимаю - вместо NULL прописать другое значение, стандартные , которые есть в winApi мне не подходят, нужно вставить типа "круг", "Карандаш" ну короче под мою прогу... а то ножницы раздражают

Добавлено через 51 секунду
Цитата Сообщение от Игорь с++ Посмотреть сообщение
Вы знаете очень трудно разобраться в вашем коде т.е. где то не достаёт скобок , где то они есть где впринцепе не должно их быть , как вы её вообще пишите,вы сами ещё не запутались где и чего должно быть ?
да нет, не запутался - ведь я сам пишу )) и вроде бы всех скобок хватает
0
 Аватар для Игорь с++
500 / 474 / 63
Регистрация: 26.01.2011
Сообщений: 2,033
09.05.2012, 22:33
у вас кнопки то какие ? hButton ?
0
 Аватар для Игорь с++
500 / 474 / 63
Регистрация: 26.01.2011
Сообщений: 2,033
09.05.2012, 22:41
вообщем вот пример если , что заточиш под свои нужды
Вложения
Тип файла: rar кнопка с рисунком.rar (13.7 Кб, 61 просмотров)
1
0 / 0 / 0
Регистрация: 20.12.2009
Сообщений: 36
09.05.2012, 23:12  [ТС]
Цитата Сообщение от Игорь с++ Посмотреть сообщение
у вас кнопки то какие ? hButton ?
дело в том, что кнопки из Тулбара :
static TBBUTTON but[6];
but[0].fsStyle=TBSTYLE_SEP;
и так далее по коду....
0
 Аватар для Игорь с++
500 / 474 / 63
Регистрация: 26.01.2011
Сообщений: 2,033
09.05.2012, 23:25
я конечно могу ошибаться , но hwnd этой кнопки же можем найти , а дальше дело техники - перерисовать на ней фон или SendMessage или как там вам будет угодно!
1
0 / 0 / 0
Регистрация: 20.12.2009
Сообщений: 36
10.05.2012, 10:03  [ТС]
Цитата Сообщение от Игорь с++ Посмотреть сообщение
я конечно могу ошибаться , но hwnd этой кнопки же можем найти , а дальше дело техники - перерисовать на ней фон или SendMessage или как там вам будет угодно!
Когда создаётся Тулбар, то весь код, который для создания кнопки - это то, что я выше сообщением кинул
0
0 / 0 / 0
Регистрация: 20.12.2009
Сообщений: 36
24.05.2012, 17:58  [ТС]
Препод убрал мне в курсовой Сохранение, так что всем спасибо за помощь, программа сделана , добавил ещё фишек в неё , кол-во строк ~650 . Если кому понадобится в будущем программа, пишите - lexeresbrest@gmail.com
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.05.2012, 17:58
Помогаю со студенческими работами здесь

Калькулятор, редактор списка строк, графический редактор
Помогите, кто чем может! Очень надо,хотя бы что то из этого сделать!

Графический редактор
Создать простейший графический редактор(ломанные линии и замена цвета заливки)

Графический редактор
Здравствуйте, ребята, мне нужна помощь, задали тему на курсовой, сделать графический редактор с использованием ООП. Есть у кого-то примеры,...

графический редактор
требуется сделать простой графический редактор flash(рисовать кистью и все). что почитать на эту тему? может есть исходники у...

Графический редактор
Хочу написать графический редактор в C#. Встал вопрос о панели инструментов. В фотошопе эта панелька висит слева, открывается синхронно с...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru