我用的主要是Report模式,当程序初始化后如何改变第一列的图片?原本那一列的数据内容等都不变只是换成另一个图片,我想模拟CheckBox.LVS_EX_CHECKBOXES属性就不用说了,这个我知道.我觉得默认每行高度太小了,所以想在前面插入一个图片来撑高高度,这样是实现,但是此时的CheckBox却显得太小了,而且还是底端对齐,比较难看.所以我想自己用图片来模拟.
希望大家指导一下,谢谢!!

解决方案 »

  1.   

    http://www.vckbase.com/document/viewdoc/?id=1855
    http://www.vckbase.com/document/viewdoc/?id=1819
      

  2.   

    如果几种风格要求不同, 要自画的,响应 NM_CUSTOMDRAW
      

  3.   

    自画太麻烦了,我想直接在每行第一列放置一张图片(CImageList共存储两张图片,一张时复选框未选中状态图片,一张是选中状态图片),通过LVITEM.state来标记是否选中。但我在改变state状态时好像是不成功的,不知为什么?请大家帮我看一下。
    void CTestDlg::OnDblclkList1(NMHDR* pNMHDR, LRESULT* pResult) 
    {
    // TODO: Add your control notification handler code here
        int nRow = ((NM_LISTVIEW *)pNMHDR)->iItem;
        int nCol = ((NM_LISTVIEW *)pNMHDR)->iSubItem;
        LVITEM lvItem = { 0 };    lvItem.iItem = nRow;
        lvItem.iSubItem = 0;
        lvItem.mask = LVIF_IMAGE | LVIF_STATE;
        m_listExchange.GetItem( &lvItem );
        if( FALSE == lvItem.state )
        {
            lvItem.iImage = 1;
            lvItem.state = 1;
        }
        else
        {
            lvItem.iImage = 0;
            lvItem.state = 0;
        }
        m_listExchange.SetItem( &lvItem ); *pResult = 1;
    }