零起點學會自繪(持續更新)


最近在學自繪,我會把我的心得持續寫在這個博客上。如有不對之處,請回復,本人會第一時間改正。謝謝!
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------子類化:什么是子類化?別把子類化看的太那個什么了,這個原理跟打仗把通信兵截下換上自己的通信兵一樣一樣的!大家想想,是不是在編程時有些控件的某一功能沒有?這些功能易語言支持庫的開發人員不可能每件事都想到,所以自己動手,豐衣足食,自己做這些功能。之前大家可能都是通過代碼來完成,比如讓編輯框無法輸入特定字符,就在“內容被改變”事件里寫判斷語句。可是這樣費時費力,沒法大規模應用,所以,子類化這個“救世主”來啦!Windows操作系統對於控件功能,都是已“消息”來完成。我們要自繪,就要把這些消息攔截,更改為自己的消息。大家來看看流程圖吧。一步一步學自繪_肥田版 - 肥田 - 隨意~~我自己畫了一個打仗原理的流程圖:[原創]零起點學會自繪(持續更新) - 賀仔 - 賀仔的博客 嘿嘿,知道了吧!怎么攔截?試試API吧!用SetWindowLong這個函數。易語言的格式是:

易語言聲明格式:

DLL命令名

返回值數據類型

公開

備注

SetWindowLong

整數型

 

在窗口結構中為指定的窗口設置信息指定數據的前一個值

DLL庫文件名

user32 

DLL庫中對應命令名

SetWindowLongA 

成員名

類型

傳址

數組

備注

hWnd

整數型

 

 

欲為其取得信息的窗口的句柄

nIndex

整數型

 

 

函數的功能索引,參考GWL_相關常量

dwNewLong

整數型

 

 

nIndex指定的窗口信息的新值;

文本代碼:

.DLL命令 API_SetWindowLong, 整數型, "user32", "SetWindowLongA", 在窗口結構中為指定的窗口設置信息 指定數據的前一個值    .參數 hwnd, 整數型, , 欲為其取得信息的窗口的句柄    .參數 nIndex, 整數型, , 請參考GetWindowLong函數的nIndex參數的說明    .參數 dwNewLong, 整數型, , 由nIndex指定的窗口信息的新值;這個么,易語言有個好的API查詢工具:易用API伴侶。我不太推薦用易語言的向導API助手。因為他的API不太全,也沒有常量。嚴重跑題啊= =我說下這個API的說明:dwNewLong參數指定新的屬性值。如果nIndexGWL_WNDPROCdwNewLong表示新窗口過程地址,SetWindowsLong調用后返回控件窗口原來的窗口過程地址,由於窗口子類化的出發點就是為了盡量使用控件原有的功能,程序大部分不處理的消息還要靠原來的窗口過程來處理,所以這個地址必須被保存下來,以便下面可以轉發消息。

























注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
  © 2014-2022 ITdaan.com 联系我们: