關於視窗訊息用法的筆記

2021-09-24 17:44:21 字數 1104 閱讀 1852

1.視窗延時

現象描述:如果需要在某個視窗執行完任務後延時,不要在當前視窗建立定時器延時,在當前視窗建立定時器時當前視窗仍為活動視窗,wm_refresh如果有任務仍在重新整理,要注意,問題的根源很有可能出現在這裡,如果wm_refresh沒有任務則一切正常,如果有則很有可能出現問題。

解決方案:新建乙個視窗windelay處理延時,避免當前視窗重新整理為動作視窗重新整理任務引發不必要的問題

2.錯誤**返回+額外動作

現象描述:需要在發生某個錯誤後附加額外動作或處理急停等事宜

解決方案:新開乙個視窗處理急停+額外動作,注意返回時不走正常流程返回,走wm_emergency_stop或wm_alarm_code返回。

解決例項:穿梭板在取貨時發生錯誤但是必須先返回原點才能報錯,則開啟win_except_recall異常處理召回視窗,處理動作+返回錯誤**

3.需要返回錯誤**但又不能影響正常流程

現象描述:需要返回錯誤但又不便打斷當前任務時必須返回錯誤**

//走無貨可取回原點在info附帶報警資訊

serrorcode = walk_over_distance;

closewindow(main_task);

(*activewindowproc(main_task))(wm_ext_adj_tray_return, ext_pick_no_tray,(u8*)&serrorcode,sys_win_work_ext_adj_tray,0);

//走錯誤報警返回

closewindow(main_task);

(*activewindowproc(main_task))(wm_ext_s_fuc_return,scycle<<8 | wm_ext_s_quit_no_tray,sinfo,sys_win_rmt_manger_ext_s,0);

//報警視窗處理

u8 win_alarm(u16 halarmcode, byte *info)

else

}

關於彈出訊息視窗的自動關閉

1.方法1 1.1.直接在 中新增 彈出訊息視窗自動關閉,需要指出的是,windows 2000的user32.dll沒有匯出這個函式。extern c ifdef unicode define messageboxtimeout messageboxtimeoutw else define mes...

關於滑動視窗協議的筆記

滑動視窗協議 還可以看我的另一篇部落格,有更詳細的介紹 屬於tcp協議中的一種應用,用於網路資料傳輸時的流量控制,以避免擁塞的發生。該協議允許傳送方在停止並等待確認前傳送多個資料分組。由於傳送方不必每傳送乙個分組就停下來等待確認,所以該協議可以加速資料的傳輸,提高網路吞吐量。tcp利用乙個滑動的視窗...

視窗訊息的傳遞(二)

本文根據codeproject的一片文章翻譯 當乙個視窗接收到某個訊息後,mfc將呼叫類的成員函式。但是mfc如何知道該呼叫哪個函式呢?為了解決上述問題,mfc運用了乙個叫做訊息對映 message map 機制。訊息對映就是將訊息和所要呼叫的函式繫結在一起。一旦接受到乙個訊息,mfc將進入訊息對映...