Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » WinDjView

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105

Открыть новую тему     Написать ответ в эту тему

AndyZ

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
WinDjView
 

WinDjView - это быстрая и компактная программа для просмотра файлов формата DjVu под Windows с вкладками для документов, непрерывной прокруткой страниц и расширенными возможности печати. Она основана на свободно распространяемой библиотеке DjVuLibre. Формат DjVu позволяет сохранять документы и картинки с высоким качеством в файлы малого размера. Программа WinDjView является свободным программным обеспечением. Вы вправе распространять её и/или модифицировать, соблюдая условия Открытого лицензионного соглашения GNU (GPL), опубликованного Free Software Foundation; либо версии 2 Соглашения, либо (по вашему выбору) любой более поздней версии.
 
Сайт: http://windjview.sourceforge.net/ru/
История изменений: http://windjview.sourceforge.net/version-history
 
Текущая версия: 2.1
Скачать WinDjView 2.1
 
Текущая версия для Win 98/ME: 1.0.3
Скачать WinDjView 1.0.3
Скачать WinDjView 1.0.3 archive-repack

WinDjView Extended 4.0.1 - WinDjView с дополнительными возможностями
Зеркало
Что нового? (06.11.2024)

В этом топике вы можете задавать вопросы по программе и сообщать об ошибках. На SourceForge.net есть страница проекта со своим форумом и базой ошибок и пожеланий, но если пользуетесь сервисами SF.net, то лучше использовать английский язык.
Если у вас имеется проблема, то сначала проверьте, не исправлена ли она в последней версии. Если нет, то опишите подробно по шагам ваши действия, полученный результат и ожидаемый результат. Также имеет значение версия операционной системы. Если проблемы проявляются только на некоторых документах, дайте линк на эти документы.
 
Как "подкрасить" фон страниц (для улучшения читабельности) (реализовано в WinDjView Extended)
Как оптом стереть все пользовательские аннотации/закладки (реализовано в WinDjView Extended)
Как пакетно декодировать все страницы многостраничного DjVu-файла (реализовано в WinDjView Extended)
Программа для отображения линии чтения в WinDjView (реализовано в WinDjView Extended)
 
Диалоги о WinDjView-subpix (форк программы с другой технологией рендеринга, для ЖК дисплеев; в версии 2.0 оригинальной программы так же появилась возможность настройки использования данной технологии):
[0], [1], [2], [3], [4], [5]

WinDjView в Википедии: http://ru.wikipedia.org/wiki/WinDjView

Всего записей: 214 | Зарегистр. 23-01-2006 | Отправлено: 19:33 24-01-2006 | Исправлено: NME, 10:20 11-11-2024
destiny_child



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Да, поставить public и сделать ~CLightweightDIB(); виртуальным  
он хоть и компилятором сделается таковым - но для читабельности и  
полного понимания что к чему - лучше вписать.
override все равно явно там нельзя вписывать - не та спецификация С++
используется.
И для других таковых деструкторов - там есть это слово.

Всего записей: 4173 | Зарегистр. 01-04-2006 | Отправлено: 19:46 27-02-2025 | Исправлено: destiny_child, 20:04 27-02-2025
NME



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
чтоб собрать экстендед надо сначала батник в папке libdjvu запустить.. путь до vcvars32.bat тока проверить и, если надо, на свой исправить..

----------
DjVu Utils

Всего записей: 1529 | Зарегистр. 26-07-2007 | Отправлено: 19:50 27-02-2025
AkulaBig

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
чтоб собрать экстендед надо сначала батник в папке libdjvu запустить.. путь до vcvars32.bat тока проверить и, если надо, на свой исправить..

Так во всех версиях, поэтому с этим вопросов нет. Но сам WinDjView в ранних версиях собирается батником. А у вас батника нет. Поэтому собрать можно только из оболочки.

Всего записей: 5512 | Зарегистр. 11-03-2003 | Отправлено: 23:15 27-02-2025 | Исправлено: AkulaBig, 23:17 27-02-2025
destiny_child



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NME
Ну просто странно, что нет единого батничка, запустив который можно получить в папке builds все промежуточно-сборочные файлы/папки, а вот в папке release и debug - соответствующие итоговые dll и exe файлы. Раздельно!

Всего записей: 4173 | Зарегистр. 01-04-2006 | Отправлено: 23:58 27-02-2025 | Исправлено: destiny_child, 23:59 27-02-2025
NME



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AkulaBig
destiny_child

Цитата:
Но сам WinDjView в ранних версиях собирается батником. А у вас батника нет.

в исходниках WinDjView 2.0.2, на основе которого я делал свой форк, нет ни одного батника.. уж не помню где я взял тот, который положил в папку libdjvu)) батники появились позже в 2.1..
когда я взялся за проект, знаний по С++ у меня было ровно 0, код приходилось писать абсолютно не зная языка, опираясь на строки кода, расположенные рядом)) Как-то удалось адаптировать и запустить проект под VS2008 и слава богу)) А раз все хорошо работает, зачем пытаться делать это лучше. И так сойдет Тем более, что это кроме меня никому не надо, за более чем 10 лет никто не изъявлял желание копаться в моем страшном и ужасном коде

----------
DjVu Utils

Всего записей: 1529 | Зарегистр. 26-07-2007 | Отправлено: 02:08 28-02-2025
AkulaBig

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NME
Возникла проблема. Постоянное имя класса мне нужно было для использования WinDjView в качестве плагина для Total Commander. Вчера закончил плагин, хорошо получилось. Но почему-то не работает поиск в файлах с текстовым слоем. Нажимаю Ctrl+F, окно поиска появляется. Ввожу искомое слово, нажимаю Найти. Ничего не происходит. При этом команды TC - Печать, Выделить все, Копировать как текст прекрасно работают с командами WinDjView. Да и вызов Поиска срабатывает.
Не подскажете, почему может не работать Поиск, если учесть, что WinDjView внедряется в окно просмотрщика ТС с помощью функции SetParent. Постоянное имя класса навряд-ли виновато, так как из самого WinDjView с постоянным именем класса Поиск отлично работает.

Цитата:
И так сойдет  

Ну а кто-же спорит

Цитата:
в исходниках WinDjView 2.0.2, на основе которого я делал свой форк

Интересно. Получается у вас нет кода 2.1. Или все-же вы потом собирали свою сборку на основе официальных версий?

Всего записей: 5512 | Зарегистр. 11-03-2003 | Отправлено: 05:54 28-02-2025 | Исправлено: AkulaBig, 05:57 28-02-2025
NME



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AkulaBig

Цитата:
Не подскажете, почему может не работать Поиск

не, не помогу, ничего в этом не понимаю..
 

Цитата:
Интересно. Получается у вас нет кода 2.1. Или все-же вы потом собирали свою сборку на основе официальных версий?

а чем 2.0.2 не официальная? до сих пор висит на сайте автора программы..
версия 2.1 сделана в более поздней версии VS, чем у меня.. помимо этого, она перестала поддерживать ХР Вин2000 (возможно остались люди, которые ею пользуются).. а единственное нововведение - восстановление последних открытых вкладок при запуске (к тому же глючное, как здесь говорили некоторые пользователи) у меня уже было реализовано.. поэтому переходить на 2.1 никакого смысла я не увидел.. я сравнивал коды 2.1 и 2.0.2, поэтому знаю что там изменилось не только по описанию..

----------
DjVu Utils

Всего записей: 1529 | Зарегистр. 26-07-2007 | Отправлено: 08:55 28-02-2025 | Исправлено: NME, 08:59 28-02-2025
AkulaBig

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Понятно. А про поиск не подскажете?

Всего записей: 5512 | Зарегистр. 11-03-2003 | Отправлено: 08:59 28-02-2025
NME



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AkulaBig
надо экспериментировать, а у меня на это щас нет времени.. но, код открыт, любой другой обладающий временем, знаниями и желанием может это сделать))
 
Добавлено:
AkulaBig
кстати, а где на плагин можно посмотреть?

----------
DjVu Utils

Всего записей: 1529 | Зарегистр. 26-07-2007 | Отправлено: 09:05 28-02-2025
AkulaBig

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
где на плагин можно посмотреть?

Пока только на моей страничке. Но пока я даже на страничке не делал описание. Вот прямая ссылка https://www.dropbox.com/scl/fi/wg5p1hmovhk2wnonb7d2d/wlx_TCWinDjView_1.0.7z?rlkey=stgdtm7g3wqmmkrt6i7l1rqkt&st=h01eq5bt&dl=1
Вообще я плагины выкладываю на wincnmd.ru, но с этим возникла проблема. Конечно пока не решен вопрос с поиском и смысла нет выкладывать. Хищники сразу начнут плеваться Но есть и еще неожиданная проблема. Так как все, что выкладывается на винкмд.ру автоматически и на буржуйскую ветку выкладывается, в плагине обязательно должна быть предусмотрена смена языка интерфейса. А в WinDjView смена возможна только только из меню. А в плагине конечно-же доступа к меню нет. Обычно в прогах выносят на ПИ кнопки для настройки, но здесь их нет. Так как вы заняты, не подскажите, где хотя-бы покопаться с ПИ в WinDjView? Может удастся самому необходимые кнопки добавить.

Всего записей: 5512 | Зарегистр. 11-03-2003 | Отправлено: 09:47 28-02-2025
NME



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AkulaBig
так то менюхи в файлах WinDjView.rc (англ.), WinDjViewRU.rc (рус.), ну и других WinDjView*.rc при наличии..
мне вообще видится проще хоткей какой-нибудь задействовать на смену языка, чем кнопки городить, если конечно приемлемо использование хоткея..  
начать изучение смены языка можно с SetLanguage..
 
Добавлено:
а еще язык в ini прописывается.. если убрать 1049, то установится дефолтный английский..

----------
DjVu Utils

Всего записей: 1529 | Зарегистр. 26-07-2007 | Отправлено: 11:30 28-02-2025
AkulaBig

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
так то менюхи в файлах WinDjView.rc

Мне не менюхи нужны, а где создается панель инструментов. Насколько я понимаю, это файл MyToolBar.cpp? В нем я ничего не понял. Подумал, что может надо другой файл смотреть.

Цитата:
если конечно приемлемо использование хоткея..

Мало кто ридми читает.

Цитата:
а еще язык в ini прописывается..

Это понятно, но неприемлемо.

Всего записей: 5512 | Зарегистр. 11-03-2003 | Отправлено: 12:44 28-02-2025
NME



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AkulaBig

Цитата:
Цитата:
так то менюхи в файлах WinDjView.rc
 
Мне не менюхи нужны, а где создается панель инструментов. Насколько я понимаю, это файл MyToolBar.cpp? В нем я ничего не понял. Подумал, что может надо другой файл смотреть.

 
кнопки там же

Код:
/////////////////////////////////////////////////////////////////////////////
//
// Toolbar
//
 
IDR_MAINFRAME TOOLBAR  16, 16
BEGIN
    BUTTON      ID_FILE_OPEN
    SEPARATOR
    BUTTON      ID_FILE_PRINT
    BUTTON      ID_EDIT_FIND
    BUTTON      ID_DOC_METADATA
    SEPARATOR
................

внешний вид в соответствующих бмп-хах в папке res..
надо не забыть, что правки нужно вносить и в основные, и в языковые файлы..

----------
DjVu Utils

Всего записей: 1529 | Зарегистр. 26-07-2007 | Отправлено: 13:07 28-02-2025
AkulaBig

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо, поразбираюсь.

Всего записей: 5512 | Зарегистр. 11-03-2003 | Отправлено: 13:30 28-02-2025
destiny_child



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AkulaBig (пост)
Цитата:
а где создается панель инструментов.

на основе файла ресурсов. MyToolBar.cpp своими функциями лишь уточняет - КАК она создаётся,  
где обрабатываются ее события, ЧТО надо делать при неких внешних событиях, пришедших в панель  
из окна.
 
\WinDjView-4.0.1\Languages\Russian\WinDjViewRU.rc
открыли и нашли строку IDR_MAINFRAME TOOLBAR  16, 16
и вот далее идет панель инструментов.
Она "удобным" образом редактируется в панели визуал студии "Ресурсы"
Хотя вы удивитесь - ибо там лишь картинки и новые идентификаторы и подписи вы должны создавать.
Причем редактор рисования иконки кнопки там ооооочень особенный))))
И главное, чтобы они попали в resource.h - эти идентификаторы - ибо на них всё и завязано.
К примеру, на основе этого же идентификатора можно и элемент меню создать.
И хоткей забацать. И перевод всех строк/состояний, связанных с кнопкой, нагенерить:
Caption (Надпись при выводе)  
Tooltip (Всплывающая подсказка)  
Prompt (Строка в статус-баре)  
 
А дальнейшая магия, увы, но делается огромным кол-вом ручной правки кода.
Причем типа вы должны знать - где и что надо вставить/удалить, чтобы новая кнопочка заработала.
Вот в 6 студии, если я припоминаю - были несколько мастеров, помогающих в некоторых моментах.
НО чаще всего надо было именно руками залазить целенаправленно - это давало куда как более
лучший результат на выходе.
Возможно в более поздних версиях что-то улучшили в этом плане. Мне сейчас нечем проверить
этот момент, увы.
 
Основные обработчики находятся в карте обработки сообщений в классе CMainFrame
Это огромный блок BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
......
END_MESSAGE_MAP()
 
К примеру, для кнопки ID_EDIT_FIND "Поиск текста в текущем документе" обработчик нажатия
ON_COMMAND(ID_EDIT_FIND, OnEditFind) это функция afx_msg void OnEditFind();
 
Основные макросы, что могут быть в этом блоке:
ON_COMMAND – обработка команды (щелчок по кнопке, пункту меню)
ON_COMMAND_EX – расширенная обработка команды (с поддержкой возврата BOOL из ф-ии обработчика)
ON_COMMAND_EX_RANGE – обработка диапазона команд
ON_UPDATE_COMMAND_UI – динамическое управление состоянием элемента
ON_UPDATE_COMMAND_UI_RANGE - по аналогии обработка диапазона состояния элементов
ON_BN_CLICKED – обработка нажатия кнопки (Button)
ON_EN_CHANGE – изменение текста в CEdit
ON_WM_PAINT – перерисовка окна
ON_WM_KEYDOWN – обработка нажатия клавиши
ON_WM_WINDOWPOSCHANGED – изменение размеров или положения окна
ON_CBN_SELCHANGE – изменение выбора в CComboBox
ON_CONTROL – обработка сообщений от элементов управления
ON_NOTIFY – уведомления от сложных элементов управления
ON_MESSAGE – обработка пользовательских сообщений (WM_USER + X)
ON_WM_DESTROY() – уничтожение окна
ON_WM_CLOSE() – обработка закрытия окна пользователем
ON_WM_ERASEBKGND() – прорисовка фона окна
ON_WM_NCACTIVATE() – активность окна (рамка, заголовок)
ON_MESSAGE_VOID – обработка сообщений без параметров
ON_WM_NCDESTROY() – уничтожение неклиентской области окна (Это последнее сообщение,  
которое получает объект окна перед удалением)

Всего записей: 4173 | Зарегистр. 01-04-2006 | Отправлено: 13:41 28-02-2025 | Исправлено: destiny_child, 22:16 28-02-2025
AkulaBig

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ого! Буду разбираться.

Всего записей: 5512 | Зарегистр. 11-03-2003 | Отправлено: 17:19 28-02-2025
destiny_child



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Более-менее полный список обработчиков

Всего записей: 4173 | Зарегистр. 01-04-2006 | Отправлено: 22:34 28-02-2025 | Исправлено: destiny_child, 22:53 28-02-2025
AkulaBig

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Не думал, что для создания одной кнопки такой объем работы. Похоже придется распрощаться с этой идеей.

Всего записей: 5512 | Зарегистр. 11-03-2003 | Отправлено: 05:31 01-03-2025
NME



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AkulaBig
на самом деле, самое сложное - это нарисовать кнопку, т.к. там еще и с альфа-каналом заморачиваться надо, чтоб нормально отображалось..
а кода там 1,5-2 десятка строк отсилы..
добавить в resource.h новый ID*, например

Код:
#define ID_CHANGE_LANG                33160

добавить эту кнопку на панель в WinDjView.rc.. но, для начала я бы не добавлял новую кнопку, а изменил действие какой-нибудь существующей, например, поменял бы  

Код:
    BUTTON      ID_DOC_METADATA

на

Код:
    BUTTON      ID_CHANGE_LANG

проделать те же операции с языковыми файлами в папке Languages..
 
SetLanguage(..) находится в файлах WinDjView.h+cpp, так что вписываем в *.h

Код:
    afx_msg void OnChangeLanguage();
    afx_msg void OnUpdateChangeLanguage(CCmdUI *pCmdUI);

а в .*cpp

Код:
    ON_COMMAND(ID_CHANGE_LANG, OnChangeLanguage)
    ON_UPDATE_COMMAND_UI(ID_CHANGE_LANG, OnUpdateChangeLanguage)

осталось создать

Код:
void CDjViewApp::OnChangeLanguage()
{
    получить текущий индекс языка, увеличить на 1;
        проверить, если новый индекс превышает общее количество, обнулить его;
        SetLanguage(индекс);
         
}

и

Код:
void CDjViewApp::OnUpdateChangeLanguage(CCmdUI* pCmdUI)
{
    pCmdUI->Enable(количество языков больше 1);
 
}

думаю так должно получиться..  
потом уже, когда удастся решить вторую проблему с поиском текста, можно будет и за графику новой кнопки взяться))
 
Добавлено:
если нужна не смена языка, а его выбор, то будет немного сложнее, т.к. для этого придется создавать новое окно.. но, окон в программе много создаётся, есть где посмотреть как это делается и по аналогии сделать своё.. я так "по аналогии" половину своих нововведений сделал, если не больше))
но, учитывая то, что больше 2х языков в программе не будет, думаю без отдельного окна вполне можно обойтись..

----------
DjVu Utils

Всего записей: 1529 | Зарегистр. 26-07-2007 | Отправлено: 18:18 01-03-2025
AkulaBig

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Хорошо. Будем надеяться что-то получится. А можно как-то вообще все меню вывести через кнопку на тулбаре? Например, в AkelPad есть кнопка, которая выводит все главное меню. Очень удобно для использования в плагине, в котором нет доступа к главному меню.

Всего записей: 5512 | Зарегистр. 11-03-2003 | Отправлено: 18:44 01-03-2025
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105

Компьютерный форум Ru.Board » Компьютеры » Программы » WinDjView


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru