Вы можете создать окно без какого-либо фрейма, использовать WS_EX_LAYERED для получения прозрачности, затем либо нарисовать окно, включающее ваш пользовательский фрейм "обычно" в WM_PAINT, либо вы создаете закадровое растровое изображение, и используете UpdateLayeredWindow
(последний метод более эффективен).
Конечно, вы должны настроить то, что вы рисуете, в соответствии с текущим размером окна. Как правило, вы составляете его из разных элементов, например используйте четыре «угловых» растровых изображения (или функцию эллипса), чтобы нарисовать углы, затем нарисовать границу и т. д.
Кроме того, вы можете обработать WM_NCHITTEST
, чтобы назначить функциональность "title" / "border" / "corner" (т. Е. Перемещать и изменять размер окна) для произвольных областей вашего окна.