다이얼로그 기반 프로그램 시작시 윈도우 숨기기 Programing/Windows Programing2008. 7. 15. 19:37
다이얼로그 기반 프로그램에서 DoModal 호출로 윈도우가 보이게 된다
ShowWindow(SW_HIDE)를 써도 안먹히기는 마찬가지....
OnInitDialog()에 아래와 같이 ShowWindowEx() 메소드를 넣어주면 된다
ShowWindowEx(SW_HIDE);
그리고 윈도우 메시지 헨들러 중 WM_WINDOWPOSCHANGING을 추가하여 넣어주면 된다
아래는 원문...
-----------------------------------------------------------------------------------------------------
아래와 같이 WM_WINDOWPOSCHANGING 메시지 핸들러에서 들어오는 구조체의 플래그를
설정하면 DoModal()로 설정하더라도
윈도우가 보이는 것을 방지할 수 있다.
일단 m_bShowFlag 값에 따라서 변경하면 되고... m_bShowFlag 값은 ShowWindowEx() 함수를 다시 만들어서 그안에서 설정하도록 하면 됩니다. ShowWindow() 함수가 가상함수가 아니라서 어쩔 수 없이 새로 정의한 함수를 사용해야 합니다.
void CHidDlgDlg::OnWindowPosChanging(WINDOWPOS FAR* lpwndpos)
{
CDialog::OnWindowPosChanging(lpwndpos);
// TODO: Add your message handler code here
if(m_bShowFlag)
lpwndpos->flags |= SWP_SHOWWINDOW;
else
lpwndpos->flags &= ~SWP_SHOWWINDOW;
}
BOOL CHidDlgDlg::ShowWindowEx(int nCmdShow)
{
m_bShowFlag = (nCmdShow == SW_SHOW);
return (GetSafeHwnd()) ? ShowWindow(nCmdShow) : TRUE;
}
출처: http://www.gosu.net/GosuWeb/Article-detail.aspx?ArticleCode=473
출처: 데브피아
그럼 이만...
'Programing > Windows Programing' 카테고리의 다른 글
C#에서 Win32 API 사용하기 (0) | 2009.05.27 |
---|---|
Windows 7 애플리케이션 호환성 (0) | 2009.02.18 |
하위폴더 탐색 (재귀호출) (1) | 2008.07.10 |
Unicode Little-Endian <-> Big-Endian 변환 (0) | 2008.06.26 |
MP3 ID3v2 Tag 읽기/편집 라이브러리 및 예제 (1) | 2008.06.23 |