📄 studydlg.cpp
字号:
#include "stdafx.h"
#include "Sieger.h"
#include "StudyDlg.h"
IMPLEMENT_DYNAMIC(CStudyDlg, CDialog)
CStudyDlg::CStudyDlg(CWnd* pParent /*=NULL*/)
: CDialog(CStudyDlg::IDD, pParent)
, formID(_T("1"))
, remark(_T(""))
, formScore(_T(""))
{
m_pBlackBrush = new CBrush;
m_pWhiteBrush = new CBrush;
m_pBlackBrush->CreateSolidBrush(0);
m_pWhiteBrush->CreateSolidBrush(0xffffff);
stepnum=0;
steps.RemoveAll();
}
CStudyDlg::~CStudyDlg()
{
delete m_pBlackBrush;
delete m_pWhiteBrush;
}
void CStudyDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Text(pDX, IDC_ID, formID);
DDX_Text(pDX, IDC_REMARK, remark);
DDV_MaxChars(pDX, remark, 255);
DDX_CBString(pDX, IDC_Value, formScore);
DDV_MaxChars(pDX, formScore, 1);
}
BEGIN_MESSAGE_MAP(CStudyDlg, CDialog)
ON_WM_PAINT()
/*
ON_BN_CLICKED(IDC_GetForm, OnBnClickedGetform)
ON_WM_LBUTTONDOWN()
ON_BN_CLICKED(IDC_BUTTON_PREV, OnBnClickedButtonPrev)
ON_BN_CLICKED(IDC_BUTTON_NEXT, OnBnClickedButtonNext)
ON_BN_CLICKED(IDC_SetScore, OnBnClickedSetscore)
ON_BN_CLICKED(IDC_SetRemark, OnBnClickedSetremark)
ON_WM_RBUTTONDOWN()
*/
END_MESSAGE_MAP()
// CStudyDlg 消息处理程序
void CStudyDlg::OnPaint()
{
//创建内存作图环境
CPaintDC dc(this);
CDC MemDC;
MemDC.CreateCompatibleDC(NULL);
CBitmap MemBitmap;
MemBitmap.CreateCompatibleBitmap(&dc,400,400);
MemDC.SelectObject(&MemBitmap);
//画蓝色背景
MemDC.FillSolidRect(0,0,400,400,0xff9999);
//画棋盘边框
CRect rect(19,19,382,382);
MemDC.FrameRect(&rect,m_pBlackBrush);
//画棋盘纵横线
for(int i=1;i<20;i++)
{
MemDC.MoveTo(20,i*20);
MemDC.LineTo(380,i*20);
MemDC.MoveTo(i*20,20);
MemDC.LineTo(i*20,380);
}
//画星
MemDC.SelectObject(m_pBlackBrush);
for(i=0;i<9;i++)
{
MemDC.Ellipse(i%3*120+75,i/3*120+75,i%3*120+85,i/3*120+85);
}
//画棋子
for(i=0;i<361;i++)
{
if(Board.pHolder[i])
{
if(Board.pHolder[i]->nColor==BLACK)MemDC.SelectObject(m_pBlackBrush);
else MemDC.SelectObject(m_pWhiteBrush);
MemDC.Ellipse(i%19*20+10,i/19*20+10,i%19*20+30,i/19*20+30);
}
}
//拷贝到显示设备并清除内存草稿
dc.BitBlt(0,0,400,400,&MemDC,0,0,SRCCOPY);
MemBitmap.DeleteObject();
MemDC.DeleteDC();
}
/*
void CStudyDlg::OnBnClickedGetform()
{
UpdateData(TRUE);
if(!pDB->IsOpen())pDB->Open("ds.mdb");
CDaoRecordset rs(pDB);
CString str="select * from DS where ID=";
str+=formID;
rs.Open(dbOpenDynaset,str);
COleVariant var;
var=rs.GetFieldValue("steps");
str=var.pbVal;
var=rs.GetFieldValue("remark");
remark=var.pbVal;
var=rs.GetFieldValue("score");
formScore=var.pbVal;
UpdateData(FALSE);
rs.Close();
int i=str.GetLength();
stepnum=i/2;
steps.RemoveAll();
char c;
int n;
int j=0;
for(i=0;i<stepnum;i++)
{
c=str[i*2+1];
n=c;
n=n-'A';
n=n*19;
c=str[i*2];
n=n+c-'A';
if(n>361){n=300-j;j++;}
steps.Add(n);
}
Board.Reset();
for(i=0;i<stepnum;i++)Board.Go(steps[i]);
Invalidate(FALSE);
}
void CStudyDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
Board.Reset();
if(stepnum<steps.GetCount())stepnum++;
for(int i=0;i<stepnum;i++)Board.Go(steps[i]);
Invalidate(FALSE);
CDialog::OnLButtonDown(nFlags, point);
}
void CStudyDlg::OnRButtonDown(UINT nFlags, CPoint point)
{
Board.Reset();
if(stepnum>0)stepnum--;
for(int i=0;i<stepnum;i++)Board.Go(steps[i]);
Invalidate(FALSE);
CDialog::OnRButtonDown(nFlags, point);
}
void CStudyDlg::OnBnClickedButtonPrev()
{
int num=atoi(formID.GetBuffer());
if(num>1)
{
num--;
formID.Format("%d",num);
UpdateData(FALSE);
OnBnClickedGetform();
}
}
void CStudyDlg::OnBnClickedButtonNext()
{
int num=atoi(formID.GetBuffer());
if(num<2404)
{
num++;
formID.Format("%d",num);
UpdateData(FALSE);
OnBnClickedGetform();
}
}
void CStudyDlg::OnBnClickedSetscore()
{
UpdateData(TRUE);
CDaoRecordset rs(pDB);
CString str="select * from DS where ID=";
str+=formID;
rs.Open(dbOpenDynaset,str);
rs.Edit();
rs.SetFieldValue("score",formScore.GetBuffer());
rs.Update();
rs.Close();
}
void CStudyDlg::OnBnClickedSetremark()
{
UpdateData(TRUE);
CDaoRecordset rs(pDB);
CString str="select * from DS where ID=";
str+=formID;
rs.Open(dbOpenDynaset,str);
rs.Edit();
rs.SetFieldValue("remark",remark.GetBuffer());
rs.Update();
rs.Close();
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -