2008/01/09

일정 시간 경과 후 사라지는 MessageBox

윈도우즈가 설치되면 수많은 Dll 들이 설치가 되는데 대부분의 함수들은 Windows API 문서에 기술이 되지만 그렇지 않은 함수들도 많이 존재한다.
그런 함수들 중 하나로 일정 시간 지나면 스스로 사라지는 메세지박스가 user32.dll에 포함되어 있다.

MessageBoxTimeout 함수는 다음과 같다.
int MessageBoxTimeoutA(IN HWND hWnd, IN LPCSTR lpText, 
IN LPCSTR lpCaption, IN UINT uType,
IN WORD wLanguageId, IN DWORD dwMilliseconds);
int MessageBoxTimeoutW(IN HWND hWnd, IN LPCWSTR lpText,
IN LPCWSTR lpCaption, IN UINT uType,
IN WORD wLanguageId, IN DWORD dwMilliseconds);


이 함수를 이용하기 위해서는 라이브러리를 읽어와서 함수 포인터를 연결해 주어야한다.
static MSGBOXAAPI MsgBoxTOA = NULL;

HMODULE hUser32 = GetModuleHandle(_T("user32.dll"));
if (hUser32)
{
MsgBoxTOA = (MSGBOXAAPI)GetProcAddress(hUser32,
"MessageBoxTimeoutA");
}


MessageBoxTimeout 함수의 반환값 보통 메세지 박스와 같지만 시간이 경과하여 자동으로 사라질 경우에는 OK 버튼일 경우 1을 넘겨주고 YESNO 같은 선택형일 경우 MB_TIMEOUT(=3200) 값을 넘겨준다.

MessageBoxTimeout 함수를 편하게 사용하도록 정리된 헤더파일



소스보기..

No comments :

Post a Comment