請問Combobox下拉選單展開後,在form上任一元件按一下會自動收起來問題? |
尚未結案
|
iamjsn
初階會員 發表:78 回覆:95 積分:44 註冊:2002-08-16 發送簡訊給我 |
|
Zard
尊榮會員 發表:24 回覆:396 積分:539 註冊:2003-11-26 發送簡訊給我 |
|
wameng
版主 發表:31 回覆:1336 積分:1188 註冊:2004-09-16 發送簡訊給我 |
好像不是用 WM_ACTIVATE 。"下拉選單會自動的消失"
SETFOCUS、或ONEXIT 並不是主要的依據。
主要因素在點擊視窗空白處,也會導致選單消失。 如果您要繼承 ComBobox 的元件。那麼,就要瞭解:
procedure CNCommand(var Message: TWMCommand); message CN_COMMAND; procedure TCustomComboBox.CNCommand(var Message: TWMCommand); begin case Message.NotifyCode of CBN_DBLCLK: DblClick; CBN_EDITCHANGE: Change; CBN_DROPDOWN: begin FFocusChanged := False; DropDown; AdjustDropDown; if FFocusChanged then begin PostMessage(Handle, WM_CANCELMODE, 0, 0); if not FIsFocused then PostMessage(Handle, CB_SHOWDROPDOWN, 0, 0); end; end; CBN_SELCHANGE: begin Text := Items[ItemIndex]; Click; Change; end; CBN_SETFOCUS: begin FIsFocused := True; FFocusChanged := True; SetIme; end; CBN_KILLFOCUS: begin FIsFocused := False; FFocusChanged := True; ResetIme; end; end; end;因此我們得知若Combobox 選單消失,將會觸發 CB_SHOWDROPDOWN Message 攔截這個訊息。試試 |
Zard
尊榮會員 發表:24 回覆:396 積分:539 註冊:2003-11-26 發送簡訊給我 |
引言: 好像不是用 WM_ACTIVATE 。"下拉選單會自動的消失" SETFOCUS、或ONEXIT 並不是主要的依據。 主要因素在點擊視窗空白處,也會導致選單消失。 如果您要繼承 ComBobox 的元件。那麼,就要瞭解:我的意思是收到WM_ACTIVATE 失焦的Message後就可以把元件隱藏或關閉.procedure CNCommand(var Message: TWMCommand); message CN_COMMAND; procedure TCustomComboBox.CNCommand(var Message: TWMCommand); begin case Message.NotifyCode of CBN_DBLCLK: DblClick; CBN_EDITCHANGE: Change; CBN_DROPDOWN: begin FFocusChanged := False; DropDown; AdjustDropDown; if FFocusChanged then begin PostMessage(Handle, WM_CANCELMODE, 0, 0); if not FIsFocused then PostMessage(Handle, CB_SHOWDROPDOWN, 0, 0); end; end; CBN_SELCHANGE: begin Text := Items[ItemIndex]; Click; Change; end; CBN_SETFOCUS: begin FIsFocused := True; FFocusChanged := True; SetIme; end; CBN_KILLFOCUS: begin FIsFocused := False; FFocusChanged := True; ResetIme; end; end; end;因此我們得知若Combobox 選單消失,將會觸發 CB_SHOWDROPDOWN Message 攔截這個訊息。試試 |
iamjsn
初階會員 發表:78 回覆:95 積分:44 註冊:2002-08-16 發送簡訊給我 |
|
wameng
版主 發表:31 回覆:1336 積分:1188 註冊:2004-09-16 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |