博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

几天的总结,CEdit,CListctl.......

Posted on 2008-09-26 20:01  浪端之渡鸟  阅读(1058)  评论(2编辑  收藏  举报

陆续,增加~

1. CListctl

插入clistctl:

 DWORD dwStyle =::GetWindowLong(m_List.m_hWnd,GWL_STYLE);
 SetWindowLong(m_List.m_hWnd,GWL_STYLE,dwStyle|LVS_REPORT);
 DWORD ExStyle =m_List.GetExtendedStyle();
 m_List.SetExtendedStyle(ExStyle|LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);

 m_List.InsertColumn(0,_T("流水ID"),LVCFMT_CENTER,strlen(_T("流水ID"))*20,0);
 m_List.InsertColumn(1,_T("车牌号"),LVCFMT_CENTER,strlen(_T("车牌号"))*20,0);
 m_List.InsertItem(0,"1");
 m_List.SetItemText(0,0,"123");
 m_List.SetItemText(0,1,"A-745158");

 2.获得点击CListctl行列与内容:

void CeditDlg::OnNMDblclkList1(NMHDR *pNMHDR, LRESULT *pResult)
{
 // TODO: 在此添加控件通知处理程序代码
 NM_LISTVIEW*   pNMListView   =   (NM_LISTVIEW*)pNMHDR;
 int  row = pNMListView->iItem;
 int  col = pNMListView->iSubItem;
 CString m_Text = m_List.GetItemText(row,col);
 *pResult = 0;
}

3.设置、获得CEdit的内容

假设有CEdit   m_edit;  
  CString   str;  
  m_edit.GetWindowText(str);  
  m_edit.SetWindowText(_T("this   is   a   test"));

或者:

GetDlgItem(IDC_EDIT1)->SetWindowText("sdfsa");  
  GetDlgItem(IDC_STATIC1)->SetWindowText("sdfsa");

以下继续。。。。

 

////////////////////////////////////////////////////

/////////////////////////////////////////////////////

1.设置cedit背景色

 需要添加消息函数:

HBRUSH CeditDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
 HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

 if(nCtlColor == CTLCOLOR_EDIT)
 {
  pDC->SetTextColor(RGB(0,0,255));//字体色
  pDC->SetBkColor(RGB(192, 192, 255));//字体背景色******
  HBRUSH B = CreateSolidBrush(RGB(192, 192, 255)); //背景色
  return B;
 }

 return hbr;
}

添加的过程 vs2005里是这样的,在消息里点击WM_CTLCOLOR,添加函数OnCtlColor,代码复制到函数里就可以。

 

2.将LictCtrl设为Edit的父窗口  
  m_cEdit.SetParent(&m_cListCtrl);

这可以解决,cedit当在listctrl上不能编辑的问题~