update for file open dialog
parent
46b3d24dd7
commit
88660a8f35
|
@ -30,7 +30,7 @@ function(buildHomework HOMEWORK_NAME)
|
|||
# Add optional readme / tutorial
|
||||
file(GLOB README_FILES "${HOMEWORK_FOLDER}/*.md")
|
||||
if(WIN32)
|
||||
add_executable(${HOMEWORK_NAME} WIN32 ${MAIN_CPP} ${SOURCE} ${MAIN_HEADER} ${SHADERS_GLSL} ${SHADERS_HLSL} ${README_FILES} "render/glTFModel.h" "render/glTFModel.cpp")
|
||||
add_executable(${HOMEWORK_NAME} WIN32 ${MAIN_CPP} ${SOURCE} ${MAIN_HEADER} ${SHADERS_GLSL} ${SHADERS_HLSL} ${README_FILES} "render/glTFModel.h" "render/glTFModel.cpp" "render/GUIFunction.h" "render/GUIFunction.cpp")
|
||||
target_link_libraries(${HOMEWORK_NAME} base ${Vulkan_LIBRARY} ${WINLIBS})
|
||||
else(WIN32)
|
||||
add_executable(${HOMEWORK_NAME} ${MAIN_CPP} ${SOURCE} ${MAIN_HEADER} ${SHADERS_GLSL} ${SHADERS_HLSL} ${README_FILES})
|
||||
|
|
|
@ -0,0 +1,47 @@
|
|||
|
||||
#include "GUIFunction.h"
|
||||
|
||||
|
||||
// win32 api IFileOpenDialog
|
||||
PWSTR GUIFunction::openFileFolderDialog(HINSTANCE hInstance, HINSTANCE, PWSTR pCmdLine, int nCmdShow)
|
||||
{
|
||||
//initialize COM lib
|
||||
HRESULT hResult = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE);
|
||||
if (SUCCEEDED(hResult))
|
||||
{
|
||||
IFileOpenDialog* pFileOpen = nullptr;
|
||||
|
||||
hResult = CoCreateInstance(CLSID_FileOpenDialog, NULL, CLSCTX_ALL, IID_IFileOpenDialog, reinterpret_cast<void**>(&pFileOpen));
|
||||
|
||||
if (SUCCEEDED(hResult))
|
||||
{
|
||||
// Show the Open dialog box.
|
||||
hResult = pFileOpen->Show(NULL);
|
||||
|
||||
// Get the file name from the dialog box.
|
||||
if (SUCCEEDED(hResult))
|
||||
{
|
||||
IShellItem* pItem;
|
||||
hResult = pFileOpen->GetResult(&pItem);
|
||||
if (SUCCEEDED(hResult))
|
||||
{
|
||||
PWSTR pszFilePath;
|
||||
hResult = pItem->GetDisplayName(SIGDN_FILESYSPATH, &pszFilePath);
|
||||
|
||||
// Display the file name to the user.
|
||||
if (SUCCEEDED(hResult))
|
||||
{
|
||||
MessageBoxW(NULL, pszFilePath, L"File Path", MB_OK);
|
||||
CoTaskMemFree(pszFilePath);
|
||||
stringFilePath == pszFilePath;
|
||||
}
|
||||
pItem->Release();
|
||||
}
|
||||
}
|
||||
pFileOpen->Release();
|
||||
}
|
||||
CoUninitialize();
|
||||
}
|
||||
return stringFilePath;
|
||||
|
||||
};
|
|
@ -0,0 +1,27 @@
|
|||
#pragma once
|
||||
|
||||
#include <cstdio>
|
||||
#include <string>
|
||||
|
||||
#include <shobjidl.h>
|
||||
#include <windows.h>
|
||||
class GUIFunction
|
||||
{
|
||||
public:
|
||||
GUIFunction();
|
||||
~GUIFunction();
|
||||
|
||||
PWSTR openFileFolderDialog(HINSTANCE hInstance, HINSTANCE, PWSTR pCmdLine, int nCmdShow);
|
||||
private:
|
||||
PWSTR stringFilePath;
|
||||
};
|
||||
|
||||
GUIFunction::GUIFunction()
|
||||
{
|
||||
}
|
||||
|
||||
GUIFunction::~GUIFunction()
|
||||
{
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue