윈도우 클래스 정보
윈도우 클래스의 종류
시스템 전역 클래스(System global class)
운영체제가 부팅될 때 등록되며 주로 컨트롤을 만들 때 사용된다.
Button, edit, scrollbar, listbox, 등이 그 예이며, 따라서 버튼 윈도우를 만들고 싶다 면 등록된 “button”이라는 클래스명으로 참조해서 생성하면 된다 초기 컨트롤 윈도우 클래스 이다.
응용 프로그램 전역 클래스(Application global class)
주로 DLL에 의해 등록되며 다른 프로그램에서 사용 될 수 있다.
추가 컨트롤 윈도우 클래스 이다.
응용 프로그램 로컬 클래스(Application local class)
응용 프로그램 자신이 메인 윈도우나 차일드 또는 커스텀 컨트롤을 만들기 위해 프 로그램 상단에 등록하는 클래스이며 해당 프로그램이 종료되면 윈도우 클래스도 같 이 파괴된다.
코드에 등록된 곳에서만 사용할 수 있다.
윈도우 객체(Window Object)
윈도우 객체는 운영체제가 하나의 윈도우를 관리하기 위해 생성하는 데이터 구조체이다.
CreateWindow() 함수로 윈도우를 만들 때 생성되며 설정했던 윈도우의 속성들을 실행 중에 조사하거나 변경하고자 할 때는 다음 두 함수를 사용한다.
// 32bit 전용 함수 : 기존 사용된 함수
LONG GetWindowLong(HWND hWnd, int nIndex);
DWORD SetWindowLong(HWND hWnd, int nIndex, LONG dwNewLong);
// 64bit 전용 지원 함수 : 대체된 함수
LONG_PTR GetWindowLongPtr(HWND hWnd, int nIndex);
LONG_PTR SetWindowLongPtr(HWND hWnd, int nIndex, LONG_PTR dwNewLong)
CreateWindow() 함수는 윈도우 오브젝트를 생성하고 ShowWindow() 함수는 생성된 윈 도우 오브젝트 정보를 바탕으로 화면에 윈도우를 출력해준다.
GetWindowLongPtr() 함수는 저장된 윈도우 오브젝트에서 원하는 정보를 얻을 수 있고, S etWindowLongPtr() 함수는 저장된 윈도우 오브젝트 정보를 수정할 수 있다.
BOOL fun_ModifyStylpe(HWND hwnd, LONG_PTR Add, LONG_PTR Remove, BOOL bRedraw)
{
BOOL bFlag = FALSE;
LONG_PTR style = GetWindowLongPtr(hwnd, GWL_STYLE);
style |= Add;
style &= ~Remove;
bFlag = (BOOL)SetWindowLongPtr(hwnd, GWL_STYLE, style);
if( bFlag && bRedraw )
SetWindowPos(hwnd, 0, 0, 0, 0, 0,
SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_DRAWFRAME);
return bFlag;
}
int WINAPI _tWinMain(HINSTANCE hInst, HINSTANCE hPrev, LPTSTR lpCmdLine, int nS
howCmd)
{
MyRegisterClass(hInst);
HWND hwnd = InitInstance (hInst, nShowCmd);
if (hwnd == 0) {
return FALSE;
}
// 실시간 윈도우 객체 정보 수정
HWND hWnd = FindWindow(0, _TEXT("계산기"));
fun_ModifyStylpe(hWnd,WS_THICKFRAME, WS_SYSMENU, TRUE);
MessageBox(0, TEXT(""), TEXT(""), MB_OK);
return 0;
}
'API Programming' 카테고리의 다른 글
[API] skeleton 코드 (0) | 2024.03.06 |
---|---|
[API] 메시지 ~ 윈도우 프로시저(Window Procedure) 란? (0) | 2024.03.06 |
윈도우 핸들 - 코드 (0) | 2024.03.06 |
윈도우 핸들(Window Handle) (0) | 2024.03.06 |
Window 윈도우 생성 과정 (1) | 2024.03.05 |