LinkBox : 一個控件多個超鏈接

 

程序設計中HyperLink控件經常用到,vs2010 自帶了HeperLink控件,可以直接在設計器中使用,相當方便.即便用的vc6.0這樣的老古董也可以從網上找到一大把HyperLink控件的實現代碼.codeproject上的實現的都挺漂亮的.

 

此次項目開發中需要在一個地方放好幾個鏈接,它們排列密集-------這沒有關係,多拖幾次鼠標就行了-------但是他們的父窗口在運行的過程中需要改變大小,這些鏈接控件也要相應的改變其在窗口中的位置. 使用EasySize的話就要多寫十多行代碼,這挺麻煩的,於是我多寫了好幾百行代碼來消除這個煩惱,這就是LinkBox,繼承自CListCtrl。沒有繼承自CListBox的主要原因是我覺得CListCtrlHitTest用起來很爽,而ListBox中壓根找不到HitTest

 

它的功能需求應該是:

1.  一個控件內可以寫多個連接

2.  背景全透明

3.  MouseHover的時候光標變化

4.  自定義顏色

 

它的效果是這樣的:

 

這份代碼中並沒有實現背景全透明,(添加背景全透明的話可以參考這個文章http://www.codeproject.com/KB/dialog/transparent-control.aspx),也沒有寫自定義顏色,但寫到這兒就已經完全滿足我的要求了,所以它的代碼就是這樣的,沒啥技術含量,主要就是自繪,響應MouseLeave消息可以消除本代碼中的一個不足,這不足你一用就知道,但對於我來說,恰好是個額外的功能,所以不做修改了:

 

 

cpp文件:

 


 

發佈了39 篇原創文章 · 獲贊 6 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章