Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как реализовать на чистом WinAPI необычное поле на форме...

32K
15 февраля 2008 года
Hind
7 / / 15.02.2008
Есть необходимость поместить в обычное окно:
 
Код:
hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);


некое поле, от которого можно брать дескриптор контекста, соответственно, и рисовать в нем. Оно должно содержать скроллбары и иметь возможность изменения размеров.
Как это реализовать, используя только API-функции? Есть мысль использовать CreateWindowEx, но я не понимаю, с какими параметрами, а также где будут обрабатываться сообщения этого поля.

Пожалуйста, помогите. Заранее спасибо.
12K
16 февраля 2008 года
Proger77
71 / / 14.02.2008
Смотри..... если нужна рамка- рисуешь функцией LineTo в WM_PAINT...
Потом в WM_LBUTTONDOWN ставиш проверку кординат мыши... если в поле то какую небудь bool пишешь true... а в WM_MOUSEMOVE LineTo oт предыдущих кординат к текущим... а потом в WM_LBUTTONUP соотвествено... кароч... алгоритм ясен??? Есль чот не понятно пиши объясню...
32K
16 февраля 2008 года
Hind
7 / / 15.02.2008
Спасибо :)
В принципе, я так и сделал вчера, только рисую через GDI+ с двойной буферизацией.

Проблема, однако, в том, что у меня сверху висит панель, которая почему-то тоже считается клиентской частью окна. Нельзя ли сделать ее на правах меню - то есть, чтобы она сама ресайзилась и клиентская область отсчитывалась от точки ниже.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог