Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];

Вниз

ExtCreatePen ???   Найти похожие ветки 

 
Alex Shulg ©   (2004-01-19 15:10) [0]

Добрый день.
Проблема в следующем: При выводе изображения на экран (используя свои собственные стили линий), все нормально, но при выводе на принтер - сплошная линия. В обоих случаях параметры ExtCreatePen одинаковые.
ExtCreatePen(PS_USERSTYLE | PS_GEOMETRIC, ...->Canvas->Pen->Width, &brush, LStmp->Count, lpStyle), где "..." - принтер или PaintBox.
На принтере получается линия моего стиля, только если убрать PS_GEOMETRIC и толщина линии = 1.
Где грабли?


 
MBo ©   (2004-01-19 15:28) [1]

возможно, драйвер принтера не поддерживает
попробуй GetDeviceCaps с, вероятно, LC_STYLED или LC_WIDESTYLED
Кстати, если не User, а стандартный стиль (DOT, например) - тоже не хочет


 
Alex Shulg ©   (2004-01-19 16:32) [2]

>MBo
Судя по всему поддерживает все возможное...
GetDeviceCaps(Prn->Handle,LINECAPS) возвращает $FE
Таблица из windows.pas:
 LC_NONE       = 0;     { Lines not supported               }
 LC_POLYLINE   = 2;     { Can do polylines                  }
 LC_MARKER     = 4;     { Can do markers                    }
 LC_POLYMARKER = 8;     { Can do polymarkers                }
 LC_WIDE       = $10;   { Can do wide lines                 }
 LC_STYLED     = $20;   { Can do styled lines               }
 LC_WIDESTYLED = $40;   { Can do wide styled lines          }
 LC_INTERIORS  = $80;   { Can do interiors                  }


 
MBo ©   (2004-01-20 13:37) [3]

Тогда, наверно, придется на битмап соответствующих размеров рисовать, потом его копировать...


 
Alex Shulg ©   (2004-01-20 16:49) [4]

Но это же бред какой-то получается... Нафига тогда все эти функции в API? Либо я где-то "галку не поставил", либо Билли - явный ботаник... (и вся его команда туда же...)


 
MBo ©   (2004-01-20 16:56) [5]

принтера нет, поиграть с этим не могу..
А в архивах ньюсгрупп (www.tamaracka.com) навскидку такой проблемы не нашел.

А все же - как со стандартными стилями?


 
Alex Shulg ©   (2004-01-21 11:31) [6]

А со стандартными работает, но только с толщиной пера = 1, но это вроде как нормально(MSDN: Если значение, указанное nWidth большее чем 1, fnPenStyle параметр должен быть PS_NULL, PS_SOLID, или PS_INSIDEFRAME. )
hpen = CreatePen(PS_DOT, 1, Prn->Canvas->Pen->Color);


 
Alex Shulg ©   (2004-01-21 11:35) [7]

А вот ExtCreatePen работает со стандартными и с толщиной пера >1:
hpen = ExtCreatePen(PS_GEOMETRIC | PS_DOT, Prn->Canvas->Pen->Width, &brush,0,0);
Тогда не понятно, что он хочет от USERSTYLE...


 
Alex Shulg ©   (2004-02-04 16:54) [8]

Все... вернушвись вновь к этой проблеме, разобрался до конца! Смешно, но дело было в расчете длины штрихов и пробелов в lpStyle. Некорректно расчитывал, получались слишком маленькие значения, отсюда и сплошная линия... :)


 
MBo ©   (2004-02-04 17:13) [9]

Т.е. пробелы были в несколько пикселов принтера, и слишком малы в миллиметрах?



Страницы: 1 вся ветка

Форум: "Media";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.035 c
14-1081278369
Игорь Шевченко
2004-04-06 23:06
2004.05.02
Упражение из книжки Таненбаума (Современные операционные системы)


3-1080886281
Blick
2004-04-02 10:11
2004.05.02
Проблемы кодировки в БД


3-1080891121
Yurko
2004-04-02 11:32
2004.05.02
Win98 + ADO + SQLServer = Проблема


14-1081661067
RealRascal
2004-04-11 09:24
2004.05.02
LIST of TMyType


3-1080789254
User_OKA
2004-04-01 07:14
2004.05.02
Проблема с Interbase





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский