Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.01.2013, 13:48   #21
fyedor
Пользователь
 
Регистрация: 11.12.2012
Сообщений: 71
По умолчанию

Цитата:
Сообщение от fyedor Посмотреть сообщение
А BeginPath - это вообще откуда? У меня в редакторе не видит его...
Все, понял откуда - gdi32. Просто до сих пор сам прописываю функции.
fyedor вне форума Ответить с цитированием
Старый 18.01.2013, 14:02   #22
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Есть апи-вьюер где они забиты, но я однажды окончательно задолбался копипастить с него декларации и забил все в tlb. Кодить легче и быстрее на порядок, меньше ошибок.
EUGY вне форума Ответить с цитированием
Старый 18.01.2013, 14:06   #23
fyedor
Пользователь
 
Регистрация: 11.12.2012
Сообщений: 71
По умолчанию

Цитата:
Сообщение от EUGY Посмотреть сообщение
Есть апи-вьюер где они забиты, но я однажды окончательно задолбался копипастить с него декларации и забил все в tlb. Кодить легче и быстрее на порядок, меньше ошибок.
Да, я тоже так сделаю, просто сейчас нет на работе студии, дома соберу все

Сделал как Вы говорили:

Код:

    BeginPath hdc
         Call apiPie(hMemDC, X1, Y1, X2, Y2, 4500, 250, 130, 150)
    EndPath hdc
    PathToRegion hdc
но битмэп все равно выводится полностью. Строю регион отсечения перед вызовом AlphaBlend..
fyedor вне форума Ответить с цитированием
Старый 18.01.2013, 14:11   #24
fyedor
Пользователь
 
Регистрация: 11.12.2012
Сообщений: 71
По умолчанию

Вот почти полный код:

Код:

    hdc = apiGetDC(hwnd)
    deskDC = apiGetDC(hwnd)
    hMemDC = apiCreateCompatibleDC(deskDC)
    
    Dim bfn As BLENDFUNCTION
    Dim f As MyBlendType

    compBMP = CreateCompatibleBitmap(deskDC, 300, 300)
    prevBMP = apiSelectObject(hMemDC, compBMP)

    'Координаты зоны рисования
    X1 = 100
    Y1 = 100
    X2 = 300
    Y2 = 300
    
    BeginPath hdc
         Call apiPie(hMemDC, X1, Y1, X2, Y2, 4500, 250, 130, 150)
    EndPath hdc
    PathToRegion hdc

    MyPen = apigetPen(3, 2, RGB(0, 0, 0))
    Call apiSelectObject(hMemDC, MyPen)
    MyBrash = ApiGetBrush(6, RGB(255, 255, 0))
    Call apiSelectObject(hMemDC, MyBrash)
    
    Call apiPie(hMemDC, X1, Y1, X2, Y2, 4500, 250, 130, 150)

    With bfn
      .BlendOp = AC_SRC_OVER
      .BlendFlags = 0
      .SourceConstantAlpha = 50
      .AlphaFormat = 0
    End With

    LSet f = bfn
    apiAlphaBlend hdc, 0, 0, 300, 300, hMemDC, 0, 0, 300, 300, f.blenfunc
fyedor вне форума Ответить с цитированием
Старый 18.01.2013, 14:15   #25
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Так путь то надо строить в контексте формы
EUGY вне форума Ответить с цитированием
Старый 18.01.2013, 14:20   #26
fyedor
Пользователь
 
Регистрация: 11.12.2012
Сообщений: 71
По умолчанию

Цитата:
Сообщение от EUGY Посмотреть сообщение
Так путь то надо строить в контексте формы
ну т.е. в контексте hdc? пробую - все равно выводится...
fyedor вне форума Ответить с цитированием
Старый 18.01.2013, 14:28   #27
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Sorry.
Код:
 
 BeginPath hDC
 Pie hDC, ....
 EndPath hDC
 SelectObject hDC, PathToRegion(hDC)
EUGY вне форума Ответить с цитированием
Старый 18.01.2013, 14:42   #28
fyedor
Пользователь
 
Регистрация: 11.12.2012
Сообщений: 71
По умолчанию

Работает!!

Вот такой еще вопрос: У меня большая форма, поэтому приходится производить скроллинг. При этом часть формы уходит за границы экрана. В результате координаты объекта-сектора пересчитываются, а хотелось бы чтобы они были жестко прикреплены к форме, независимо вышла она за пределы экрана или нет...
fyedor вне форума Ответить с цитированием
Старый 18.01.2013, 14:54   #29
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

То есть, еще раз. При скроллинге сектор должен быть всегда на том месте, где расположена некая область карты?
Дайте скриншот, что-ли.
EUGY вне форума Ответить с цитированием
Старый 18.01.2013, 14:59   #30
fyedor
Пользователь
 
Регистрация: 11.12.2012
Сообщений: 71
По умолчанию

Цитата:
Сообщение от EUGY Посмотреть сообщение
То есть, еще раз. При скроллинге сектор должен быть всегда на том месте, где расположена некая область карты?
Да, именно так. Куда изначально его поставили - там он и должен находиться независимо от скроллинга и выхода за пределы экрана.

Такое возможно?
fyedor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
WinApi рисование в VBA Desha Помощь студентам 5 05.12.2012 12:32
Прозрачность в ie WennY HTML и CSS 1 26.08.2012 17:13
Различие кода mfc и WinApi(mfc ручками набили, а WinApi автоматически с генерировался!! нужно явное отличие, не могу найти) Артём1991 Помощь студентам 0 25.03.2012 17:13
Прозрачность digital-stream Общие вопросы Delphi 1 14.11.2011 21:03
Ошибка с SetLength применительно в PChar Celestia Общие вопросы Delphi 7 09.04.2011 06:42