WNDCLASSEX和CreateWindow有什么区别?

时间:2015-08-10 23:03:03

标签: c++ winapi

CreateWindow,基于:

https://msdn.microsoft.com/en-us/library/windows/desktop/ms632679(v=vs.85).aspx

给出一些参数xposition和yposition,窗口大小等。

WNDCLASSEX,基于:

https://msdn.microsoft.com/en-us/library/windows/desktop/ms633577(v=vs.85).aspx

还为窗口提供了一些参数,例如lpfnWndProc(指向进程的指针),hIcon(处理类图标)。

除了提供的不同参数之外,CreateWindow和WNDCLASSEX之间还有另一个区别吗?

1 个答案:

答案 0 :(得分:7)

RegisterClassEx注册window class。窗口类是一个模板,它指定该类的所有窗口共有的某些属性,例如背景颜色或其行为(通过其窗口过程)。

CreateWindowEx实例化一个窗口类(通过 lpClassName 参数指定)。

类比通常会出错,但无论如何我都会尝试。就C ++而言,RegisterClassEx与定义C ++类有关,而CreateWindowEx则与实例化该类相比,即将其赋予生命。