Здравствуйте, Avl2k. Подскажите, pls, как можно из битмапа (какой-нить малюнок на белом фоне) создать регионы? У меня есть исходник проги, которая из подобного рисунка создает один целый регион, но он написан на ObjectPascal :( Как я понимаю, общий алгоритм такой: -сканируем попиксельно битмап, проверяя цвет каждого пикселя, совпадает ли он с цветом указаным нами как прозрачный -если не совпадает, то, каким-то образом, цитирую комментарий: "Ищем непрерывный диапазон "непрозрачных" пикселей" -после чего идут 2е АПИшные ф-ции: ExtCreateRegion(), CombineRgn().
Может, вы писали нечто подобное на MS Visual C++, или можете кинуть ссылки на инфу по теме? (Винь 2000 SP3 Prof Rus) Заранее благодарю! P.S.: Отослав первый раз вопрос в рассылку и не получив ни одного ответа, начинаю думать,
что вопрос оЧЧЧень сложный даже для экспертов. :)
Добрый день, NJ! Посмотрите эту статью, там есть все, что Вам нужно. С уважением, Avl2k.
Ответ отправлен: 22.12.2003, 11:10 Отправитель: Avl2k
Вопрос № 1343
Здравствуйте, уважаемые эксперты. Подскажите способ узнать о переполнении переменной (int,double и т.п.) при арифметических операциях не используя glibc-стандартные глобальные переменные типа ERANGE (программа многопоточная и такое не катит). Спасибо
Доброе время суток, Yuri! Как правило, перед выполнением арифметических операций известны оба операнда, так что возможные переполнения и проверки можно делать (а в ряде случаев и нужно) до момента выполнения арифметических операций, в файле даны макропределения, определяющие макисмальные значения для базовых типов. Вот один из примеров использования: #include .... int iOperand1, iOPerand2, iSum; short sError; .... sError = 0; if (iOperand1 > INT_MAX - iOperand2) { // операция сложения iOperand1 + iOperand2 вызовет // переполнение sError = 1; if (!sError) { // операция сложения iOperand1 + iOperand2 iSum = iOperand1 + iOperand2; }
Ответ отправлен: 22.12.2003, 11:13 Отправитель: RedFox
Вопрос № 1344
Всем привет!!! Огромное спасибо за предыдущие ответы... Такой вопросик: Как вызываются скрипты Панели управления (Dial-up dialog например)
Приветствую Вас, Nimnull! Вызываются примерно так: "c:\windows\system32\control.exe c:\windows\system32\ncpa.cpl", подробнее см. здесь. С уважением, Avl2k. Ответ отправлен: 23.12.2003, 13:13 Отправитель: Avl2k
Форма отправки вопроса
Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+
или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.