void CTreepadView::OnFileSaveAs() { if (!tree.size()) { return; } BOOL isOpen = FALSE; CString defaultDir = L"D:\\Treepad\\Iteration"; CString filter = L"PNG File (*.png)||"; CString fileName = L"image1.png"; //默认打开的文件名 CFileDialog openFileDlg(isOpen, L"png", fileName, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, filter, NULL); INT_PTR result = openFileDlg.DoModal(); CString filePath = defaultDir + "\\" + fileName; if (result == IDOK) { filePath = openFileDlg.GetPathName(); CRect rcBk; GetClientRect(&rcBk); CDC* pDC = GetDC(); CImage Image; Image.Create(rcBk.Width(), rcBk.Height(), 24); ::BitBlt(Image.GetDC(), 0, 0, rcBk.Width(), rcBk.Height(), pDC->m_hDC, 0, 0, SRCCOPY); Image.Save(filePath); Image.ReleaseDC(); Image.Destroy(); } // TODO: 在此添加命令处理程序代码 }
void CTreepadView::OnFileOpen() { BOOL isOpen = TRUE; CString defaultDir = L"D:\\Treepad\\Iteration"; CString filter = L"Treepad File (*.tpf)||"; CString fileName = L"file1.tpf"; CFileDialog openFileDlg(isOpen, L"tpf", fileName, OFN_HIDEREADONLY | OFN_READONLY, filter, NULL); INT_PTR result = openFileDlg.DoModal(); if (result == IDOK) { CClientDC dc(this); CBranch_Ser b(0,0,0,0); CString filePath = openFileDlg.GetPathName(); CFile myFile(filePath, CFile::modeRead); myFile.SeekToBegin(); CArchive arLoad(&myFile, CArchive::load); CBranch_Ser* t = (CBranch_Ser*)arLoad.ReadObject(RUNTIME_CLASS(CBranch_Ser)); tree = Trunk(CPoint(t->x1, t->y1), CPoint(t->x2, t->y2)); for (int i = 0; i < t->num; ++i) { CBranch_Ser* p = (CBranch_Ser*)arLoad.ReadObject(RUNTIME_CLASS(CBranch_Ser)); str.Format(L"x=%d y=%d", p->x1, p->y1); tree.addBranch(Branch(CPoint(p->x1, p->y1), CPoint(p->x2, p->y2))); } arLoad.Close(); statu = MOVE_STATU; InvalidateRect(NULL); } // TODO: 在此添加命令处理程序代码 }
void CTreepadView::OnFileSave() { if (!tree.size()) { return; } BOOL isOpen = FALSE; CString defaultDir = L"D:\\Treepad\\Iteration"; CString filter = L"Treepad File (*.tpf)||"; CString fileName = L"file1.tpf"; //默认打开的文件名 CFileDialog openFileDlg(isOpen, L"tpf", fileName, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, filter, NULL); INT_PTR result = openFileDlg.DoModal(); CString filePath = defaultDir + "\\" + fileName; if (result == IDOK) { filePath = openFileDlg.GetPathName(); } tree.updateBranch(); CBranch_Ser c(tree.getStart().x, tree.getStart().y, tree.getEnd().x, tree.getEnd().y,tree.size()); CFile myFile(filePath, CFile::modeCreate | CFile::modeWrite); CArchive arStore(&myFile, CArchive::store); arStore.WriteObject(&c); for (UINT i = 0; i < tree.size(); ++i) { CBranch_Ser *d=new CBranch_Ser(tree[i].getStart().x, tree[i].getStart().y, tree[i].getEnd().x, tree[i].getEnd().y); arStore.WriteObject(d); } arStore.Flush(); arStore.Close(); // TODO: 在此添加命令处理程序代码 }
void CShaderDialog::OnBnClickedLoadshader() { // TODO: Add your control notification handler code here CFileDialog openFileDlg(true,0,0,OFN_OVERWRITEPROMPT,mT("Shader Files |*.xml||")); int iRet=openFileDlg.DoModal(); if(iRet==IDOK) { //gShaderResourceManager.loadShader(openFileDlg.GetPathName().GetString()); RefreshList(); } }
void CSQLiteTestDlg::OnBnClickedOpen() { OnBnClickedClose(); CFileDialog openFileDlg(true, "sqlite", NULL, OFN_FILEMUSTEXIST | OFN_HIDEREADONLY, "SQLite Database (.sqlite)|*.sqlite||"); if (openFileDlg.DoModal() != IDCANCEL) { m_path = openFileDlg.GetPathName(); if (m_cars.Open(m_path)) { m_file_open = true; GoSort(); Update(); } } }
void CSQLiteTestDlg::OnBnClickedNew() { OnBnClickedClose(); CFileDialog openFileDlg(false, "sqlite", NULL, OFN_OVERWRITEPROMPT | OFN_HIDEREADONLY | OFN_PATHMUSTEXIST, "SQLite Database (.sqlite)|*.sqlite||"); if (openFileDlg.DoModal() != IDCANCEL) { m_path = openFileDlg.GetPathName(); if (m_cars.Create(m_path)) { m_file_open = true; Update(); LoadList(); } } }
void CChildView::OnOpenSm() { // TODO: 在此添加命令处理程序代码 char chFileName[MAX_PATH]; GetCurrentDirectory( MAX_PATH, chFileName); CString strDir; strDir.Format( "%s/map/", chFileName ); TCHAR szFilter[] = _T("地图文件(*.sm)|*.sm|所有文件(*.*)|*.*||"); CFileDialog openFileDlg( TRUE, _T("sm"), NULL, OFN_HIDEREADONLY | OFN_READONLY | OFN_NOCHANGEDIR, szFilter, this ); openFileDlg.GetOFN().lpstrInitialDir = strDir; if( openFileDlg.DoModal() == IDOK ) { CString strFilePath = openFileDlg.GetPathName(); strFilePath.Delete( 0, strlen( chFileName ) + 1 ); openSeamlessMap( strFilePath ); } }
//------------------------------------------------------------------ LRESULT CALLBACK WndMainProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { int i, notif; Tsquare *t; switch(message){ case WM_PAINT: { static PAINTSTRUCT ps; BeginPaint(hWnd, &ps); paint(ps.hdc, &ps.rcPaint); EndPaint(hWnd, &ps); } break; case WM_LBUTTONDOWN: lbutton(lParam); break; case WM_RBUTTONDOWN: rbutton(lParam); break; case WM_LBUTTONUP: if(inserting){ ReleaseCapture(); inserting=false; insertGroup(); resetSolution(); } break; case WM_MOUSEMOVE: if(inserting){ t= hitTest(lParam); if(t && t!=insSquares[insLen-1] && insLen<Nsymbol){ insSquares[insLen++]=t; } } #ifdef _DEBUGM mousemove(lParam); #endif break; case WM_TIMER: if(!IsIconic(hWin)){ playtime++; statusTime(); checkShowErr(false); } break; case WM_KEYDOWN: key(wParam); break; case WM_GETMINMAXINFO: { LPMINMAXINFO lpmm = (LPMINMAXINFO)lParam; lpmm->ptMinTrackSize.x = 250; lpmm->ptMinTrackSize.y = 200+toolH; break; } case WM_SIZE: width=LOWORD(lParam); height=HIWORD(lParam); SendMessage(toolbar, TB_AUTOSIZE, 0, 0); SendMessage(statusbar, WM_SIZE, 0, 0); onMoved(); invalidate(); break; case WM_MOVE: onMoved(); break; case WM_CLOSE: SendMessage(hWin, WM_COMMAND, ID_EXIT, 0); break; case WM_QUERYENDSESSION: writeini(); return TRUE; case WM_DESTROY: PostQuitMessage(0); break; case WM_COMMAND: notif=HIWORD(wParam); wParam=LOWORD(wParam); if(setLang(wParam)) break; if(wParam>=ID_SYMBOL && wParam<unsigned(ID_SYMBOL+size)){ select(wParam-ID_SYMBOL); break; } if(wParam>=ID_SIZE+4 && wParam<=ID_SIZE+Msize){ if(askNew()) break; size=wParam-ID_SIZE; newGameFormat(); numButtons(); break; } if(wParam>=ID_MULTI && wParam<ID_MULTI+sizeA(gameTypeA)-1){ if(askNew()) break; gameType=wParam-ID_MULTI; newGameFormat(); break; } switch(wParam){ case ID_CLEAR: noScore=true; init(false); invalidate(); break; case ID_CLEAR_ALL: noScore=true; initSquare(false); invalidate(); break; case ID_EDITOR: if(!editor){ if((undoPos==0 || done==Nsquare) && isGenerated()){ initSquare(false); } editor=true; playtime=0; noScore=true; editorChanged(); } break; case ID_EDITOR_END: if(editor){ endEditor(); editor=false; editorChanged(); } break; case ID_SOLVE: case ID_SOLVE1: if(testTotal()) break; noScore=true; if(done<Nsquare){ waitOn(); #ifdef _DEBUG DWORD time=getTickCount(); #endif Nsolution=0; curSolution=-1; //find all solutions (up to Msolution) undoAllPos=undoPos; if(wParam==ID_SOLVE1) resolve1(); else resolve(); freeGroups(); #ifdef _DEBUG status(4, _T("%d ms"), getTickCount()-time); #endif waitOff(); } if(Nsolution>0){ i=curSolution; curSolution++; if(curSolution>=Nsolution) curSolution=0; if(Nsolution>1){ if(i<0){ status(4, _T("%d %s"), Nsolution, lng(662, "solutions")); } else{ status(4, _T("%d/%d"), curSolution+1, Nsolution); } } rdSolution(); } else{ //easy solution (without recurse) or not solvable curSolution=0; status(4, _T("")); } checkErr(); invalidate(); break; case ID_CHEAT: noScore=true; if(errTime<0){ waitOn(); hint(); waitOff(); } checkShowErr(true); break; case ID_UNDO: undo(); checkErr(); break; case ID_REDO: redo(); checkErr(); break; case ID_UNDO_SYMBOL: undoSymbol(); checkErr(); break; case ID_REDO_SYMBOL: redoSymbol(); checkErr(); break; case ID_UNDO_ALL: undoAll(); checkErr(); break; case ID_REDO_ALL: while(redo()); checkErr(); break; case ID_DEL: select(-1); break; case ID_INS: select(-2); break; case ID_SIGN: select(-3); break; case ID_CONS: select(-4); break; case ID_EVEN: select(-5); break; case ID_EXIT: writeini(); DestroyWindow(hWin); break; case ID_DIAGONAL: if(askNew()) break; diag=!diag; newGameFormat(); break; case ID_SYMETRIC: if(askNew()) break; symetric=!symetric; newGameFormat(); break; case ID_LEVEL: if(DialogBox(inst, MAKEINTRESOURCE(IDD_LEVEL), hWnd, (DLGPROC)LevelProc)){ if(!editor) newGame(); } break; case ID_SHOWERR: DialogBox(inst, MAKEINTRESOURCE(IDD_ERRTIME), hWnd, (DLGPROC)ShowErrProc); break; case ID_KILLER: if(askNew()) break; killer=!killer; newGameFormat(); numButtons(); break; case ID_GREATER: if(askNew()) break; greater=!greater; newGameFormat(); break; case ID_CONSECUTIVE: if(askNew()) break; consecutive=!consecutive; newGameFormat(); if(selectedNum==-4 && !consecutive) select(-1); break; case ID_ODDEVEN: if(askNew()) break; oddeven=!oddeven; newGameFormat(); if(selectedNum==-5 && !oddeven) select(-1); break; case ID_DIGITS: case ID_LETTERS: case ID_COLORS: symbol0=wParam-350; checkMenus(); invalidate(); numButtons(); break; case ID_NEWGAME: if(editor) SendMessage(hWnd, WM_COMMAND, ID_EDITOR_END, 0); else newGame(); break; case ID_DELINI: delreg=true; break; case ID_DELHISCORE: if(MessageBox(hWnd, lng(799, "Do you really want to delete all hiscores ?"), title, MB_YESNO|MB_ICONQUESTION|MB_DEFBUTTON2) == IDYES){ for(TscoreTab *tab=score; tab;){ TscoreTab *t1= tab->next; delete tab; tab=t1; } score=0; writeScore(); } break; case ID_BEST_SCORES: DialogBox(inst, MAKEINTRESOURCE(IDD_HISCORE), hWnd, (DLGPROC)ScoreProc); break; case ID_COLORDLG: DialogBox(inst, MAKEINTRESOURCE(IDD_COLORS), hWin, (DLGPROC)ColorProc); break; case ID_ABOUT: DialogBox(inst, MAKEINTRESOURCE(IDD_ABOUT), hWnd, (DLGPROC)AboutProc); break; case ID_HELP_README: { TCHAR *buf=(TCHAR*)_alloca(2*MAX_PATH); getExeDir(buf, lng(13, "readme.txt")); if(ShellExecute(0, _T("open"), buf, 0, 0, SW_SHOWNORMAL)==(HINSTANCE)ERROR_FILE_NOT_FOUND){ msglng(730, "Cannot open %s", buf); } } break; case ID_WRBMP: if(saveFileDlg(&bmpOfn, hWnd, 0)){ wrBmp(bmpFn, bmpOfn.nFilterIndex); } break; case ID_SAVE: if(saveFileDlg(&gameOfn, hWnd, OFN_OVERWRITEPROMPT)){ save(gameFn); } break; case ID_OPEN: if(openFileDlg(&gameOfn, hWnd, OFN_FILEMUSTEXIST|OFN_HIDEREADONLY)){ open(gameFn); checkErr(); } break; case ID_CLEAR_GRP: resetSolution(); for(i=0; i<Ngroup; i++){ delGroup(&group[i]); } invalidate(); break; case ID_CLEAR_SGN: case ID_CLEAR_CONS: resetSolution(); for(i=0; i<Nboard; i++){ if(wParam==ID_CLEAR_SGN){ putSign(0, &board[i], 0); putSign(0, &board[i], 1); } if(wParam==ID_CLEAR_CONS){ putCons(false, &board[i], 0); putCons(false, &board[i], 1); } } invalidate(); break; case ID_MARKS: noScore=true; showMarks(); break; case ID_DELMARKS: delAllMarks(); break; case ID_PDF: if(askNew()) break; DialogBox(inst, MAKEINTRESOURCE(IDD_PDF), hWnd, (DLGPROC)PdfProc); numButtons(); break; } break; default: return DefWindowProc(hWnd, message, wParam, lParam); } return 0; }