windows子窗口控件---Win32

1. 基本函數
1) 獲得子窗口的父窗口
    hwndParent = GetParent(__in HWND hWnd);
    SendMessage(hwndParent, Msg, wParam, lParam )
    父窗口相應消息:
    可以是 WM_USER或更大
2) 獲取應用程序實例:
    HINSTANCE hInstance;
    WM_CREATE:
             hInstance = ((LPCREATESTRUCT)lParam)->hInstance;

    HINSTANCE hInst = GetWindowLong(__in HWND hWnd, __in int nIndex);
    HINSTANCE hInst = GetWindowLong(hWnd, GWL_HINSTANCE); 
3) 由窗口句柄獲得窗口ID
    id = GetWindowLong(hChildWnd, GWL_ID);
    id = GetDlgCtrlID(hChildWnd);
4) 由父窗口句柄和子窗口ID獲得子窗口句柄
    hChildWnd = GetDlgItem(hParentWnd, id);

2. 按鈕:
1) 消息類型
當用鼠標單擊按鈕時,子窗口控件就會向父窗口發送一個WM_COMMAND消息,消息含義如下:

LOWORD (wParam)

HIWORD (wParam)

lParam

子窗口ID

通知碼

子窗口句柄


通知碼的含義:

按鈕通知碼標識符

BN_CLICKED

0

BN_PAINT

1

BN_HILITE or BN_PUSHED

2

BN_UNHILITE or BN_UNPUSHED

3

BN_DISABLE

4

BN_DOUBLECLICKED or BN_DBLCLK

5

BN_SETFOCUS

6

BN_KILLFOCUS

7

目前只使用通知碼6,7

2) 父窗口向子窗口發送消息

按鈕消息

BM_GETCHECK

0x00F0

BM_SETCHECK

0x00F1

BM_GETSTATE

0x00F2

BM_SETSTATE

0x00F3

BM_SETSTYLE

0x00F4

BM_CLICK

0x00F5

BM_GETIMAGE

0x00F6

BM_SETIMAGE

0x00F7

SendMessage (hwndButton, BM_SETSTATE, 1, 0) ;
SendMessage (hwndButton, BM_SETSTATE, 0, 0) ;
SendMessage ((HWND) lParam, BM_SETCHECK, (WPARAM) !SendMessage ((HWND) lParam, BM_GETCHECK, 0, 0), 0) ;

3) 設置按鈕文字
     SetWindowText(__in HWND hWnd, __in_opt LPCSTR lpString)
     SetWindowText(hChildWnd, pszString);
     iLength = GetWindowText (hwnd, pszBuffer, iMaxLength) ;
     iLength = GetWindowTextLength (hwnd) ;

4) 可見的和啓用按鈕
    ShowWindow (hwndChild, SW_SHOWNORMAL) ;
    ShowWindow (hwndChild, SW_HIDE) ;  // SW_VISIBLE
    BOOL b = IsWindowVisible(hwndChild);

    EnableWindow(hwndChild, FALSE);     // TRUE
    IsWindowEnabled (hwndChild) ;




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章