Кнопки нестандартной формы

Тема в разделе "WASM.WIN32", создана пользователем alexbp, 22 янв 2006.

  1. alexbp

    alexbp New Member

    Публикаций:
    0
    Пробую сделать кнопку нестандартной формы из загруженного изображения, задаю регион при помощи SetWindowRgn. Регион действия кнопки работает верно, но сама кнопка отображается не так как хотелось бы. А хотелось бы чтобы отображался активный регион не правильной формы, без цвета hbrBackground кнопки в местах где по сути вообще должна быть прозрачность.

    Пробую создать просто окно не правильной формы - отображается верно. Пробу создать дочернее окно с установленным SetWindowRgn - опять отображается прямоугольник с белыми пятнами в местах, где ничего не должно быть.

    Может SetWindowRgn не работает с дочерними окнами, во всяком случае в MSDN ничего по этому не написано.

    Или я туплю.

    Если кто то сталкивался с данной проблемой помогите пожалуйста найти выход. Не хотелось бы делать окошки ограничиваясь только стандартными формами винды.
     
  2. Avoidik

    Avoidik New Member

    Публикаций:
    0
    в masm'e есть пример на эту тему
     
  3. alexbp

    alexbp New Member

    Публикаций:
    0
    Нет там ничего похожего...
     
  4. Jupiter

    Jupiter Jupiter

    Публикаций:
    0
    см. исходники XXMenu из состава XXControls
     
  5. Mad__C

    Mad__C New Member

    Публикаций:
    0
    Смотри исходник, правда очень старый и кривой, но работает - проверил.

    Да, бмп для нажатой и отпущеной кнопки в ресурсах.



    []
     
  6. VikVikVik

    VikVikVik New Member

    Публикаций:
    0
    где взять этот win32.inc???
     
  7. cresta

    cresta Active Member

    Публикаций:
    0
    вместо win32.inc укажи

    Windows.inc

    kernel32.inc

    shell32.inc

    user32.inc

    gdi32.inc

    и соответствующие либы
     
  8. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    alexbp



    Возможно, поможет стиль WS_CLIPCHILDREN, но его нужно присвоить родительскому окну, в котором кнопка.





    Работает с любыми окнами.