【问题标题】:Which category of MFC application is best suited for my multiple window project哪种类型的 MFC 应用程序最适合我的多窗口项目
【发布时间】:2014-09-16 10:04:15
【问题描述】:

该应用程序将有四个窗口,并且一次必须在单显示器 (5"x5") 机器或双显示器 (5"x5") 机器上分别显示一个或两个窗口。该应用程序有两种操作模式;用户模式和维护模式。在用户模式下,不需要用户通过鼠标或键盘进行输入;但是,应用程序通过某些方式感知某些输入。而另一个本质上是交互式的。在用户模式下,应用程序必须显示一个或两个窗口,具体取决于可用的显示器数量;如果有两个显示器可用,它必须进行处理并在两个显示器上显示不同的消息集和小图像。在维护模式下,必须显示一个或两个窗口,具体取决于可用的显示数量;如果有两个显示器可用,它必须通过键盘或鼠标进行一些用户输入,并且在进行少量处理后,它必须在两个显示器上显示相同的图像和消息。关于处理要求,应用程序使用很少的 TCP/IP 套接字进行消息交换,通过串行端口与少数串行设备进行通信,并与轻量级数据库进行交互。该应用程序将没有任何菜单;仅在小型显示器上必须显示一些消息和小图像;消息和图像必须非常频繁地更新。

我的问题是哪种类型的 MFC 应用程序(基于对话框、SDI 或 MDI)适合我的应用程序。

到目前为止,该应用程序是基于对话框的应用程序,具有一个模式对话框和三个无模式对话框。根据显示的数量,它会创建一个模态对话框和另一个无模式对话框(用于单显示),并且在任何时候它都会显示一个对话框并隐藏其他对话框,如果是双显示,它会创建一个模态对话框和另外三个无模式对话框;但是一次它只显示两个对话框。 PostMessage 用于对话框之间的消息交换。

对此的任何建议都可能对我有很大帮助。

【问题讨论】:

  • 您描述的解决方案非常可行,您是否有理由寻找替代方案?
  • 第一个原因是我从来没有使用过其他两种类型;所以我需要你的意见。其次,在我的应用程序的维护模式下,两个屏幕都具有相同的内容,我通过 PostMessage 将相同的消息从一个屏幕交换到另一个屏幕。第三,除了一些静态文本和图像外,还有用户名和密码输入文本框,需要在一个屏幕上显示并在另一个屏幕上同时复制;否则,用户可能会在一个未激活的屏幕上接受键盘输入时感到延迟。

标签: mfc


【解决方案1】:

目前的安排没有给你什么你需要的东西?听起来你有一个很好的方法。 MDI 不适合多个屏幕。如果您需要滚动模式对话框,SDI 可能会有所帮助(它将用 CFormView 替换您的模式对话框)。

【讨论】:

  • 我对目前的安排很满意,除了在一种情况下,一个对话框的文本框通过键盘接受一些输入,并且在第二个对话框上将相同的输入复制到另一个文本框。即每次用户按下一个键,文本框的内容必须复制到第二个对话框上的文本框。当用户进入此模式时,显示器上显示的对话框之一上的文本框聚焦并显示字符,但在另一个未聚焦的对话框上显示相同另一个对话框上的文本框需要一些时间才能显示相同的内容。如果我可以在两个屏幕上显示相同的对话框会更好。
猜你喜欢
  • 2021-07-31
  • 2013-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-10
  • 1970-01-01
  • 2015-03-10
相关资源
最近更新 更多