The parent window of the button receives the BN_CLICKED notification code through the WM_COMMAND message. BN_CLICKED WPARAM wParam LPARAM lParam;
ParameterswParam The low-order word contains the button's control identifier.The high-order word specifies the notification message. lParam A handle to the button.
LPARAM lParam;
ParameterswParam
The low-order word contains the button's control identifier. The high-order word specifies the notification message.
lParam
A handle to the button.
另外,关于创建控件和创建全新窗口的差异尚未学习,请大致讲解下,不胜感激!
=============================
你的理解确实有错,当我们点击按钮时,内部的处理过程你没有理解。当你点击按钮,按钮的处理函数会收到WM_LBUTTONDOWN消息,这里所说的按钮的处理函数也就是上文所说的内置的,系统给我们写好的处理函数,所有的按钮用的都是同一个。
内置的处理函数处理收到的WM_LBUTTONDOWN消息,它会根据按钮的ID和HWND,向按钮所在父窗口发送WM_COMMAND消息,而我们为不同按钮所写的处理函数其实就是针对WM_COMMAND消息来写的。换句话说,我们对按钮的响应,其实是对WM_COMMAND消息的响应, 而不是写了按钮的处理函数,所有的按钮的处理函数都是同一个,而且动作也是一样的,就是向父窗口发WM_COMMAND消息。
另外,关于创建控件和创建全新窗口的差异尚未学习,请大致讲解下,不胜感激!点击这几个不同的按钮就都会调用这个窗口过程进行处理你是不是潜意识里以为:点击了这些按钮后,调用了这个窗口过程就一切都结束了?人家说"处理",但没说"处理完"。这个窗口过程还要给控件的父窗口,就是应用程序的主窗口发送WM_COMMAND,而你写的按钮处理过程就是放在主窗口回调函数里WM_COMMAND之后。关于创建控件和创建全新窗口的差异windows系统上凡是看得见的东西都是窗口。窗口类决定了窗口基础外形。窗口过程决定了窗口的功能。而控件是系统已经做好了的窗口,窗口类、过程系统已经替你做好了。你拿来用就行。当然系统也充许你进行扩展,这就属于高级用法了。创建一个全新窗口,你需要指定窗口类、窗口过程等。而创建控件你只需指定控件名称、给你控件制定一个ID号就行。具体的看《windows程序设计》