def onMESSAGE(self, hwnd, msg, wp, lp): if msg == fw.WND_WM_NOTIFY: if wp == fw.WND_NM_MSGREFLECT: msgr = fw.WND_MSGREFLECT.from_address(lp) msgr.fReturn = self._base_fMsgReflect if msgr.msg == self.Msg.WM_DRAWITEM: di = DRAWITEMSTRUCT.from_address(msgr.lParam) self.onMSG(hwnd, "drawitem", 0, di) return 1 elif msgr.msg == self.Msg.WM_COMMAND: self.onMSG(hwnd, "command", 0, 0) return 0 elif msg == self.Msg.WM_LBUTTONDBLCLK: # required to trigger ownerdraw messages if self.GetStyleL('style') & self.Style.BS_OWNERDRAW: self.DefWindowProc(self.Hwnd, self.Msg.WM_LBUTTONDOWN, wp, lp) return 0 elif msg == self.Msg.WM_SETFOCUS: self.onMSG(hwnd, "setfocus", wp, lp) elif msg == self.Msg.WM_KILLFOCUS: self.onMSG(hwnd, "killfocus", wp, lp) elif msg == self.Msg.WM_DESTROY: self.onMSG(hwnd, "destroy", 0, 0)
def onMESSAGE(self, hwnd, msg, wp, lp): if msg==fw.WND_WM_NOTIFY: if wp==fw.WND_NM_MSGREFLECT: msgr= fw.WND_MSGREFLECT.from_address(lp) msgr.fReturn= self._base_fMsgReflect if msgr.msg==self.Msg.WM_DRAWITEM: di=DRAWITEMSTRUCT.from_address(msgr.lParam) if self._client_odState[2]: # preprocess selection state changes if di.itemAction==di.SELECTCHANGE and not di.itemState & di.SELECTED: self._client_odState[0] +=1 if self._client_odState[0] >= self._client_odState[1]: self._client_odState[0]=0 self.onMSG(hwnd, "drawitem", 0, di) return 1 return 0 elif msgr.msg==self.Msg.WM_COMMAND: if self.IsChecked(): self.onMSG(hwnd, "checked", 0, 0) elif self.IsGraychecked(): self.onMSG(hwnd, "graychecked", 0, 0) else: self.onMSG(hwnd, "unchecked", 0, 0) return 0
def onMESSAGE(self, hwnd, msg, wp, lp): if msg==fw.WND_WM_NOTIFY: if wp==fw.WND_NM_MSGREFLECT: msgr= fw.WND_MSGREFLECT.from_address(lp) msgr.fReturn= self._base_fMsgReflect if msgr.msg==self.Msg.WM_DRAWITEM: di=DRAWITEMSTRUCT.from_address(msgr.lParam) self.onMSG(hwnd, "drawitem", 0, di) return 1 elif msgr.msg==self.Msg.WM_COMMAND: self.onMSG(hwnd, "command", 0, 0) return 0 elif msg==self.Msg.WM_LBUTTONDBLCLK: # required to trigger ownerdraw messages if self.GetStyleL('style') & self.Style.BS_OWNERDRAW: self.DefWindowProc(self.Hwnd, self.Msg.WM_LBUTTONDOWN, wp, lp) return 0 elif msg==self.Msg.WM_SETFOCUS: self.onMSG(hwnd, "setfocus", wp, lp) elif msg==self.Msg.WM_KILLFOCUS: self.onMSG(hwnd, "killfocus", wp, lp) elif msg==self.Msg.WM_DESTROY: self.onMSG(hwnd, "destroy", 0, 0)