MFC中list control控件设置

 
vs2008,MFC编程
界面控件,list control、edit control、button control、IP control
添加控件后可在属性中更改ID与名称,双击可自动生成控件通知处理程序成员函数。使用时,首先应定义变量,并与控件关联:
CString   m_text;
CListCtrl  m_list;
CIPAddressCtrl  m_IPAddressCtrl;
在DoDataExchange(CDataExchange* pDX)中设置关联
DDX_Text(pDX, IDC_EDITCONTRL, m_text);//当前已打开视频数--m_strnumber
DDX_Control(pDX, IDC_LIST,m_list);//list
DDX_Control(pDX, IDC_IPADDRESS, m_IPAddressCtrl);
然后就可以进行一些操作了
1、edit control
int i=100;
m_text.Format("%d",i);//显示
UpdateData(FALSE);

UpdateData(true); CString s; s=m_text .GetString();//输入字符串
/**************************/
2、IP control
UpdateData(true);
unsigned char *pIP; DWORD dwIP; m_IPAddressCtrl.GetAddress(dwIP); prIP = (unsigned char*)&dwrIP;
CString IP; IP.Format("%u.%u.%u.%u",*(pCenterIP+3),*(pCenterIP+2),*(pCenterIP+1),*pCenterIP);

3、list control

    //设置list control风格
     DWORD dwStyle = m_list.GetExtendedStyle();
     dwStyle |= LVS_EX_FULLROWSELECT;//选中某行使整行高亮(只适用与report风格的listctrl)
     dwStyle |= LVS_EX_GRIDLINES;//网格线(只适用与report风格的listctrl)
     dwStyle |= LVS_EX_CHECKBOXES;//item前生成checkbox控件
     m_list.SetExtendedStyle(dwStyle); //设置扩展风格

//插入表头
m_list.InsertColumn(0, _T("序号"), LVCFMT_LEFT, 70 );//添加列,用于显示序号
m_list.InsertColumn(2,_T("IP"),LVCFMT_LEFT,150);//添加列用于显示IP地址
//插入行—数据项
m_list.InsertItem(i, _T(""));     //每一行的开始使用此函数。
m_list.SetItemText(i ,2 , Current IP);//显示当前“IP地址”

//删除所有数据

m_list.DeleteAllItems();


//利用NM_CUSTOMDRAW还可以对指定行重绘
定义方法:
afx_msg void OnCustomdrawMyList(NMHDR *pNMHDR, LRESULT *pResult);
设置关联(BEGIN_MESSAGE_MAP中):
ON_NOTIFY(NM_CUSTOMDRAW, IDC_LIST, &CMyDlg::OnCustomdrawMyList)
实现代码:

void CMyDlg::OnCustomdrawMyList(NMHDR *pNMHDR, LRESULT *pResult)
{

NMLVCUSTOMDRAW* pLVCD = reinterpret_cast<NMLVCUSTOMDRAW*>( pNMHDR );
 
*pResult = CDRF_DODEFAULT;
if ( CDDS_PREPAINT == pLVCD->nmcd.dwDrawStage )
{
*pResult = CDRF_NOTIFYITEMDRAW;
}

else if ( CDDS_ITEMPREPAINT == pLVCD->nmcd.dwDrawStage )
{
if ( repaint )
{
COLORREF crText;

crText = RGB(255,0,0);  
pLVCD->clrText = crText;}
*pResult = CDRF_DODEFAULT;
}

}
//然后可以在需要的地方设置标志repaint,并重绘某些行
repaint=true;m_list.RedrawItems(i, i); UpdateWindow();
这样第i行就被重绘成红色。

/*************************************************************************************/
BEGIN_MESSAGE_MAP(CMyDlg, CDialog)
///
//
//
END_MESSAGE_MAP()
中设置关联控件通知处理函数与控件ID,这样,控件相关状态改变就能出发相应程序,比如:
ON_BN_CLICKED(IDCANCEL, &CMyDlg::OnBnClickedCancel)
当按下ID号为 IDCANCEL的button时,就触发 CMyDlg::OnBnClickedCancel()这个函数。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值