好吧,严重的困境。我正在尝试包装Windows API。我现在遇到的最大设计问题是什么类适合包装什么?由于我之前大约创建过三次Windows API包装器,因此始终会在设计过程中遇到设计问题,因此,我打算谨慎行事,在实现之前先询问那些令人困惑的部分。

应该将WNDCLASS和由CreateWindow创建的主窗口包装在单个类中还是单独的类中?我应该创建一个单例来保存WNDCLASS吗?

另外,如果有人可以给我流程图或一般性的想法,关于如何将Windows API抽象为类,那么有一些好的设计技巧吗?

最佳答案

为了获得良好的灵感,请查看.Net框架-没有WNDCLASS的概念!您可以让您的库创建所有窗口共享的WNDCLASS。您不需要单例(uurrgghhh),因为该类可以由字符串使用。如果要更改WNDCLASS为特定窗口定义的某些特征,我认为您可以使用SetWindowLongPtr函数。

注意事项:

  • 是否需要多个WNDCLASS实例?
  • 您是否希望客户端访问WNDCLASS数据?
  • Windows和WNDCLASS之间是否存在一对一的关系?还是一对多?
  • 09-04 04:18