부모 윈도우가 파괴되면 자동으로 파괴된다.
보통 타이틀 바를 가지지 않는다. // WS_CAPTION
메인 메뉴는 가지지 않으며 대신 팝업 메뉴를 가질 수 있다. // child-window identifier
c.f. overlapped window, pop-up window
GetParent()
SetParent()
소유된 윈도우는 소유자보다 항상 화면상의 위에 위치하며 소유자가 파괴되면 같이 파괴된다.
GetWindow()
GW_OWNER
GW_CHILD
GW_HWNDNEXT
GetTopWindow()
GetNextWindow()
팝업 윈도우
타이틀 바나 경계선을 가지지 않을 수도 있다.
오버랩드 윈도우
RegisterClass()
배경색을 칠하는 브러시
커서
아이콘
CS_DBLCLKS
CreateWindow()
윈도우 캡션
WS_OVERLAPPED
WS_POPUP
WS_CHILD
WS_CAPTION
WS_BORDER
WS_DLGFRAME
WS_THICKFRAME // 경계선 조정이 가능
WS_EX_DLGMODALFRAME
SetWindowLongPtr/SetWindowLong()로 변경할 수 없으며 반드시 SetWindowPos()로 바꿔 주어야 한다.
GWL_EXSTYLE
WS_EX_LAYERED
WS_EX_TRANSPARENT
WS_EX_MDICHILD
SendMessage()
SendDlgItemMessage()
PostMessage()
0~WM_USER-1 // 운영체제가 정의하는 시스템 메시지. WM_PAINT, WM_TIMER 등의 메시지들이 모두 이 범위에 속한다.
WM_USER~WM_APP-1 // 윈도우 클래스가 정의하는 사용자 정의 메시지
WM_APP~0xBFFF // 응용 프로그램이 정의하는 사용자 정의 메시지
RegisterWindowMessage()
WM_COPYDATA
void CIPC4Dlg::OnButtonSend()
{
// TODO: Add your control notification handler code here
...
CWnd *pWnd = CWnd::FindWindow(NULL, "...");
if(!pWnd) {
AfxMessageBox("Program is not found!");
return;
}
// Fill in window class structure with parameters that describe the
// main window.
wc.style = CS_HREDRAW | CS_VREDRAW; // Class style(s)
wc.lpfnWndProc = ::DefWindowProc; // Window Procedure
wc.cbClsExtra = 0; // No per-class extra data
wc.cbWndExtra = 0; // No per-window extra data
wc.hInstance = NULL; // Owner of this class
wc.hIcon = NULL; // Icon name from .RC
// wc.hIcon = LoadIcon(NULL, IDI_APPLICATION); // Icon name from .RC
wc.hCursor = NULL; // Cursor
// wc.hCursor = LoadCursor(NULL, IDC_ARROW); // Cursor
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); // 시스템 색상
//wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
//wc.hbrBackground = (HBRUSH)CreateSolidBrush(RGB(0, 0, 255));
//wc.hbrBackground = (HBRUSH)CreateHatchBrush(HS_DIAGCROSS, RGB(255, 0, 0));
wc.lpszMenuName = NULL; // Menu name from .RC
wc.lpszClassName = "PreviewWNDClass"; // Name to register as
// registers a window class for use in calls to the CreateWindow function RegisterClass(&wc);