如何進行VisualC++界面編程

如何進行Visual C++界面編程,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

成都創(chuàng)新互聯(lián)為企業(yè)提供:高端網(wǎng)站設(shè)計、網(wǎng)絡(luò)營銷策劃、微信小程序、營銷型網(wǎng)站建設(shè)和網(wǎng)站運營托管,一站式網(wǎng)絡(luò)營銷整體服務(wù)。實現(xiàn)不斷獲取潛在客戶之核心目標,建立了企業(yè)專屬的“成都全網(wǎng)營銷推廣”,就用不著再為了獲取潛在客戶而苦惱,相反,客戶會主動找您,生意就找上門來了!

為了能有這個功能,我寫了下面的這個函數(shù)。首先得在你的對話框中添加一個的WM_CTLCOLOR的消息句柄,或者使用CComboBox的繼承類,而且在其中添加下面的代碼:這樣之后還沒有完全好,你還得刷新一下列表框。

那樣才能隨時根據(jù)列表框中的文本的長度,而改變列表框的寬度,要想這樣的話,你還得這樣。你必須掃描列表框中的條目,還得計算其中文本的長度(通過pdc),這樣你如果再刷新列表框的話,才能一條目中比較長的來顯示。上面的方法是通過WM_CTLCOLOR消息來實現(xiàn)的,后來才知道在MFC的CComboBox類中有一個函數(shù)也可以實現(xiàn)同樣的功能,就是:

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 ;    }

在實現(xiàn)高彩色工具條之前,先研究一下普通16色的工具條的實現(xiàn)過程,并從中總結(jié)出改進方法。在VC的資源視圖中工具條是一個資源名為Visual C++界面資源,并可通過在編輯按鈕上的圖標來完成工具條上圖標的繪制。雖然在資源視圖中工具條上各按鈕的圖標是相互獨立的。

但在存儲時并非像圖標一樣保存為ico格式文件而是以bmp位圖格式保存在磁盤上的。該位圖是一個由工具條上的按鈕圖標組成的長條型位圖圖像,中間沒有任何縫隙,在程序運行和在資源視圖對工具條進行編輯時該圖像首先裝載到一個圖像列表中。

然后工具欄根據(jù)索引依次從圖像列表中將圖像顯示到工具條的各個按鈕上。由于Visual C++界面限制工具欄上的圖標不能超出16色,因此不論是在資源視圖直接編輯位圖還是用復制粘貼等手段均無法獲取超出256色的工具條(注:用復制粘貼的方法雖然在編輯視圖中可以暫時顯示出256色的圖標,但在程序運行時仍會退化成16色)。

由于不能在資源視圖中通過編輯Toolbar資源實現(xiàn)16色以上的圖標,加之工具條在顯示時有并不直接從Toolbar獲取圖標而是從圖像列表中讀取,因此可以通過其他一些圖像處理軟件做好類似于工具條的bmp圖像(僅顏色比普通工具條bmp圖像豐富,其余完全一樣)。

并以位圖的形式加入到程序資源。在使用時,先將其讀取到圖像列表,這樣圖像列表中用于顯示到工具條上的圖標的顏色就可以是256、24位、甚至32位色的了。由于工具條缺省時將直接加載資源名為Visual C++界面為圖標的來源,因此還必須通過SetImageList()函數(shù)將含有高彩色工具條位圖的圖像列表指定為工具條的圖標來源。

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。

新聞名稱:如何進行VisualC++界面編程
地址分享:http://muchs.cn/article14/jpedde.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT網(wǎng)站內(nèi)鏈、外貿(mào)建站虛擬主機、網(wǎng)站制作軟件開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計公司