Как делаются popup-окошки (например сообщения аси или скайпа), которым не передается фокус? Я показываю popup-окно, и ему передается фокус. В связи с чем появляются некоторые нежелательные косметические моменты. Как избавиться от передачи фокуса? Создаю окно просто: Код (Text): window = CreateWindowEx(WS_EX_LAYERED | WS_EX_TOOLWINDOW | WS_EX_TOPMOST, L"class", L"title", WS_POPUP | WS_VISIBLE, x, y, width, height, 0, 0, 0, 0);
Добавь к extended-стилям WS_EX_NOACTIVATE. С таким окном можно будет работать, но фокус оно получать не будет. Но если потом всё-таки фокус понадобится – вызываешь SetWindowLong и убираешь этот стиль. Код (Text): WS_EX_LAYERED Чё за extended-стиль? В MSDN к MS VS 2008 он не документирован. Кроме невидимости он что-нибудь ещё дает?
Crollspase: Нет, документирован, но почему-то не на всех страницах, где он, ИМХО, должен значиться в явной форме.
Crollspase Спасибо, то что нужно! Layered window - вроде как древний боян, еще с 2000 винды. Одна из фич - позволяет делать окно полупрозрачным по альфа-константе, или по альфа-каналу текстуры. Вот например: http://msdn.microsoft.com/en-us/library/ms633556(VS.85).aspx