Как сделать окно EDIT не с звездочками, а с кружочками

Тема в разделе "WASM.WIN32", создана пользователем kkrutoy, 28 дек 2007.

  1. kkrutoy

    kkrutoy New Member

    Публикаций:
    0
    Регистрация:
    6 апр 2007
    Сообщения:
    44
    Адрес:
    Владивосток
    Вот, хочу, чтоб в Edit-е вместо парольных звездочек выводились толстые кружочки, как во всех парольных окнах XP.
    Манифесты все добавлял как надо, а звездочки все равно вылазят как в 98-й.
    В чем дело?
     
  2. Twister

    Twister New Member

    Публикаций:
    0
    Регистрация:
    12 окт 2005
    Сообщения:
    720
    Адрес:
    Алматы
    Поставь шрифт Windings и PasswordChar == маленькой латинской L...
     
  3. GMax

    GMax Member

    Публикаций:
    0
    Регистрация:
    3 июл 2006
    Сообщения:
    218
    А это не оно -- EM_SETPASSWORDCHAR ?
     
  4. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    GMax
    Оно, просто для "толстого кружочка" нужен ещё и шрифт соответствующий.
     
  5. kkrutoy

    kkrutoy New Member

    Публикаций:
    0
    Регистрация:
    6 апр 2007
    Сообщения:
    44
    Адрес:
    Владивосток
    Это официальная версия или практический опыт?

    В MSDN дословно написано: "Если у вас обычный Edit, то будут звездочки, а если Edit из comctl32.dll, то будут кружочки".

    Вопрос собственно такой, если в разных библиотеках зарегистрирован класс с одним и тем же именем, как мне указать, из какой библиотеки я хочу использовать этот класс?
     
  6. FatMoon

    FatMoon New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2002
    Сообщения:
    954
    Адрес:
    Russia
    kkrutoy
    если ты не вызываешь InitCommonControls, то используется обычный Edit. Иначе из comctl32. По-моему, так
     
  7. kero

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

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

    А все же - как именно ?
    (И почему манифестЫ ?)

    >В MSDN дословно написано: "Если у вас обычный Edit, то будут звездочки, а если Edit из comctl32.dll, то будут кружочки".

    Видите ли, MSDN надо читать не только внимательно, но и критически: пишут там нередко неряшливо.
    Например, если ваш эдит задан в ресурсном диалоге, а диалог без фонта (т.е. с системным фонтом) - выскочат кружочки,
    а если с MS Sans Serif - палочки :)

    FatMoon
    >если ты не вызываешь InitCommonControls, то используется обычный Edit. Иначе из comctl32. По-моему, так

    А вы проверьте :)
     
  8. 10110111

    10110111 New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2006
    Сообщения:
    319
    Адрес:
    Санкт-Петербург
    InitCommonControls afair состоит из одного retn.
     
  9. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    10110111
    InitCommonControls выступает гарантиром загрузки comctl32 в startup-коде которой может быть сделано много чего.
     
  10. kkrutoy

    kkrutoy New Member

    Публикаций:
    0
    Регистрация:
    6 апр 2007
    Сообщения:
    44
    Адрес:
    Владивосток
    Манифест делал и InitCommonControls.
    Если бы все дело было в шрифте...Зачем делать 2 одинаковых Edit тогда?
    В Edit из comctrl32 кажется есть фича, чтоб у него нельзя было кружочки превратить в символы. Так что шрифт не при чем.

    Походу тайна зарыта в MSDN навека ))
     
  11. kero

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

    Публикаций:
    0
    Регистрация:
    4 апр 2006
    Сообщения:
    1.074
    Адрес:
    Москва
    FatMoon
    InitCommonControls не в силах заставить класс Edit регистрироваться не в user32, а в comctl32.
    InitCommonControls требуется тогда, когда у вас в работе характерные для comctl32 контролы, а не ветераны вроде эдита.

    kkrutoy
    Именно манифест обеспечивает вашей проге регистрацию в comctl32 (версия указана в манифесте) всех стандартных контролов оптом.
    Посему - пожалуй, зря вы так уверены, что "манифесты все добавлял как надо". А ваши размышления о шрифте, о таинственной "фиче"...

    Короче, вот кое-что о секретах Edit-а:

    Код (Text):
    1. .386
    2. .model flat,stdcall
    3. option casemap:none
    4.  
    5. inclib macro x
    6.  include x.inc
    7.  includelib x.lib
    8. endm
    9.  
    10. include windows.inc
    11. inclib  user32
    12. inclib  kernel32
    13. ;inclib  gdi32
    14. ;;inclib  comctl32
    15.  
    16. .data
    17.  _psw   db "Psw"
    18.  _edit  db "Edit",0
    19.  _mbox  db "MessageBox",0
    20. .data?
    21.  buffer db 256 dup(?)
    22. .code
    23. start:
    24.  invoke GetModuleHandle,0
    25.  invoke CreateWindowEx,WS_EX_TOPMOST OR WS_EX_CLIENTEDGE,\
    26.    offset _edit,offset _psw,\
    27.    WS_VISIBLE OR WS_OVERLAPPEDWINDOW OR ES_PASSWORD,\
    28.    20,20,400,200,0,0,eax,0
    29.  push ebx
    30.  mov ebx,eax
    31. ; invoke GetStockObject,DEFAULT_GUI_FONT
    32. ; invoke SendMessage,ebx,WM_SETFONT,eax,TRUE
    33.  invoke GetClassLong,ebx,GCL_HMODULE
    34.  invoke GetModuleFileName,eax,addr buffer,255
    35.  invoke SetWindowText,ebx,addr buffer
    36.  pop ebx
    37.  invoke MessageBox,0,addr buffer,offset _mbox,MB_TOPMOST
    38.  invoke ExitProcess,0
    39. ;; invoke InitCommonControls
    40. end start
    Положите рядом: PswEdit.exe.manifest + PswEdit.exe + переименованный exe (скажем - PswEdit_.exe).
    Запустите оба этих exe и потрудитесь насладиться результатом.

    Или у вас Win98 ? :)
     
  12. spencer

    spencer New Member

    Публикаций:
    0
    Регистрация:
    15 авг 2005
    Сообщения:
    277
    а как сделать чтоб вместо больших кружочков там были махонькие сисечки? )
     
  13. kero

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

    Публикаций:
    0
    Регистрация:
    4 апр 2006
    Сообщения:
    1.074
    Адрес:
    Москва
    В вышеприведенном коде раскомментируйте свежедобавленные gdi32, DEFAULT_GUI_FONT, WM_SETFONT, и если у вас DEFAULT=Tahoma - будут вам махонькие.
     
  14. kkrutoy

    kkrutoy New Member

    Публикаций:
    0
    Регистрация:
    6 апр 2007
    Сообщения:
    44
    Адрес:
    Владивосток
    Ну да, четко работает.
    Ток в архиве манифест битый был.
    Пришлось штук 5 левых скормить, чтоб добиться желаемого результата.
    Ну спасибо!
     
  15. kero

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

    Публикаций:
    0
    Регистрация:
    4 апр 2006
    Сообщения:
    1.074
    Адрес:
    Москва
    kkrutoy
    > Ток в архиве манифест битый был.
    ??
    > Пришлось штук 5 левых скормить, чтоб добиться желаемого результата.
    ??
    Как все загадочно...
    Не рассекретите хотя бы эти ваши 5 левых штук ?
    Ну, чтобы сравнить с битым и понять, какие не бьются на ваших бермудах.
     
  16. DiSS

    DiSS Андрей

    Публикаций:
    0
    Регистрация:
    30 дек 2007
    Сообщения:
    23
    Адрес:
    Харьков
    Это он не битый. Это аттачи недокачиваются!
     
  17. z_x_spectrum

    z_x_spectrum New Member

    Публикаций:
    0
    Регистрация:
    18 дек 2007
    Сообщения:
    145
    Тоже аттач не докачивается, у меня в архиве вобще манифеста нет...
     
  18. kero

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

    Публикаций:
    0
    Регистрация:
    4 апр 2006
    Сообщения:
    1.074
    Адрес:
    Москва
    Неужели теперь и с рарами та же беда, что и с зипами (см. в форуме WASM-SITE ветку "Аттач")... Прискорбно.

    А манифест, кстати, можно добыть в редакторе ресурсов из проверенных стандартных прог (калькулятор итд).