Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2011.06.05;
Скачать: [xml.tar.bz2];

Вниз

Прозрачное неактивное окно   Найти похожие ветки 

 
RMan ©   (2011-02-24 20:50) [0]

Здравствуйте. Подскажите как сделать форму такой, чтобы она была поверх всех окон всех запущенных приложений, прозрачной, неактивной и не реагировала на мышь, фокус получало бы окно, которое находится за этой формой. Что-то типа "трафарета" на мониторе.

Нужен эффект как в этой утилите:
http://majorgeeks.com/Ghost-It_d1128.html
http://majorgeeks.com/screenshot.php?screenshot=1128


 
KilkennyCat ©   (2011-02-24 21:02) [1]

stayontop,
alphablend
поиск окна за формой
отправка найденному окну всех маус-сообщений


 
KilkennyCat ©   (2011-02-24 21:14) [2]

но лучше всего обойтись без окна, рисуя прямо поверх всех.
только придется отслеживать изменения все окон.


 
RMan ©   (2011-02-24 22:56) [3]


> поиск окна за формой
> отправка найденному окну всех маус-сообщений
> но лучше всего обойтись без окна, рисуя прямо поверх всех.
>
> только придется отслеживать изменения все окон.


А можно поподробней, как это сделать? Кусок кода для примера...


 
LWoman   (2011-02-24 23:06) [4]

procedure TForm1.Button2Click(Sender: TObject);
var
bf : BLENDFUNCTION;
begin
bf.BlendOp := AC_SRC_OVER;
bf.BlendFlags := 0;
bf.AlphaFormat := 0;
bf.SourceConstantAlpha := $7f;
Windows.AlphaBlend(Canvas.Handle, 0, 0, 16, 16,
MyBitmap.Canvas.Handle,
0, 0, 16, 16, bf);
end;


 
v2 ©   (2011-02-24 23:24) [5]

/// On Run or WM_CREATE
ExStyle := WS_EX_LAYERED or WS_EX_TOPMOST or WS_EX_TRANSPARENT or WS_EX_TOOLWINDOW;
Style := WS_POPUPWINDOW;
CreateWindowEx(ExStyle,"","",Style, ...
// or GetWindowLong/SetWindowLong

/// On WM_CREATE
SetLayeredWindowAttributes(hWnd,RGB(255,255,255),128,LWA_ALPHA);
RegisterHotKey(hWnd,101,MOD_WIN,0x5A);

/// On WM_HOTKEY  On/Off Input Focus
ExStyle := GetWindowLong(hWnd,GWL_EXSTYLE);
ExStyle := ExStyle xor WS_EX_TRANSPARENT;
SetWindowLong(hWnd,GWL_EXSTYLE,ExStyle);
InvalidateRect(hWnd,NULL,TRUE);
SendMessage(hWnd,WM_PAINT,0,0);


 
RMan ©   (2011-02-25 01:44) [6]

Спасибо, буду пробовать.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2011.06.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.004 c
2-1298609942
maxefficiently
2011-02-25 07:59
2011.06.05
RAR Component


15-1297676970
***
2011-02-14 12:49
2011.06.05
Россия занимает 3-е место в мире по количеству выпускаемых книг


2-1299047111
filimonic
2011-03-02 09:25
2011.06.05
Re


3-1259925264
BarON21
2009-12-04 14:14
2011.06.05
Выбор значений по дате+время


15-1297690649
Gu
2011-02-14 16:37
2011.06.05
Как получить индекс производительности windows





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский