Set Focus到特定的視窗 |
尚未結案
|
blk5743
高階會員 發表:34 回覆:371 積分:236 註冊:2003-11-17 發送簡訊給我 |
請問各位前輩: 我目前有一個A程式,執行到一半會產生一個MessageBox等待輸入
但是如果我在執行A程式一次時,焦點可能就不會落在MessageBox上(跑到其他視窗)
因此我就不能用鍵盤直接選Enter到觸發Yes按鈕或Tab轉移焦點到No按鈕 請問有什麼方式可以讓我確保按Enter時,會按下Yes按鈕
按Tab時,會轉移到No按鈕 爬過站上的一些文章,我在Timer事件中(Interval = 1000)
用PostMessage(hWnd,WM_SETFOCUS,NULL,0)
or SetActiveWindow(hWnd)加SetFocus()都無法達成我的需求 請各位前輩有好的方法,可以不吝指教
|
supman
尊榮會員 發表:29 回覆:770 積分:924 註冊:2002-04-22 發送簡訊給我 |
|
blk5743
高階會員 發表:34 回覆:371 積分:236 註冊:2003-11-17 發送簡訊給我 |
我在敘述一次我的問題好了 我有一個A程式,但是我可能會不定時的最多打開4次
也就是說,最多畫面上有4個A程式在跑 A程式執行到某一個步驟後,會出現一個MessageBox問你是否正確
(如果其他同時還有3個A程式執行,將會暫時不進入此步驟,
因此最多只有1個MessageBox會出現) 問題來了,我本來應該是直接按下Enter鍵,Yes的按鈕就會被按下
但卻因為此時另外一個A程式被執行,因此Focus被設定到新的A程式視窗上
因此我按下Enter鍵,並不會執行Yes按鈕 我也試過SetForegroundWindow(hw); //設定焦點
但是這只是把我原本的視窗放到Top來,但我按下Enter時,
Yes按鈕不一定被執行(Focus可能又跑到其他視窗上) 因此我想應該是要從兩個方向來做
1.讓MessageBox的視窗永遠得到Focus
2.攔截Enter及Tab,讓它可以對MessageBox做相對應的步驟 不過步驟二會比較複雜,因此希望各位前輩可以提供方法
讓我的MessageBox可以一直被Set Focus
|
windblown
中階會員 發表:0 回覆:117 積分:98 註冊:2003-11-14 發送簡訊給我 |
|
blk5743
高階會員 發表:34 回覆:371 積分:236 註冊:2003-11-17 發送簡訊給我 |
|
deity
尊榮會員 發表:90 回覆:876 積分:678 註冊:2003-05-09 發送簡訊給我 |
blk5743您好:
参考如下
http://delphi.ktop.com.tw/topic.php?topic_id=24741
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=24003
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=25572
应该有您要的,试试看 <>
============================
为什么经过多年以后,得失的过程如此冷漠
============================
>
|
windblown
中階會員 發表:0 回覆:117 積分:98 註冊:2003-11-14 發送簡訊給我 |
|
blk5743
高階會員 發表:34 回覆:371 積分:236 註冊:2003-11-17 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |