在MFC中,設置ComboBox控件中下拉列表的高度

在MFC中,如何設置組合框ComboBox控件下拉列表的高度
方法一:(只適用於靜態創建)
如果是從MFC資源框中拖放下拉控件,那麼可以單擊下拉框的向下箭頭,調整彈出的虛線框,就可以實現了。

方法二:(只適用於動態創建)
在動態創建下拉控件的Create函數中,RECT變量的高度Height設置大些,下拉列表的高度 = Height - ComboBox控件的高度

方法三:(適用於動態創建、靜態創建)
捕獲下拉控件的CBN_DROPDOWN消息,然後通過MoveWindow或SetWindowPos函數,可以實時修改下拉列表的高度

說明:
用系統API MoveWindow、SetWindowPos,這個函數對ComboBox改變大小操作時改變的不是編輯框大小,而是下拉列表的大小

方法三對應的實例如下:
void CA13Box::OnDropdown() 
{
    //CA13Box爲CComboBox的子類

    //設置下拉框的高度
    CRect rc;
    //如果是在主對話框中,可以使用 GetDlgItem(IDC_COMBO)->GetClientRect(&rc); 獲取控件的大小
    GetClientRect(&rc); 
    //SetWindowPos函數裏面,第五個參數中的100,就表示下拉列表顯示的高度
    SetWindowPos(NULL, 0, 0, rc.Width(), rc.Height()+100, SWP_NOZORDER|SWP_NOMOVE|SWP_SHOWWINDOW);
}

可以參考代碼:http://download.csdn.net/detail/youyongyoumou/8772833
發佈了31 篇原創文章 · 獲贊 16 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章