我能從 LabWindows/CVI 的 DLL 中修改人機介面嗎?



主要軟體:
主要軟體版本: 8.0
主要軟體修正版本: N/A
次要軟體: N/A

問題:
我程式中有使用函式去修改了我人機介面(*.uir)的屬性,例如textbox的值。我想要製作一個包含這個函式的 DLL,但是我擔心不能在 DLL 內部修改人機介面。

解答:

為了修改人機介面,函式需要連結當前記憶體中載入的面板。這需要面板的參考值(reference)(例如:控制碼)以做為參數傳遞到函式。

例如,假定 DLL 包含一個稱為 ModifyUI 的函式,該函式修改了人機介面的一些屬性。函式原型應為:

void __stdcall ModifyUI(int panelHandle, int controlID)

panelHandle 參數指定到特定面板的連結,而該面板位於記憶體中。您從 LoadPanel() 或者 LoadPanelEx() 函式獲得連結。

controlID 參數會參考人機介面控制項的 ID。參閱知識庫文章 What are Control IDs in LabWindows/CVI? 以瞭解更多資訊。

呼叫這個函式的函式如下:

ModifyUI(panelHandle, PANEL_TEXTBOX)

其中 PANEL_TEXTBOX 表示textbox control的 ID。當使用人機介面函式時,這兩個參數都需要。



相關連結:
KnowledgeBase 3PSEM76S: What are Control IDs in LabWindows/CVI?
Developer Zone Tutorial: FAQ: Using Dynamic Link Libraries with LabWindows/CVI
KnowledgeBase DIRECT-3U6SEL: How Do I Create and Debug a DLL in CVI 5.0?

附加檔案:





報告日期: 05/22/2002
最後更新: 12/07/2007
文件偏號: 2LLAG28R