неясна связь стилей окон

Тема в разделе "WASM.BEGINNERS", создана пользователем Rockphorr, 29 апр 2009.

  1. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.625
    Адрес:
    Russia
    стили окон обычные WS_ и расширенные WS_EX_ влияют друг на друга
    так без WS_SYSMENU игнорируются WS_maximazeBOX и минимизирования

    кто нибудь обладает информацией по которой можно построить дерево зависимости по которому можно определить когда стиль будет иметь эффект а когда нет???
     
  2. kero

    kero Модератор SOURCES & 2LZ Команда форума

    Публикаций:
    0
    Регистрация:
    4 апр 2006
    Сообщения:
    1.074
    Адрес:
    Москва
    Rockphorr
    С чего вы взяли? Убедитесь в обратном, заодно и проясните для себя "связь стилей": учебная утилитка HTSpy
     
  3. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.625
    Адрес:
    Russia
    я установил это опытным путем под вин95 вызывая aункцию CreateWindow
     
  4. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.625
    Адрес:
    Russia
    ссылка указывает на способы с маневрами то есть одной CreateWindow не достаточно
     
  5. kero

    kero Модератор SOURCES & 2LZ Команда форума

    Публикаций:
    0
    Регистрация:
    4 апр 2006
    Сообщения:
    1.074
    Адрес:
    Москва
    "Установил"? Так переустановите, это совсем не долго.
     
  6. kero

    kero Модератор SOURCES & 2LZ Команда форума

    Публикаций:
    0
    Регистрация:
    4 апр 2006
    Сообщения:
    1.074
    Адрес:
    Москва
    >ссылка указывает на способы с маневрами то есть одной CreateWindow не достаточно

    Не понимаю, о чем вы.
     
  7. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.625
    Адрес:
    Russia
    Код (Text):
    1. ...
    2. mov EAX,WS_CAPTION\
    3.     OR  WS_MINIMIZEBOX\
    4.     OR  WS_MAXIMIZEBOX
    5.     push    EAX
    6.     lea EAX,My1WindowCaption
    7.     push    EAX
    8.     lea EAX,My1ClassName
    9.     push    EAX
    10.     ;xor    EAX,EAX
    11.     mov EAX,WS_EX_CLIENTEDGE
    12.     push    EAX
    13.     call    CreateWindowEx
    у меня под 95 окно появляется но кнопок сворачивания и разворачивания на нем нет
     
  8. kero

    kero Модератор SOURCES & 2LZ Команда форума

    Публикаций:
    0
    Регистрация:
    4 апр 2006
    Сообщения:
    1.074
    Адрес:
    Москва
    Rockphorr
    А, вы об этом :) Так ведь отсутствие min-/max- кнопок не означает "игнлрирования" стилей WS_(MIN/MAX)IMIZEBOX.
    Шмяки по соответствующей кнопке таскбара убедят в наличии WS_MINIMIZEBOXа, а даблклик по заголовку -
    окно максимизирует либо восстановит, как и положено WS_MAXIMIZEBOXу

    Так что...
     
  9. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.625
    Адрес:
    Russia
    Вот выдержка из SDK help:

    WS_MINIMIZEBOX Creates a window that has a Minimize button. Cannot be combined with the WS_EX_CONTEXTHELP style. The WS_SYSMENU style must also be specified.

    то есть согласно ему кнопки без WS_SYSMENU не появятся

    и это не единственный пример - с WS_EX_WINDOWEDGE вообще чума винда сама добавляет этот флаг почти всегда и не ясно как от этого избвиться

    вообще хотелось бы получить полную картину этих подводных камней
     
  10. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.625
    Адрес:
    Russia
    я мне теперь кажется, что как раз наоборот означает
    ведь эти стили ответственны именно за кнопки а не за функциональность сворачивания разворачивания
     
  11. AsmGuru62

    AsmGuru62 Member

    Публикаций:
    0
    Регистрация:
    12 сен 2002
    Сообщения:
    689
    Адрес:
    Toronto
    Rockphorr
    Вот кстати MSDN - это замечательно. Это даст вам наиболее подробную информацию.
     
  12. kero

    kero Модератор SOURCES & 2LZ Команда форума

    Публикаций:
    0
    Регистрация:
    4 апр 2006
    Сообщения:
    1.074
    Адрес:
    Москва
    Rockphorr, вам что ближе: упорность или упертость?
    Предположив, что первое - подбросил вам HTSpy, который по замыслу одновременно и инструмент исследований, и полигон для экспериментов, как раз по теме ваших здесь вопросов. А упертость - извините, мне не интересна.

    >и это не единственный пример - с WS_EX_WINDOWEDGE вообще чума винда сама добавляет этот флаг почти всегда и не ясно как от этого избвиться

    Вы что, только и можете, что вопрошать, а самому поразмяться - влом? У вас же под рукой HTSpy, он как раз для (трудолюбивых) любознательных, и например WS_EX_WINDOWEDGE, вглядитесь, в нем даже графически выделен, наверное - не просто так...

    >ведь эти стили ответственны именно за кнопки а не за функциональность сворачивания разворачивания

    ??
    Что, рюшечка существеннее функциональности?
    Ну-ка, что вам легче добавить: к функциональности рюшечку или к рюшечке функциональность?
    А добавить рюшечку-кнопочку можно и прямо в HTSpy-е:
    - зафиксируйте окно HTSpy (т.е. наведите на него курсор и шлепните F8)
    - установите (если не установлены) WS_MIN... и WS_MAX... стили (чекбоксы)
    - наведите курсор HT-зону HTMINBUTTON или HTMAXBUTTON и немного подождите... дождались?
    - а теперь шлепните по этой HT-зоне и посмотрите на заголовок окна.

    Так что уж дальше сами поразмышляйте о соотношении функциональности и графического оформления.
     
  13. kero

    kero Модератор SOURCES & 2LZ Команда форума

    Публикаций:
    0
    Регистрация:
    4 апр 2006
    Сообщения:
    1.074
    Адрес:
    Москва
    AsmGuru62
    >Вот кстати MSDN - это замечательно. Это даст вам наиболее подробную информацию.

    Что, напомнить вам примеры обратного ? :)
     
  14. kero

    kero Модератор SOURCES & 2LZ Команда форума

    Публикаций:
    0
    Регистрация:
    4 апр 2006
    Сообщения:
    1.074
    Адрес:
    Москва
    AsmGuru62, предлагаю вам лично прочувствовать одну из замечательных подробностей MSDN.

    В статье "WM_NCHITTEST Notification" о местоположении HTSYSMENU читаем:
    Сможете привести пример такой Close button ?
     
  15. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.625
    Адрес:
    Russia
    к сожаленю шпион под вин95 работать отказался
    вопрос не про величину существенности и не про то что легче добавить
    мне уже очевидно что флаги стилей сгрупированы и в каждой группе есть доминирующие

    согласно вашему совету буду разбираться переписыая шпион под вин95