⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 listctrlpage.cpp

📁 这是一个用MFC做的选题系统
💻 CPP
字号:
// ListCtrlPage.cpp : implementation file
//

#include "stdafx.h"
#include "选题系统.h"
#include "ListCtrlPage.h"
#include "ResultSheet.h"
#include "选题系统Dlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CListCtrlPage property page

IMPLEMENT_DYNCREATE(CListCtrlPage, CPropertyPage)

CListCtrlPage::CListCtrlPage() : CPropertyPage(CListCtrlPage::IDD)
{
	//{{AFX_DATA_INIT(CListCtrlPage)
	m_fangshi = 3;
	//}}AFX_DATA_INIT
}

CListCtrlPage::~CListCtrlPage()
{
}

void CListCtrlPage::DoDataExchange(CDataExchange* pDX)
{
	CPropertyPage::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CListCtrlPage)
	DDX_Control(pDX, IDC_LIST1, m_result);
	DDX_Radio(pDX, IDC_RADIO1, m_fangshi);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CListCtrlPage, CPropertyPage)
	//{{AFX_MSG_MAP(CListCtrlPage)
	ON_BN_CLICKED(IDC_RADIO1, OnBigIcon)
	ON_BN_CLICKED(IDC_RADIO2, OnSmallIcon)
	ON_BN_CLICKED(IDC_RADIO3, OnList)
	ON_BN_CLICKED(IDC_RADIO4, OnReport)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CListCtrlPage message handlers

BOOL CListCtrlPage::OnInitDialog() 
{
	CPropertyPage::OnInitDialog();
	
	// TODO: Add extra initialization here
		
	 int i,iPos;
     CMyApp *pApp=(CMyApp *)AfxGetApp();//创建图象列表
    smallimage.Create(16,16,TRUE,10,10);
	smallimage.Add(pApp->LoadIcon(IDI_ICON1));
	smallimage.Add(pApp->LoadIcon(IDI_ICON2));
	smallimage.Add(pApp->LoadIcon(IDI_ICON3));
	smallimage.Add(pApp->LoadIcon(IDI_ICON4));
	smallimage.Add(pApp->LoadIcon(IDI_ICON5));
	smallimage.Add(pApp->LoadIcon(IDI_ICON6));
	smallimage.Add(pApp->LoadIcon(IDI_ICON7));
	smallimage.Add(pApp->LoadIcon(IDI_ICON8));
	smallimage.Add(pApp->LoadIcon(IDI_ICON9));
	smallimage.Add(pApp->LoadIcon(IDI_ICON10));
	m_result.SetImageList(&smallimage,LVSIL_SMALL);
	bigimage.Create(32,32,TRUE,10,10);
	bigimage.Add(pApp->LoadIcon(IDI_ICON1));
	bigimage.Add(pApp->LoadIcon(IDI_ICON2));
	bigimage.Add(pApp->LoadIcon(IDI_ICON3));
	bigimage.Add(pApp->LoadIcon(IDI_ICON4));
	bigimage.Add(pApp->LoadIcon(IDI_ICON5));
	bigimage.Add(pApp->LoadIcon(IDI_ICON6));
	bigimage.Add(pApp->LoadIcon(IDI_ICON7));
	bigimage.Add(pApp->LoadIcon(IDI_ICON8));
	bigimage.Add(pApp->LoadIcon(IDI_ICON9));
	bigimage.Add(pApp->LoadIcon(IDI_ICON10));
	m_result.SetImageList(&bigimage,LVSIL_NORMAL);
	LV_ITEM lvitem;
    LV_COLUMN lvcol;
	lvcol.mask=LVCF_FMT|LVCF_SUBITEM|LVCF_TEXT|LVCF_WIDTH;
    lvcol.fmt=LVCFMT_LEFT;
    i=0;
	lvcol.pszText="题号 ";
    lvcol.iSubItem=i;
    lvcol.cx=70;
    m_result.InsertColumn(i++,&lvcol);
    lvcol.pszText="学号";
    lvcol.iSubItem=i;
    lvcol.cx=100;

    m_result.InsertColumn(i++,&lvcol);
    lvcol.pszText="姓名";
    lvcol.iSubItem=i;
    lvcol.cx=80;
   m_result.InsertColumn(i++,&lvcol);    
  
	CResultSheet *parent1=(CResultSheet *)GetParent();
    CMyDlg *parent= (CMyDlg *)parent1->GetParent();
	int num=parent->resultmap.GetCount ();
	CString  name,xuehao;
	int timu;
	POSITION ps;
	char buf[3];
	ps=parent->resultmap.GetStartPosition ();
	for(int j=0;j<num;j++)
	{
		parent->resultmap .GetNextAssoc (ps,xuehao,timu);
		parent->xueshengrecord .Lookup (xuehao,name);
		lvitem.mask=LVIF_TEXT|LVIF_IMAGE;
		lvitem.iItem=j;
		lvitem.iSubItem=0;
		sprintf(buf,"%d",timu);
	    lvitem.pszText=buf;
		lvitem.iImage=timu-1;
		iPos=m_result.InsertItem(&lvitem);
		lvitem.mask=LVIF_TEXT;
		lvitem.iSubItem=1;
		lvitem.iItem=iPos;
		lvitem.pszText=xuehao.GetBuffer (xuehao.GetLength ()+1);
		m_result.SetItem (&lvitem);
		lvitem.iSubItem=2;
		lvitem.pszText=name.GetBuffer (name.GetLength ()+1);
		m_result.SetItem(&lvitem);		
	}


	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CListCtrlPage::OnBigIcon() 
{
	// TODO: Add your control notification handler code here
	LONG lStyle;
	lStyle=GetWindowLong(m_result.m_hWnd,GWL_STYLE);//获取当前窗口类型
	lStyle&=~LVS_TYPEMASK;	//清除显示方式位
	lStyle|=LVS_ICON;       //设置显示方式
	SetWindowLong(m_result.m_hWnd,GWL_STYLE,lStyle);//设置窗口类型
}

void CListCtrlPage::OnSmallIcon() 
{
	LONG lStyle;
	lStyle=GetWindowLong(m_result.m_hWnd,GWL_STYLE);//获取当前窗口类型
	lStyle&=~LVS_TYPEMASK;	//清除显示方式位
	lStyle|=LVS_SMALLICON;       //设置显示方式
	SetWindowLong(m_result.m_hWnd,GWL_STYLE,lStyle);//设置窗口类型
	// TODO: Add your control notification handler code here
	
}

void CListCtrlPage::OnList() 
{
	// TODO: Add your control notification handler code here
	LONG lStyle;
	lStyle=GetWindowLong(m_result.m_hWnd,GWL_STYLE);//获取当前窗口类型
	lStyle&=~LVS_TYPEMASK;	//清除显示方式位
	lStyle|=LVS_LIST;       //设置显示方式
	SetWindowLong(m_result.m_hWnd,GWL_STYLE,lStyle);//设置窗口类型
}

void CListCtrlPage::OnReport() 
{
	// TODO: Add your control notification handler code here
	LONG lStyle;
	lStyle=GetWindowLong(m_result.m_hWnd,GWL_STYLE);//获取当前窗口类型
	lStyle&=~LVS_TYPEMASK;	//清除显示方式位
	lStyle|=LVS_REPORT;       //设置显示方式
	SetWindowLong(m_result.m_hWnd,GWL_STYLE,lStyle);//设置窗口类型
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -