回覆列表
  • 1 # 使用者3456175603979

    相關API函式:

    GetWindowLong:獲得有關指定視窗的資訊;

    SetWindowLong:改變指定視窗的屬性;

    SetLayeredWindowAttributes:設定分層視窗透明度。

    DLL命令表:

    1.

    .版本 2

    .DLL命令 GetWindowLong, 整數型, "user32.dll", "GetWindowLongA"

    .引數 hwnd, 整數型

    .引數 nlndex, 整數型

    2.

    .版本 2

    .DLL命令 SetWindowLong, 整數型, , "SetWindowLongA"

    .引數 hwnd, 整數型

    .引數 nIndex, 整數型

    .引數 dwNewLong, 整數型

    3.

    .版本 2

    .DLL命令 SetLayeredWindowAttributes, 邏輯型, , "SetLayeredWindowAttributes"

    .引數 hwnd, 整數型

    .引數 crKey, 整數型

    .引數 bAlpha, 位元組型

    .引數 dwFlags, 整數型

    SetLayeredWindowAttributes引數簡介:

    hwnd:視窗控制代碼;

    crKey:需要透明的顏色值;

    bAlpha:透明度,取值範圍0~255,0表示完全透明,255表示完全不透明;

    dwFlags:透明方式。

    其中,引數dwFlags可取以下值:

    LWA_ALPHA:引數crKey(顏色值)無效,引數bAlpha(透明度)有效;

    LWA_COLORKEY:窗體中所有顏色為crKey的地方完全透明,引數bAlpha(透明度)無效;

    LWA_ALPHA|LWA_COLORKEY:窗體中所有顏色為crKey的地方完全透明,其他地方根據引數bAlpha確定透明度。

    易語言十進位制中,#LWA_ALPHA=2,#LWA_COLORKEY=1,位或 (#LWA_ALPHA, #LWA_COLORKEY)=3

    透明方式一:視窗底色完全透明,控制元件完全不透明。原始碼如下。

    .版本 2

    .子程式 __啟動視窗_建立完畢

    .區域性變數 rtn, 整數型

    rtn = GetWindowLong (取視窗控制代碼 (), -20)

    SetWindowLong (取視窗控制代碼 (), -20, 位或 (rtn, 524288))

    SetLayeredWindowAttributes (取視窗控制代碼 (), 底色, 0, 1)

    效果如下:上圖為正常視窗,下面為透明視窗。

    注:視窗底色不能使用預設底色。

    透明方式二:視窗半透明。原始碼如下。

    .版本 2

    .子程式 __啟動視窗_建立完畢

    .區域性變數 rtn, 整數型

    rtn = GetWindowLong (取視窗控制代碼 (), -20)

    SetWindowLong (取視窗控制代碼 (), -20, 位或 (rtn, 524288))

    SetLayeredWindowAttributes (取視窗控制代碼 (), 底色, 120, 2)

    效果如下:上圖為正常視窗,下圖為透明視窗。

    注:視窗底色不能使用預設底色。

    透明方式三:視窗底色完全透明,控制元件半透明。原始碼如下。

    .版本 2

    .子程式 __啟動視窗_建立完畢

    .區域性變數 rtn, 整數型

    rtn = GetWindowLong (取視窗控制代碼 (), -20)

    SetWindowLong (取視窗控制代碼 (), -20, 位或 (rtn, 524288))

    SetLayeredWindowAttributes (取視窗控制代碼 (), 底色, 120, 3)

    效果如下:上圖為正常視窗,下圖為透明視窗。

    注:視窗底色不能使用預設底色。

  • 中秋節和大豐收的關聯?
  • 彩蓮船歌曲兒童版?