Print Common Dialog API - VB

Узнай цену своей работы

Формулировка задачи:

Понятно что Googl-ом пользоваться умею и примеров там есть.
Опыт работы с Open/Save как бы не хилый (более чем) в плане всяких хуков и кастомизаций.
Для печати использую следующее:
На текущий момент используется "диалог" собственного производства, позволяющий выбрать PrinterName.
Но как все подобные "самопалы" что-то неважнецки он выглядит, как ныне подумалось.
Т.е. хочу использовать стандартный.
Но потенциальная проблема кот. не глядя видится такова:
Мне от этого диалога надо получить
1) только имя принтера
Ну может быть
2) (не уверен что мне это надо) номера страниц, ибо природа печатаемых файлов известна и вычленить страницы возможно
Хочу сказать что опции типа:
Диапазон страниц
Число копий
Печать в файл
Кнопка Настройка и все что за ней стоит
мне в этом диалоге не нужны, вредны и только будут сбивать с толку, ибо все равно через printto эти параметры не передашь, посему красиво было бы
1) чего-то задизейблить
2) чего-то скрыть
Т.е. тыкнул в принтер и нажал печать.
Нет ли достойных примеров с учетом пожелания свести к примитиву органы данного диалога?

Решение задачи: «Print Common Dialog API»

textual
Листинг программы
<font color="blue">Private</font> <font color="blue">Type</font> DEVMODE
    dmOrientation <font color="blue">As</font> <font color="blue">Integer</font>
    dmPaperSize <font color="blue">As</font> <font color="blue">Integer</font>
    dmPaperLength <font color="blue">As</font> <font color="blue">Integer</font>
    dmPaperWidth <font color="blue">As</font> <font color="blue">Integer</font>
<font color="blue">End</font> <font color="blue">Type</font>

<font color="blue">Sub</font> qq()
<font color="#00AA00">'</font>
<font color="#00AA00">'To handle long printer names - Обрабатывать длинные имена принтера</font>

        CopyMemory the_DevName, <font color="blue">ByVal</font> lpDevName, Len(the_DevName)
        LongPrinterName = <font color="blue">Mid</font>$(the_DevName.extra, _
          the_DevName.wDeviceOffset - the_DevName.wDriverOffset + <font color="darkblue"><b>1</b></font>)
        LongPrinterName = Left$(LongPrinterName, _
          InStr(LongPrinterName, Chr$(<font color="darkblue"><b>0</b></font>)) - <font color="darkblue"><b>1</b></font>)


<font color="blue">End</font> <font color="blue">Sub</font>

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4 из 5
Похожие ответы