// gomokuView.cpp : CgomokuView クラスの実装 // #include "stdafx.h" #include "gomoku.h" #include "gomokuDoc.h" #include "gomokuView.h" #ifdef _DEBUG #define new DEBUG_NEW #endif // CgomokuView IMPLEMENT_DYNCREATE(CgomokuView, CView) BEGIN_MESSAGE_MAP(CgomokuView, CView) // 標準印刷コマンド ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint) ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint) ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview) ON_WM_SIZE() ON_WM_LBUTTONDOWN() ON_WM_MOUSEMOVE() ON_WM_KEYDOWN() END_MESSAGE_MAP() // CgomokuView コンストラクション/デストラクション CgomokuView::CgomokuView() { // TODO: 構築コードをここに追加します。 } CgomokuView::~CgomokuView() { } BOOL CgomokuView::PreCreateWindow(CREATESTRUCT& cs) { // TODO: この位置で CREATESTRUCT cs を修正して Window クラスまたはスタイルを // 修正してください。 return CView::PreCreateWindow(cs); } // CgomokuView 描画 #define xmoku 5 //x目並べ int win_xsize,win_ysize; int zahyou[19][19],ten,xx,yy,xx_2,yy_2; //zahyou[y][x] int ichi_x,ichi_y,ichi_x2,ichi_y2; bool gote,finish; void CgomokuView::OnDraw(CDC* pDC) { CgomokuDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: この場所にネイティブ データ用の描画コードを追加します。 CBitmap uragamen; uragamen.CreateCompatibleBitmap(pDC,win_xsize,win_ysize); CDC dc_ura; dc_ura.CreateCompatibleDC(pDC); dc_ura.SelectObject(&uragamen); dc_ura.FillSolidRect(0,0,win_xsize,win_ysize,RGB(255,222,177)); dc_ura.SetTextColor(RGB(205,172,127)); int a,b; for(b=0;bBitBlt(0,0,win_xsize,win_ysize,&dc_ura,0,0,SRCCOPY); dc_ura.DeleteDC(); } // CgomokuView 印刷 BOOL CgomokuView::OnPreparePrinting(CPrintInfo* pInfo) { // デフォルトの印刷準備 return DoPreparePrinting(pInfo); } void CgomokuView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) { // TODO: 印刷前の特別な初期化処理を追加してください。 } void CgomokuView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) { // TODO: 印刷後の後処理を追加してください。 } // CgomokuView 診断 #ifdef _DEBUG void CgomokuView::AssertValid() const { CView::AssertValid(); } void CgomokuView::Dump(CDumpContext& dc) const { CView::Dump(dc); } CgomokuDoc* CgomokuView::GetDocument() const // デバッグ以外のバージョンはインラインです。 { ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CgomokuDoc))); return (CgomokuDoc*)m_pDocument; } #endif //_DEBUG // CgomokuView メッセージ ハンドラ void CgomokuView::OnSize(UINT nType, int cx, int cy) { CView::OnSize(nType, cx, cy); // TODO : ここにメッセージ ハンドラ コードを追加します。 win_xsize=cx; win_ysize=cy; } void CgomokuView::OnLButtonDown(UINT nFlags, CPoint point) { // TODO : ここにメッセージ ハンドラ コードを追加するか、既定の処理を呼び出します。 if(finish==false){ int px=point.x; int py=point.y; int a,b; for(b=0;b<19;b++){ //y for(a=0;a<19;a++){ //x if(px>=win_xsize*a/19 && px=win_ysize*b/19 && py=win_xsize*a/19 && mx=win_ysize*b/19 && my