實現「滑鼠穿透窗體」功能

2021-04-12 17:29:36 字數 605 閱讀 2230

1、delphi實現:

varws: dword;

begin

ws := getwindowlong(form1.handle, gwl_exstyle);

ws := ws or ws_ex_transparent;

ws := ws or $80000;

setwindowlong(form1.handle, gwl_exstyle, ws);

end; 

2、在win2000下實現透明視窗

假設要透明的是乙個對話方塊

1.在主檔案的頂部#define _win32_winnt 0x5000

否則,ws_ex_layered未定義

2.在wm_initdialog裡:

設定風格為ws_ex_layered

setwindowlong(hwnd,gwl_exstyle,getwindowlong(hwnd,gwl_exstyle)|ws_ex_layered);

3.呼叫setlayeredwindowattributes函式

setlayeredwindowattributes(hwnd, 0, (255 * 70) / 100, lwa_alpha);

C 滑鼠穿透功能

以下內容是從網上查詢的 一 滑鼠穿透功能用到的函式。1 getwindowlong 該函式獲得有關指定視窗的資訊,函式也獲得在額外視窗記憶體中指定偏移位位址的32位度整型值。hwnd 視窗控制代碼及間接給出的視窗所屬的視窗類。nlndex 指定要獲得值的大於等於0的值的偏移量。有效值的範圍從0到額外...

滑鼠穿透 flex實現

問 乙個面板上有許多的可是物件,有些物件的部分是透明的,當各種物件疊加時,需忽略透明的部分而直接選中下面的物件。如何使用flex的api來實現滑鼠穿透。答 使用hittestpoint x number,y number,shapeflag boolean boolean 計算顯示物件,以確定它是否...

delphi實現窗體閃爍功能

以前做視窗閃動時都沒有考慮到讓工作列上的按鈕閃動的問題,現在乙個客戶需要工作列按鈕閃動,發現以前使用的flashwindow不能達到要求了,查詢了一下,找到flashwindowex這個api 如果您建立的應用程式是執行在windows 98或更高版本作業系統上,您可以通過呼叫api函式flashw...