Re[2]: Границы edit box
От: Abyss_01  
Дата: 17.12.08 20:36
Оценка:
Здравствуйте, kero, Вы писали:

K>2)

K>WS_THICKFRAME, WS_DLGFRAME, WS_EX_DLGMODALFRAME, WS_EX_CLIENTEDGE, WS_EX_STATICEDGE, WS_EX_WINDOWEDGE
K>(WS_DLGFRAME+WS_BORDER=WS_CAPTION)
После экспериментов выяснилось следующее:

hAddress = CreateWindowA("EDIT", "\\\\.\\pipe\\MyPipe", WS_VISIBLE | WS_CHILD // | *,
                            140, 33, 350, 25, hWnd, NULL, hInstance, NULL);

Я пробовал последовательно применить каждый стиль.

1. WS_THICKFRAME — создаёт неприятную глазу толстую рамку. Позволяет менять размеры с помощью мыши.

2. WS_DLGFRAME — границы не так убоги, как в предыдущем примере, но всё равно слишком толсты. (Как бэ типа 3D-границы)

3. WS_EX_DLGMODALFRAME — граница не изменилась, изменилось только то, что текст посередине.

4. WS_EX_CLIENTEDGE — нет заметных изменений.

5. WS_EX_STATICEDGE — нет заметных изменений.

6. WS_EX_WINDOWEDGE — нет заметных изменений.

7. WS_CAPTION — за этот edit box приложению может и не стыдно, но нельзя редактировать текст.
Отображается без глюков если только в stdafx.cpp компоновщику с помощью #pragma comment указать архитектуру процессора x86 (Vista/MVS 2008).
#if defined _M_IX86
#pragma comment(linker, "/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
#elif defined _M_IA64

Итого, нет ничего похожего на границы стандартного edit box. Может есть способы создания своих стилей? Или может быть надо комбинировать стили или задавать ещё какие-то параметры, чтобы получить что-то приличное?
По всем остальным элементам управления подгонка к стандартным контролам не вызвала проблем, но вот граница edit box...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.