void HK_QuickScreenShot(int param, bool justPressed) { char buffer[MAX_PATH]; ZeroMemory(buffer, sizeof(buffer)); path.getpath(path.SCREENSHOTS, buffer); char file[MAX_PATH]; ZeroMemory(file, sizeof(file)); path.formatname(file); strcat(buffer, file); if( strlen(buffer) > (MAX_PATH - 4)) buffer[MAX_PATH - 4] = '\0'; switch(path.imageformat()) { case path.PNG: { strcat(buffer, ".png"); NDS_WritePNG(buffer); } break; case path.BMP: { strcat(buffer, ".bmp"); NDS_WriteBMP(buffer); } break; } }
void HK_PrintScreen(int param, bool justPressed) { if(!justPressed) return; if(!romloaded) return; bool unpause = NDS_Pause(false); char outFilename[MAX_PATH]; OPENFILENAME ofn; ZeroMemory(&ofn,sizeof(ofn)); ofn.lStructSize = sizeof(ofn); ofn.hwndOwner = MainWindow->getHWnd(); ofn.lpstrFilter = "png file (*.png)\0*.png\0Bmp file (*.bmp)\0*.bmp\0Any file (*.*)\0*.*\0\0"; ofn.lpstrTitle = "Print Screen Save As"; ofn.nMaxFile = MAX_PATH; ofn.lpstrFile = outFilename; ofn.lpstrDefExt = "png"; ofn.Flags = OFN_OVERWRITEPROMPT | OFN_NOREADONLYRETURN | OFN_PATHMUSTEXIST; std::string filename = path.getpath(path.SCREENSHOTS); char file[MAX_PATH]; ZeroMemory(file, sizeof(file)); path.formatname(file); filename += file; if(path.imageformat() == path.PNG) { filename += ".png"; ofn.lpstrDefExt = "png"; ofn.nFilterIndex = 1; } else if(path.imageformat() == path.BMP) { filename += ".bmp"; ofn.lpstrDefExt = "bmp"; ofn.nFilterIndex = 2; } strcpy(outFilename,filename.c_str()); if(GetSaveFileName(&ofn)) { filename = outFilename; if(toupper(strright(filename,4)) == ".PNG") NDS_WritePNG(filename.c_str(), GPU_screen); else if(toupper(strright(filename,4)) == ".BMP") NDS_WriteBMP(filename.c_str(), GPU_screen); } if(unpause) NDS_UnPause(false); }