2016-07-01 6 views
-1

LVS_REPORTスタイルのWC_LISTVIEWを作成し、LVSIL_SMALLとLVSIL_STATE(またはLVS_EX_CHECKBOXES)を設定すると、画像リストと画像の高さが状態画像の高さよりも小さい - リストが正しく表示されない:Yが中心ではなく、状態イメージ、およびボトムライン(正確にはCY_state - CY_small)はゴミで埋められます。たとえば、高DPIディスプレイでは、LVS_EX_CHECKBOXESのListViewはCY_stateの場合20ピクセルの高さを使用し、15ピクセルの小さなアイコンの場合は〜次の画像(画像の左側)になります。状態画像を変更すると< = CY_smallが正常に表示されます(画像の右側) これは既知のバグですか?またはこれを解決する方法が存在する? enter image description hereこのListViewはバグですか?

答えて

0

はい、これはListViewのバグです。最新のwin10ビルドを含むすべてのWindowsバージョンに存在します。 'NOP'

のp-場合

int CLVView::ComputeCYItemSize() // this -> CLVReportView 
{ 
    // CListView* _pListView; 
    CLVImageListManager* p = _pListView->_pImageListManager; 
    ... 
    if (p->_himlState) 
    { 
     p->_cySmall = max(p->_cyState, p->_cySmall);// bug !! need remove this line 
    ... 
    } 
    ... 
} 

:ここでは関数内

バグ

int型CLVView :: ComputeCYItemSize()

は、次のコードを存在します> _cySmall = max(p→_ cyState、p→_ cySma LL)デバッガの下で

- すべては大丈夫作業を開始し、次のビューを持っている:

enter image description here

関連する問題