远程控制编程中多窗口实现

本文探讨了远程控制软件中多窗口多任务管理模式的实现,重点讲述了窗口多开的方法,包括窗口数组、多线程加消息循环和消息通知主窗口创建三种方案。推荐使用方案三,因为它支持无限创建窗口,代码简洁,处理过程直观。
摘要由CSDN通过智能技术生成
 

远程控制软件中窗口管理主要有两种模式,一种是以灰鸽子远控为代表的单窗口单任务管理模式,一种是以黑洞远控为代表的多窗口多任务管理模式。前一种比较简单,本文讲第二种方案的实现。这里着重讲窗口多开,多任务另起篇幅讲述。

假如我们需要同时对3台远程主机进行文件管理,那么需要打开3个文件管理的对话框,这3个对话框相同的是什么?不同的又是什么?相同的是对话框界面和处理过程,不同的是通信对象。好了,下面让我们思考下如何实现同与不同。要实现在不同的窗口自由切换,非模式对话框的效果自然是最理想。要实现不同的通信对象,只要绑定不同的SOCKET就行。下面是笔者根据开发和应用的经验,总结得三种方案,希望能对其他朋友有所帮助。

方案一:窗口数组

窗口数组比较好理解,你要3个对话框,正好我那有3个一样的对话框,只要拿过来绑上不同的通信对象就行了。窗口数组流程就是启动的时候建好对话框数组,需要的时候显示窗口并绑定一个通信对象,不需要的时候隐藏窗口并移除通信对象。

首先主窗口类中添加对话框数组CTestDlg1 m_TestDlg[10],在主对话框的OnInitDialog()中创建对话框数组,注意这里创建的是非模式对话框。

for (int i=0;i<10;i++)

{

       m_TestDlg[i].Create(IDD_DIALOG2, GetDesktopWindow());

       m_TestDlg[i].m_bUseing = FALSE;

       m_TestDlg[i].ShowWindow(SW_HIDE);

}

上面要注意到需要有个标识变量来表示对话框是否在使用中。另外由于是非模式对话框,所以我们需要在对话框的DestroyWindow()中销毁它们,不然会造成资源泄露。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值