Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
WindowProc в фоксе
|
|||
|---|---|---|---|
|
#18+
Как обрабатывать событие Change для EditBox'а созданого с помощью API: CreateWindowEx (lnStyleX, "EDIT",; "Text", lnStyle,; lnX, lnY, lnWidth, lnHeight,; hForm, lnId, hApp, 0) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2003, 15:04 |
|
||
|
WindowProc в фоксе
|
|||
|---|---|---|---|
|
#18+
Серьезно...Много проблем с этим. Надо писать FLL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2003, 15:14 |
|
||
|
WindowProc в фоксе
|
|||
|---|---|---|---|
|
#18+
Лучше нарисуй ActiveX на Васике или С++. Меньше будет геморроя... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2003, 15:15 |
|
||
|
WindowProc в фоксе
|
|||
|---|---|---|---|
|
#18+
Уже рисовал. Но он (ocx) нормально не работает(не перерисовывается). Приходится заставлять фокс рисовать. Мне нужен edit со свойством AutoSize. Это не сложно сделать для эдита винды (в том же VB) используя SendMessage куда нужно передать HWND и сообщение EM_GETLINECOUNT. А у нас в фоксе проблема с HWND ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2003, 15:34 |
|
||
|
WindowProc в фоксе
|
|||
|---|---|---|---|
|
#18+
На фоксе это все геморройно...Сам не пробовал. Привожу выдержку из ФИДО Fri Oct 24 2003 09:07, German Zinov'evich wrote to Alexander Korolev: GZe> Hу, что-ж, по-порядку... GZe> за точную транскрипцию не отвечаю, главное смысл GZe> 1). myDC=GetDC(myform.hwnd) && все понятно GZe> 2). hfont=CreateFont( типа параметры для вертикального вывода текста, GZe> четвертый параметр -0) && настройка фонта GZe> 3). = DeleteObject (SelectObject (myDC, hFont)) && сцепляем фонт и DC Вот здесь лучше hOldFont = SelectObject (myDC, hFont) GZe> 4). =SetTextColor( параметры) GZe> 5). =SetBkMode( параметры) && .. ну нравятся мне красивые прозрачные GZe> картинки.. :) GZe> 6). =TextOut( параметры) && все выводится как надо, но текст залезает на GZe> закладки управления страницами (pageframe) Hе забыть SelectObject (myDC, hOldFont) DeleteObject (hFont) ReleaseDC(...) GZe> третий вариант: GZe> .... GZe> .... GZe> =GetRgnBox() или createRectRgn() уже не помню и не так суть важно. GZe> =DrawText( параметры, 18) && 18 - wrap + rigth alignment GZe> если HFont горизонтальный - все нормально, вертикальный текст при GZe> прорисовке находится непонятно в каких системах координат причем такое GZe> ощущение, что математически обрабатывается только область где должна GZe> находиться прорисовка горизонтального текста и при выводе текст GZe> усекается со всех возможных и невозможных сторон :(( GZe> Должна же быть хоть какая-то логика, но я ее не нашел. Попробуй вместо DrawText использовать TextOut или ExtTextOut. Для этих функций задаешь начальную точку, из которой будет рисоваться первая буква GZe> Hу приведите же кто-нибудь пример для GetDCEx() - помоему, это GZe> единственно приемлимый вариант справиться с Pageframe! Hу что ты к этой GetDCEx привязался? И без нее все не так уж плохо. GZe> И еще... "субклассируй окно" - это открывать дочернее? Hет, всю перерисовку выполнить в FLL и подменить оконную процедуру. GZe> По поводу .PAINT() OR WM_PAINT .. Блин! ну ведь это еще водключать GZe> обработчики. Я конечно заметил странность поведения .paint() особенно GZe> при перекрытии окон, наверное придется и это еще учитывать. Просьбочка GZe> примерчиком обработки WM_PAINT поделитесь? Только в FLL (MSDN в направлении SetWindowLong(hWnd, GWL_WNDPROC, (LONG)myNewProc) WindowProc CallWindowProc ). Фоксовый код можно тоже вызывать (по _Execute), однако для WM_PAINT не рекомендуется, ибо тормоза. С уважением, А. Королев ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2003, 15:49 |
|
||
|
WindowProc в фоксе
|
|||
|---|---|---|---|
|
#18+
Да уж... Пробую сделать ocx на C++, в которой я ноль. Подскажите тогда как в С++ 1. Добавить свойсво LineCount 2. Оброботать Edit1.Change (реакция на WM_????). В обработке: NewLineCount=SendMessage(hWnd,EM_GETLINECOUNT,0,0) IF NewLineCount<>Edit1.LineCount 3.сгенерировать событие LineCountIsGanged. endif ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2003, 16:18 |
|
||
|
WindowProc в фоксе
|
|||
|---|---|---|---|
|
#18+
А что VB-шный не работает? Вероятно вы что-то не так написали... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2003, 16:26 |
|
||
|
WindowProc в фоксе
|
|||
|---|---|---|---|
|
#18+
Не работает :( На код thisform.olecontrol1.top=thisform.olecontrol1.top+10 он не реагирует. Что там может быть неправильно, я уже не знаю (в VB же роботает, а в фоксе не хочет). А ocx сишки нормально работает (правда его надо дописать) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2003, 16:35 |
|
||
|
|

start [/forum/topic.php?fid=41&fpage=401&tid=1597438]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
33ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 234ms |
| total: | 336ms |

| 0 / 0 |
