GMsgFunction函數(shù)用MessageBox實(shí)現(xiàn)報(bào)彈出警窗
劉玉蓉
發(fā)布于2014-08-18 17:54
749
0
標(biāo)簽:
已做的工作。
用GMsgFunction函數(shù)提其中一個(gè)供的例程來判斷消息文本。
另外加一下面一段來彈出報(bào)警消息文本
if (mRT.dwMsgState==MSG_STATE_COME)//信息到達(dá)處理
{
MessageBox(NULL,tMeld.szText,"確定",MB_OK);
}
能報(bào)警彈出Message窗口,但存在下面幾個(gè)問題。
1.問題是同一個(gè)報(bào)警在很短的時(shí)間里出現(xiàn)幾次就一一彈出幾次。
2.不同的變量報(bào)警不能彈出多個(gè)窗口。
3.MessageBox窗口里面的“確定”好能確定報(bào)警信息。
問題補(bǔ)充:
此方法若不能實(shí)現(xiàn)報(bào)警自動(dòng)彈出報(bào)警消息,請問有別的什么方法能做到。希望得到例程和注釋
圖片說明: 1,GMsgFunction
佳答案
按順序回答你的問題:
1、messagebox是返回int值的函數(shù),報(bào)警來幾次就調(diào)用幾次messagebox函數(shù),所以彈出消息框的次數(shù)等于報(bào)警出現(xiàn)次數(shù)。
2、messagebox函數(shù)調(diào)用時(shí)會(huì)阻擋程序往下執(zhí)行,用戶響應(yīng)后返回值之后再彈出下一個(gè)messagebox窗口。同時(shí)彈出多個(gè)窗口,至少在WinCC中使用messagebox函數(shù)實(shí)現(xiàn)不了。
3、點(diǎn)擊“確定”后,messagebox函數(shù)返回值1,再通過AcknowledgeMessage(DWORD MsgNr)函數(shù)確認(rèn)該條報(bào)警信息即可。
問題補(bǔ)充:
1、使用WinCC自帶的報(bào)警控件,設(shè)置好不同消息的顏色、等級(jí),可以達(dá)到很好的警示效果。
2、如果需要更明顯的消息報(bào)警,可以使用聲音報(bào)警HORN。
3、還是不滿意,一定要彈出窗口的使用WinCC ODK自己開發(fā)報(bào)警控件。
難度依次增大。