{
ChangeFocus = TRUE;
}
+
+ if (ChangeFocus && GetCapture() == NULL &&
+ (uMsg == WM_LBUTTONDOWN || uMsg == WM_LBUTTONDBLCLK))
+ {
+ infoPtr->FocusedPushed = TRUE;
+ Capture = TRUE;
+ }
}
else
{
if (ChangeFocus)
{
- if (uMsg == WM_LBUTTONDOWN &&
- InCheckBox && GetCapture() != hwnd)
- {
- infoPtr->FocusedPushed = TRUE;
-
- Capture = TRUE;
- }
-
ChangeCheckItemFocus(infoPtr,
NewFocus,
NewFocusBox);
BOOL InCheckBox;
POINT pt;
+ pt.x = (LONG)LOWORD(lParam);
+ pt.y = (LONG)HIWORD(lParam);
+
infoPtr->FocusedPushed = FALSE;
PtItem = PtToCheckItemBox(infoPtr,
&PtItemBox,
&InCheckBox);
- if (InCheckBox && PtItem == infoPtr->FocusedCheckItem &&
+ if (PtItem == infoPtr->FocusedCheckItem && InCheckBox &&
PtItemBox == infoPtr->FocusedCheckItemBox)
{
ChangeCheckBox(infoPtr,
ZeroMemory(&wc, sizeof(WNDCLASS));
- wc.style = 0;
+ wc.style = CS_DBLCLKS;
wc.lpfnWndProc = CheckListWndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = sizeof(PCHECKLISTWND);