本文整理汇总了C++中GetSaveFileName函数的典型用法代码示例。如果您正苦于以下问题:C++ GetSaveFileName函数的具体用法?C++ GetSaveFileName怎么用?C++ GetSaveFileName使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了GetSaveFileName函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: WndProc
LRESULT CALLBACK WndProc(HWND hWnd, UINT Message, WPARAM wParam, LPARAM lParam)
{
PAINTSTRUCT ps;
HDC hdc;
HPEN hPen;
HBRUSH hBrush;
BOOL success;
static BOOL enteringText = FALSE;
static TCHAR text[256];
static DWORD textLength = 0;
static OPENFILENAME OpenFileName;
static TCHAR FilePath[256];
static PRINTDLG printDialog;
ZeroMemory(&printDialog, sizeof(printDialog));
printDialog.lStructSize = sizeof(printDialog);
printDialog.hwndOwner = hWnd;
printDialog.Flags = PD_RETURNDC;
static CHOOSECOLOR chooseColorStructure;
static COLORREF acrCustClr[16];
ZeroMemory(&chooseColorStructure, sizeof(chooseColorStructure));
chooseColorStructure.lStructSize = sizeof(chooseColorStructure);
chooseColorStructure.hwndOwner = hWnd;
chooseColorStructure.lpCustColors = (LPDWORD) acrCustClr;
chooseColorStructure.rgbResult = 0;
chooseColorStructure.Flags = CC_FULLOPEN | CC_RGBINIT;
static DWORD lastX, lastY;
switch (Message)
{
case WM_CREATE:
viewController = new ViewController();
viewController->SetScrollSettings(hWnd, CW_USEDEFAULT, CW_USEDEFAULT);
mainCreator = new Creator();
OpenFileName.lStructSize = sizeof(OPENFILENAME);
OpenFileName.hwndOwner = hWnd;
OpenFileName.lpstrFile = FilePath;
OpenFileName.nMaxFile = sizeof(FilePath);
break;
case WM_COMMAND:
switch (LOWORD(wParam))
{
case ID_OPEN:
FilePath[0] = '\0';
success = GetOpenFileName(&OpenFileName);
if (success)
{
viewController->OpenMetaFile(OpenFileName.lpstrFile);
}
InvalidateRect(hWnd, NULL, TRUE);
break;
case ID_SAVEAS:
FilePath[0] = '\0';
success = GetSaveFileName(&OpenFileName);
if (success)
{
viewController->SaveMetaFile(OpenFileName.lpstrFile);
}
break;
case ID_NEW:
delete viewController;
viewController = new ViewController();
InvalidateRect(hWnd, NULL, TRUE);
break;
case ID_FILE_EXIT:
DestroyWindow(hWnd);
break;
case ID_PEN_COLOR:
success = ChooseColor(&chooseColorStructure);
if (success)
{
hPen = CreatePen(PS_SOLID, 1, chooseColorStructure.rgbResult);
viewController->setPen(hPen);
}
break;
case ID_BRUSH_COLOR:
success = ChooseColor(&chooseColorStructure);
if (success)
{
hBrush = CreateSolidBrush(chooseColorStructure.rgbResult);
viewController->setBrush(hBrush);
}
break;
case ID_PRINT:
{
PrintDlg(&printDialog);
HDC printerhDC = printDialog.hDC;
DOCINFO di = { sizeof (DOCINFO), _T("Printing...")};
StartDoc(printerhDC, &di);
StartPage(printerhDC);
viewController->Print(printerhDC);
EndPage(printerhDC);
EndDoc(printerhDC);
DeleteDC(printerhDC);
//.........这里部分代码省略.........
开发者ID:ChCyrill,项目名称:BSUIR_labs,代码行数:101,代码来源:Main.cpp
示例2: WDL_ChooseFileForSave
bool WDL_ChooseFileForSave(HWND parent,
const char *text,
const char *initialdir,
const char *initialfile,
const char *extlist,
const char *defext,
bool preservecwd,
char *fn,
int fnsize,
const char *dlgid,
void *dlgProc,
#ifdef _WIN32
HINSTANCE hInstance
#else
struct SWELL_DialogResourceIndex *reshead
#endif
)
{
char cwd[2048];
GetCurrentDirectory(sizeof(cwd),cwd);
#ifdef _WIN32
char temp[4096];
memset(temp,0,sizeof(temp));
if (initialfile) lstrcpyn_safe(temp,initialfile,sizeof(temp));
WDL_fixfnforopenfn(temp);
#ifdef WDL_FILEBROWSE_WIN7VISTAMODE
{
Win7FileDialog fd(text, 1);
if(fd.inited())
{
fd.addOptions(FOS_DONTADDTORECENT);
//vista+ file open dialog
char olddir[2048];
GetCurrentDirectory(sizeof(olddir),olddir);
fd.setFilterList(extlist);
if (defext)
{
fd.setDefaultExtension(defext);
int i = 0;
const char *p = extlist;
while(*p)
{
if(*p) p+=strlen(p)+1;
if(!*p) break;
if(stristr(p, defext))
{
fd.setFileTypeIndex(i+1);
break;
}
i++;
p+=strlen(p)+1;
}
}
fd.setFolder(initialdir?initialdir:olddir, 0);
if(initialfile)
{
//check for folder name
if (WDL_remove_filepart(temp))
{
//folder found
fd.setFolder(temp, 0);
fd.setFilename(temp + strlen(temp) + 1);
}
else
fd.setFilename(*temp ? temp : initialfile);
}
fd.setTemplate(hInstance, dlgid, (LPOFNHOOKPROC)dlgProc);
if(fd.show(parent))
{
//ifilesavedialog saves the last folder automatically
fd.getResult(fn, fnsize);
if (preservecwd) SetCurrentDirectory(olddir);
return true;
}
if (preservecwd) SetCurrentDirectory(olddir);
return NULL;
}
}
#endif
OPENFILENAME l={sizeof(l),parent, hInstance, extlist, NULL,0, 0, temp, sizeof(temp)-1, NULL, 0, initialdir&&initialdir[0] ? initialdir : cwd, text,
OFN_HIDEREADONLY|OFN_EXPLORER|OFN_OVERWRITEPROMPT,0,0,defext, 0, (LPOFNHOOKPROC)dlgProc, dlgid};
if (hInstance&&dlgProc&&dlgid) l.Flags |= OFN_ENABLEHOOK|OFN_ENABLETEMPLATE|OFN_ENABLESIZING;
if (preservecwd) l.Flags |= OFN_NOCHANGEDIR;
if (!GetSaveFileName(&l)||!temp[0])
{
if (preservecwd) SetCurrentDirectory(cwd);
return false;
}
if (preservecwd) SetCurrentDirectory(cwd);
//.........这里部分代码省略.........
开发者ID:Nowhk,项目名称:wdl-ol,代码行数:101,代码来源:filebrowse.cpp
示例3: run
virtual void run()
{
QString result;
QString workDir;
QString initSel;
QFileInfo fi (mStartWith);
if (fi.isDir())
workDir = mStartWith;
else
{
workDir = fi.absolutePath();
initSel = fi.fileName();
}
workDir = QDir::toNativeSeparators (workDir);
if (!workDir.endsWith ("\\"))
workDir += "\\";
QString title = mCaption.isNull() ? tr ("Select a file") : mCaption;
QWidget *topParent = windowManager().realParentWindow(mParent ? mParent : windowManager().mainWindowShown());
QString winFilters = winFilter (mFilters);
AssertCompile (sizeof (TCHAR) == sizeof (QChar));
TCHAR buf [1024];
if (initSel.length() > 0 && initSel.length() < sizeof (buf))
memcpy (buf, initSel.isNull() ? 0 : initSel.utf16(),
(initSel.length() + 1) * sizeof (TCHAR));
else
buf [0] = 0;
OPENFILENAME ofn;
memset (&ofn, 0, sizeof (OPENFILENAME));
ofn.lStructSize = sizeof (OPENFILENAME);
ofn.hwndOwner = topParent ? topParent->winId() : 0;
ofn.lpstrFilter = (TCHAR *)(winFilters.isNull() ? 0 : winFilters.utf16());
ofn.lpstrFile = buf;
ofn.nMaxFile = sizeof (buf) - 1;
ofn.lpstrInitialDir = (TCHAR *)(workDir.isNull() ? 0 : workDir.utf16());
ofn.lpstrTitle = (TCHAR *)(title.isNull() ? 0 : title.utf16());
ofn.Flags = (OFN_NOCHANGEDIR | OFN_HIDEREADONLY |
OFN_EXPLORER | OFN_ENABLEHOOK |
OFN_NOTESTFILECREATE | (m_fConfirmOverwrite ? OFN_OVERWRITEPROMPT : 0));
ofn.lpfnHook = OFNHookProc;
if (GetSaveFileName (&ofn))
{
result = QString::fromUtf16 ((ushort *) ofn.lpstrFile);
}
// qt_win_eatMouseMove();
MSG msg = {0, 0, 0, 0, 0, 0, 0};
while (PeekMessage (&msg, 0, WM_MOUSEMOVE, WM_MOUSEMOVE, PM_REMOVE));
if (msg.message == WM_MOUSEMOVE)
PostMessage (msg.hwnd, msg.message, 0, msg.lParam);
result = result.isEmpty() ? result : QFileInfo (result).absoluteFilePath();
QApplication::postEvent (mTarget, new GetOpenFileNameEvent (result));
}
开发者ID:svn2github,项目名称:virtualbox,代码行数:62,代码来源:QIFileDialog.cpp
示例4: _T
BOOL CTTSApp::CallSaveFileDialog( __in LPTSTR szFileName, LPCTSTR szFilter )
/////////////////////////////////////////////////////////////////
//
// Display the save dialog box to save the wav file
{
OPENFILENAME ofn;
BOOL bRetVal = TRUE;
LONG lRetVal;
HKEY hkResult;
TCHAR szPath[256] = _T("");
DWORD size = 256;
// Open the last directory used by this app (stored in registry)
lRetVal = RegCreateKeyEx( HKEY_CLASSES_ROOT, _T("PathTTSDataFiles"), 0, NULL, 0,
KEY_ALL_ACCESS, NULL, &hkResult, NULL );
if( lRetVal == ERROR_SUCCESS )
{
RegQueryValueEx( hkResult, _T("TTSFiles"), NULL, NULL, (PBYTE)szPath, &size );
RegCloseKey( hkResult );
}
size_t ofnsize = (BYTE*)&ofn.lpTemplateName + sizeof(ofn.lpTemplateName) - (BYTE*)&ofn;
ZeroMemory( &ofn, ofnsize);
ofn.lStructSize = (DWORD)ofnsize;
ofn.hwndOwner = m_hWnd;
ofn.lpstrFilter = szFilter;
ofn.lpstrCustomFilter = NULL;
ofn.nFilterIndex = 1;
ofn.lpstrInitialDir = szPath;
ofn.lpstrFile = szFileName;
ofn.nMaxFile = 256;
ofn.lpstrTitle = NULL;
ofn.lpstrFileTitle = NULL;
ofn.lpstrDefExt = _T("wav");
ofn.Flags = OFN_OVERWRITEPROMPT;
// Pop the dialog
bRetVal = GetSaveFileName( &ofn );
// Write the directory path you're in to the registry
TCHAR pathstr[256] = _T("");
_tcscpy_s( pathstr, _countof(pathstr), szFileName );
if ( ofn.Flags & OFN_EXTENSIONDIFFERENT )
{
_tcscat_s( pathstr, _countof(pathstr), _T(".wav") );
}
int i=0;
while( pathstr[i] != NULL )
{
i++;
}
while( i > 0 && pathstr[i] != '\\' )
{
i--;
}
pathstr[i] = NULL;
// Now write the string to the registry
lRetVal = RegCreateKeyEx( HKEY_CLASSES_ROOT, _T("PathTTSDataFiles"), 0, NULL, 0,
KEY_ALL_ACCESS, NULL, &hkResult, NULL );
if( lRetVal == ERROR_SUCCESS )
{
RegSetValueEx( hkResult, _T("TTSFiles"), NULL, REG_EXPAND_SZ, (PBYTE)pathstr, (DWORD)_tcslen(pathstr)+1 );
RegCloseKey( hkResult );
}
return bRetVal;
}
开发者ID:Essjay1,项目名称:Windows-classic-samples,代码行数:75,代码来源:dlgmain.cpp
示例5: Main_OnCommand
//.........这里部分代码省略.........
TCHAR leth[256],str4[256],str5[256];
wsprintf(str4,"status %s length",str3);
mciSendString(str4,leth,sizeof(leth)/sizeof(char),NULL);
int tminute,tsecond;
int totalsecond = atoi(leth)/1000;
tminute = totalsecond/60;
tsecond = totalsecond-tminute*60;
wsprintf(str5,"%02d:%02d",tminute,tsecond);
SetDlgItemText(hwnd,IDC_TIME,str5);
SendDlgItemMessage(hwnd,IDC_SLIDER2,TBM_SETRANGEMAX,false,(LPARAM)(totalsecond-1));
SendDlgItemMessage(hwnd,IDC_SLIDER2,TBM_SETRANGEMIN,false,(LPARAM)0);
}
case IDC_BUTTON9:
{
int loc;
HWND Combo1 = GetDlgItem(hwnd,IDC_LIST1);
int cixu = ListBox_GetCurSel(Combo1);
if(cixu==-1){
MessageBox(NULL,TEXT("无歌曲可保存"),TEXT(" 重试"),MB_OK|MB_ICONEXCLAMATION);break;}
OPENFILENAME ofn;
char szFile[MAX_PATH];
ZeroMemory(&ofn,sizeof(ofn));
ofn.lStructSize = sizeof(ofn);
ofn.lpstrFile = szFile;
ofn.lpstrFile[0] = TEXT('\0');
ofn.nMaxFile = sizeof(szFile);
ofn.lpstrFilter = TEXT("mp3\0*.mp3\0AVI\0*.avi\0text\0*.txt\0");
ofn.nFilterIndex = 3;
ofn.lpstrFileTitle = NULL;
ofn.nMaxFileTitle = 0;
ofn.lpstrInitialDir = NULL;
ofn.hwndOwner = hwnd;
ofn.Flags = OFN_EXPLORER|OFN_PATHMUSTEXIST|OFN_FILEMUSTEXIST|OFN_ALLOWMULTISELECT;
if(GetSaveFileName(&ofn))
{
FILE *fp;
TCHAR EDI[256],str[256],str1[256];
wsprintf(str1,"%s.txt",szFile);
int count = ListBox_GetCount(Combo1);
fp = fopen(str1,"w");
for(loc=0;loc<count;loc++)
{
ListBox_GetText(Combo1,loc,EDI);
wsprintf(str,"%s\n",EDI);
fputs(str,fp);
}
fclose(fp);
}
}
break;
case IDC_GETLIST:
{
OPENFILENAME ofn;
char szFile[MAX_PATH];
ZeroMemory(&ofn,sizeof(ofn));
ofn.lStructSize = sizeof(ofn);
ofn.lpstrFile = szFile;
ofn.lpstrFile[0] = TEXT('\0');
ofn.nMaxFile = sizeof(szFile);
ofn.lpstrFilter = TEXT("mp3\0*.mp3\0AVI\0*.avi\0text\0*.txt\0");
ofn.nFilterIndex = 3;
ofn.lpstrFileTitle = NULL;
ofn.nMaxFileTitle = 0;
开发者ID:SummerInSun,项目名称:Music-Player,代码行数:67,代码来源:MainDlg.cpp
示例6: dlg
//.........这里部分代码省略.........
{
filterBuffer += wildDescriptions[i];
filterBuffer += wxT("|");
filterBuffer += wxT("*.*");
filterBuffer += wxT("|");
}
// Replace | with \0
for (i = 0; i < filterBuffer.Len(); i++ )
{
if ( filterBuffer.GetChar(i) == wxT('|') )
{
filterBuffer[i] = wxT('\0');
}
}
of.lpstrFilter = (LPTSTR)filterBuffer.c_str();
of.nFilterIndex = m_filterIndex + 1;
ParseFilter(of.nFilterIndex);
//=== Setting defaultFileName >>=========================================
wxStrncpy( fileNameBuffer, (const wxChar *)m_fileName, wxMAXPATH-1 );
fileNameBuffer[ wxMAXPATH-1 ] = wxT('\0');
of.lpstrFile = fileNameBuffer; // holds returned filename
of.nMaxFile = wxMAXPATH;
// we must set the default extension because otherwise Windows would check
// for the existing of a wrong file with wxOVERWRITE_PROMPT (i.e. if the
// user types "foo" and the default extension is ".bar" we should force it
// to check for "foo.bar" existence and not "foo")
wxString defextBuffer; // we need it to be alive until GetSaveFileName()!
if (m_dialogStyle & wxSAVE && m_dialogStyle & wxOVERWRITE_PROMPT)
{
const wxChar* extension = filterBuffer;
int maxFilter = (int)(of.nFilterIndex*2L) - 1;
for( int i = 0; i < maxFilter; i++ ) // get extension
extension = extension + wxStrlen( extension ) + 1;
// use dummy name a to avoid assert in AppendExtension
defextBuffer = AppendExtension(wxT("a"), extension);
if (defextBuffer.StartsWith(wxT("a.")))
{
defextBuffer.Mid(2);
of.lpstrDefExt = defextBuffer.c_str();
}
}
// store off before the standard windows dialog can possibly change it
const wxString cwdOrig = wxGetCwd();
//== Execute FileDialog >>=================================================
bool success = (m_dialogStyle & wxSAVE ? GetSaveFileName(&of)
: GetOpenFileName(&of)) != 0;
#ifdef __WXWINCE__
DWORD errCode = GetLastError();
#else
DWORD errCode = CommDlgExtendedError();
// GetOpenFileName will always change the current working directory on
// (according to MSDN) "Windows NT 4.0/2000/XP" because the flag
开发者ID:ruthmagnus,项目名称:audacity,代码行数:67,代码来源:FileDialogPrivate.cpp
示例7: switch
//.........这里部分代码省略.........
break;
case IDM_EDITCUT:
/* Copy */
SendMessage(WM_COMMAND, IDM_EDITCOPY, 0);
/* Delete selection */
SendMessage(WM_COMMAND, IDM_EDITDELETESELECTION, 0);
break;
case IDM_EDITPASTE:
OpenClipboard();
if (GetClipboardData(CF_BITMAP) != NULL)
{
InsertSelectionFromHBITMAP((HBITMAP) GetClipboardData(CF_BITMAP), m_hWnd);
}
CloseClipboard();
break;
case IDM_EDITDELETESELECTION:
{
/* remove selection window and already painted content using undo */
imageModel.Undo();
break;
}
case IDM_EDITSELECTALL:
{
HWND hToolbar = FindWindowEx(toolBoxContainer.m_hWnd, NULL, TOOLBARCLASSNAME, NULL);
SendMessage(hToolbar, TB_CHECKBUTTON, ID_RECTSEL, MAKELPARAM(TRUE, 0));
toolBoxContainer.SendMessage(WM_COMMAND, ID_RECTSEL);
//TODO: do this properly
startPaintingL(imageModel.GetDC(), 0, 0, paletteModel.GetFgColor(), paletteModel.GetBgColor());
whilePaintingL(imageModel.GetDC(), imageModel.GetWidth(), imageModel.GetHeight(), paletteModel.GetFgColor(), paletteModel.GetBgColor());
endPaintingL(imageModel.GetDC(), imageModel.GetWidth(), imageModel.GetHeight(), paletteModel.GetFgColor(), paletteModel.GetBgColor());
break;
}
case IDM_EDITCOPYTO:
if (GetSaveFileName(&ofn) != 0)
SaveDIBToFile(selectionModel.GetBitmap(), ofn.lpstrFile, imageModel.GetDC(), NULL, NULL, fileHPPM, fileVPPM);
break;
case IDM_EDITPASTEFROM:
if (GetOpenFileName(&ofn) != 0)
{
HBITMAP bmNew = NULL;
LoadDIBFromFile(&bmNew, ofn.lpstrFile, &fileTime, &fileSize, &fileHPPM, &fileVPPM);
if (bmNew != NULL)
{
InsertSelectionFromHBITMAP(bmNew, m_hWnd);
DeleteObject(bmNew);
}
}
break;
case IDM_COLORSEDITPALETTE:
if (ChooseColor(&choosecolor))
paletteModel.SetFgColor(choosecolor.rgbResult);
break;
case IDM_COLORSMODERNPALETTE:
paletteModel.SelectPalette(1);
break;
case IDM_COLORSOLDPALETTE:
paletteModel.SelectPalette(2);
break;
case IDM_IMAGEINVERTCOLORS:
{
imageModel.InvertColors();
break;
}
case IDM_IMAGEDELETEIMAGE:
imageModel.CopyPrevious();
Rect(imageModel.GetDC(), 0, 0, imageModel.GetWidth(), imageModel.GetHeight(), paletteModel.GetBgColor(), paletteModel.GetBgColor(), 0, TRUE);
开发者ID:GYGit,项目名称:reactos,代码行数:67,代码来源:winproc.cpp
示例8: utf8str_to_utf16str
//.........这里部分代码省略.........
{
wcsncpy( mFilesW,L"untitled.undershirt", FILENAME_BUFFER_SIZE);
}
mOFN.lpstrDefExt = L"undershirt";
mOFN.lpstrFilter =
L"Undershirts (*.undershirt)\0*.undershirt\0" \
L"\0";
break;
case FFSAVE_UNDERPANTS:
if(filename.empty())
{
wcsncpy( mFilesW,L"untitled.underpants", FILENAME_BUFFER_SIZE);
}
mOFN.lpstrDefExt = L"underpants";
mOFN.lpstrFilter =
L"Underpants (*.underpants)\0*.underpants\0" \
L"\0";
break;
case FFSAVE_SKIRT:
if(filename.empty())
{
wcsncpy( mFilesW,L"untitled.skirt", FILENAME_BUFFER_SIZE);
}
mOFN.lpstrDefExt = L"skirt";
mOFN.lpstrFilter =
L"Skirts (*.skirt)\0*.skirt\0" \
L"\0";
break;
case FFSAVE_LANDMARK:
if(filename.empty())
{
wcsncpy( mFilesW,L"untitled.landmark", FILENAME_BUFFER_SIZE);
}
mOFN.lpstrDefExt = L"landmark";
mOFN.lpstrFilter =
L"Landmarks (*.landmark)\0*.landmark\0" \
L"\0";
break;
case FFSAVE_AO:
if(filename.empty())
{
wcsncpy( mFilesW,L"untitled.ao", FILENAME_BUFFER_SIZE);
}
mOFN.lpstrDefExt = L"ao";
mOFN.lpstrFilter =
L"Animation overrides (*.ao)\0*.ao\0" \
L"\0";
break;
case FFSAVE_INVGZ:
if(filename.empty())
{
wcsncpy( mFilesW,L"untitled.inv", FILENAME_BUFFER_SIZE);
}
mOFN.lpstrDefExt = L".inv";
mOFN.lpstrFilter =
L"InvCache (*.inv)\0*.inv\0" \
L"\0";
break;
case FFSAVE_BLACKLIST:
if(filename.empty())
{
wcsncpy( mFilesW,L"untitled.blacklist", FILENAME_BUFFER_SIZE);
}
mOFN.lpstrDefExt = L".blacklist";
mOFN.lpstrFilter =
L"Asset Blacklists (*.blacklist)\0*.blacklist\0" \
L"\0";
break;
case FFSAVE_PHYSICS:
if(filename.empty())
{
wcsncpy( mFilesW,L"untitled.phy", FILENAME_BUFFER_SIZE);
}
mOFN.lpstrDefExt = L"phy";
mOFN.lpstrFilter =
L"Landmarks (*.phy)\0*.phy\0" \
L"\0";
break;
// </edit>
default:
return FALSE;
}
mOFN.nMaxFile = SINGLE_FILENAME_BUFFER_SIZE;
mOFN.Flags = OFN_OVERWRITEPROMPT | OFN_NOCHANGEDIR | OFN_PATHMUSTEXIST;
reset();
{
// NOTA BENE: hitting the file dialog triggers a window focus event, destroying the selection manager!!
success = GetSaveFileName(&mOFN);
if (success)
{
std::string filename = utf16str_to_utf8str(llutf16string(mFilesW));
mFiles.push_back(filename);
}
}
return success;
}
开发者ID:NickyPerian,项目名称:SingularityViewer,代码行数:101,代码来源:llfilepicker.cpp
示例9: menu
void menu(CBTYPE cbType, void* arg1)
{
PLUG_CB_MENUENTRY* info = (PLUG_CB_MENUENTRY*)arg1;
if(info->hEntry == 1)
{
// get patch information
size_t buffersize;
size_t numPatches;
std::unique_ptr<DBGPATCHINFO> patchList(nullptr);
if(!(patchList = EnumPatches(buffersize, numPatches)))
return;
// browse
OPENFILENAME browse;
memset(&browse, 0, sizeof(browse));
browse.lStructSize = sizeof(browse);
browse.hwndOwner = hwndDlg;
browse.hInstance = hModule;
wchar_t filter[512];
memset(filter, 0, sizeof(filter));
memset(templatename, 0, sizeof(templatename));
memset(exportedname, 0, sizeof(exportedname));
LoadString(hModule, IDS_FILTER, filter, 512);
for(size_t i = 0; i < _countof(filter); i++)
{
if(filter[i] == '|')
filter[i] = '\0';
}
browse.lpstrFilter = filter;
browse.nFilterIndex = 1;
browse.lpstrFile = templatename;
browse.lpstrFileTitle = nullptr;
browse.nMaxFile = 512;
browse.Flags = OFN_FILEMUSTEXIST;
if(GetOpenFileName(&browse) == 0)
return;
std::wstring templateContent = LoadFile(templatename);
std::wstring filterString = getTemplateFilter(templateContent);
browse.lpstrFile = exportedname;
browse.lpstrFilter = filterString.c_str();
browse.Flags = OFN_OVERWRITEPROMPT;
if(GetSaveFileName(&browse) == 0)
return;
// export patches
ExportPatch(templateContent, patchList.get(), numPatches);
}
else if(info->hEntry == 2)
{
// get patch information
size_t buffersize;
size_t numPatches;
std::unique_ptr<DBGPATCHINFO> patchList(nullptr);
if(!(patchList = EnumPatches(buffersize, numPatches)))
return;
// check last template
if(wcslen(templatename) == 0)
{
MessageBox(hwndDlg, LoadWideString(IDS_NOLASTTEMPLATE).c_str(), LoadWideString(IDS_PLUGNAME).c_str(), MB_ICONERROR);
return;
}
std::wstring templateContent = LoadFile(templatename);
// browse
OPENFILENAME browse;
memset(&browse, 0, sizeof(browse));
browse.lStructSize = sizeof(browse);
browse.hwndOwner = hwndDlg;
browse.hInstance = hModule;
wchar_t filter[512];
memset(filter, 0, sizeof(filter));
memset(exportedname, 0, sizeof(exportedname));
LoadString(hModule, IDS_FILTER, filter, 512);
for(size_t i = 0; i < _countof(filter); i++)
{
if(filter[i] == '|')
filter[i] = '\0';
}
std::wstring filterString = getTemplateFilter(templateContent);
browse.lpstrFile = exportedname;
browse.lpstrFilter = filterString.c_str();
browse.nFilterIndex = 1;
browse.lpstrFileTitle = nullptr;
browse.nMaxFile = 512;
browse.lpstrFile = exportedname;
browse.Flags = OFN_OVERWRITEPROMPT;
if(GetSaveFileName(&browse) == 0)
return;
// export patches
ExportPatch(templateContent, patchList.get(), numPatches);
}
else if(info->hEntry == 3)
{
std::wstring text = LoadWideString(IDS_ABOUT);
std::wstring compiledate;
std::string compiledateASCII(__DATE__);
utf8::utf8to16(compiledateASCII.begin(), compiledateASCII.end(), std::back_inserter(compiledate));
ReplaceWString(text, L"$compiledate", compiledate);
MessageBox(hwndDlg, text.c_str(), LoadWideString(IDS_PLUGNAME).c_str(), MB_OK);
}
else
{
__debugbreak();
//.........这里部分代码省略.........
开发者ID:blaquee,项目名称:x64dbgpatchexporter,代码行数:101,代码来源:pluginmain.cpp
示例10: WMCommandProc
LRESULT WINAPI WMCommandProc(HWND hWnd, UINT id, HWND hwndCtl, UINT codeNotify) {
switch (codeNotify) {
case BN_CLICKED: // The user pressed a button
case LBN_SELCHANGE: // The user changed the selection in a ListBox control
// case CBN_SELCHANGE: // The user changed the selection in a DropList control (same value as LBN_SELCHANGE)
{
char szBrowsePath[MAX_PATH];
int nIdx = FindControlIdx(id);
// Ignore if the dialog is in the process of being created
if (g_done || nIdx < 0)
break;
if (pFields[nIdx].nType == FIELD_BROWSEBUTTON)
--nIdx;
FieldType *pField = pFields + nIdx;
switch (pField->nType) {
case FIELD_FILEREQUEST: {
OPENFILENAME ofn={0,};
ofn.lStructSize = sizeof(ofn);
ofn.hwndOwner = hConfigWindow;
ofn.lpstrFilter = pField->pszFilter;
ofn.lpstrFile = szBrowsePath;
ofn.nMaxFile = sizeof(szBrowsePath);
ofn.Flags = pField->nFlags & (OFN_OVERWRITEPROMPT | OFN_HIDEREADONLY | OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST | OFN_CREATEPROMPT | OFN_EXPLORER);
GetWindowText(pField->hwnd, szBrowsePath, sizeof(szBrowsePath));
tryagain:
if ((pField->nFlags & FLAG_SAVEAS) ? GetSaveFileName(&ofn) : GetOpenFileName(&ofn)) {
mySetWindowText(pField->hwnd, szBrowsePath);
break;
}
else if (szBrowsePath[0] && CommDlgExtendedError() == FNERR_INVALIDFILENAME) {
szBrowsePath[0] = '\0';
goto tryagain;
}
break;
}
case FIELD_DIRREQUEST: {
BROWSEINFO bi;
bi.hwndOwner = hConfigWindow;
bi.pidlRoot = NULL;
bi.pszDisplayName = szBrowsePath;
bi.lpszTitle = pField->pszText;
#ifndef BIF_NEWDIALOGSTYLE
#define BIF_NEWDIALOGSTYLE 0x0040
#endif
bi.ulFlags = BIF_STATUSTEXT | BIF_RETURNONLYFSDIRS | BIF_NEWDIALOGSTYLE;
bi.lpfn = BrowseCallbackProc;
bi.lParam = nIdx;
bi.iImage = 0;
if (pField->pszRoot) {
LPSHELLFOLDER sf;
ULONG eaten;
LPITEMIDLIST root;
int ccRoot = (lstrlen(pField->pszRoot) * 2) + 2;
LPWSTR pwszRoot = (LPWSTR) MALLOC(ccRoot);
MultiByteToWideChar(CP_ACP, 0, pField->pszRoot, -1, pwszRoot, ccRoot);
SHGetDesktopFolder(&sf);
sf->ParseDisplayName(hConfigWindow, NULL, pwszRoot, &eaten, &root, NULL);
bi.pidlRoot = root;
sf->Release();
FREE(pwszRoot);
}
// CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
LPITEMIDLIST pResult = SHBrowseForFolder(&bi);
if (!pResult)
break;
if (SHGetPathFromIDList(pResult, szBrowsePath)) {
mySetWindowText(pField->hwnd, szBrowsePath);
}
LPMALLOC pMalloc;
if (!SHGetMalloc(&pMalloc)) {
pMalloc->Free(pResult);
}
break;
}
case FIELD_LINK:
case FIELD_BUTTON:
// Allow the state to be empty - this might be useful in conjunction
// with the NOTIFY flag
if (*pField->pszState)
ShellExecute(hMainWindow, NULL, pField->pszState, NULL, NULL, SW_SHOWDEFAULT);
break;
}
if (pField->nFlags & LBS_NOTIFY) {
// Remember which control was activated then pretend the user clicked Next
g_NotifyField = nIdx + 1;
// the next button must be enabled or nsis will ignore WM_COMMAND
BOOL bWasDisabled = EnableWindow(hNextButton, TRUE);
FORWARD_WM_COMMAND(hMainWindow, IDOK, hNextButton, BN_CLICKED, mySendMessage);
//.........这里部分代码省略.........
开发者ID:kichik,项目名称:nsis-1,代码行数:101,代码来源:InstallerOptions.cpp
示例11: DraughtItemExport
/*!
ドラフトボードの内容をファイルに書き出す
@param[in] hWnd ウインドウハンドル
@param[in] ptPath 未使用
*/
HRESULT DraughtItemExport( HWND hWnd, LPTSTR ptPath )
{
CONST CHAR cacSplit[] = ("[SPLIT]\r\n"); // 9BYTE
UINT_PTR dItems, cbSize;
TCHAR atPath[MAX_PATH], atName[MAX_PATH];
BOOLEAN bOpened;
OPENFILENAME stOpenFile;
MAAM_ITR itItem;
HANDLE hFile;
DWORD wrote;
dItems = gvcDrtItems.size();
if( 0 >= dItems ) return E_NOTIMPL; // 空なら何もしない
//ファイル名確定
ZeroMemory( atPath, sizeof(atPath) );
ZeroMemory( atName, sizeof(atName) );
ZeroMemory( &stOpenFile, sizeof(OPENFILENAME) );
stOpenFile.lStructSize = sizeof(OPENFILENAME);
stOpenFile.hwndOwner = ghPtWnd;
stOpenFile.lpstrFilter = TEXT("複数行テンプレファイル(*.mlt)\0*.mlt\0全ての形式(*.*)\0*.*\0\0");
stOpenFile.nFilterIndex = 1;
stOpenFile.lpstrFile = atPath;
stOpenFile.nMaxFile = MAX_PATH;
stOpenFile.lpstrFileTitle = atName;
stOpenFile.nMaxFileTitle = MAX_PATH;
stOpenFile.lpstrTitle = TEXT("保存するファイル名を指定してね");
stOpenFile.Flags = OFN_OVERWRITEPROMPT | OFN_HIDEREADONLY;
stOpenFile.lpstrDefExt = TEXT("mlt");
//ここで FileOpenDialogue を出す
bOpened = GetSaveFileName( &stOpenFile );
wrote = CommDlgExtendedError();
TRACE( TEXT("ファイル保存ダイヤログ通過[%X]"), wrote );
#ifndef _ORRVW
ViewFocusSet( );
#endif
if( !(bOpened) ){ return E_ABORT; } // キャンセルしてたら何もしない
hFile = CreateFile( atPath, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL );
if( INVALID_HANDLE_VALUE == hFile ){ return E_HANDLE; }
SetFilePointer( hFile, 0, NULL, FILE_BEGIN );
for( itItem = gvcDrtItems.begin(); gvcDrtItems.end() != itItem; itItem++ )
{
StringCchLengthA( itItem->pcItem, STRSAFE_MAX_LENGTH, &cbSize );
WriteFile( hFile, itItem->pcItem, cbSize, &wrote, NULL );
WriteFile( hFile, cacSplit, 9, &wrote, NULL ); // 固定値注意
}
CloseHandle( hFile );
MessageBox( hWnd, TEXT("ファイルに保存したよ"), TEXT("お燐からのお知らせ"), MB_OK | MB_ICONINFORMATION );
return S_OK;
}
开发者ID:16in,项目名称:OrinrinEditor,代码行数:70,代码来源:DraughtBoard.cpp
示例12: DlgProc
//.........这里部分代码省略.........
case WM_COMMAND:
switch (LOWORD(wParam))
{
case IDC_BROWSE:
if (!g_extracting) {
OPENFILENAME l={sizeof(l),};
TCHAR buf[1024];
l.hwndOwner = hwndDlg;
l.lpstrFilter = _T("ZIP Files\0*.zip\0All Files\0*.*\0");
l.lpstrFile = buf;
l.nMaxFile = 1023;
l.lpstrTitle = _T("Open ZIP File");
l.lpstrDefExt = _T("zip");
l.lpstrInitialDir = NULL;
l.Flags = OFN_HIDEREADONLY|OFN_EXPLORER|OFN_PATHMUSTEXIST;
buf[0]=0;
if (GetOpenFileName(&l))
{
SetZip(hwndDlg,buf);
}
}
break;
case IDC_BROWSE2:
{
OPENFILENAME l={sizeof(l),};
TCHAR buf[1024];
l.hwndOwner = hwndDlg;
l.lpstrFilter = _T("Executables\0*.exe\0All Files\0*.*\0");
l.lpstrFile = buf;
l.nMaxFile = 1023;
l.lpstrTitle = _T("Select Output EXE File");
l.lpstrDefExt = _T("exe");
l.lpstrInitialDir = NULL;
l.Flags = OFN_HIDEREADONLY|OFN_EXPLORER;
GetDlgItemText(hwndDlg,IDC_OUTFILE,buf,sizeof(buf));
if (GetSaveFileName(&l))
{
SetDlgItemText(hwndDlg,IDC_OUTFILE,buf);
}
}
break;
case IDC_BACK:
if (!g_hThread)
{
g_made=false;
ShowWindow(GetDlgItem(hwndDlg,IDC_BACK),SW_HIDE);
ShowWindow(GetDlgItem(hwndDlg,IDC_TEST),SW_HIDE);
ShowWindow(GetDlgItem(hwndDlg,IDC_OUTPUTTEXT),SW_HIDE);
{
for (size_t x = 0; x < COUNTOF(ids); x ++)
ShowWindow(GetDlgItem(hwndDlg,ids[x]),SW_SHOWNA);
SetDlgItemText(hwndDlg,IDOK,_T("&Generate"));
EnableWindow(GetDlgItem(hwndDlg,IDOK),1);
}
}
break;
case IDC_TEST:
if (!g_hThread) {
TCHAR buf[1024];
GetDlgItemText(hwndDlg,IDC_OUTFILE,buf,COUNTOF(buf));
ShellExecute(hwndDlg,_T("open"),buf,_T(""),_T(""),SW_SHOW);
}
break;
case IDOK:
if (!g_hThread)
{
if (!g_made)
{
if (IsDlgButtonChecked(hwndDlg,IDC_ZLIB))
g_compressor = 1;
if (IsDlgButtonChecked(hwndDlg,IDC_BZIP2))
g_compressor = 2;
if (IsDlgButtonChecked(hwndDlg,IDC_LZMA))
g_compressor = 3;
if (IsDlgButtonChecked(hwndDlg,IDC_SOLID))
g_compressor_solid = 1;
else
g_compressor_solid = 0;
g_mui=!IsDlgButtonChecked(hwndDlg,IDC_CLASSICUI);
SetDlgItemText(g_hwnd, IDC_OUTPUTTEXT, _T(""));
for (size_t x = 0; x < COUNTOF(ids); x ++)
ShowWindow(GetDlgItem(hwndDlg,ids[x]),SW_HIDE);
ShowWindow(GetDlgItem(hwndDlg,IDC_OUTPUTTEXT),SW_SHOWNA);
SetDlgItemText(hwndDlg,IDOK,_T("&Close"));
EnableWindow(GetDlgItem(hwndDlg,IDOK),0);
makeEXE(hwndDlg);
}
else
{
tempzip_cleanup(hwndDlg,0);
EndDialog(hwndDlg,0);
}
}
break;
}
break;
}
return FALSE;
}
开发者ID:abcsds,项目名称:pinguino-installers,代码行数:101,代码来源:main.cpp
示例13: FileSave
/*
FileSave: Handles a request to save the currently open file.
Parameters:
HWND sheet: Handle to the property sheet.
bool as: Save or Save As?
*/
void FileSave(HWND sheet, bool as, bool write)
{
int error; //error value from Scenario::save()
HWND cpage; //the current property page
HCURSOR previous; //the mouse cursor before/after save operation
OPENFILENAME ofn;
char titleBuffer[100];
Game startver;
Game conv = NOCONV;
SaveFlags::Value flags = SaveFlags::NONE;
char w1[] = {84, 104, 105, 115, 32, 115, 99, 101, 110, 97, 114, 105, 111, 32, 105, 115, 32, 112, 114, 111, 116, 101, 99, 116, 101, 100, 0};
char w2[] = {83, 99, 101, 110, 97, 114, 105, 111, 32, 105, 115, 32, 112, 114, 111, 116, 101, 99, 116, 101, 100, 0};
if (setts.disabletips) {
MessageBox(sheet, w1, w2, MB_ICONWARNING);
return;
}
//init
cpage = PropSheet_GetCurrentPageHwnd(sheet);
//Save As: Ask for filename.
if (as || *setts.ScenPath == '\0')
{
char dir[_MAX_PATH];
strcpy(dir, setts.BasePath);
strcat(dir, "Scenario");
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = sheet;
ofn.lpstrFilter = extSave;
ofn.lpstrCustomFilter = NULL;
ofn.lpstrFile = setts.ScenPath;
ofn.nMaxFile = _MAX_PATH;
ofn.lpstrFileTitle = NULL;
ofn.lpstrInitialDir = dir;
ofn.lpstrTitle = NULL;
ofn.Flags = OFN_NOREADONLYRETURN | OFN_OVERWRITEPROMPT;
startver = scen.game;
if (scen.header.header_type == HT_AOE2SCENARIO) {
ofn.nFilterIndex = 6;
ofn.lpstrDefExt = "aoe2scenario";
} else {
switch (scen.game) {
case AOK:
ofn.nFilterIndex = 1;
ofn.lpstrDefExt = "scn";
break;
case AOC:
ofn.nFilterIndex = 2;
ofn.lpstrDefExt = "scx";
break;
case UP:
ofn.nFilterIndex = 3;
ofn.lpstrDefExt = "scx";
break;
case AOHD:
case AOHD4:
ofn.nFilterIndex = 4;
ofn.lpstrDefExt = "scx";
break;
case AOF:
case AOF4:
ofn.nFilterIndex = 5;
ofn.lpstrDefExt = "scx2";
break;
case SWGB:
ofn.nFilterIndex = 7;
ofn.lpstrDefExt = "scx";
break;
case SWGBCC:
ofn.nFilterIndex = 8;
ofn.lpstrDefExt = "sc1";
break;
case AOHD6:
ofn.nFilterIndex = 9;
ofn.lpstrDefExt = "scx";
break;
case AOF6:
ofn.nFilterIndex = 10;
ofn.lpstrDefExt = "scx2";
break;
}
}
if (!GetSaveFileName(&ofn))
return;
switch (ofn.nFilterIndex) {
case 1:
conv = AOK;
//.........这里部分代码省略.........
开发者ID:DoctorWillCU,项目名称:aokts,代码行数:101,代码来源:aokts.cpp
示例14: switch
INT_PTR CALLBACK NewH86ProjectDlg::DlgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam){
switch(uMsg){
case WM_CLOSE:
EndDialog(hWnd, WM_QUIT);
break;
case WM_COMMAND:
switch(LOWORD(wParam)){
case IDC_BROWSE_PROJECT_PATH:
{
wchar_t path[MAX_PATH]={ 0 };
OPENFILENAME ofn;
ZeroMemory(&ofn, sizeof(ofn));
ofn.lStructSize=sizeof(ofn);
ofn.hwndOwner=m_hWnd;
ofn.hInstance=Application::hInstance;
ofn.lpstrFilter=L"Hard86 Project files\0*.h86\0\0All files\0*.*\0\0";
ofn.nFilterIndex=1;
ofn.lpstrFile=path;
ofn.nMaxFile=MAX_PATH;
if(!GetSaveFileName(&ofn)) break; // if user pressed cancel, abort operation
SetDlgItemText(hWnd, IDC_PROJECT_PATH, path);
}
break;
case IDC_BROWSE_BINARY_PATH:
{
wchar_t path[MAX_PATH]={ 0 };
OPENFILENAME ofn;
ZeroMemory(&ofn, sizeof(ofn));
ofn.lStructSize=sizeof(ofn);
ofn.hwndOwner=m_hWnd;
ofn.hInstance=Application::hInstance;
ofn.lpstrFilter=L"Binary files\0*.com\0\0All files\0*.*\0\0";
ofn.nFilterIndex=1;
ofn.lpstrFile=path;
ofn.nMaxFile=MAX_PATH;
if(!GetSaveFileName(&ofn)) break; // if user pressed cancel, abort operation
SetDlgItemText(hWnd, IDC_BINARY_PATH, path);
}
break;
case IDC_BROWSE_FAS_PATH:
{
wchar_t path[MAX_PATH]={ 0 };
OPENFILENAME ofn;
ZeroMemory(&ofn, sizeof(ofn));
ofn.lStructSize=sizeof(ofn);
ofn.hwndOwner=m_hWnd;
ofn.hInstance=Application::hInstance;
ofn.lpstrFilter=L"FASM symbol files\0*.fas\0\0All files\0*.*\0\0";
ofn.nFilterIndex=1;
ofn.lpstrFile=path;
ofn.nMaxFile=MAX_PATH;
if(!GetSaveFileName(&ofn)) break; // if user pressed cancel, abort operation
SetDlgItemText(hWnd, IDC_FAS_PATH, path);
}
break;
case IDOK:
{
wchar_t tmp_path[MAX_PATH]={ 0 };
GetDlgItemText(hWnd, IDC_PROJECT_PATH, tmp_path, MAX_PATH);
m_projectPath=tmp_path;
GetDlgItemText(hWnd, IDC_BINARY_PATH, tmp_path, MAX_PATH);
m_binPath=File::GetRelativePath(tmp_path, m_projectPath);
GetDlgItemText(hWnd, IDC_FAS_PATH, tmp_path, MAX_PATH);
m_fasPath=File::GetRelativePath(tmp_path, m_projectPath);
try{
xml_document<>* doc=new xml_document<>();
doc->append_node(doc->allocate_node(node_element, "Hard86Project"));
xml_node<>* node=doc->first_node();
node->append_node(doc->allocate_node(node_element, "Variables"));
node=node->first_node();
node->append_node(doc->allocate_node(node_element, "LoadSegAddr"));
node=node->first_node();
node->append_attribute(doc->allocate_attribute("seg", doc->allocate_string("0")));
node->append_attribute(doc->allocate_attribute("addr", doc->allocate_string("0")));
node=node->parent(); // Variables
node=node->parent(); // Hard86Project
node->append_node(doc->allocate_node(node_element, "Paths"));
node=node->first_node("Paths");
node->append_attribute(doc->allocate_attribute("binaryPath", doc->allocate_string(wstrtostr(m_binPath).c_str())));
node->append_attribute(doc->allocate_attribute("FASPath", doc->allocate_string(wstrtostr(m_fasPath).c_str())));
node->append_attribute(doc->allocate_attribute("userVDevPath", ""));
node=node->parent(); // Hard86Project
node->append_node(doc->allocate_node(node_element, "VDevs"));
node->append_node(doc->allocate_node(node_element, "BPList"));
File projectFile(m_projectPath);
if(projectFile.Exists()){
projectFile.Delete();
}
projectFile.Create();
projectFile.Open();
char* xmlBuffer=new char[1024*1024];
//.........这里部分代码省略.........
开发者ID:zsteve,项目名称:hard86,代码行数:101,代码来源:h86project.cpp
示例15: EV_DlgMain
//.........这里部分代码省略.........
case LBN_DBLCLK:
{
int cursel=SendMessageA(EV_list_hwnd, LB_GETCURSEL, 0, 0);
int count=SendMessageA(EV_list_hwnd, LB_GETCOUNT, 0, 0);
if(!count)
return TRUE;
char line_text[1024]="";
char var_name[512]="";
char var_value[512]="";
SendMessageA(EV_list_hwnd, LB_GETTEXT, cursel, (LPARAM)line_text);
int len=strlen(line_text);
for(int i=0,j=0,k=0,l=0; i<len; i++)
{
if(line_text[i]=='=')
{
i++;
j=1;
}
if(!j)
k+=sprintf(var_name+k, "%c", line_text[i]);
else
l+=sprintf(var_value+l, "%c", line_text[i]);
}
HMENU myMenu=0;
myMenu=CreatePopupMenu();
AppendMenu(myMenu, MF_STRING, 1, "Copy Variable &Name");
if(strcmp(var_value, "(0)"))
AppendMenu(myMenu, MF_STRING, 2, "Copy Variable &Value");
AppendMenu(myMenu, MF_STRING, 3, "Copy &Line");
POINT cursorPos;
GetCursorPos(&cursorPos);
SetForegroundWindow(hwndDlg);
UINT MenuItemClicked=TrackPopupMenu(myMenu, TPM_RETURNCMD|TPM_NONOTIFY, cursorPos.x, cursorPos.y, 0, hwndDlg, 0);
SendMessage(hwndDlg, WM_NULL, 0, 0);
switch(MenuItemClicked)
{
case 1:
CopyToClipboard(var_name);
break;
|
请发表评论