為你的MFC程式新增巨集指令碼語言

2021-04-19 19:17:51 字數 1262 閱讀 7544

為你的mfc程式新增巨集指令碼語言

請參閱http://www.vckbase.com/document/viewdoc/?id=920

class csafearrayhelper

;

它提供和safearray物件同樣的功能,但是它對於我們某些人(比如我)來說,使用更簡單。 當你想看你包裝在你的safearray中的資料型別的時候,函式getasvariant可能會很有用。由於safearray的資料型別(ffeatures)不能處理所有的型別,所以此函式也不能讀取所有的資料型別。也就是說,這個函式只是對資料型別的猜測。

如何使用

要使用這個控制項,首先我推薦你看看vbscript和jscript的文件以了解你所有能在指令碼語言裡能實現的功能。

寫乙個指令碼函式

假設我們想建立乙個簡單的函式來把溫度從華氏度轉換到攝氏度:

用 vbscript 寫:

function celsius(fdegrees)

celsius = (fdegrees - 32) * 5 / 9

end function

用 jscript 寫:
function celsius(fdegres)

要執行這個函式,只需要把每個變數儲存到variant裡。由於你的函式(方法)可能包含不止乙個引數,我們必須用乙個safearray來包裝它。在後一種情況,你可能想通過檢查string函式的.length屬性或其他的方法來看陣列傳給函式的引數的數目。
function countparam(aparam)

同樣的技術可以用在vbscript中,它允許你在執行時檢測變長引數。呼叫無引數的函式,也要建立safearray,只是沒有引數。 呼叫乙個指令碼函式。你的**應該和下邊的例項一樣簡單::
void cscriptdemodlg::onbtnexecute() 

sfhelper.putelement(0, (void*)&var); // parameter1 -> index 0

lpsafearray sa = sfhelper.getarray();

_variant_t varret;

if (m_scriptobj.runprocedure(strproc, &sa, &varret))

m_ctlresult.setwindowtext( (lpctstr)(_bstr_t(varret)) );

else

}catch(...)

}

一點建議

你可以試試如下的做法:

為你的程式新增系統級熱鍵

很多情況下,我們需要給程式新增乙個系統級的熱鍵。就像常用的qq在啟動後,任何時間只要按下ctrl alt z就能將qq的主介面調出。當然,我們還可以幹其他很多事情!我們在為程式加上熱鍵後,每當按下你所設定的快捷鍵,就會給主視窗發出乙個wm hotkey的訊息,但很可惜,class wizartd並沒...

用winrar的指令碼語言,實現程式的自動打包

目前正在做的乙個vb的專案中,其中有一條很有趣的需求 要求發布的檔案是單獨的可執行檔案,換句話說 不要安裝包,也不要期望客戶會裝什麼特殊的環境。很自然的就想到了用winzip或者winrar做乙個自解壓的exe.因為現在什麼都是自動化,自然就想著把這個也自動化。ok,研究了一下winrar的命令列方...

為你的應用程式新增啟動畫面

雖然你可能認為你需要編寫閃屏的 蘋果已經可以非常輕鬆地把它做在xcode中。不需要任何編碼。你只需要做的是設定一些配置。閃屏的主要目的是為了讓使用者知道你的程式在載入,並給使用者提供乙個介紹性螢幕,顯示你的品牌。開機畫面是特別重要的應用程式,需要更長的時間來啟動。而且 它提供了更好的使用者體驗。正如...