如何做成像輸入法 ToolBar 不取得焦點(Focus). |
|
kenlee1109
初階會員 發表:20 回覆:40 積分:27 註冊:2006-08-17 發送簡訊給我 |
|
歸木淡
中階會員 發表:1 回覆:49 積分:75 註冊:2005-09-07 發送簡訊給我 |
在form的private部分加上
procedure WMMouseActivate(Var msg: tmessage); message WM_MOUSEACTIVATE; procedure tIMEform.WMMouseActivate(var msg: tmessage);
begin
msg.result := MA_NOACTIVATE;
end; 處理onActivate, 其中mainform為focus所在的form: procedure tIMEform.FormActivate(Sender: TObject);
begin
if assigned(mainform) then
if mainform.visible then
begin
Windows.SetFocus(mainform.Handle);
if application.MainForm=mainform then
Windows.SetFocus(application.handle);
end;
end;
|
kenlee1109
初階會員 發表:20 回覆:40 積分:27 註冊:2006-08-17 發送簡訊給我 |
|
kenlee1109
初階會員 發表:20 回覆:40 積分:27 註冊:2006-08-17 發送簡訊給我 |
歸木淡兄,我是用 Borland C++開發,宣告如下.
BEGIN_MESSAGE_MAP MESSAGE_HANDLER(WM_MOUSEACTIVATE, TMessage, WMMouseActivate) END_MESSAGE_MAP(TForm) //--------------------------------------------------------------------------- void __fastcall TMainForm::WMMouseActivate(TMessage &Message){ Message.Result = MA_NOACTIVATE; } 當我點下 Mouse 在 form 上時,有觸動這個 function, 但是 focus 一樣移到這個 form 上( Title 變成深藍色表示 focus 切換),是不是尚需做啥? and 您第二段處理 OnActive 應該是 void __fastcall TMainForm::OnActive(TObject *Sender) { ::SetFocus(Handle); } 無法 work,請問是什麼原因? |
歸木淡
中階會員 發表:1 回覆:49 積分:75 註冊:2005-09-07 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |