Showing posts with label WINAPI. Show all posts
Showing posts with label WINAPI. Show all posts
2011/04/04
시스템 종료와 관련된 윈도우 메시지 : WM_QUERYENDSESSION, WM_ENDSESSION
WM_QUERYENDSESSION
시스템 종료 확인 메시지
시스템이 종료 또는 로그오프시에 응용프로그램에 WM_QUERYENDSESSION 이 전달 되고, 이 때 종료를 거부하며련 FALST 를 허가 하려면 TRUE 를 반환한다.
TRUE 를 반환하면 시스템은 해당 응용프로그램에 WM_ENDSESSION 를 전달하여 프로그램에 시스템 종료를 알리고 시스템을 종료한다.
if ( lParam & ENDSESSION_LOGOFF )
{
// Log-off
}
else
{
// Shutdown
}
참고 사이트 : WinAPI, MSDN
WM_ENDSESSION
시스템 종료 메시지
시스템 종료가 결정되 되고 종료됨을 알리는 메시지 이다. 메시지 처리 후 0을 리턴 한다.
if ( wParam == TRUE )
{
// Shutdowning...
if ( lParam & ENDSESSION_LOGOFF )
{
// Log-off
}
else
{
// Shutdown
}
}
else
{
// ??
}
참고 사이트 : WinAPI, MSDN
<
Original Post : http://neodreamer-dev.tistory.com/526
Labels:
shutdown
,
TistoryOldPost
,
WINAPI
,
WM_ENDSESSION
,
WM_QUERYENDSESSION
2008/07/11
유니코드와 아스키코드간의 변환 함수
MySQL++ 라이브러리 관련되어 테스트를 해보다 보게된 함수이다.
함수 스택 버퍼를 사용하는 W2A, A2W 보다 간단하게 함수를 만들어 사용하는게 메모리 운영면에서 여러모로 좋다.
Original Post : http://neodreamer-dev.tistory.com/122
함수 스택 버퍼를 사용하는 W2A, A2W 보다 간단하게 함수를 만들어 사용하는게 메모리 운영면에서 여러모로 좋다.
//// ToUCS2 ////////////////////////////////////////////////////////////
// Convert a C string in UTF-8 format to UCS-2 format.
bool CExampleDlg::ToUCS2(LPTSTR pcOut, int nOutLen, const char* kpcIn)
{
if (strlen(kpcIn) > 0) {
// Do the conversion normally
return MultiByteToWideChar(CP_UTF8, 0, kpcIn, -1, pcOut,
nOutLen) > 0;
}
else if (nOutLen > 1) {
// Can't distinguish no bytes copied from an error, so handle
// an empty input string as a special case.
_tccpy(pcOut, _T(""));
return true;
}
else {
// Not enough room to do anything!
return false;
}
}
//// ToUTF8 ////////////////////////////////////////////////////////////
// Convert a UCS-2 multibyte string to the UTF-8 format.
bool CExampleDlg::ToUTF8(char* pcOut, int nOutLen, LPCWSTR kpcIn)
{
if (_tcslen(kpcIn) > 0) {
// Do the conversion normally
return WideCharToMultiByte(CP_UTF8, 0, kpcIn, -1, pcOut,
nOutLen, 0, 0) > 0;
}
else if (nOutLen > 0) {
// Can't distinguish no bytes copied from an error, so handle
// an empty input string as a special case.
*pcOut = '\0';
return true;
}
else {
// Not enough room to do anything!
return false;
}
}
Original Post : http://neodreamer-dev.tistory.com/122
2008/06/19
시스템 커서 불러오기
간단한 것인데 종종 잊고 그런다. ^^*
HCURSOR LoadCursor(
HINSTANCE hInstance,
LPCTSTR lpCursorName
);
hInstance : 커서를 불러들일 인스턴스. NULL 일경우 시스템 리소스
lpCursorName : 적용될 커서
IDC_APPSTARTING : 표준 커서와 작은 모래시계 모양 (백그라운드 작업)
IDC_ARROW : 표준 커서 (보통 선택)
IDC_CROSS : 십자 모양 (정밀도 선택)
IDC_HAND : 손 모양 (연결 선택)
IDC_HELP : 화살표와 물음표 (도움말 선택)
IDC_NO : 사선이 그어진 원형 모양 (알 수 없음)
IDC_SIZEALL : 네 방향 화살표 (이동)
IDC_SIZENESW : 좌하-우상을 잇는 화살표 (대각선 방향 크기 조절 2)
IDC_SIZENS : 아래위 화살표 (수직 크기 조절)
IDC_SIZENWSE : 좌상-우하을 잇는 화살표 (대각선 방향 크기 조절 1)
IDC_SIZEWE : 좌우 화살표 (수평 크기 조절)
IDC_UPARROW : 위쪽 화살표 (대체선택)
IDC_WAIT : 모래시계 (대체선택)
IDC_IBEAM : 텍스트 박스 커서 (텍스트 입력)
괄호안의 이름은 마우스 등록정보의 포인터 탭에서 명명된 이름이다.
사용예
SetCursor(LoadCursor(0, IDC_ARROW));
Original Post : http://neodreamer-dev.tistory.com/108
Labels:
API
,
LoadCursor
,
SetCursor
,
TistoryOldPost
,
WINAPI
,
마우스커서
Subscribe to:
Posts
(
Atom
)