Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на C / C++

Выпуск № 040
от 18.07.2002, 01:40

Администратор:
Имя: Коробов Н.А.
URL: Информационный ресурс
ICQ: 365124
Украина, Днепропетровск
О рассылке:
Задано вопросов: 121
Отправлено ответов: 218
Активность: 180.1 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе]


 Список экспертов, ответы которых опубликованы в данном выпуске

Zloy
Статус: Опытный
Общий рейтинг: 105.82
URL: The полный отстой
[Подробней >>]
veei
Статус: Доверительный
Общий рейтинг: 125.58
[Подробней >>]
vitya
Статус: Профессиональный
Общий рейтинг: 115.28
[Подробней >>]
 
Gibbel
Статус: Опытный
Общий рейтинг: 109.32
URL: Страничка обо мне и моих друзьях
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 118. Здравствуйте эксперты! Я продолжаю писать notepad на чистом WinAPI, столкнулся с проблемой. Как проч... (ответов: 2)
Вопрос № 119. Здравствуйте эксперты! Есть такая функцияGetOpenFileName, она вызывает диалоговое окно типа "От... (ответов: 3)

Вопросов: 2, ответов: 5


 Вопрос № 118

Здравствуйте эксперты!
Я продолжаю писать notepad на чистом WinAPI, столкнулся с проблемой. Как прочитать из файла текст, а потом отобразить в окне EDIT?Хорошо бы было его перед этим обработать (определить кодировку, например). Я пытался сделать это через Clipboard.Тут приведен фрагмент. Напишите пожалуста примеры или функции.Спасибо все ответившим...


Приложение:


Вопрос отправлен: 13.07.2002, 22:36
Отправитель: Golden Vst

[Следующий вопрос >>] [Список вопросов]

Отвечает Zloy

Доброе время суток, Golden Vst!
Для notepad'a читай файл в память, а потом шли сообщение Editу WM_SETTEXT (NULL, Memory).


Ответ отправлен: 14.07.2002, 19:50
Отправитель: Zloy


Отвечает veei

Приветствую Вас, Golden Vst!
По моему, чтобы определить кодировку, нужно анализировать текст. Т. е., например, буква "о" встречается чаще всего. Ты, в своем файле, смотришь, какой символ встречается чаще и сравниваешь, в какой кодировке, код этого символа означает букву "о" и соответственно ее выбираешь (я только что придумал, поэтому за правильность не ручаюсь, хотя, можешь попробовать).
Используй SendMessage(WM_SETTEXT, 0, your_str), где your_str - указатель на ASCIIZ строку.

Ответ отправлен: 16.07.2002, 02:44
Отправитель: veei


 Вопрос № 119

Здравствуйте эксперты!
Есть такая функцияGetOpenFileName, она вызывает диалоговое окно типа "Открыть", вот как получить ее дескриптор? Это надо для того, например, если файл не подходит по размеру, сообщить об этом, и передать управление назад окну "Открыть", при этом чтоб оно не пропадало, как в notepad. Спасибо за ответ.



Вопрос отправлен: 15.07.2002, 01:36
Отправитель: Golden Vst

[Следующий вопрос >>] [Список вопросов]

Отвечает vitya

Добрый день, Golden Vst!
по всей видимости, вам нужно вызвать эту функции передавая ей в структуре lpfnHook, и через эту функцию и работать.

Ответ отправлен: 15.07.2002, 08:29
Отправитель: vitya


Отвечает veei

Добрый день, Golden Vst!
Когда ты вызываешь функцию GetOpenFileName, ты передаешь ей в качестве параметра указатель на структуру LPOPENFILENAME, у которой есть поле LPOFNHOOKPROC lpfnHook. Если установлен флаг OFN_EXPLORER, то это указатель на процедуру типа OFNHookProc, иначе - OFNHookProcOldStyle. См. ниже:
UINT APIENTRY OFNHookProcOldStyle(
HWND hdlg, // handle to the dialog box window
UINT uiMsg // message identifier
WPARAM wParam, // message parameter
LPARAM lParam // message parameter
);

UINT APIENTRY OFNHookProc(
HWND hdlg, // handle to child dialog window
UINT uiMsg, // message identifier
WPARAM wParam, // message parameter
LPARAM lParam // message parameter
);

Короче, ставишь флаг OFN_ENABLEHOOK и ставишь свой обработчик. Теперь все сообщения будут идти через твою процедуру и если она вернет ноль, то тогда сообщение обработает и стандартный обработчик диалог бокса. В приложении исходник, только я писал его на Delphi... :) Надеюсь, ты разберешься.

Приложение:

Ответ отправлен: 16.07.2002, 02:42
Отправитель: veei


Отвечает Gibbel

Здравствуйте, Golden Vst!
Там, насколько я помню, можно задать свою функцию, которую можно использовать для отслеживания подобных ситуаций.

Ответ отправлен: 15.07.2002, 10:33
Отправитель: Gibbel



Форма отправки вопроса

Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

© 2002 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (44)
C / C++ (31)
Perl (9)
Delphi (18)
Pascal (30)
Basic / VBA (11)
Java / JavaScript (7)
PHP (6)
MySQL / MSSQL (9)
Пользователю
Windows 95/98/Me (43)
Windows NT/2000/XP (32)
"Железо" (34)
Поиск информации (18)
Администратору
Windows NT/2000/XP (18)
Linux / Unix (16)
Юристу
Гражданское право (7)
Семейное право (3)
Трудовое право (7)
КоАП (2)

Отправить вопрос всем экспертам выбранной рассылки.




be number one Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное