• MFC list control 设置行高


    参考:

    CMFCListCtrl控件使用

    方法是行里插入一个1像素宽的icon

    修改标题的方法是修改控件的字体

    代码的效果是这样的

    1.新建一个MFC类CMyListCtrl,继承自CListCtrl

    MyListCtrl.h

     1 #pragma once
     2 
     3 
     4 // CMyListCtrl
     5 
     6 class CMyListCtrl : public CListCtrl
     7 {
     8     DECLARE_DYNAMIC(CMyListCtrl)
     9 
    10 public:
    11     CMyListCtrl();
    12     virtual ~CMyListCtrl();
    13 
    14     int m_nRowHeight;
    15 
    16 protected:
    17     DECLARE_MESSAGE_MAP()
    18 public:
    19     void SetRowHeigt(int);
    20     void AutoColumn(void);
    21 };

    MyListCtrl.cpp

     1 // MyListCtrl.cpp : 实现文件
     2 //
     3 
     4 #include "stdafx.h"
     5 #include "MyListCtrl.h"
     6 
     7 
     8 // CMyListCtrl
     9 
    10 IMPLEMENT_DYNAMIC(CMyListCtrl, CListCtrl)
    11 
    12 CMyListCtrl::CMyListCtrl()
    13 {
    14 
    15 }
    16 
    17 CMyListCtrl::~CMyListCtrl()
    18 {
    19 }
    20 
    21 
    22 BEGIN_MESSAGE_MAP(CMyListCtrl, CListCtrl)
    23 END_MESSAGE_MAP()
    24 
    25 //取巧方法设置行高,只要这一个函数就行了
    26 void CMyListCtrl::SetRowHeigt(int nHeight)
    27 {
    28     CImageList im;
    29     im.Create(1, nHeight, ILC_COLOR4, 10, 10);
    30     SetImageList(&im, LVSIL_SMALL);
    31 }
    32 
    33 //调整最后一列的宽度是剩余宽度
    34 void CMyListCtrl::AutoColumn(void)
    35 {
    36     CRect xRect;
    37     int nLastColumnWidth = 0;
    38     int nColumnNum = 0;
    39 
    40     GetClientRect(&xRect);//OleControl的
    41     nLastColumnWidth = xRect.Width();
    42     nColumnNum = GetHeaderCtrl()->GetItemCount();
    43 
    44     for (int i = 0; i < nColumnNum - 1; i++)
    45         nLastColumnWidth = nLastColumnWidth - GetColumnWidth(i);
    46     SetColumnWidth(nColumnNum - 1, nLastColumnWidth);
    47 }

    2.将控件变量的类型改成自己的类   m_listFont要声明和释放  cFont m_listFont;

    3.在OnInitDialog添加代码

     1     m_listFont.CreatePointFont(200, _T("宋体"));
     2     m_list.SetFont(&m_listFont);
     3 
     4     DWORD dwStyle = m_list.GetExtendedStyle();
     5     dwStyle = dwStyle | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_CHECKBOXES;
     6     //LVS_EX_HEADERDRAGDROP | LVS_EX_SUBITEMIMAGES;
     7     //选择整行 | 绘制表格 | 复选框 | 项目头可拖拽 | 图标列表
     8     m_list.SetExtendedStyle(dwStyle);
     9     m_list.SetRowHeigt(70);
    10     m_list.InsertColumn(0, _T("1234"), LVCFMT_LEFT, 200);
    11     m_list.InsertColumn(1, _T("ABCD"), LVCFMT_LEFT, 200);
    12     m_list.AutoColumn();
    13 
    14     m_list.InsertItem(0, _T("111"));
    15     m_list.SetItemText(0, 1, _T("QQQ"));
    16     m_list.SetCheck(0, 1);//选中
    17     m_list.InsertItem(1, _T("222"));
    18     m_list.SetItemText(1, 1, _T("WWW"));
  • 相关阅读:
    c3p0使用
    连接池介绍
    内存角度探寻C++面向对象 之 继承、多态
    java多线程总结
    SQL关联查询总结
    java内存管理总结
    自制操作系统 (六) 分割编译与中断处理
    C++内联函数
    C++函数指针
    springmvc下实现登录验证码功能
  • 原文地址:https://www.cnblogs.com/ckrgd/p/14135406.html
Copyright © 2020-2023  润新知