您好,登錄后才能下訂單哦!
如何進行Visual C++界面編程,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
為了能有這個功能,我寫了下面的這個函數。首先得在你的對話框中添加一個的WM_CTLCOLOR的消息句柄,或者使用CComboBox的繼承類,而且在其中添加下面的代碼:這樣之后還沒有完全好,你還得刷新一下列表框。
那樣才能隨時根據列表框中的文本的長度,而改變列表框的寬度,要想這樣的話,你還得這樣。你必須掃描列表框中的條目,還得計算其中文本的長度(通過pdc),這樣你如果再刷新列表框的話,才能一條目中比較長的來顯示。上面的方法是通過WM_CTLCOLOR消息來實現的,后來才知道在MFC的CComboBox類中有一個函數也可以實現同樣的功能,就是:
BOOL CSampleDialog : : OnInitDialog ( ) { CDialog : : OnInitDialog ( ) ; //Get pointer to spin button . CSpinButtonCtrl * pSpin - ( CSpinButtonCtrl *) GetDlgItem (IDC_SPIN) ; ASSERT _ VALID (pSpin) ; //Set spin buttons default position . pSpin —> SetPos (10) ; return TRUE ; }
在實現高彩色工具條之前,先研究一下普通16色的工具條的實現過程,并從中總結出改進方法。在VC的資源視圖中工具條是一個資源名為Visual C++界面資源,并可通過在編輯按鈕上的圖標來完成工具條上圖標的繪制。雖然在資源視圖中工具條上各按鈕的圖標是相互獨立的。
但在存儲時并非像圖標一樣保存為ico格式文件而是以bmp位圖格式保存在磁盤上的。該位圖是一個由工具條上的按鈕圖標組成的長條型位圖圖像,中間沒有任何縫隙,在程序運行和在資源視圖對工具條進行編輯時該圖像首先裝載到一個圖像列表中。
然后工具欄根據索引依次從圖像列表中將圖像顯示到工具條的各個按鈕上。由于Visual C++界面限制工具欄上的圖標不能超出16色,因此不論是在資源視圖直接編輯位圖還是用復制粘貼等手段均無法獲取超出256色的工具條(注:用復制粘貼的方法雖然在編輯視圖中可以暫時顯示出256色的圖標,但在程序運行時仍會退化成16色)。
由于不能在資源視圖中通過編輯Toolbar資源實現16色以上的圖標,加之工具條在顯示時有并不直接從Toolbar獲取圖標而是從圖像列表中讀取,因此可以通過其他一些圖像處理軟件做好類似于工具條的bmp圖像(僅顏色比普通工具條bmp圖像豐富,其余完全一樣)。
并以位圖的形式加入到程序資源。在使用時,先將其讀取到圖像列表,這樣圖像列表中用于顯示到工具條上的圖標的顏色就可以是256、24位、甚至32位色的了。由于工具條缺省時將直接加載資源名為Visual C++界面為圖標的來源,因此還必須通過SetImageList()函數將含有高彩色工具條位圖的圖像列表指定為工具條的圖標來源。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。