2014-07-24 118 views
0

該應用程序將有四個窗口,並且一次只能在一臺顯示器(5英寸x5英寸)機器或雙顯示器(5英寸)上顯示一個或兩個窗口「x5」)機器。該應用程序有兩種操作模式;用戶模式和維護模式。在用戶模式下,不需要通過鼠標或鍵盤輸入用戶輸入;然而,應用程序通過某種方式感知一些輸入。而另一個本質上是互動的。在用戶模式下,應用程序必須顯示一個窗口或兩個窗口,具體取決於可用顯示的數量;如果有兩個顯示器可用,它必須進行處理並在兩個顯示器上顯示不同組的消息&小圖像。在維護模式下,根據可用顯示器的數量,必須顯示一個或兩個窗口;如果有兩個顯示器可用,它必須通過鍵盤或鼠標進行一些用戶輸入,並且在稍做處理之後,必須在兩個顯示器上顯示相同的圖像和消息。關於處理要求,應用程序使用少量TCP/IP套接字進行消息交換,通過串行端口與少量串行設備進行通信並與輕量級數據庫進行交互。該應用程序不會有任何菜單;只有在小型顯示器上才能顯示一些信息和小圖像;消息和圖像必須經常更新。哪種類型的MFC應用程序最適合我的多窗口項目

我的問題是哪個類別的MFC應用程序(基於對話框,SDI或MDI)適合我的應用程序。

截至目前,該應用程序是基於Dialog的應用程序,帶有一個模態對話框和三個無模式對話框。根據顯示器數量的不同,它會創建一個模態對話框&另一個無模式對話框(用於單個顯示器),並且隨時顯示一個對話框並保持其他對話框隱藏,並且在雙顯示器的情況下創建一個模態對話框和另外三個非模態對話框;但是一次只顯示兩個對話框。 PostMessage被用於對話中的消息交換。

對此的任何建議可能會幫助我很多。

+0

您描述的解決方案是非常可行的,是否有一個原因,你正在尋找替代? –

+0

第一個原因是我從來沒有使用過其他兩種類型;因此我需要你的意見。其次,在我的應用程序的維護模式下,兩個屏幕都具有相同的內容,我通過PostMessage將相同的消息從一個屏幕交換到另一個屏幕。第三,除了一些靜態文本和圖像之外,還有用戶標識和密碼輸入文本框,這些文本框需要在一個屏幕上顯示並在另一個屏幕上同時複製;否則,用戶可能會感覺延遲接受未激活的一個屏幕上的鍵盤輸入。 – Sukhendu

回答

0

有什麼你需要的,目前的安排不給你?這聽起來像你有一個好方法。 MDI不適合多個屏幕。如果您需要模式對話框進行滾動,SDI可能會有所幫助(它會用CFormView替換您的模式對話框)。

+0

我對目前的安排感到滿意,除了在一個對話框的文本框通過鍵盤接受一些輸入並且將其複製到另一個對話框上的另一個文本框的情況之外。每當用戶按下一個鍵時,文本框的內容必須複製到第二個對話框上的文本框中。當用戶進入此模式時,顯示在監視器上的其中一個對話框上的文本框會聚焦並顯示字符,但在另一個對話框上的另一個未聚焦文本框上顯示相同內容時間顯示相同。如果我可以在兩個屏幕上顯示相同的對話框,會更好。 – Sukhendu

相關問題