win界面开发技术

无句柄窗口(windowless)技术在UI设计中带来了一定的优势,如防止木马通过句柄盗取信息,但也存在诸多问题:无法使用标准窗口操作函数,消息处理受限,移植困难,学习成本高,可能影响程序稳定性及扩展性,且不兼容MFC的文档/视图框架。这些限制使得windowless技术的应用需谨慎考虑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

windowless或者称handleless,也就是无句柄窗口,在设计和实现的时候,每个控件都自己实现,最后画到父窗口中。

另一种伪windowless是用标准mfc控件,然后通过hook或其它远程线程注入等技术,让spy++等软件,看不到窗口句柄,主要是为防止盗号木马通过edit窗口句柄,盗取用户名和密码。

windowless的致命缺点

 

 

1、无窗口句柄,所有您以前关于“窗口”概念的知识都白学了。您将不可能使用::ShowWindow(hWnd, SW_HIDE)来隐藏一个窗口,也不能使用::MoveWindow来移动一个窗口。
2、所有您以前学习的关于“消息”的知识也作废了。您不可能使用::SendMessage(m_hWnd, WM_SETTEXT, 0, (LPARAM)_T("Hello world"));来设置窗口标题。
3、如果您的程序已经写好,需要花费比开发程序还要长的时间来移值到DirectUI界面上。
4、重新学习一套系统接口和概念。
5、如果不是国际知名公司的产品,产品的稳定性和可发展性无法保证。
6、如果您的功能层代码需要与UI层交互,例如,要向UI窗口发送消息,那么您的功能层代码也要做相应的修改,所以windowless类的界面库,不仅仅影响UI层,还影响功能层。
7、窗口的剪裁、激活、绘制、消息循环等等全部需要模拟。
9、无法对编译好的exe进行后期汉化、编写插件等常规操作。运行中的程序也无法响应其它程序发来的标准消息,例如隐藏控件、设置控件文本等。
10、不支持MFC的文档/视图框架。
综上,windowless比传统win32窗口结构有很多局限性和不确定性

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值