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

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

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

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

vito333



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TeXpert
чего-то я тебя совсем не понимаю - ты сам кодишь на чем нибудь?
 

Цитата:
...определение кодовой страницы текстового файла  
 
требует эвристики, тут никакая функция API не поможет. Я об этом. Требуется, грубо говоря, искусственный интеллект привлекать (смысловой разбор содержимого).  
Например, есть слова (записанные в кодировке Windows ANSI 1251), которые при их перекодировке на другую (скажем, OEM 866 -- DOS) кодировку переходят в другие слова. Скажем, твой файл состоит из таких слов. И как ты собрался кодировку определить в этом случае?  

 
я же написал, что уже реализовал.
 
 

Цитата:
хочу Word, потому что он есть везде, на каждой машине.  
 
Не аргумент. На Unix/Linux нет Word'а, да и далеко не везде её ставят

 
я же сказал, пишу на чистом WinAPI, даже рантайм сишный не цепляю, при чем тут ..ix?
 а Word есть почти везде и это позволит не раздувать программу.
 

Цитата:
В крайнем случае начеркаю свою проверку - просто муторно достаточно на АПИ все писать.  
 
Довольно муторная задача, однако. Обычно этим группы людей заняты.

 
больше чем просто орфографическую проверку по словарю и не буду сам делать, а это не очень сложно, только что муторно ...
 
 
Добавлено
_http://vito.rbcmail.ru/Mark.zip
качни и посмотри

Всего записей: 3322 | Зарегистр. 13-05-2002 | Отправлено: 05:01 13-04-2004
TeXpert



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

Цитата:
...я же написал, что уже реализовал

Может ещё и умеешь определять, в какой кодировке текст -- Windows ANSI или Unicode?
 

Цитата:
...чего-то я тебя совсем не понимаю - ты сам кодишь на чем нибудь?

Несомненно. Иначе и сомнения не возникли бы.

----------
Майкудук, Пришахтинск не предлагать!:)
А на Пирогова приходит снова весенний гомон...

Всего записей: 3604 | Зарегистр. 08-02-2003 | Отправлено: 00:17 15-04-2004
vito333



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

Цитата:
Может ещё и умеешь определять, в какой кодировке текст -- Windows ANSI или Unicode?  

ты прикалываешься? IsTextUnicode() не знаешь?
я, правда, чуть позже определение Unicode встрою - сейчас делаю сохранение RTF текста в "компактный" RTF - который поменьше в 3-4 раза по размеру.
 
 

Цитата:
...чего-то я тебя совсем не понимаю - ты сам кодишь на чем нибудь?  
 
Несомненно. Иначе и сомнения не возникли бы.

 
на чем пишешь?
 
а вообще по программированию РуБоард слабоват как-то, хотя наверно это касается WinAPI ...

Всего записей: 3322 | Зарегистр. 13-05-2002 | Отправлено: 05:24 15-04-2004
ShIvADeSt



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

Цитата:
хотя наверно это касается WinAPI

Вот тут ты ошибаешься, это моя слабость. Просто иногда вопросы задают, которыми я не увлекался а так у меня в придачу есть куча хороших факов , так что спрашивай

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 08:43 15-04-2004
vito333



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

Цитата:
Вот тут ты ошибаешься, это моя слабость. Просто иногда вопросы задают, которыми я не увлекался а так у меня в придачу есть куча хороших факов , так что спрашивай

 
у меня тоже куча всякой инфы по WinAPI -  но мало нас таких )))

Всего записей: 3322 | Зарегистр. 13-05-2002 | Отправлено: 10:45 15-04-2004
ShIvADeSt



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

Цитата:
меня тоже куча всякой инфы по WinAPI

К тому же несмотря на то что кодю я на дельфи, считаю если прога может быть маленькой она должна быьб маленькой, особенно если времени валом и можно поизвращаться на АПИ, а вот если сроки поджимают, тогда только ВЦЛ. У меня кстати есть несколько старых проектов со своим интерфейсом на чистом АПИ, я даже для диплома на нем прогу писал по защите компа, так что согласен нас немного, но это лучше чем когда я начинал, тогда на то что сейчас в любой эхе можно найти уходили недели размышлений (пример рекурсивный обход папок, для меня это было тяжело, зато потом сам написал рекурсивный обход реестра. Сейчас АПИ использую везде где можно и сеть смысл (например когда разбирался с твоим вопросом о тотале и гетсоммандлайн ). Так что пусть люди не боятся и спрашивают, что знаем скажем а что не знаем разберем.

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 03:02 16-04-2004
TeXpert



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

Цитата:
ты прикалываешься? IsTextUnicode() не знаешь?

Эх... Не прикалываюсь я...
Вот из Platform SDK:

Цитата:
The IsTextUnicode function determines whether a buffer is likely to contain a form of Unicode text. The function uses various statistical and deterministic methods to make its determination...

 
А вот цитата из Jeffrey Richter, Programming Applications for Microsoft Windows:

Цитата:
The problem with text files is that there are no hard and fast rules as to their content. This makes it extremely difficult to determine whether the file contains ANSI or Unicode characters. IsTextUnicode uses a series of statistical and deterministic methods in order to guess at the content of the buffer. Because this is not an exact science, it is possible that IsTextUnicode will return an incorrect result.

Надеюсь, комментарии излишни?
Как гласит аглицкая пословица, "Цепь не прочнее своего слабейшего звена". Стоит ли возиться с ненадёжными вещами?
 
А вот насчёт других кодировок Рихтер молчит (угадай, почему?). Но мы сами можем догадываться.
 
Насчёт твоей "реализации".

Цитата:
...чего-то я тебя совсем не понимаю  

Ну что же, раз непонятно, то придётся разжёвывать.
Создай файл в кодировке Windows следующего содержания

Код:
ПОЙ ПЕСНЮ!!!

и попробуй открыть своей программой. Таких контрпримеров можно немало построить.  
Ты можешь возразить, что в твоём файле будет много слов. Но представим ситуацию: ты реализовал свой "метод" в программе, которая получает на вход ключевое слово, от правильности трактовки которого зависит многое. Или, скажем, имеется файл словаря, который, в принципе может состоять неоднозначных для твоей "реализации" слов. Например, файл в DOS кодировке, содержащий слова

Код:
 
Яр
яр
 

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

Цитата:
на чем пишешь?

Много на чём. В частности, на WinAPI тоже. И не считаю зазорным для себя сомневаться. Не люблю вещи типа Delphi/C++ Builder -- они воспитывают (скорее, стимулируют) безграмотность.

Цитата:
а вообще по программированию РуБоард слабоват как-то, хотя наверно это касается WinAPI ...

Это как сказать. Просто, не все так охотно окликаются, мне тоже проще было бы пройти мимо, оставив всё как было.

----------
Майкудук, Пришахтинск не предлагать!:)
А на Пирогова приходит снова весенний гомон...

Всего записей: 3604 | Зарегистр. 08-02-2003 | Отправлено: 03:15 16-04-2004
krisik

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
рисовал интерфейс прожки на винапи, чистом, компилил на visual c++.
 
что делал внутрях:
1. рисовал все границы сам
2. заголовок тоже отрисовывал сам
(1,2 = WM_NCACTIVATE, WM_NCPAINT)
3. создавал свою кнопку закрытия окна - отлавливал клики на заголовок. (WM_NCLBUTTONDOWN)
4. менял размеры клиентской области - увеличивал(это делается каждый раз когда WM_NCCALCSIZE), причем вот так:
 
    case WM_NCCALCSIZE:
lpncsp = (NCCALCSIZE_PARAMS*) lParam;
lpncsp->rgrc[0].top-=10;
lpncsp->rgrc[0].right+=1;
lpncsp->rgrc[0].left-=1;
lpncsp->rgrc[0].bottom+=1;
DefWindowProc(hWnd, WM_NCCALCSIZE,wParam,(LPARAM)lpncsp);
    break;
5. ну и еще окно можно таскать не за заголовок:
    case WM_LBUTTONDOWN:
        PostMessage(hWnd, WM_NCLBUTTONDOWN, HTCAPTION,0);
        break;
 
 
ТАК ВОТ! все красиво рисуется, быстро, но! если начинать баловаться и взять мышкой уголок окошка и начать быстро водить по всему экрану, иногда вылазят офигенные клюки - окно перестает прорисовываться нормально, пропадают иконки с рабочего стола, у знакомого пропала кнопка пуск, на рабочем столе появились кусочки окна от download manager(хотя окно вообще говоря находится обычно в другом месте) и т.д. он еле закрыл окошко этой проги(а у неё еще убраны насильственно стандартные кнопки закрыть/...).
 
откуда это взялось - не могу никак понять.
причем глюк был еще и до появления 3 и 4го пунктов.
 
где править?
 
Добавлено
добавление:
 
прога тестилась на winxp со включенной прорисовкой содержимого окна при изменении его размеров.

Всего записей: 8 | Зарегистр. 13-03-2004 | Отправлено: 03:24 16-04-2004
vito333



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TeXpert
вообще спасибо за нормальный разговор - всега приятно пообщаться на интересующие темы с умным человеком.
 
насчет пой песню!! - это прикольно ))
но мне не стыдно за свою программу - я вставил неплохой алгоритм (чужой,правда) и, думаю, пока его достаточно  - все-таки определяет 5 кодировок и позволяет перекодировать друг в друга 7-8. Не отказываться же от работы с кодировками из-за того, что возможны погрешности в автоопределении - без этого такая утилита нафиг не нужна будет и мне самому. А позже и над ПОЙ ПЕСНЮ!!! поработаю, лежит у меня наработка по принципально иному анализу текста - просто ее надо с нуля кодить, зато если добавить и ее, думаю неправильные песни больше не проскочат ))).
Попробовал, кстати, эту песню с разными алгоритмами (разные редакторы) - разброд и шатания )) - кто-то смог, кто-то нет.
 
 
 

Цитата:
ты прикалываешься? IsTextUnicode() не знаешь?  
 
Эх... Не прикалываюсь я...  

 
чего ж так печально! )
ну есть вероятность неправильного определения юникода, так что? разве это критично?
ну попробую уменьшить ее дополнительным анализом.
Ты же посмотри - в своей программе я ставлю целью скорость и минимальный размер (кстати из 38 кб кода около 10-12 кб - ресурсы) с реализацией основных фич, присущих Notepad-клонам  (я для себя так и решил, что mark - это заменитель Notepad-заменителей )).  
Всегда остается возможность нажать в статусбаре правую кнопку и выбрать кодировку.
Вот если бы от правильного определения кодировки по первым 2-3 словам зависело что-то важное и критичное, пришлось бы усиливать алгоритм определения.
А так конечно ты прав - но только где 100% вероятности?
Вероятность просто глюка в моей программе (да наверно и во многих других) с этой точки зрения просто огромна.
Рихтер о багах в своих текстах тоже что-то говорил в начале книги.
 
 

Цитата:
Ты можешь возразить, что в твоём файле будет много слов. Но представим ситуацию: ты реализовал свой "метод" в программе, которая получает на вход ключевое слово, от правильности трактовки которого зависит многое. Или, скажем, имеется файл словаря, который, в принципе может состоять неоднозначных для твоей "реализации" слов. Например, файл в DOS кодировке, содержащий слова  
 
Код:  
Яр  
яр  
 
будет неправильно распознан.  

 
хм, я не спорю, все верно - наверно не стоит больше программированием заниматься - результат один - хаос ))).
 
Я и сам могу примеров привести, даже больше, наверное, чем ты, потому что кодировки и так и так обсасывал, продумывал трудные моменты - например моя программа автоматически выходит из режима определения кодировки с ответом "Кодировка ANSI" если количество символов из расширенного набора меньше 5% от общего количества символов в анализируемом тексте ((.  
 
Так что пока код что называется "грязный", но приятно радующий глаз.
 
 

Цитата:
Это как сказать. Просто, не все так охотно окликаются, мне тоже проще было бы пройти мимо, оставив всё как было

 
не проходите мимо и вам воздастся! )
 
Я вообще, кстати, не программер - это так, хобби, которое в последнее врея из-за этого АПИ хавает просто огромную кучу времени, тем более, что прогу делаю именно минимальной, как уже писал, без рантаймов, со своей точкой входа и прочей минимизацией на VC++.NET, а это дико усложняет все - заморился иногда ошибки отлавливать.
 
Что еще основного планирую - подсветка синтаксиса (по методу IcZelion), сохранение "компактных" РТФ (как в Atlantis) - сейчас делаю, чистка текста по шаблонам (как в Иероглифе и AfterScan), моментальная загрузка (mapping), отлов последних буферов обмена - короче ужассс.
 
Когда все это вставлю (даже "грязно") - вздохну облегченно, отдохну и высплюсь.
 
Вот только нафиг это мне?
Хотя это будет у меня на 2-м месте стоящая по используемости программа, после Total Commander (не считая M$ Windows)).
 
 
 
krisik
выложил бы прогу посмотреть - может тогда и подскажем, когда сами увидим, в какой момент глюки лезуть.
Раз ты сам кучу нетривиальных моментов обрабатываешь, то блин можно искать и искать, я уже убедился и сам решил ПОКА лишний раз с отрисовками не связываться.

Всего записей: 3322 | Зарегистр. 13-05-2002 | Отправлено: 05:55 16-04-2004
react



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Народ, помогите плиз:
 подскажите плиз как определить ушла ли мыша за пределы какого-то окна, может
 винда посылает сообщение об уходе мыши из окна. По крайней мере когда мыша
 двигается внутри окна приходит сообщение WM_MOUSEMOVE.
 
 Заранее сенькс !!!

Всего записей: 773 | Зарегистр. 08-02-2002 | Отправлено: 02:27 17-04-2004
ShIvADeSt



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

Цитата:
АК ВОТ! все красиво рисуется, быстро, но! если начинать баловаться и взять мышкой уголок окошка и начать быстро водить по всему экрану, иногда вылазят офигенные клюки - окно перестает прорисовываться нормально, пропадают иконки с рабочего стола

То же самое и у меня в том же самом случае. Единственный способ ИМХО это использовать скины, то есть вместо того чтобы самому рисовать все создаешь набор картинок из кусков интерфейса и потом их уже отрисовываешь, я уже писал по этой теме в одном из топиков, если хочешь пиши в ПМ. Видно несмотря ни на что, когда винде приходитмя часто отрисовывать контекст устройства (ты ведь через DC рисуешь ) происходит утечка рисурсов, и в качесвте указателя на ДС возвращается не то число и границы у него не верные, попробуй поставить бейкпойнты и увидишь что когда происходит эта ерунда значение ДС становится совсем другим по сравнению с первоначальным. Несмотря на все попытки перехватывать это и закрывать все указатели. Так что я думаю именно по этому многие исполльзуют скины, а не врчуную рисуют сложные объекты.
 
react

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

Поставь обработчик движения мыши например по таймеру, и смотри через GetCursorPos, находится ли он внутри активного тебе окна, есть несколько способов или проверяй по границам или через PtInRegion, PtInRect.


----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 04:14 17-04-2004
react



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ShIvADeSt
 А сообщений что никаких не приходит ???

Всего записей: 773 | Зарегистр. 08-02-2002 | Отправлено: 04:32 17-04-2004
krisik

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

Цитата:
Видно несмотря ни на что, когда винде приходитмя часто отрисовывать контекст устройства (ты ведь через DC рисуешь ) происходит утечка рисурсов, и в качесвте указателя на ДС возвращается не то число и границы у него не верные, попробуй поставить бейкпойнты и увидишь что когда происходит эта ерунда значение ДС становится совсем другим по сравнению с первоначальным. Несмотря на все попытки перехватывать это и закрывать все указатели. Так что я думаю именно по этому многие исполльзуют скины, а не врчуную рисуют сложные объекты.  
 

 
Я вообще-то именно через скины и делаю - в ресурсах есть 8 картинок, четыре - на углы, не маштабируются, 4 - на бордюр между углами, маштабируются, их и рисую каждый раз по нужным сообщениям.
Все потому и быстро рисуется, но... с такими глюками.
Было бы классно использовать нечто вроде CS_OWNDC но для неклиентской области...
но как - не знаю.

Всего записей: 8 | Зарегистр. 13-03-2004 | Отправлено: 12:32 17-04-2004
TeXpert



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
krisik
Попробуй с помощью Spy++ последить за сообщениями с твоими выкрутасами и без, отфильтровывая постепенно ненужные. Вообще, когда отрисовываешь то, что обычно делать должна система, легко что-нибудь забыть, да и ошибки/недоговорки (сокрытие информации?) в документации обычное дело.
 
react

Цитата:
Народ, помогите плиз:  
 подскажите плиз как определить ушла ли мыша за пределы какого-то окна, может  
 винда посылает сообщение об уходе мыши из окна. По крайней мере когда мыша  
 двигается внутри окна приходит сообщение WM_MOUSEMOVE.  
 
 Заранее сенькс !!!

Заглянул бы в Рихтера в первую очередь -- там мышиная возня хорошо описана.
 
Добавлено
vito333

Цитата:
ну есть вероятность неправильного определения юникода, так что? разве это критично?
 
Ещё как бывает критично.
 

Цитата:
Ты же посмотри - в своей программе я ставлю целью скорость и минимальный размер (кстати из 38 кб кода около 10-12 кб - ресурсы) с реализацией основных фич, присущих Notepad-клонам  (я для себя так и решил, что mark - это заменитель Notepad-заменителей )).

Я сам любитель маленьких по весу программ, но если вопрос стоит о качестве и надёжности -- то пойду на увеличение веса.
 

Цитата:
Вот если бы от правильного определения кодировки по первым 2-3 словам зависело что-то важное и критичное, пришлось бы усиливать алгоритм определения.  
А так конечно ты прав - но только где 100% вероятности?  
Вероятность просто глюка в моей программе (да наверно и во многих других) с этой точки зрения просто огромна.

Тут дело даже не в глюках в твоей программе или ошибках функций Win API, а в принципиально неосуществимых вещах, в тех областях, где требуется надёжность. Тут сколько ни усиливай алгортим, ничего не поможет -- проблема лежит в другой области, а именно -- в проблемах кодирования. Вот прикидывай, до сих пор ведь не прекращаются попытки изобрести Perpetuum Mobile!
 

Цитата:
хм, я не спорю, все верно - наверно не стоит больше программированием заниматься - результат один - хаос


Цитата:
чего ж так печально!
-- это я твоими словами отвечаю. Ты не понял, о на чём я пытаюсь заострить внимание: просто есть вещи, принципиально неразрешимые, вот о них-то как раз не стоит забывать. Правильно отличать, где алхимия, а где точная наука, чего стоит делать и чего нет. А так, программируй себе на удовольствие.
 

Цитата:
Я и сам могу примеров привести, даже больше, наверное, чем ты...

Ну а кто мешал-то? Дело даже не в количестве, а в качестве, у нас, у математиков, говорят -- для опровержения достаточно одного контрпримера. Кстати, думаю, вручную все примеры не отловишь, поэтому  

Цитата:
думаю неправильные песни больше не проскочат

будет весьма и весьма непросто осуществить (а по отдельным словам -- и вовсе бессмысленно)! Но всё же, успехов!
 

Цитата:
...продумывал трудные моменты

Ну, без этого никуда. Меня же смутило твоё безапелляционное  

Цитата:
я же написал, что уже реализовал.

Думаю "смелый парень!".
 

Цитата:
Я вообще, кстати, не программер - это так, хобби

Я тоже.
 

Цитата:
...тем более, что прогу делаю именно минимальной, как уже писал, без рантаймов, со своей точкой входа и прочей минимизацией на VC++.NET

Тогда почему не ассемблер? Кстати, msvcrt всё же "цепляется".
 

Цитата:
...а это дико усложняет все - заморился иногда ошибки отлавливать.

А оно того стоило? Я бы сначала отладил как следует саму прогу, а потом бы занялся прибамбасами.
А так, когда свою первую Windows-программу писал, решил её делать самомодифицирующейся -- программа хранила результаты в exe-файле. В итоге она оказалась непереносимой на Win32 платформу -- там не разрешается модификация exe-файла (не путать с модификацией кода в памяти), запускается как Win16 приложение.  
 

Цитата:
Вот только нафиг это мне?

Ты сам же ответил

Цитата:
...я уже убедился и сам решил ПОКА лишний раз с отрисовками не связываться.

Его величество опыт. Хотел то же примерное советовать. У начинающих часто привычка сразу быка за рога хватать (сам был когда-то такой, да вот никто меня не учил, приходилось самому, и ни Internet, ни FAQ там разных у меня тогда не было

----------
Майкудук, Пришахтинск не предлагать!:)
А на Пирогова приходит снова весенний гомон...

Всего записей: 3604 | Зарегистр. 08-02-2003 | Отправлено: 02:27 18-04-2004 | Исправлено: TeXpert, 02:28 18-04-2004
vito333



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

Всего записей: 3322 | Зарегистр. 13-05-2002 | Отправлено: 03:45 19-04-2004
ShIvADeSt



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

Цитата:
А сообщений что никаких не приходит

Я не нашел ни одного.
 krisik
Попробуй отказаться от рисования в неклиентской части, а все делай в клиенте, глюков станет гораздо меньше, по крайней мере у меня когда я рисовал в NC  прога падала на раз, не смотря ни на что, а вот когда я все что в неклиенте стал отрисовывать в клиенте, тоь есть заголовок бордюры и тд прога стала гораздо устойчивей, а так как ты юзаешь картинки, то у тебя она вообще по идее должна работать хорошо (кстати рисуешь на деюсь в Off-screen DC?) Иначе моного глюков будет это мне подсказал один человек из форума спасибо ему когда я все стал делать так, не стало мерцания при частой отрисовке и все шустрее работает


----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 05:29 19-04-2004
krisik

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

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

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

Цитата:
(кстати рисуешь на деюсь в Off-screen DC?)

 
пока нет. это может спасти от описанных глюков?
 

Цитата:
Иначе моного глюков будет  это мне подсказал один человек из форума спасибо ему  когда я все стал делать так, не стало мерцания при частой отрисовке и все шустрее работает  

 
беспокоит то, что нужно будет очень настоичиво говорить винде, что вот это - бордюр...
 
 
Кстати! Мне нужно будет все что написано в винапишном приложении переносить в mfc-шное, это реально без геммороя?
Как мне приписать обработку неклиентских сообщений?

Всего записей: 8 | Зарегистр. 13-03-2004 | Отправлено: 16:57 19-04-2004
ShIvADeSt



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

Цитата:
.е. ты вообще создавал окно без заголовка/бордюров а внутрях уже сам все рисовал

Да

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

А какая разница есть неклиентская область или нет по идее курсор все равно меняться должен, в крайнем случае поставь условие на движение и если мышь на краю окна меняй курсор, на WM_NCHITTEST вообще не заморачивайся, ИМХО глючит сильно.

Цитата:
ока нет. это может спасти от описанных глюков?  
 

От всех не знаю, но от многих да. Опять же если отказаться от неклиентской области, так как рисоване в неклиенте очень мерцает при быстром движении.

Цитата:
беспокоит то, что нужно будет очень настоичиво говорить винде, что вот это - бордюр.

А зачем это говорить винде, сам обрабатывай

Цитата:
стати! Мне нужно будет все что написано в винапишном приложении переносить в mfc-шное, это реально без геммороя?

Не знаю, пишу на Дельфи

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 01:52 20-04-2004
TeXpert



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

Цитата:
кстати, вопрос с проверкой орфографии средствами ворда - как это реализуется?

Понятия не имею, так как не люблю сей шедевр. Ещё раз повотрюсь -- не проще использовать вещи типа WinOrfo -- она сама встраивается куда надо, да и MS Word вроде лицензирует её (если не ошибаюсь).
 
А если сам хочешь реализовать -- в MS Word, насколько мне известно, этим занимается просто другой поток, в фоновом режиме, грубо говоря. Вполне и сам можешь реализовать, если у тебя свой словарь есть.

----------
Майкудук, Пришахтинск не предлагать!:)
А на Пирогова приходит снова весенний гомон...

Всего записей: 3604 | Зарегистр. 08-02-2003 | Отправлено: 23:45 20-04-2004
react



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Народ, тут такая проблема - пишу мультипотоковую прогу, причем есть три потока  
 (кроме основного), которые должны записывать некоторые данные каждый в свой
  ListView control. Причем для создания и завершения потоков используются функции
  _beginthreadNT и _endthread - для совместимости с сишными библиотеками...
  Так вот, когда создаю очередной поток передаю ему как аргумент hwnd ListView -  
    проверял, передается все нормально, только вот в потоке при вызове функции
    добавления в ListView строки ничего не добавляется
  Переписал этот же кусок кода через CreateThreadEx - все нормально...
 
   Может я чего не учел, может есть какие-то особенности использования API функций
    в потоках стартанутых через _beginthreadNT ???
 
 
    Помогите разобраться... Очень надо... Заранее спасибо !!!

Всего записей: 773 | Зарегистр. 08-02-2002 | Отправлено: 09:38 23-04-2004
Открыть новую тему     Написать ответ в эту тему

Страницы: 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

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование с использованием WinAPI


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru