天天看點

MFC中CListCtrl的GetColumn在debug下正常,release下出錯

問: 在對話框中使用ClistCtrl控件,view是Report

在初始化的時候加了幾列,并設定了列标題。

在Debug下編譯可以顯示列标題,在Release下編譯卻不能。

CListCtrl 
    *
    listControl
    =
    (CListCtrl 
    *
    )GetDlgItem(IDC_LIST);
    LVCOLUMN listColumnTemp;
    CString columnTextTemp;
    columnTextTemp
    =
    _T(
    "
    Variable Name
    "
    );
    listColumnTemp.pszText
    =
    columnTextTemp.GetBuffer();
    listColumnTemp.mask
    =
    listColumnTemp.mask
    |
    LVCF_WIDTH
    |
    LVCF_FMT;
    listColumnTemp.fmt
    =
    LVCFMT_CENTER;
    listColumnTemp.cx
    =
    100
    ;
    listControl
    ->
    InsertColumn(
    0
    ,
    &
    listColumnTemp);

    listColumnTemp.cx
    =
    80
    ;
    columnTextTemp
    =
    _T(
    "
    MIN
    "
    );
    listColumnTemp.pszText
    =
    columnTextTemp.GetBuffer();
    listControl
    ->
    InsertColumn(
    1
    ,
    &
    listColumnTemp);

    columnTextTemp
    =
    _T(
    "
    MAX
    "
    );
    listColumnTemp.pszText
    =
    columnTextTemp.GetBuffer();
    listControl
    ->
    InsertColumn(
    2
    ,
    &
    listColumnTemp);

    columnTextTemp
    =
    _T(
    "
    CONTOURS
    "
    );
    listColumnTemp.pszText
    =
    columnTextTemp.GetBuffer();
    listControl
    ->
    InsertColumn(
    3
    ,
    &
    listColumnTemp);

    listControl
    ->
    SetExtendedStyle(listControl
    ->
    GetExtendedStyle()
    |
    LVS_EX_FULLROWSELECT );
         
答:
 
 
  你沒有設定LVCF_TEXT,将mask設定改為:
 
 
 
                listColumnTemp.mask=listColumnTemp.mask|LVCF_WIDTH|LVCF_FMT|LVCF_TEXT