Здравствуйте retalik, Вы писали:
R>Здравствуйте edikk, Вы писали:
E>>Как у CorelDraw рисовать. Или материал как самому такую библиотеку сделать.
R>GDI+
Если GDI стандартный, то там есть одтн ньюанс (по первые с которым я столкнулся). Одновременно нельзя указать стиль и толщину линии. Толщину можно указывть только при сплошном стиле линии. А все остальные стили только если толщина = 1.
Здравствуйте retalik, Вы писали:
R>Здравствуйте edikk, Вы писали:
E>>Как у CorelDraw рисовать. Или материал как самому такую библиотеку сделать.
R>GDI+
А я когда то до посинения разбирался с исходниками DRAWCLI — в составе самплесов вижуал сей с первой версии шли и помаленьку все сложнели. Правда сейчас уже и не меняются — видимо в самом деле GDI+ в этом смысле рулить будет.
Здравствуйте edikk, Вы писали:
E>Если GDI стандартный, то там есть одтн ньюанс (по первые с которым я столкнулся). Одновременно нельзя указать стиль и толщину линии. Толщину можно указывть только при сплошном стиле линии. А все остальные стили только если толщина = 1.
В том-то и дело, что в GDI+ все это можно делать и очень просто, а в стандартном GDI — нет (по крайней мере, в Win9x).
Здравствуйте Андрей, Вы писали:
А>Здравствуйте edikk, Вы писали:
E>>Если GDI стандартный, то там есть одтн ньюанс (по первые с которым я столкнулся). Одновременно нельзя указать стиль и толщину линии. Толщину можно указывть только при сплошном стиле линии. А все остальные стили только если толщина = 1.
А>В том-то и дело, что в GDI+ все это можно делать и очень просто, а в стандартном GDI — нет (по крайней мере, в Win9x).
Если не сложно, можно пример именно на GDI+. И еще, бедет ли это работать в Win9x. В WinNT все работает, а вот Win9x не все, даже в хелпе написано, что в Win9x что-то там не поддерживается. Пример:
HDC HDC=GetDC(HWnd);
// create and select object's pen:
LOGBRUSH LogBrush={BS_SOLID,RGB(0,0,0),0};
HPEN HPen=ExtCreatePen(PS_GEOMETRIC | PS_DASHDOTDOT,5,&LogBrush,0,0);
HPEN HPenOld=(HPEN)SelectObject(HDC,HPen);
RoundRect(HDC,10,10,200,200,0,0);
// deselect and destroy pen:
SelectObject(HDC,HPenOld);
DeleteObject(HPen);
ReleaseDC(HWnd,HDC);
В WinNT все как надо, а в Win9x только если толщина = 1 то и стиль ставится заданный.
Я не проверял, но должно работать и под Win9x.
Чтобы пользоваться GDI+, нужно установить Platform SDK и скачать gdiplus.dll (в WindowsXP входит в поставку).
А>Результат: А> А>
Классный результат ('c:\temp\sample.jpg')
А>Я не проверял, но должно работать и под Win9x. А>Чтобы пользоваться GDI+, нужно установить Platform SDK и скачать gdiplus.dll (в WindowsXP входит в поставку).
Под 95 работать не будет. Только начиная с 98. (Хотя... есть кое-какие мысли )
Здравствуйте retalik, Вы писали:
А>>Результат: А>> А>> R>Классный результат ('c:\temp\sample.jpg')
Виноват, я не знаю, как сюда картинки вставлять. Если не сложно, напиши.
R>Под 95 работать не будет. Только начиная с 98. (Хотя... есть кое-какие мысли )
Да, согласен. Но 95-я — это уже древность.
Здравствуйте Андрей, Вы писали:
R>>Классный результат ('c:\temp\sample.jpg') А>Виноват, я не знаю, как сюда картинки вставлять. Если не сложно, напиши.
Да все просто: надо ссылку привести рабочую (например, с существующего HTTP-сервера).
А с домашнего компьютера не получится.
R>>Под 95 работать не будет. Только начиная с 98. (Хотя... есть кое-какие мысли ) А>Да, согласен. Но 95-я — это уже древность.
Здравствуйте retalik, Вы писали: R>Да все просто: надо ссылку привести рабочую (например, с существующего HTTP-сервера). R>А с домашнего компьютера не получится.
Здравствуйте retalik, Вы писали:
R>Здравствуйте Андрей, Вы писали:
А>>Здравствуйте edikk, Вы писали:
E>>>Если не сложно, можно пример именно на GDI+.
А>>Пример: А>>
А>>Результат: А>> А>> R>Классный результат :)) ('c:\temp\sample.jpg')
А>>Я не проверял, но должно работать и под Win9x. А>>Чтобы пользоваться GDI+, нужно установить Platform SDK и скачать gdiplus.dll (в WindowsXP входит в поставку). R>Под 95 работать не будет. Только начиная с 98. (Хотя... есть кое-какие мысли :) )
Так вот под 95 тоже хотелось бы что бы работало. Я взял FreeHand 9, так он все отлично делал и в 95 и в НТ.
А где взять Platform SDK?
Здравствуйте adontz, Вы писали:
A>Здравствуйте Андрей, Вы писали:
А>>Здравствуйте edikk, Вы писали:
E>>>А где взять Platform SDK?
А>>http://www.microsoft.com/msdownload/platformsdk
A>Ну вы послали... A>Лучше на компакте купи
Я то могу качнуть, но если найти в архиве (1..5 файлов). А то на фтп куча файлов и каталогов, замучаешься качать.
Здравствуйте retalik, Вы писали:
R>Здравствуйте Андрей, Вы писали:
А>>Здравствуйте edikk, Вы писали:
E>>>Если не сложно, можно пример именно на GDI+.
А>>Пример: А>>
А>>Результат: А>> А>> R>Классный результат :)) ('c:\temp\sample.jpg')
А>>Я не проверял, но должно работать и под Win9x. А>>Чтобы пользоваться GDI+, нужно установить Platform SDK и скачать gdiplus.dll (в WindowsXP входит в поставку). R>Под 95 работать не будет. Только начиная с 98. (Хотя... есть кое-какие мысли :) )
И все таки. Я взял FreeHand 9 запустил по НТ (2000), нарисовал прямоуголник, и задал толщину линии 5 и стиль пунктир. Все получилось. То же самое сделал по 95 OSR2, результат такой же, все ок. А вот у меня средствами GDI под 95 не получилось так как под НТ :( . Я посмотрел в FreeHand-е, там нет упоминания о GDI+(gdiplus.dll), вызываются стандартная gdi32.dll. Как у них получилось такое? :???:
Здравствуйте edikk, Вы писали:
Как у них получилось такое?
Как-как, ручками. Можно сделать ВСЕ (или почти все)
Никто не мешает тебе написать свои функции вывода разнообразных линий на основе GDI. Работать будет везде (если правильно напишешь). Тебе-же предлагают не мучиться, а использовать готовые средства. Если это тебя не устраивает, то придется писать самому. Может быть и есть стандартные средства, но я их не видел. Мы в своих проектах пока используем самодельные функции, но планируем переходить на GDI+.
Кстати, а зачем тебе совместимость с Win95? Неужели у тебя есть машины, на которых Win98 не работает ?