請教 VB 的 FOCUS 問題
如圖, 我以 VB2010寫了兩個程式. 以滑鼠按 程式A, 會聚焦(Focus) 程式A視窗
以滑鼠按 程式B, 會聚焦(Focus) 程式B視窗
程式A是我的”主程式”,我希望大部份時間, Focus在程式A視窗.
但是, 程式B執行中, 有時會 "自動"把聚焦搶過去.
此時, 就只好 以滑鼠按 程式A, 再度聚焦 程式A視窗.
請問 ~~~~~~
有沒辦法, 讓 程式B "不要自動" 搶聚焦 ?或是,以程式碼控制碼,儘量大部時間, Focus 留在A程式?
THANKS!
補充說明: "程式A是我的”主程式”,我希望大部份時間, Focus在程式A視窗."
---> 因為程式A, 有用到很多鍵盤"快速鍵",
如果"失焦",快速鍵就沒作用了.
底下並不是 VB 環境 ... 不曉得有沒有什麼幫助? ... :
Set Focus到特定的視窗Delphi K.Top
要不要加一個小段在執行B程式後
立刻執行回A程式
譬如控制滑鼠去按A
AGWZ 發表於 17-1-14 15:48
要不要加一個小段在執行B程式後
立刻執行回A程式
現在關鍵問題仍是⋯⋯B程式為何會自動"搶"Focus.
B程式是券商給的API,
我在上面添加一些自寫的程式碼⋯⋯即每10秒讀我的庫存部位,
會不會這就是B程式自動搶Focus的原因?
補充說明:B程式也有使用連結 EXCELDDE,以顕示最新商品報價。
googleandy 發表於 17-1-14 17:19
現在關鍵問題仍是⋯⋯B程式為何會自動"搶"Focus.
B程式是券商給的API,
底下的網頁, 不知有沒有什麼幫助? ... :
Visual Basic ReferenceActivate, Deactivate EventsMSDN.Microsoft
tinyding 發表於 17-1-14 17:27
底下的網頁, 不知有沒有什麼幫助? ... :
Visual Basic ReferenceActivate, Deactivate EventsMSDN.M ...
哦,看起來問題的關鍵似乎這裡面,我得花一些時間逐項慢慢研究,有結果再回覆。感謝T大。
本帖最後由 googleandy 於 17-1-15 11:20 編輯
tinyding 發表於 17-1-14 17:27
底下的網頁, 不知有沒有什麼幫助? ... :
Visual Basic ReferenceActivate, Deactivate EventsMSDN.M ...
請教T大(或任何高手),
如果, 現在程式 B 是activate狀態, 我打算~~
讓 程式 B Deactivate, 而且, 程式 A 變成 activate
請問如何處理? thanks.
(我試過,模擬滑鼠click可以做到,但不是好方法.)
因為現在程式 B 是activate狀態,讓 程式 B Deactivate 似乎可以用
Call Form1_Deactivate(sender, e)
但如何讓 程式 A 變成 activate ?
用Windows API應該可以達成你的需要
這篇參考看看 googleandy 發表於 17-1-15 10:59
請教T大(或任何高手),
如果, 現在程式 B 是activate狀態, 我打算~~
參考一下底下的例子 ... 其中第一個並不是 VB 環境 ... :
[代码]Delphi实现窗体始终前台显示且获得焦点ET民工
Me.Activate() not working in Deactivate EventVisual Studio
這裡有解 :
https://www.douban.com/note/522136806/ 如果B程式 只是去讀你的倉位
那我看你的A程式直接WRAP B程式裡的API 還比較快一點
畢竟B 如果在A 裡面就好控制多了
iwillbeback44 發表於 17-1-16 09:15
如果B程式 只是去讀你的倉位
那我看你的A程式直接WRAP B程式裡的API 還比較快一點
畢竟B 如果在A 裡面就 ...
I大的建議是好建議。
A程式是MENU
其實除了B程式,還有C、D、E、F程式。
謝謝I大,感恩。
綜合以上,我試過以 SetForeGroundWindow 基本上可以解決問題。非常感謝大家熱心討論和建議。
頁:
[1]
2