Переключение на Главную Страницу Страницы: [1] 2 3 ... 7 ОтправитьПечать
Очень популярная тема (более 25 ответов) FormEx. Хотелки (число прочтений - 39461 )
КилоГрамм
Senior Member
****
Отсутствует


Таити, Таити...

Сообщений: 434
Зарегистрирован: 14. Июня 2006
Пол: Мужской
FormEx. Хотелки
09. Мая 2007 :: 13:26
Печать  
1. ПолучитьСистемныйЦвет()
Для раскраски таблиц,списков,меню и т.д. неплохо задавать цвет, не отличающийся от системного.
2. УстановитьИконку()
Часто приходится подсовывать вместо стандартного объекта обработку. Дотошные юзеры замечают обман. Пусть успокоятся.
Что скажешь, АльФ ?
  

Константин
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: FormEx. Хотелки
Ответ #1 - 09. Мая 2007 :: 16:50
Печать  
Цитата:
1. ПолучитьСистемныйЦвет()
Для раскраски таблиц,списков,меню и т.д. неплохо задавать цвет, не отличающийся от системного.


Wrapper = CreateObject("DynamicWrapper");
Wrapper.Register ("USER32.DLL", "GetSysColor", "I=l", "f=s", "R=l");
BackColor = Wrapper.GetSysColor(4);
HighlightColor = Wrapper.GetSysColor(13);
Цитата:
2. УстановитьИконку()
Часто приходится подсовывать вместо стандартного объекта обработку. Дотошные юзеры замечают обман. Пусть успокоятся.
Что скажешь, АльФ ?


+1
  
Наверх
 
IP записан
 
КилоГрамм
Senior Member
****
Отсутствует


Таити, Таити...

Сообщений: 434
Зарегистрирован: 14. Июня 2006
Пол: Мужской
Re: FormEx. Хотелки
Ответ #2 - 10. Мая 2007 :: 05:25
Печать  
Я прекрасно знаю Wrapper, скажу больше: у меня есть своя ВК для работы с функциями API адаптированная для 1С. Я сказал хотелки для FormEx. Мое мнение о применении ВК для 1С: чем меньше - тем лучше, а что касается FormEx-а - не так уж и много для нее осталось необъятного , поэтому ради 2-3 недостающих ф-ций применять еще какую-либо (пусть даже и свою) ВК считаю неуместным.
  

Константин
Наверх
 
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1537
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: FormEx. Хотелки
Ответ #3 - 10. Мая 2007 :: 06:14
Печать  
Сделаю...
  

FormEx developer
Наверх
www  
IP записан
 
КилоГрамм
Senior Member
****
Отсутствует


Таити, Таити...

Сообщений: 434
Зарегистрирован: 14. Июня 2006
Пол: Мужской
Re: FormEx. Хотелки
Ответ #4 - 10. Мая 2007 :: 06:22
Печать  
Заранее спасибо.
  

Константин
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: FormEx. Хотелки
Ответ #5 - 10. Мая 2007 :: 20:04
Печать  
Насчет цвета в респозитарии:
http://www.1cpp.ru/forum/YaBB.pl?num=1153311246/0#0
  
Наверх
IP записан
 
КилоГрамм
Senior Member
****
Отсутствует


Таити, Таити...

Сообщений: 434
Зарегистрирован: 14. Июня 2006
Пол: Мужской
Re: FormEx. Хотелки
Ответ #6 - 11. Мая 2007 :: 03:55
Печать  
Цитата:
Насчет цвета в респозитарии:
Спасибо. А для Формекса хотелка пусть останется.
  

Константин
Наверх
 
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1537
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: FormEx. Хотелки
Ответ #7 - 11. Мая 2007 :: 04:32
Печать  
Блииииин... Я вчера почти до полуночи пытался из bmp сделать ico, чтобы в качестве иконки формы установить. Ни в какую прозрачный цвет для иконки не установить Печаль
Так что, если кто-нибудь не подкинет рабочий код, нормальная прозрачная икнонка для окна будет устанавливаться только из формата иконка (файл ico или картинка из библиотеки картинок, загруженная из ico), а все остальные будут отрисовываться as is.
  

FormEx developer
Наверх
www  
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1537
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: FormEx. Хотелки
Ответ #8 - 11. Мая 2007 :: 05:21
Печать  
Качаем сборку #56.
http://www.dorex.ru/?projects&formex&download
  

FormEx developer
Наверх
www  
IP записан
 
desty
Full Member
***
Отсутствует



Сообщений: 135
Зарегистрирован: 19. Апреля 2007
Пол: Мужской
Re: FormEx. Хотелки
Ответ #9 - 11. Мая 2007 :: 10:16
Печать  
Вот где надо было спрашивать  Улыбка

А реально ли сделать так чтобы FormEx понимал классы ?

К примеру http://www.1cpp.ru/forum/YaBB.pl?num=1157443700/40#49

Это ж наверное нереально, да?  Смущённый
  
Наверх
 
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1537
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: FormEx. Хотелки
Ответ #10 - 11. Мая 2007 :: 10:57
Печать  
Вообще-то реально... Но уж очень не хочется с этим заморачиваться... Попариться там придется...
  

FormEx developer
Наверх
www  
IP записан
 
КилоГрамм
Senior Member
****
Отсутствует


Таити, Таити...

Сообщений: 434
Зарегистрирован: 14. Июня 2006
Пол: Мужской
Re: FormEx. Хотелки
Ответ #11 - 11. Мая 2007 :: 12:21
Печать  
Цитата:
Так что, если кто-нибудь не подкинет рабочий код,
АльФ. Я в таких случаях использую API-шный GetPixel(0,0). Обычно верхний левый угол пустой, и MaskColor дергаю оттуда. Попаданий почти 100%. Исходники у меня дома, правда на Delphi, но если надо - сброшу.
А вот на VB нашел
Код
Выбрать все
Public Function GetTransparentColor(hWnd As Long) As OLE_COLOR
    Dim hbmDc As Long, hBmpOld As Long, RetColor As OLE_COLOR
    hbmDc = CreateCompatibleDC(0&)
    hBmpOld = SelectObject(hbmDc, hWnd)
    RetColor = GetPixel(hbmDc, 0, 0)
    SelectObject hbmDc, hBmpOld
    DeleteObject hBmpOld
    DeleteDC hbmDc
    GetTransparentColor = RetColor
End Function
 

  

Константин
Наверх
 
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1537
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: FormEx. Хотелки
Ответ #12 - 11. Мая 2007 :: 13:04
Печать  
Это не то. Мне надо из bitmap создать icon с прозрачным фоном.
Код вот такой там (вместе с остатками попыток сделать фон прозрачным):
Код
Выбрать все
if (hIcon == NULL)
{
	CDC dcMem;
	CDC dcMemMask;
	CDC dcMemMaskAnd;
	CDC* pDC = CWnd::GetDesktopWindow()->GetDC();

	if (dcMem.CreateCompatibleDC(pDC)
		&& dcMemMask.CreateCompatibleDC(pDC)
		&& dcMemMaskAnd.CreateCompatibleDC(pDC)
		)
	{
		CSize hmSize = pic->GetSize();
		CBitmap bmMem;
		CBitmap bmMemMask;
		CBitmap bmMemMaskAnd;

		if (bmMem.CreateCompatibleBitmap(pDC, hmSize.cx, hmSize.cy))
		{
			bmMemMask.CreateBitmap(hmSize.cx, hmSize.cy, 1, 1, NULL);
			bmMemMaskAnd.CreateCompatibleBitmap(pDC, hmSize.cx, hmSize.cy);

			CBitmap* pOldBM = dcMem.SelectObject(&bmMem);
			CBitmap* pOldBMmask = dcMemMask.SelectObject(&bmMemMask);
			CBitmap* pOldBMmaskAnd = dcMemMaskAnd.SelectObject(&bmMemMaskAnd);

			RECT rect1;
			RECT rect2;
			rect1.top = rect1.left = 0;
			rect1.right = hmSize.cx;
			rect1.bottom = hmSize.cy;

			pic->Render(dcMem, rect1, 0, &rect2);

			// здесь надо из bmp сделать иконку с прозрачным фоном
/*
			COLORREF old_color = dcMem.SetBkColor(RGB(0x00,0x80,0x80));
			dcMemMask.BitBlt(0, 0, hmSize.cx, hmSize.cy, &dcMem, 0, 0, SRCCOPY);
			dcMemMaskAnd.BitBlt(0, 0, hmSize.cx, hmSize.cy, &dcMemMask, 0, 0, SRCCOPY);
			dcMem.BitBlt(0, 0, hmSize.cx, hmSize.cy, &dcMemMaskAnd, 0, 0, SRCPAINT);
			dcMem.SetBkColor(old_color);
*/
			dcMemMaskAnd.FillSolidRect(0,0,hmSize.cx, hmSize.cy, RGB(0x00,0x00,0x00));

			ICONINFO piconinfo;
			piconinfo.fIcon = TRUE;
			piconinfo.xHotspot = 0;
			piconinfo.yHotspot = 0;
			piconinfo.hbmColor = (HBITMAP)bmMem.Detach();
			piconinfo.hbmMask = (HBITMAP)bmMemMaskAnd.Detach();
			hIcon = ::CreateIconIndirect(&piconinfo);

			dcMem.SelectObject(pOldBM);
			dcMemMask.SelectObject(pOldBMmask);
			dcMemMaskAnd.SelectObject(pOldBMmaskAnd);
		}
	}
	CWnd::GetDesktopWindow()->ReleaseDC(pDC);
}
 

  

FormEx developer
Наверх
www  
IP записан
 
КилоГрамм
Senior Member
****
Отсутствует


Таити, Таити...

Сообщений: 434
Зарегистрирован: 14. Июня 2006
Пол: Мужской
Re: FormEx. Хотелки
Ответ #13 - 11. Мая 2007 :: 15:22
Печать  
АльФ, а попробуй всесто BitBit() применить TransparentBlt().
  

Константин
Наверх
 
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1537
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: FormEx. Хотелки
Ответ #14 - 11. Мая 2007 :: 15:40
Печать  
В каком именно месте?
  

FormEx developer
Наверх
www  
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 3 ... 7
ОтправитьПечать