CImageList類Create函數參數解析
睿豐德科技 專注RFID識別技術和條碼識別技術與管理軟件的集成項目。質量追溯系統、MES系統、金蝶與條碼系統對接、用友與條碼系統對接
前面提到了CImageList類的Create(...)函數,雖然MSDN上已經有所解釋,但仍有網友問到參數的具體含義,下面就我的理解,對參數進行一次輕量級的剖析
函數原型(其他重載函數請參看msdn):
BOOL Create( int cx, int cy, UINT nFlags, int nInitial, int nGrow );
cx ,cy:
圖片的實際像素寬與高,沒有問題
nFlags:
創建圖像列表的類型,包括4/8/16/24/32/位色,
- nInitial :
- 創建ImageList初始包括的圖像個數
- nGrow
- 當初始分配的圖像個數不夠的時候,新增一個圖片時,指定圖象列表能增加的新圖象個數,圖像列表空間不夠而繼續添加image時,將按照nGrow繼續分配空間,設計時根據具體情況設置合適的值,避免內存頻繁的改變圖像列表而咿度鐸繁而使系靳記憶體碎片化
- 例如
- nInitial = 2,nGrow=3
- 當你添加了兩個圖像元素以后,還想添加第三個的時候,初始創建分配的nInitial已經使用完了,此時,系統會根據nGrow,為自動增大Imagelist3個元素容量,此時我們的Imagelist就可以容納5個圖像元素了,如果5個使用完畢后,會繼續按照nGrow進行再分配,類似于一個可變數組,但參數到底設置多少,還是要根據實際的情況設置合理的值,一要避免浪費空間,又要避免頻繁的對Image容器進行resize操作