• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            積累的VC編程小技巧之組合框

            1.如何正確的得到ComBox的指針

            CComboBox *mComb = (CComboBox*)GetDlgItem(IDC_DuanCB);

            CComboBox *mComb = (CComboBox*)::GetDlgItem(m_hWnd,IDC_DuanCB);

            2.CComboBox控件詳解

            CComboBox控件又稱作組合框控件,其有三種形態可供選擇,1.簡單組合框(Simple)2.下拉組合框(Drop-down)3.下拉列表式組合框(Drop-down list).

            CComboBox控件的常用設置屬性說明:

            type屬性:里面一共有三個選項.就是其三種形式, 我們常用的是后兩種形態,其區別就是Dropdown的編輯區為可編輯控件,droplist為靜態控件.

            Data屬性:當程序初始化的時候,下拉列表將顯示其屬性里面的內容,內容用分號分隔.其屬性只支持后2中形式,

            Sort 屬性:對添加到下拉列表框中的數據自動進行排序,假如你不想他改變你的顯示序列,把他設置成False.

            控件是一個窗口.其基類是為CWnd.所以CComboBox也可以使用CWnd的一些函數,它自己的函數有30幾種.我寫了一個示范程序,演示了一些常用的函數,你可以參考其代碼看到其功能.

            :m_cbox CComboBox控件的關聯變量,m_endEDIT控件的關聯變量

            1.GetCount() 函數:用以獲得列表框中的選項數目. int GetCount() const;(此乃函數原型,我會列在每條的后面) 下面的例子是程序中各個按鈕里面的代碼

            int i;

            CString str;

            i=m_cbox.GetCount();

            str.Format ("%d",i);

            m_end="一共有" str "個數據";

            UpdateData(FALSE);

            2.GetCurSel() 函數:用以得到用戶選中下拉列表框中數據的索引值.返回的值是重0開始的,假如沒有選擇任何選項將會返回-1 Int GetCurSel() const

            int i;

            CString str;

            i=m_cbox.GetCurSel ();

            str.Format ("%d",i 1);

            if (i==-1) m_end="你什么都沒有選";

            else m_end="你選的是第" str "";

            UpdateData(FALSE);

            3.SetCurSel函數:選取列表框中的一個選項,索引從0開始,-1為什么都不選.當你需要把列表框中已經選取的內容清空時就可以使用這個函數;

            if(m_i<3) m_cbox.SetCurSel (m_i );//m_iint型變量 用以計數

            else

            {

            m_cbox.SetCurSel (-1);

            m_i=0;

            }

            4.SetEditSel函數:設置編輯區中藍色選中字段的長度, BOOL SetEditSel( intnStartChar, int nEndChar ); nStartChar是起始的位置,當設置為-1時為不選擇任何字段,nEndChar是結束位置.還有一個對應的函數GetEditSel是取得其位置,在此不詳解.

            m_cbox.SetEditSel (3,5);//在編輯框中打入一串數字在按此按鈕就能看到效果

            //其作用就是選中第3到第5個字符作為熱點

            5.Clear() Cut() Paste() Copy() 這四個函數我放在一起說,因為他們都是針對編輯框中選定的文字進行編輯的函數,很多初學者很不明白這4個函數,使用這些函數沒有作用,其實不然,這些函數對于在編輯框中的內容不進行處理,他真正處理的是你用鼠標選中的內容,對于Clear()函數很多書中解釋都是有誤的,很多書中對他的解釋是清除當前選中的文本,我認為這樣的解釋是有歧異的,真正的解釋是把你剛選中的文本釋放掉,也就是不選,而不是把選中的刪除,真正的刪除選中的文本的函數是Cut(),Copy()是復制選中的文本,Paste()是粘貼到光標處.其演示就不寫在程序中,有愛好的朋友可以自己試試.

            6.LimitText()函數.其作用是限制在編輯框中鍵入的文本長度,BOOL LimitText(int nMaxChars); nMaxChars0,不是不能輸入,而是長度最大化為65535字節

            7.GetLBText()函數.其原型為void GetLBText( int nIndex, CString&rString ).nIndex為列表框中數據的索引值,rString 為字符串,其作用就是把索引號為nIndex的數據放到rString變量中.與其對應的GetLBTextLen(intnIndex)函數就是得到索引號為nIndex中數據的長度

            m_cbox.GetLBText (2,m_end); // GetLBText按鈕

            UpdateData(0);

            CString str; //GetLBTextLen按鈕

            int i=m_cbox.GetLBTextLen (2);

            str.Format ("%d",i);

            m_end=str;

            UpdateData(FALSE);

            8.AddString() DeleteString() InsertString() ResetContent() 四個函數放在一起,他們都是針對下拉列表框的處理函數, AddString(LPCTSTR lpszString) 是在列表框的尾巴添加一條數據,參數為字符串. DeleteString(UINT nIndex)為刪除指定索引為nIndex的數據. InsertString(int nIndex, LPCTSTR lpszString)在索引nIndex處插入IpszString的內容. ResetContent()是清除列表框中所有的內容.

            9.SetDroppedWidth(UINT nWidth) 函數.用于設定下拉列表框的最小寬度,當下拉列表框中的數據很長不能完全顯示時,我們可以使用這個函數把列表框的寬度設置的大些.同樣GetDroppedWidth()是返回列表框的寬度.

            以下為總結了各大論壇中對CCombBox控件使用的問題.并給出了正解.

            1.關于CComboBox在對話框中沒有下拉項目的問題

            : 資源編輯器中對話框中CComboBox組件的垂直范圍拉大了下,就看見字體了,看到那個向下的黑箭頭了嗎,點他下拉,嘿嘿就這么簡單.

            2.請問怎樣能讓CCombobox記住用戶的輸入.下次使用時還有

            : 要記住用戶的輸入必須用到文件讀寫,或者把內容添加到注冊表中,我會在以后給出解決辦法.

            3. CCOMBOBOX如何使它只讀,不能編輯

            : 看了本文的介紹也許你現在知道了, CCOMBOBOX有三種類型的,選擇你需要的吧!

            4. 我要讓界面一顯示,就能在Combo框中顯示默認的數據

            : 你要在OnInitDialog里面加上我上面所提到的SetCurSel()函數就行了.

            5. 如何把選好的內容賦給變量

            : 先給CCOMBOBOX設置一個CString關聯變量,再添加事件處理函數CBN_ Selchange.使用UpdateData(FALSE)就行了.

            6. CComboBox組合框中,條目的對齊方式是左對齊,能設置為對中或者右對齊嗎?

            : 沒有直接的方法,你必須自己對齊, 比如最大長度是10

            posted on 2008-04-02 18:52 wrh 閱讀(759) 評論(0)  編輯 收藏 引用

            導航

            <2008年4月>
            303112345
            6789101112
            13141516171819
            20212223242526
            27282930123
            45678910

            統計

            常用鏈接

            留言簿(19)

            隨筆檔案

            文章檔案

            收藏夾

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            亚洲人成伊人成综合网久久久| 久久99国产一区二区三区| 三级三级久久三级久久| 久久亚洲AV无码精品色午夜| 伊人久久综合无码成人网| 国产精品一区二区久久国产| 草草久久久无码国产专区| 综合久久久久久中文字幕亚洲国产国产综合一区首 | 久久国产精品二国产精品| 一级做a爰片久久毛片免费陪| 欧美丰满熟妇BBB久久久| 久久综合色区| 久久久久中文字幕| 久久天天躁夜夜躁狠狠| 国产精自产拍久久久久久蜜| 性色欲网站人妻丰满中文久久不卡| AV无码久久久久不卡网站下载| 尹人香蕉久久99天天拍| 国产精品VIDEOSSEX久久发布| 亚洲国产精品无码久久98| 一本色道久久88综合日韩精品 | 色婷婷久久久SWAG精品| 精品久久久久久成人AV| 99久久做夜夜爱天天做精品| 国产 亚洲 欧美 另类 久久| 久久久国产乱子伦精品作者| 久久婷婷五月综合色奶水99啪| 日韩欧美亚洲综合久久影院d3| 精品久久久久久亚洲精品| 欧美黑人激情性久久| 亚洲国产另类久久久精品黑人| 久久久久亚洲AV片无码下载蜜桃| 国产真实乱对白精彩久久| 久久久精品人妻一区二区三区蜜桃 | 青青草原精品99久久精品66| 久久久久一本毛久久久| 亚洲国产精品久久久久| 国产成人综合久久久久久 | 一极黄色视频久久网站| 亚洲国产精品嫩草影院久久| 午夜精品久久久久久影视777|