Showing posts with label Win32 API. Show all posts
Showing posts with label Win32 API. Show all posts
2011/03/01
[Cpp Builder] 프로그램 최소화 및 원래대로 하기
프로그램을 최소화 할때에는 Application 의 Minimize() 함수를 이용하면 되었는데 Restore() 함수를 할 때에는 잘 동작하지 않았다. 하지만 ShowWindow 함수를 이용할 때에는 잘 동작을 하였다.
// Minimize to Tray
<
ShowWindow( this->Handle, SW_MINIMIZE );
Hide(); // Hide Taskbar icon
// Restore Window
ShowWindow( this->Handle, SW_RESTORE );
Show(); // Show Taskbar Icon
Original Post : http://neodreamer-dev.tistory.com/514
Labels:
Application minimize
,
Application Restore
,
C++ Builder
,
ShowWindow
,
SW_MINIMIZE
,
TistoryOldPost
,
Win32 API
2010/05/18
SHBrowseForFolder 폴더 선택시 대화상자에 선택된 경로 보여주기
SHBrowseForFolder 이용한 폴더 선택시 대화상자에서 사용자가 폴더를 선택할 때마다 선택된 경로를 대화 상자에 뿌려 주기 위해서는 SHBrowseForFolder 함수를 호출 할 때 넘겨주는 BrowseInfo 객체의 Flag 에 BIF_STATUSTEXT 를 추가하고 Callback 함수를 지정하여 Callback 함수에서 BFFM_SELCHANGED 메세지를 받아서 처리하면 된다.
<
Original Post : http://neodreamer-dev.tistory.com/441
static int CALLBACK BrowseCallbackProc(
HWND hwnd,UINT uMsg, LPARAM lParam, LPARAM lpData)
{
switch (uMsg)
{
// 폴더 선택 대화 상자 초기화 할 때, 초기 경로 설정
case BFFM_INITIALIZED:
{
SendMessage(hwnd, BFFM_SETSELECTION, TRUE, (LPARAM)lpData );
}
break;
// 사용자가 폴더를 선택할 경우 대화상자에 선택된 경로 표시
case BFFM_SELCHANGED:
{
TCHAR szText[MAX_PATH] = {0};
SHGetPathFromIDList( (LPCITEMIDLIST)lParam, szText );
SendMessage(hwnd, BFFM_SETSTATUSTEXT, 0, (LPARAM)szText );
}
break;
}
return 0; // Always return 0.
}
void CDlgCopy::OnBnClicked()
{
LPITEMIDLIST pidlBrowse;
WCHAR szFolder[MAX_PATH];
CString strInit = "초기 경로";
BROWSEINFO brInfo;
::ZeroMemory(&brInfo, sizeof(BROWSEINFO));
brInfo.hwndOwner = m_hWnd;
brInfo.pidlRoot = NULL;
brInfo.pszDisplayName = szFolder;
brInfo.lpszTitle = _T("Copy Folder");
brInfo.ulFlags = BIF_RETURNONLYFSDIRS | BIF_STATUSTEXT | BIF_VALIDATE;
brInfo.lpfn = BrowseCallbackProc;
brInfo.lParam = (LPARAM)strInit.GetBuffer( strInit.GetLength() );
::ZeroMemory(szFolder, MAX_PATH);
pidlBrowse = ::SHBrowseForFolder(&brInfo);
strInit.ReleaseBuffer();
if ( pidlBrowse != NULL )
{
::SHGetPathFromIDList(pidlBrowse, szFolder);
}
else
{
return;
}
m_strSaveFolder = szFolder;
}
Original Post : http://neodreamer-dev.tistory.com/441
Labels:
SHBrowseForFolder
,
ShellAPI
,
TistoryOldPost
,
Win32
,
Win32 API
,
폴더 선택
SHBrowseForFolder 초기 경로 설정하기
SHBrowseForFolder 이용하여 폴더 선택 대화상자를 사용할 때, 초기 기본 경로를 설정하는 방법은 Callback 함수를 지정하여 대화상자가 초기화 메세지를 받아 기본 경로를 설정하는 메세지를 보내면 된다.
SHBrowseForFolder 함수를 호출 할 때, BrowseInfo 객체의 lpfn 에 Callback 함수를Flag 에 BIF_VALIDATE 를 지정해야 하고 lParam 에 기본 경로를 설정한다. lParam 에 설정하지 않고 직접 메세지 전달시 지정할 수도 있다.
<
Original Post : http://neodreamer-dev.tistory.com/440
SHBrowseForFolder 함수를 호출 할 때, BrowseInfo 객체의 lpfn 에 Callback 함수를Flag 에 BIF_VALIDATE 를 지정해야 하고 lParam 에 기본 경로를 설정한다. lParam 에 설정하지 않고 직접 메세지 전달시 지정할 수도 있다.
static int CALLBACK BrowseCallbackProc(
HWND hwnd,UINT uMsg, LPARAM lParam, LPARAM lpData)
{
switch (uMsg)
{
case BFFM_INITIALIZED:
{
SendMessage(hwnd, BFFM_SETSELECTION, TRUE, (LPARAM)lpData );
}
break;
}
return 0; // Always return 0.
}
void CDlgCopy::OnBnClicked()
{
LPITEMIDLIST pidlBrowse;
WCHAR szFolder[MAX_PATH];
CString strPath = "초기 경로";
BROWSEINFO brInfo;
::ZeroMemory(&brInfo, sizeof(BROWSEINFO));
brInfo.hwndOwner = m_hWnd;
brInfo.pidlRoot = NULL;
brInfo.pszDisplayName = szFolder;
brInfo.lpszTitle = _T("Copy Folder");
brInfo.ulFlags = BIF_RETURNONLYFSDIRS | BIF_STATUSTEXT | BIF_VALIDATE;
brInfo.lpfn = BrowseCallbackProc;
brInfo.lParam = (LPARAM)strPath.GetBuffer( strPath.GetLength() );
::ZeroMemory(szFolder, MAX_PATH);
pidlBrowse = ::SHBrowseForFolder(&brInfo);
strPath.ReleaseBuffer();
if ( pidlBrowse != NULL )
{
::SHGetPathFromIDList(pidlBrowse, szFolder);
}
else
{
return;
}
m_strSaveFolder = szFolder;
}
<
Original Post : http://neodreamer-dev.tistory.com/440
Labels:
SHBrowseForFolder
,
ShellAPI
,
TistoryOldPost
,
Win32
,
Win32 API
Subscribe to:
Posts
(
Atom
)