ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 윈도우 - Win32
    GUI/Window 2009. 3. 8. 16:12
    타이틀 바
    시스템 메뉴
    메뉴 바 // 메인 메뉴
    메뉴 항목(Menu Item)
    팝업 항목(Popup Item)
    팝업 메뉴(Popup menu)
    메뉴 항목(Menu Item)
    명령 항목(Command Item)
    플로팅 팝업 메뉴(Floating Popup Menu)
    툴바
    상태?


    MessageBox()

    DialogBox()

    WM_SETCURSOR
    디폴트 커서 대신 다른 커서를 보일 수 있다.
    c.f. GetCursorPos(), SetCursor()

    GetWindowLongPtr()
    GWL_STYLE

    윈도우 프로퍼티
    SetProp()
    RemoveProp()
    GetProp()
    여분 메모리
    cbClsExtra
    cbWndExtra
    GWL_USERDATA

    GetWindowLong()
    SetWindowLong()

    차일드 윈도우 // WS_CHILD
    부모 윈도우가 파괴되면 자동으로 파괴된다.
    보통 타이틀 바를 가지지 않는다.    // 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

    WS_VSCROLL
    WS_HSCROLL
    WS_SYSMENU
    WS_MINIMIZEBOX
    WS_MAXIMIZEBOX
    // CS_NOCLOSE

    WS_MINIMIZE
    WS_VISIBLE
    WS_DISABLED
    WS_MAXIMIZE
    CreateWindowEx()
    WS_EX_TOPMOST
    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
    DestroyWindow()
    WM_DESTROY
    EnumWindows()
    GetClassName()
    GetWindowThreadProcessId()

    WM_CREATE
    WM_CLOSE
    창 닫기 예외 처리
    WM_QUERYENDSESSION
    WM_NCDESTROY
    on WM_SIZE
    SIZE_MINIMIZED

    IsWindow()
    IsChild()
    ShowWindow()
    SW_HIDE
    SW_MINIMIZE
    SW_RESTORE
    SW_SHOW
    SW_SHOWNORMAL

    WM_SHOWWINDOW
    WM_SIZE
    IsWindowVisible()
    IsIconic()
    IsZoomed()
    UpdateWindow()
    MoveWindow()
    위치와 크기를 변경
    WM_NCHITTEST
    HTBORDER
    HTBOTTOM
    HTBOTTOMLEFT
    HTBOTTOMRIGHT
    HTCAPTION
    HTCLIENT
    HTCLOSE
    HTERROR
    HTGROWBOX
    HTHELP
    HTHSCROLL
    HTLEFT
    HTMENU
    HTMAXBUTTON
    HTMINBUTTON
    HTNOWHERE
    HTREDUCE
    HTRIGHT
    HTSIZE
    HTSYSMENU
    HTTOP
    HTTOPLEFT
    HTTOPRIGHT
    HTTRANSPARENT
    HTVSCROLL
    HTZOOM

    WM_NCLBUTTONDOWN
    WM_ENTERSIZEMOVE
    WM_EXITSIZEMOVE
    WM_MOVING
    WM_MOVE
    WM_SIZING
    WM_SIZE
    SIZE_MINIMIZED
    WM_GETMINMAXINFO
    SetWindowPos()
    HWND_TOPMOST

    SWP_FRAMECHANGED

    WM_POSCHANGING
    WM_POSCHANGED
    GetWindowPlacement()
    GetWindowRect()
    ScreenToClient()
    BringWindowToTop()
    SetForgroundWindow()
    WM_ACTIVEAPP
    SetActiveWindow()
    WM_ACTIVATE
    GetActiveWindow()
    SetFocus()
    WM_SETFOCUS
    GetFocus()
    GetWindowRect()
    GetWindowText()   
    WM_GETTEXT
    GetWindowTextLength()
    SetWindowText()   
    WM_SETTEXT
    EnableWindow()
    on WM_ENABLE
    IsWindowEnabled()
    WM_NCHITTEST
    SetLayeredWindowAttributes()
    LWA_ALPHA

    GetCursorPos()
    c.f. ScreenToClient()
    GetDlgItem()
    SetDlgItemText()

    WM_SETFONT
    WM_DROPFILES

    OpenClipboard()
    InvalidateRect()
    WM_ERASEBKGND
    GetClientRect()

    WM_QUERYNEWPALETTE
    WM_PALETTECHANGED

    '서브클래싱'으로 윈도우의 동작에 약간의 변화를 줄 수 있다.

    GetFocus()
    GetForegroundWindow()

    WM_ERASEBKGND
    hbrBackground

    WM_MOUSEACTIVATE
    SetFocus()

    WS_CLIPCHILDREN
    WS_CLIPSIBLINGS

    DrawMenuBar()

    on WM_INITMENU // 메인 메뉴
    on WM_CONTEXTMENU // (플로팅 )팝업 메뉴
    TrackPopupMenu()
    on WM_HELP
    F1키를 누를 때 인풋 포커스를 가진 창

    DefWindowProc()는 부모나 오너 윈도우로 전달한다.

    WM_GETMINMAXINFO
    WM_SYSCOMMAND
    uCmdType = wParam
    SC_SIZE
    SC_MOVE
    SC_MINIMIZE
    SC_MAXIMIZE
    SC_CLOSE
    SC_RESTORE
    SC_KEYMENU

    SetCursor()
    WindowFromPoint()
    ChildWindowFromPoint()
    GetMenu()
    SetMenu()


    참조 사이트:
    http://www.codeproject.com/KB/winsdk/QDWndTransparency.aspx
    http://www.rhea.pe.kr/entry/MFC-%ED%8C%9D%EC%97%85Pop-up%EC%9C%88%EB%8F%84%EC%9A%B0%EB%A5%BC-%EC%9C%84%ED%95%9C-%EC%86%8C%ED%92%88%EC%A0%9C%EC%9E%91-%ED%95%98%EB%82%98
    http://intel.tistory.com/2460578
    http://ssmhz.tistory.com/tag/DefWindowProc
    http://frog3147.tistory.com/tag/WM_NCLBUTTONDOWN
    http://kelt.konkuk.ac.kr/?mid=siniorBoard&listStyle=webzine&page=2&document_srl=92
    http://www.nicklib.com/library/WIN32API/Function/SetWindowLong.htm
    http://jjjryu.tistory.com/entry/%EC%BB%A8%ED%8A%B8%EB%A1%A4-Win32
    http://blogs.msdn.com/oldnewthing/archive/2003/10/27/55461.aspx
    http://www.winapi.co.kr/reference/Message/WM_GETMINMAXINFO.htm
    http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=50&MAEULNo=20&no=442870&ref=442870
    http://www.winapi.co.kr/reference/Message/WM_USER.htm
    http://www.winapi.co.kr/reference/Message/WM_APP.htm
    http://myfile.hanafos.com/~kukdas/doc/mfc/ipc2.html

Designed by Tistory.