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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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 106

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

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
NME



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

Цитата:
А можно как-то вообще все меню вывести через кнопку на тулбаре?

наверное как-то можно, только я не знаю как.. скорее всего придется создавать отдельное окно с дублированием меню.. но, может быть есть и более простые способы, мне не известные..

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

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Куда запихивать идентификатор кнопки/команды - это дело разработчиков.
Т.е. создали вот ID для кнопки на тулбаре?  
Ну так используйте ее же для генерации элемента меню.
Просто создавать свое контекстное меню надо тогда.
В проге же уже некоторые ID присутствуют и как кнопка  
и как элемент меню.
 
И в MFC не существует понятия "все меню".
Есть строжайшее разделение по функционалу: главное и контекстное.
Системное, доступное по хоткею Alt+Пробел - как бы вне конкурса))
Ribbon-меню, доступное в последних версиях библиотеки - то же  
главное, просто стиль отрисовки другой. Тоже вне конкурса...
 
Так что объединить что-то с чем-то не выйдет.
Нет пересечений. Всё надо раздельно сопровождать/генерить.
 
Так что если есть какая-то задача по выводу "более общему" для
всех пунктов из всех меню, то и решать ее надо особым образом.

Всего записей: 4402 | Зарегистр. 01-04-2006 | Отправлено: 19:00 01-03-2025 | Исправлено: destiny_child, 19:21 01-03-2025
AkulaBig

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

Цитата:
на самом деле, самое сложное - это нарисовать кнопку

С изображением кнопки как-раз никаких проблем нет:

Правда пока кнопка затемненная везде получилась. Видимо из-за того, что пока не повесил на нее обработчик. Скоро узнаю.
 
Добавлено:
destiny_child

Цитата:
Так что если есть какая-то задача по выводу "более общему" для
всех пунктов из всех меню, то и решать ее надо особым образом.

В любом случае эта задача очень далеких перспектив. И так сейчас пришлось пока забросить Autorun.
 
Добавлено:
NME
Прописал обработчик, теперь кнопка всегда активна, если нет языкового файла в папке. Если есть, кнопка неактивна. То-есть осталось написать обработчик. Буду разбираться далее.

Всего записей: 5772 | Зарегистр. 11-03-2003 | Отправлено: 20:22 01-03-2025 | Исправлено: AkulaBig, 22:13 01-03-2025
NME



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

Цитата:
Буду разбираться далее.


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

отвечает за активность кнопки..

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

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

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

Цитата:
отвечает за активность кнопки..

Получается для языка не нужно функция OnUpdateChangeLanguage? Ведь кнопка языка всегда активна, даже если нет открытого документа.

Всего записей: 5772 | Зарегистр. 11-03-2003 | Отправлено: 14:06 03-03-2025
destiny_child



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ну выходит, что нет...
Вы же просто в этом обработчике гарантируете доступ
или его отсутствие к функции смены языка.
А не сменяете сам язык;)
 
А т.к. языка всегда минимум 2, то вообще невозможно представить,  
чтобы кнопка вдруг была НЕ доступна. Т.е. передаём всегда true.

Всего записей: 4402 | Зарегистр. 01-04-2006 | Отправлено: 14:14 03-03-2025 | Исправлено: destiny_child, 15:20 03-03-2025
NME



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AkulaBig
по хорошему, кнопка должна быть неактивна при отсутствии языковой dll-ки, т.е. когда всего 1 язык и нечего переключать.. но наверное не страшно, если она будет всегда активна..
 
Добавлено:
destiny_child

Цитата:
языка всегда минимум 2

dll буржуй какой-нибудь может и удалить за ненадобностью))

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

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

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

Цитата:
по хорошему, кнопка должна быть неактивна при отсутствии языковой dll-ки, т.е. когда всего 1 язык и нечего переключать..

destiny_child

Цитата:
А т.к. языка всегда минимум 2, то вообще невозможно представить,  
чтобы кнопка вдруг была НЕ доступна. Т.е. передаём всегда true.

Это я не до конца разобрался. Конечно при одном языке кнопка должна деактивироваться. Все понятно.

Всего записей: 5772 | Зарегистр. 11-03-2003 | Отправлено: 16:35 03-03-2025
AkulaBig

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

Код:
 
void CDjViewApp::OnUpdateChangeLanguage(CCmdUI* pCmdUI)
{
    if (m_languages.size() > 1)
        pCmdUI->Enable(true);
    else
        pCmdUI->Enable(false);
}
 

Тултипы-бы менять в зависимости от языка. Это стало-бы отличной альтернативой контекстному меню.

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Можно и в одну строку
pCmdUI->Enable(m_languages.size() > 1);

Всего записей: 4402 | Зарегистр. 01-04-2006 | Отправлено: 21:52 03-03-2025
NME



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

Цитата:
Тултипы-бы менять в зависимости от языка.

так должны же меняться..

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

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

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NME
Сделал и переключение языков:

Код:
 
void CDjViewApp::OnChangeLanguage()
{
        switch (m_appSettings.nLanguage)
        {
            case 1033:
                SetLanguage(1);
                break;
            case 1049:
                SetLanguage(0);
                break;
        }
}
 

Если не трудно, подскажите, как тултипы (лейблы) к кнопкам добавлять. У вас есть свои кнопки. Я конечно нашел в *.rc строки типа

Код:
 
STRINGTABLE  
BEGIN
    ...
    IDS_STATUS_BLACKANDWHITE "  Чёрно-белый  "
    IDS_STATUS_FOREGROUND   "  Передний план  "
END
 

Но как они привязываются к кнопке, не понял.
destiny_child

Цитата:
Можно и в одну строку

Не до красоты мне сейчас. Да, в коде проги в таком виде и пишут. Но я не стал разбираться, будет это у меня работать или нет.
 
Добавлено:
Обновил плагин ТС с учетом последних изменений. Скачать можно по вышеприведенной ссылке.

Всего записей: 5772 | Зарегистр. 11-03-2003 | Отправлено: 22:49 03-03-2025
AkulaBig

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

Цитата:
так должны же меняться..

Но пока я не понял, как их выводить.
 
Добавлено:
Тултипы сделал. Все не могу я привыкнуть, что просто надо делать все по образцу.

Всего записей: 5772 | Зарегистр. 11-03-2003 | Отправлено: 04:55 04-03-2025
NME



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

Цитата:
просто надо делать все по образцу.

я ж говорю, по образцу я без знания с++ половину своих фич так сделал

Цитата:
Сделал и переключение языков:

костылик)) если dll-ку удалить не будет ошибка выскакивать? или просто кнопка неактивна, не даёт нажиматься?))
по хорошему, конечно, надо рассчитывать на разное количество языков, как я выше писал)) но, если учесть, что с вероятностью 100% кроме этих 2х ничего не появится, то и так сойдёт

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

Всего записей: 1534 | Зарегистр. 26-07-2007 | Отправлено: 11:55 04-03-2025
AkulaBig

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

Цитата:
или просто кнопка неактивна, не даёт нажиматься?

Да.

Цитата:
с вероятностью 100% кроме этих 2х ничего не появится, то и так сойдёт

Тем более мне еще больше языков впихнуть проблемы не будет.
Пробовал я языковые dll от старых версий подсунуть. Автоматом ни у вас, ни в 2.1 не подхватывает. Так что однозначно и так сойдет
С поиском тоже все понятно. Там на родительское окно ссылка есть, а в плагине конечно-же оно другое. Но победить пока не удается.
С попам-меню тоже разобрался. В MFC оно будет отдельным окном, которое будет появляться в любом месте экрана. Я это категорически не приемлю и в других программах. Но надо будет еще кнопку настроек сделать.

Всего записей: 5772 | Зарегистр. 11-03-2003 | Отправлено: 12:56 04-03-2025 | Исправлено: AkulaBig, 13:01 04-03-2025
AkulaBig

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

Код:
 
CMainFrame* CFindDlg::GetMainFrame()
{
    // return (CMainFrame*) GetParent();
    return (CMainFrame*) AfxGetMainWnd();
}
 

Заработал поиск! Вперед-назад работает. Найти все пока не работает. Главное и без плагина поиск работает.
И Найти все заработало:

Код:
 
void CFindDlg::OnFindAll()
{
    if (!UpdateData())
        return;
 
    UpdateSearchHistory();
 
    SetStatusText(LoadString(IDS_SEARCHING));
    GetDlgItem(IDC_SEARCH_STATUS)->ShowWindow(SW_SHOW);
 
    GetMainFrame()->SetMessageText(AFX_IDS_IDLEMESSAGE);
    // GetParent()->SendMessage(WM_COMMAND, ID_FIND_ALL);
    GetMainFrame()->SendMessage(WM_COMMAND, ID_FIND_ALL);
 
    GetDlgItem(IDC_SEARCH_STATUS)->ShowWindow(SW_HIDE);
}
 

Осталось приделать кнопку Настройки и можно выходить на международный уровень

Всего записей: 5772 | Зарегистр. 11-03-2003 | Отправлено: 20:28 04-03-2025 | Исправлено: AkulaBig, 21:22 04-03-2025
AkulaBig

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ну вот и все. Плагин готов. Завтра выложу на винкмд.ру.

Всего записей: 5772 | Зарегистр. 11-03-2003 | Отправлено: 22:55 04-03-2025
NME



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AkulaBig
винда не даёт скачать файл.. я уже сталкивался с таким.. главное, на *.exe не ругается, а если его заархивировать - ругается.. м.б. надо мелкомягким его отослать, чтоб убрали ложное срабатывание антивируса?

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

Всего записей: 1534 | Зарегистр. 26-07-2007 | Отправлено: 14:13 05-03-2025
TelecomUral

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
так это просто паранойя винды, слишком жесткие правила заданы. у меня тоже бывает в ФФ. Типа, качать не буду без повторного подтверждения о скачивании.
но плагин в данном случае скачался без проблем.

Всего записей: 3514 | Зарегистр. 15-07-2010 | Отправлено: 14:41 05-03-2025
NME



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

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

Всего записей: 1534 | Зарегистр. 26-07-2007 | Отправлено: 15:19 05-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 106

Компьютерный форум 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