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