📄 listviewdlg.cpp
字号:
// ListViewDlg.cpp : implementation file
//
#include "stdafx.h"
#include "ListView.h"
#include "ListViewDlg.h"
#include "JWListCtrl.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CListViewDlg dialog
CListViewDlg::CListViewDlg(CWnd* pParent /*=NULL*/)
: CDialog(CListViewDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CListViewDlg)
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CListViewDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CListViewDlg)
DDX_Control(pDX, IDC_LISTBOX, m_listbox);
DDX_Control(pDX, IDC_LIST1, m_cListCtrl);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CListViewDlg, CDialog)
//{{AFX_MSG_MAP(CListViewDlg)
ON_WM_PAINT()
ON_WM_CANCELMODE()
ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
ON_WM_ACTIVATE()
ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
ON_BN_CLICKED(IDC_BUTTON3, OnButton3)
ON_WM_PALETTECHANGED()
ON_WM_QUERYNEWPALETTE()
ON_BN_CLICKED(IDC_BUTTON4, OnButton4)
ON_BN_CLICKED(IDC_BUTTON5, OnInitVScroll)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CListViewDlg message handlers
BOOL CListViewDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
CenterWindow(GetDesktopWindow()); // center to the hpc screen
/* m_cListCtrl.InsertColumn(1,L"zhang",LVCFMT_LEFT,50);
for(int j=0;j<30;j++)
{
int i;
i=m_cListCtrl.InsertItem(0,L"dfd");
}*/
m_cListCtrl.SetBkImage(IDB_IMAGES_BK);
// TODO: Add extra initialization here
DWORD dwStyle = m_cListCtrl.GetExtendedStyle();
dwStyle |= LVS_EX_FULLROWSELECT | LVS_ALIGNTOP | WS_HSCROLL ;
//DWORD dwStyle = m_cListCtrl.GetStyle();
//dwStyle &= ~0x0001;
::SetWindowLong(m_cListCtrl.m_hWnd, GWL_STYLE, dwStyle);
//::SetWindowLong( m_cListCtrl.GetSafeHwnd(), GWL_STYLE, WS_CHILD | WS_VISIBLE | WS_HSCROLL );
//m_cListCtrl.ShowScrollBar(TRUE);
//m_cListCtrl.SetBkColor( RGB(0,150,0) );
m_cListCtrl.SetExtendedStyle(dwStyle);
m_listbox.GetClientRect(&size1);
size2.right = size3.right= size1.right;
size2.bottom = size3.bottom = size1.bottom;
HBITMAP htempbmp;
m_listbox.m_bmp.LoadBitmap(IDB_BITMAP1);
hbmp = (HBITMAP )m_listbox.m_bmp.Detach();
htempbmp = GetSizeBITMAP(hbmp , size1.right,size1.bottom);
m_listbox.m_bmp.Attach(htempbmp);
m_listbox.AddString(_T("I like shanghai"));
m_listbox.AddString(_T("I like shanghai"));
m_listbox.AddString(L"I like shanghai");
// bmp.LoadBitmap(IDB_BITMAP1);
// hbmp2 =(HBITMAP ) bmp.Detach();
// hbmp2 = GetSizeBITMAP(hbmp2 , size1.right,size1.bottom);
m_listbox.Invalidate();
/*m_cListCtrl.InsertImgTextItems(IDB_IMAGES_NORMAL , 32, 32, 4,L"My Items1");
m_cListCtrl.InsertImgTextItems(IDB_IMAGES_NORMAL , 32 ,32, 3,L"My Items4");
m_cListCtrl.InsertImgTextItems(IDB_IMAGES_NORMAL , 32 ,32, 2,L"My Items3");
m_cListCtrl.InsertImgTextItems(IDB_IMAGES_NORMAL , 32, 32, 1,L"My Items2");
m_cListCtrl.InsertImgTextItems(IDB_IMAGES_NORMAL , 32, 32, 0,L"My Items1");*/
// m_cListCtrl.SetBkColor(RGB(0,150,0));
m_cListCtrl.SetBkColor(ILD_TRANSPARENT);
//m_cListCtrl.ModifyStyle(0,LVS_SINGLESEL);
//m_cListCtrl.ModifyStyle(0,LVS_NOSCROLL);
m_cListCtrl.SetTextBkColor(CLR_NONE);
m_cListCtrl.SetBkImage(IDB_IMAGES_BK);
// m_cListCtrl.ShowScrollBar( FALSE );
return TRUE; // return TRUE unless you set the focus to a control
}
void CListViewDlg::OnPaint()
{
CPaintDC dc(this); // device context for painting
if (IsIconic())
{
CPaintDC dc(this); // device context for painting
//SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
// Do not call CDialog::OnPaint() for painting messages
}
void CListViewDlg::OnCancelMode()
{
CDialog::OnCancelMode();
// TODO: Add your message handler code here
}
void CListViewDlg::OnButton1()
{
m_cListCtrl.InsertImgTextItems( IDB_IMAGES_NORMAL , 32 ,32,4,L"NewICON");
}
void CListViewDlg::OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized)
{
CDialog::OnActivate(nState, pWndOther, bMinimized);
}
void CListViewDlg::OnButton2()
{
newlist = new CJWListCtrl;
newlist->Create( WS_VISIBLE | LVS_REPORT | LVS_SINGLESEL |LVS_ALIGNTOP,
CRect(0,0,180,180), this , 1);
newlist->SetTextBkColor(CLR_NONE);
newlist->InsertColumn(0,L"",LVCFMT_LEFT,500);
newlist->SetBkImage(IDB_BITMAP3);
newlist->ModifyStyle(0, LVS_NOCOLUMNHEADER, 0);
//生成CImageList,并将其绑定到CListCtrl中,这是CImageList中还没有图标,只是一个容器
//newlist->InsertItem(0,L"aaaaaa",0);
//newlist->SetTextColor(RGB(255,255,255));
//.for(int j=0;j<5;j++)
{
newlist->InsertItem(0,L"有没有人告诉你");
newlist->InsertItem(1,L"长城长");
newlist->InsertItem(1,L"等你等到我心疼");
newlist->InsertItem(1,L"吻别");
newlist->InsertItem(1,L"当你孤单你会想起谁");
newlist->InsertItem(0,L"有没有人告诉你");
newlist->InsertItem(1,L"长城长");
newlist->InsertItem(1,L"等你等到我心疼");
newlist->InsertItem(1,L"吻别");
newlist->InsertItem(1,L"当你孤单你会想起谁");
}
/////////////////////////////////////////////////////
CImageList m_ImageList;
m_ImageList.Create(IDB_BITMAP2,20,20,RGB(0,0,0));
newlist->SetImageList(&m_ImageList,LVSIL_SMALL);
m_ImageList.Detach() ;
/*
newlist->SetImageList(&myImage, LVSIL_SMALL);
LVITEM item;
item.iImage = 0; // i为指定图标在ImageList中的序号
newlist->SetItem(&item);
*/
//newlist->InsertColumn(0,L"a",LVCFMT_LEFT,10);
newlist->SortItems(0, TRUE); // sort the 1st column, ascending
///重设listctrl的区域,目的就一个,去掉VSCroll。
/*CRgn rgn;
rgn.CreateRectRgn( 0, 0, 150, 150 );
newlist->SetWindowRgn( rgn, TRUE );
rgn.DeleteObject();*/
// 挖去listctrl自带的滚动条区域
HRGN rgn=CreateRectRgn(0,0, 160, 160 );
newlist->SetWindowRgn( rgn, TRUE);
//创建自己的scrollbar
newlist->InitVScroll();
//m_VertScrollbar.LoadMyBmp(IDB_VERTICLE_SCROLLBAR_UPARROW, IDB_VERTICLE_SCROLLBAR_SPAN, IDB_VERTICLE_SCROLLBAR_DOWNARROW, IDB_VERTICLE_SCROLLBAR_THUMB2);
//newlist->ShowScrollBar( FALSE );
newlist->SetBkImage(IDB_IMAGES_BK);
Invalidate();
//newlist->ModifyStyle(0,LVS_NOSCROLL);
//new
//list->ShowScrollBar( FALSE );
//newlist->ShowWindow(TRUE);
//InitializeFlatSB(newlist->m_hWnd);
//newlist->EnableScrollBar(newlist->m_hWnd, SB_BOTH, ESB_DISABLE_BOTH);
//newlist->EnableScrollBarCtrl(SB_HORZ,FALSE);
//newlist->EnableScrollBarCtrl(SB_VERT,FALSE);
/*CScrollBar * pBar = newlist->Get
ScrollBarCtrl(SB_VERT);//SB_VERT
if(pBar)
pBar->ShowWindow(SW_HIDE);*/
// newlist->InsertImgTextItems(IDB_IMAGES_NORMAL , 32 ,32, 5,L"New Items");
}
void CListViewDlg::OnButton3()
{
// if(newlist!=NULL)
// newlist->InsertImgTextItems(IDB_IMAGES_NORMAL , 32 ,32, 5,L"New Items");
//newlist->PositionScrollBars();
}
void CListViewDlg::OnPaletteChanged(CWnd* pFocusWnd)
{
CDialog::OnPaletteChanged(pFocusWnd);
m_cListCtrl.SendMessage( WM_PALETTECHANGED, (WPARAM)pFocusWnd->m_hWnd );
}
BOOL CListViewDlg::OnQueryNewPalette()
{
CDialog::OnQueryNewPalette();
return m_cListCtrl.SendMessage( WM_QUERYNEWPALETTE );
}
void CListViewDlg::OnButton4()
{
m_cListCtrl.LineDown();
}
void CListViewDlg::OnInitVScroll()
{
}
HBITMAP CListViewDlg::GetSizeBITMAP(HBITMAP hBitmap, int w, int h)
{
CDC sourceDC, destDC;
sourceDC.CreateCompatibleDC( NULL );
destDC.CreateCompatibleDC( NULL );
BITMAP bm;
::GetObject( hBitmap, sizeof( bm ), &bm );
HBITMAP hbmResult = ::CreateCompatibleBitmap(CClientDC(NULL), w, h);
HBITMAP hbmOldSource = (HBITMAP)::SelectObject( sourceDC.m_hDC, hBitmap );
HBITMAP hbmOldDest = (HBITMAP)::SelectObject( destDC.m_hDC, hbmResult );
destDC.BitBlt(0, 0, w, h, &sourceDC, 0, 0, SRCCOPY );
::SelectObject( sourceDC.m_hDC, hbmOldSource );
::SelectObject( destDC.m_hDC, hbmOldDest );
return hbmResult;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -