MFC之String Table---快速整體管理消息

MFC資源視圖裏面提供了一個String Table目錄,裏面是一張字串表,但是一般很少人會使用到它,但是既然軟件裏都提供了,必定有它的作用所在,其實對於小項目來說作用不大,但是當你的項目越來越大,代碼越來越多的時候,那麼String Table這張表的作用就體現出來了。

在這裏插入圖片描述
使用String Table的情況:
代碼量比較多,提示信息多,使用String Table可以節省時間,查找信息更快捷。管理起來更容易,便於整體修改。

使用方法:
把需要用到的信息全部寫到String Table那張表裏面,需要用的時候,通過ID或者值的方式來取得裏面的消息內容。

使用案例:
1.新建對話框工程,在資源視圖裏找到“字串表”,雙擊打開,雙擊這站表的消息最下方,彈出如下對話框:
在這裏插入圖片描述
2.把所有的消息內容都寫到“標題”裏,即可完成信息的添加:
在這裏插入圖片描述
3.資源視圖裏插入一個對話框,ID改爲IDD_MSGBOX_DLG,對話框裏添加一個靜態文本,爲其添加一個CString 類型控件變量m_MsgText,用於消息的顯示,再添加一個按鈕Ok:
在這裏插入圖片描述
爲按鈕添加一個點擊事件函數:
在這裏插入圖片描述

4.在xxxDlg頭文件裏添加兩個函數,用於消息的整體處理:
在這裏插入圖片描述
5.在xxxDlg.cpp裏把這兩個函數進行具體實現:
在這裏插入圖片描述
注意:使用時,外部只需要調用第一個函數MsgBox(UINT nID)即可,內部使用LoadString()函數通過String Table裏面的ID來獲得字符串消息內容。取得內容後,內部調用MsgBox(CString text)函數通過一個模態對話框即可把消息內容顯示出來。

至此,消息的處理已經完成,可以直接調用消息函數來實現消息的顯示。一下模擬實現一臺機器各種狀態出現時給出的提示信息,爲了演示,對各種狀態的出現只用按鈕來模擬,實際工作中,則在各種狀態出現的地方調用MsgBox(CString text)函數即可。

6.使用:按如圖添加5個按鈕:

在這裏插入圖片描述

實現代碼如下:

//工作
void CTestMsgBoxDlg::OnBtnWorking() 
{
	MsgBox(IDS_WORKING);  //通過String Table表裏的ID (IDS_WORKING),調用MsgBox(CString text)即可
	//MsgBox(103);

//	AllocConsole();
//	freopen("CONOUT$", "w", stdout);  //把信息輸出到Cmd窗口中
//	freopen("D:OUTPUT.txt", "w", stdout);//把信息輸出到文件中
//	printf("工作XXX\n");

}

//急停
void CTestMsgBoxDlg::OnBtnSuddenstop() 
{
	MsgBox(IDS_SUDDENSTOP);
}

//待機
void CTestMsgBoxDlg::OnBTNWaitForOrder() 
{
	MsgBox(IDS_WaitForOrder);
	
}

//故障
void CTestMsgBoxDlg::OnHaveWrong() 
{
	
	MsgBox(IDS_HaveWrong);
}

//氣壓低
void CTestMsgBoxDlg::OnGasLow() 
{
	MsgBox(IDS_GasLow);
}

運行結果:
1.
在這裏插入圖片描述
2.
在這裏插入圖片描述

結語:謝謝!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章