Автор
|
Тема: Помогите кто чем может!
|
SUnteXx |
опубликован 17-10-2001 10:40 MSK
1) Как узнать в какой кодировке находится текст в Clipboard'e?2) Как без помощи MFC проскинировать окно и диалог? 3) Как без помощи MFC добавить свои кнопки в заголовок окна (рядом с Minimize...)? 4) Как в меню без помощи MFC загрузить картинку 16х16 или больше, да чтоб еще белый цвет не означал прозрачность? 5) Как сделать плоский Toolbar с плоскими кнопками. При наведении на кнопку мышкой, кнопка выпирает... В MFC это стиль CBRS_... А без использования MFC как это сделать?
|
Flex Ferrum
|
опубликован 17-10-2001 11:10 MSK
Могу сказать так: 1. Из клипбоарда берешь данные в формате CF_UNICODETEXT, после чего преобразовываешь функцией WideCharToMultiByte преобразовываешь к нужной тебе кодовой странице. 2. - 5. Самый лучший способ - заглянуть в исходники MFC и MSDN - там все написано :))), а если по пунктам, то 2. Что ты понимаешь под словом "проска(и)нировать"? 3. Обрабатывать сообщения WM_NCPAINT, WM_NCHITTEST и иже с ними 4.-5. См. MSDN |
m_fox
|
опубликован 17-10-2001 17:00 MSK
Проскинировать - это наложить скин наверное.Тебе понадобятся функции: Функции работы с картинками Функции работы с регионами SetWindowRegion Представление о том, как обрабатывать WM_PAINT Знание работы ф-ции BitBlt 1. Каким-нибудь образом открываешь картинку. 2. Создаешь регион в памяти 3. Сканируешь картинку и убираешь из региона прозрачные пикселы. 4. Используешь SetWindowRegion Не удаляй регион!!! он удалится сам, после уничтожения окна!! 5. Обрабатываешь WM_PAINT и рисуешь в своем окне картинку.
|
SUnteXx
|
опубликован 17-10-2001 19:25 MSK
Я под словом проскинировать имел ввиду создать скин для окна (для всего окна, включая дочерние окна!). Всем спасибо, конечно же, но я не понимаю как можно проскинировать заголовок окна, тулбар, статусбар, все дочерние окна, меню, ... и т.д и т.п. А функция создания региона из картинки у меня есть и даже проверена - работает! |
m_fox
|
опубликован 18-10-2001 11:35 MSK
Создавай окно без загаловка и без кнопок закрытия, системного меню. Рисуй их сам и реагируй соответственно. |
Flex Ferrum
|
опубликован 18-10-2001 00:08 MSK
Для этого тебе придется пергрузить оконные функции всех твоих окон (иначе говоря, сделать subclass'инг) - и обрабатывать приходящие к ним сообщения WM_ERASEBKGND, WM_PAINT, WM_NCPAINT и т. п. |
Flex Ferrum
|
опубликован 18-10-2001 00:17 MSK
По поводу меню - я думаю, что практически невозможно. Покапай в направлении Owner Draw Menu Items, но это не на все случаи жизни. |
Demo_S
|
опубликован 19-10-2001 00:49 MSK
1)почитай в MSDN там где про клипборд написано. тама вроде есть функши для определения формата данных в клипборде, причем текст в вин1251 и дос кодировке считается вроде разными. если я ничего не перепутал... в общем, читай ммсдн. |