OpenFileDialog (Console)

434
27 марта 2017, 09:35

Привет, такой вопрос: как вызвать -> OpenFileDialog из CMD Проекта ? Видел для Windows Forms (Получилось) а вот для консоли увы не смог... нашел материал связанный с win32 но не вышло :(

Answer 1

вызвать диалог открытия файла, конечно, можно в любом приложении

самый простой способ - с помощью GetOpenFileName

OPENFILENAME ofn; // common dialog box structure char szFile[260]; // buffer for file name HWND hwnd; // owner window HANDLE hf; // file handle // Initialize OPENFILENAME ZeroMemory(&ofn, sizeof(ofn)); ofn.lStructSize = sizeof(ofn); ofn.hwndOwner = hwnd; ofn.lpstrFile = szFile; // Set lpstrFile[0] to '\0' so that GetOpenFileName does not // use the contents of szFile to initialize itself. ofn.lpstrFile[0] = '\0'; ofn.nMaxFile = sizeof(szFile); ofn.lpstrFilter = "All\0*.\0Text\0.TXT\0"; ofn.nFilterIndex = 1; ofn.lpstrFileTitle = NULL; ofn.nMaxFileTitle = 0; ofn.lpstrInitialDir = NULL; ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST; // Display the Open dialog box. if (GetOpenFileName(&ofn)==TRUE) hf = CreateFile(ofn.lpstrFile, GENERIC_READ, 0, (LPSECURITY_ATTRIBUTES) NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, (HANDLE) NULL);

Не забудьте подключить windows.h, если еще этого не сделали.

COM-интерфейс IFileDialog предоставляет больше возможностей, но сложнее в использовании.

Answer 2

К сожалению вы его не сможете открыть, так как он является элементом winforms и только через приложение winform вы его сможете создать, а через console вы только путь можете прописать для открытия файла.

READ ALSO
Как указывается путь к библиотеке в CodeBlocks на linux

Как указывается путь к библиотеке в CodeBlocks на linux

Пробую написать простенькую C++ программу по этой инструкцииlibxml++-3

385
Ноль в каждой строке и каждом столбце

Ноль в каждой строке и каждом столбце

Если в каждой строке и в каждом столбце можно выбрать по одному нулевому элементу, то вернуть true, иначе falseПодкиньте хоть какие-то идеи пожалуйста

328
Помогите,пожалуйста,доделать код в visual c++

Помогите,пожалуйста,доделать код в visual c++

Информация об участниках спортивных соревнований содержит: ФИ

374
async_read() Boost::Asio C++

async_read() Boost::Asio C++

ЗдравствуйтеНужно принять строку от клиента через tcp соединение

301