ientRect (hwnd, &rect) ; Rectangle (hdc, 0, 0, rect.right, rect.bottom) ;
// Draw the "x" mark if (GetWindowLong (hwnd, 0)) { MoveToEx (hdc, 0, 0, NULL) ; LineTo (hdc, rect.right, rect.bottom) ; MoveToEx (hdc, 0, rect.bottom, NULL) ; LineTo (hdc, rect.right, 0) ; } // Draw the "focus" rectangle if (hwnd == GetFocus ()) { rect.left += rect.right / 10 ; rect.right -= rect.left ; rect.top += rect.bottom / 10 ; rect.bottom -= rect.top ;
SelectObject (hdc, GetStockObject (NULL_BRUSH)) ; SelectObject (hdc, CreatePen (PS_DASH, 0, 0)) ; Rectangle (hdc, rect.left, rect.top, rect.right, rect.bottom) ; DeleteObject (SelectObject (hdc, GetStockObject (BLACK_PEN))) ; }
EndPaint (hwnd, &ps) ; return 0 ; } return DefWindowProc (hwnd, message, wParam, lParam) ; }
您应该能回忆起每一个子视窗有唯一的子视窗ID,该ID在呼叫CreateWindow建立视窗时定义。在CHECKER3中,此ID是矩形的x和y位置的组合。一个程式可以通过下面的呼叫来获得一个特定子视窗的子视窗ID:
idChild = GetWindowLong (hwndChild, GWL_ID) ;
下面的函式也有同样的功能:
idChild = GetDlgCtrlID (hwndChild) ;
正如函式名称所表示的,它主要用於对话方块和控制视窗。如果您知道父视窗的代号和子视窗ID,此函式也可以获得子视窗的代号:
hwndChild = GetDlgItem (hwndPa |