lengthinq.cpp
来自「一个长度信息管理系统。主要包含了界面编程和对文件操作。」· C++ 代码 · 共 393 行
CPP
393 行
// LengthInq.cpp : implementation file
//
#include "ComboListCtrl.h"
#include "stdafx.h"
#include "Measure.h"
#include "LengthInq.h"
#include "Afx.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#include "ComboListCtrl.h"
/////////////////////////////////////////////////////////////////////////////
// LengthInq dialog
LengthInq::LengthInq(CWnd* pParent /*=NULL*/)
: CBDialog(LengthInq::IDD, pParent)
{
m_editBrush.CreateSolidBrush(RGB(255,250,205));
m_brushslen.CreateSolidBrush(RGB(255,255,240));
//{{AFX_DATA_INIT(LengthInq)
//}}AFX_DATA_INIT
}
void LengthInq::DoDataExchange(CDataExchange* pDX)
{
CBDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(LengthInq)
DDX_Control(pDX, IDC_SHOWALL, m_showall);
DDX_Control(pDX, IDCANCEL, m_cancel);
DDX_Control(pDX, IDC_Retrieve, m_lengthretrieve);
DDX_Control(pDX, IDC_AreaRet, m_ok);
DDX_Control(pDX, IDC_DownBou, m_downb);
DDX_Control(pDX, IDC_UpBound, m_upb);
DDX_Control(pDX, IDC_Data, m_numvalue);
DDX_Control(pDX, IDC_LIST1, m_list1);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(LengthInq, CBDialog)
//{{AFX_MSG_MAP(LengthInq)
ON_BN_CLICKED(IDC_PutOut, OnPutOut)
ON_BN_CLICKED(IDC_Retrieve, OnRetrieve)
ON_BN_CLICKED(IDC_AreaRet, OnAreaRet)
ON_WM_COPYDATA()
ON_WM_CTLCOLOR()
ON_BN_CLICKED(IDC_SHOWALL, OnShowall)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// LengthInq message handlers
BOOL LengthInq::OnInitDialog()
{
CBDialog::OnInitDialog();
// TODO: Add extra initialization here
SetBitmapStyle(StyleStretch);
SetBitmap(IDB_BITMAP1);
m_brush.CreateSolidBrush(RGB(126,192,238 ));
m_brushfanwei.CreateSolidBrush(RGB(255,218,185));
m_brushlenview.CreateSolidBrush(RGB(255,218,185));
m_brushsup.CreateSolidBrush(RGB(255,218,185));
m_brushsdown.CreateSolidBrush(RGB(255,218,185));
//m_brushslen.CreateSolidBrush(RGB(255,218,185));
//m_ok.SetBitmap(LoadBitmap(AfxGetApp()->m_hInstance,MAKEINTRESOURCE(IDB_BITMAP9)));
m_cancel.LoadBitmaps(IDB_CSHUTNORMAL,IDB_CSHUTDOWN,IDB_CSHUTUP,IDB_PDISABLE);
m_cancel.SetToolTipText("退出");
m_ok.LoadBitmaps(IDB_COKNORMAL,IDB_COKDOWN,IDB_COKUP,IDB_PDISABLE);
m_ok.SetToolTipText("开始搜索");
m_lengthretrieve.LoadBitmaps(IDB_RESEACHNORMAL,IDB_RESEACHDOWN,IDB_RESEACHUP,IDB_PDISABLE);
m_lengthretrieve.SetToolTipText("开始检索");
m_showall.LoadBitmaps(IDB_BACKNORMAL,IDB_BACKDOWN,IDB_BACKUP,IDB_PDISABLE);
m_showall.SetToolTipText("显示输入的所有数据");
//m_lengthretrieve.SetBitmap(LoadBitmap(AfxGetApp()->m_hInstance,MAKEINTRESOURCE(IDB_BITMAP3)));
CString strValidChars = "0123456789.";
DWORD dw;
dw=m_list1.GetExtendedStyle();
dw|=LVS_EX_CHECKBOXES|LVS_EX_FULLROWSELECT |LVS_EX_GRIDLINES;
m_list1.SetExtendedStyle(dw);
m_list1.SetBkColor(RGB(0xec,0xf1,0xfd));
m_list1.SetTextBkColor(RGB(0xfe,0xFF,0xc6));
m_list1.SetValidEditCtrlCharacters(strValidChars);
m_list1.SetReadOnlyColumns(0);
m_list1.EnableVScroll();
m_list1.InsertColumn(0,"序号",LVCFMT_LEFT,50,100);
m_list1.InsertColumn(1,"长度值",LVCFMT_LEFT,200,100);
CString nItem,No;
double Data;
long Numb;
LPCCellBase PB;
CLength* PL;
CCellArray* PCellArray=g_SysApp.GetCellArray();
long max;
max=PCellArray->GetCount();
for(int i=0;i<max;i++)
{
PB=PCellArray->GetArrayItem(i);
PL=(CLength*)PB;
Numb=PL->GetNo();
Data=PL->GetLen();
nItem.Format("%.4lf",Data);
Numb=PB->GetNo();
//Numb1=Numb+1;
No.Format("%ld",Numb);
nItem.Format("%.4lf",Data);
m_list1.InsertItem(i,No);
m_list1.SetItemText(i,1,nItem);
}
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void LengthInq::OnPutOut()
{
// TODO: Add your control notification handler code here
CString fl1,s1,s2,str,strl;
//char str[20],strl[20];
fl1="my data.txt";
//char str[20];
//char *p1;
CString A=',';
CString B='\r';
CString C='\n';
CString D=';';
CCellArray* PCellArray=g_SysApp.GetCellArray();
long max;
max=PCellArray->GetCount();
CFileDialog dlg(false,NULL, fl1,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,NULL, NULL);
char cf[]="文本文件(*.txt)"; //过滤文件
dlg.m_ofn.lpstrFilter=cf; //在对话框中显示过滤的类型
int ir=dlg.DoModal(); //模态显示另存对话框
CString wjm=dlg.GetPathName(); //获取文件路径文件名全称
CFile fil; //声明一个文件类对象
if(ir=IDOK) //如果单击另存对话框打开
{
fil.Open(wjm,CFile::modeCreate|CFile::modeWrite);//打开文件
//用指向fil的指针创建
/* CArchive ar(&fil,CArchive::store);
for(int i=0;i<max;i++)
{
s1=m_list1.GetItemText(i,0);
s2=m_list1.GetItemText(i,1);
// p1=(LPSTR)(LPCTSTR) str;
//long len=s1.GetLength();
// for(long i=0;i<len;i++)
//{
// if(*p1!='\0')
// {
// str[i]=*p1;
// ar<<str[i];
// p1++;
// }
// }
ar<<s1;
ar<<A;
ar<<s2;
ar<<D;
ar<<B<<C;
//str[20].Empty();
//strl[20].Empty();
}
ar.Flush();
ar.Close();*/
for(int i=0;i<max;i++)
{
str=m_list1.GetItemText(i,0);
strl=m_list1.GetItemText(i,1);
fil.Write(str,str.GetLength());
fil.Write(A,1);
fil.Write(strl,strl.GetLength());
fil.Write(D,1);
fil.Write(B,1);
fil.Write(C,1);
}
}
fil.Close();
}
void LengthInq::OnRetrieve()
{
// TODO: Add your control notification handler code here
CString str1,str2;
long max;
m_numvalue.GetWindowText(str1);
max=m_list1.GetItemCount();
for(long i=0;i<max;i++)
{
str2=m_list1.GetItemText(i,1);
if(str2!=str1)
{
m_list1.DeleteItem(i);
i--;
max--;
}
}
}
void LengthInq::OnAreaRet()
{
// TODO: Add your control notification handler code here
CString str1,str2,strl1,strl2;
long s1,s2,sl1;
CString str1b,str2b;
char temp1[30],temp2[30],templ1[30];
long max;
max=m_list1.GetItemCount();
m_upb.GetWindowText(str1);
m_downb.GetWindowText(str2);
strcpy(temp1,str1);
strcpy(temp2,str2);
s1=atol(temp1);
s2=atol(temp2);
for(long i=0;i<max;i++)
{
strl1=m_list1.GetItemText(i,1);
strcpy(templ1,strl1);
sl1=atol(templ1);
if(sl1>s1||sl1<s2)
{
m_list1.DeleteItem(i);
i--;
max--;
}
}
}
BOOL LengthInq::OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct)
{
// TODO: Add your message handler code here and/or call default
return CDialog::OnCopyData(pWnd, pCopyDataStruct);
}
HBRUSH LengthInq::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: Change any attributes of the DC here
// TODO: Return a different brush if the default is not desired
if(pWnd->GetDlgCtrlID()==IDC_FANWEI_STATIC)
{
pDC->SetTextColor(RGB(0,0,255));
pDC->SetBkMode(TRANSPARENT);
return m_brushslen;
}
if(IDC_LENVIEW_STATIC==pWnd->GetDlgCtrlID())
{
pDC->SetTextColor(RGB(0,0,255));
pDC->SetBkMode(TRANSPARENT);
//return m_brushlenview;
}
if(IDC_UP==pWnd->GetDlgCtrlID())
{
pDC->SetTextColor(RGB(0,0,255));
pDC->SetBkMode(TRANSPARENT);
return m_brushslen;
}
if(IDC_DOWN==pWnd->GetDlgCtrlID())
{
pDC->SetTextColor(RGB(0,0,255));
pDC->SetBkMode(TRANSPARENT);
return m_brushslen;
}
if(IDC_DATALEN_STATIC==pWnd->GetDlgCtrlID())
{
CBrush br;
br.CreateStockObject(NULL_BRUSH);
pDC->SetTextColor(RGB(0,0,255));
pDC->SetBkMode(TRANSPARENT);
return br;
}
if(IDC_Data==pWnd->GetDlgCtrlID())
{
pDC->SetTextColor(RGB(65,105,225));
pDC->SetBkColor(RGB(255,250,205));
return m_editBrush;
}
if(IDC_UpBound==pWnd->GetDlgCtrlID())
{
pDC->SetTextColor(RGB(65,105,225));
pDC->SetBkColor(RGB(255,250,205));
return m_editBrush;
}
if(IDC_DownBou==pWnd->GetDlgCtrlID())
{
pDC->SetTextColor(RGB(65,105,225));
pDC->SetBkColor(RGB(255,250,205));
return m_editBrush;
}
return m_brush;
}
void LengthInq::OnShowall()
{
CString nItem,No;
double Data;
long Numb;
LPCCellBase PB;
CLength* PL;
CCellArray* PCellArray=g_SysApp.GetCellArray();
long max;
max=PCellArray->GetCount();
for(int i=0;i<max;i++)
{
PB=PCellArray->GetArrayItem(i);
PL=(CLength*)PB;
Numb=PL->GetNo();
Data=PL->GetLen();
nItem.Format("%.4lf",Data);
Numb=PB->GetNo();
No.Format("%ld",Numb);
nItem.Format("%.4lf",Data);
m_list1.InsertItem(i,No);
m_list1.SetItemText(i,1,nItem);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?