請教各位,
如果我有個主介面視窗,內部有一個按鈕,按下後可以跳出一個獨立的option視窗,
要如何讓這個option視窗能夠強制維持在最上層的位置,
而且,在按下OK或Cancel關掉之前,無法選擇其他視窗,若滑鼠點到外面的位置還會有警示聲?
運作效果類似LabVIEW開發環境下,最上面工具列選擇Tools->Options…出現的Option視窗~
目前主要問題有兩個:
Q1: 如何按鈕後彈出獨立視窗?
我看到有3種做法:
(1)將彈出的視窗做成VI,並設定其VI Property->Windows Appearance->Show front panel when called
如下所示:
(2)使用Static VI Reference,然後用Invoke Node執行FP.Open和Run VI這兩個Method
如下所示:
(3)使用Open VI Reference,然後用Invoke Node執行FP.Open和Run VI這兩個Method
請問這三種方法有何不同?
Q2:如何設定彈出的視窗強制維持在最上層,直到關閉為止?
這個目前只看過一個方法,就是在該視窗的VI中,
使用Event Structure,然後在Time out裡面用Call Library Function Node,
去呼叫user32.dll中的SetWindowPos函數來設定,
這方法達成的效果很接近,但卻不太一樣,
因為他是藉由Event Structure中的Timeout事件,每隔幾毫秒重新設定視窗位置,所以看得出來會有一點延遲。
而且選擇視窗之外的地區,也不會有警告的聲音。
所以我想請問,
是否有哪個Method可用? 還是要呼叫哪一個Windows API比較恰當?
感謝!