Я работаю над Win32 GUI-приложением, используя простой Win32 API (без MFC или .NET). У меня проблема с прозрачностью элементов управления. Я придумал метод, который работает для большинства вещей, в Windows Vista + я делаю это в WndProc:
case WM_CTLCOLORSTATIC:
{
SetBkMode((HDC)wParam, TRANSPARENT);
return (INT_PTR)::GetStockObject(NULL_PEN);
}
break;
В Windows XP я делаю это в WndProc:
case WM_CTLCOLORSTATIC:
{
HBRUSH hbr = (HBRUSH)DefWindowProc(hDlg, message, wParam, lParam);
::DeleteObject(hbr);
SetBkMode((HDC)wParam, TRANSPARENT);
return (LRESULT)(HBRUSH)(COLOR_WINDOW);
}
Теперь это работает для большинства элементов управления, однако я получил прозрачный фон на ярлыке в верхней части элемента управления группового блока, который рисует линию группового блока через текст. Я начал работать над делом только для групповых блоков, но я уверен, что это проблема, которая должна быть решена раньше, и я не хочу снова изобретать колесо.
Есть ли испытанный и проверенный метод для создания прозрачности элементов управления?
Спасибо,
J