2.4 Windows应用程序举例(4)
(3) 编译并运行程序,结果如图2.19所示。从中填入一元二次方程的系数后,单击Calculate按钮,求解的结果就会显示出来,如图2.20所示。
|
| (点击查看大图)图2.19 CreateWindow程序的运行结果 |
|
| 图2.20 CreateWindow程序的计算结果 |
在上述窗口过程函数代码中,其功能的实现可分为以下几个部分。
(1) 控件的创建
本例创建了4个控件,3个编辑框和1个按钮。编辑框和按钮控件在Windows内部定义的窗口类名是edit和button。由于这些控件是在"Application窗口"窗口内创建的子窗口,因此需要在CreateWindow函数中指定WS_CHILD(子窗口)和WS_VISIBLE(可见)风格,WS_BORDER是使子窗口有边框,BS_PUSHBUTTON用来创建的按钮是一个按键按钮,单击该按钮会向父窗口发送WM_COMMAND消息。
(2) 按钮消息的映射
在按钮产生的WM_COMMAND消息中,部分消息数据会通过窗口过程WndProc中的wParam和lParam参数来传递。wParam参数的低位字中包含控件标识符,wParam参数的高位字则为控件产生的通知代码,IParam参数则是指向控件的句柄。代码中,BN_CLICKED是按钮控件产生的"单击"通知代码,通过对按钮句柄和BN_CLICKED通知代码的判断就可实现用户单击按钮时的消息映射。
所谓"消息映射",即指产生的消息和用户代码关联起来。
(3) 求解结果显示
当一元二次方程的结果计算出来并转换成字符串后,通过调用MessageBox()函数将结果显示出来。MessageBox是一个Win32 API(Application Programming Interface,应用程序编程(www.cppentry.com)接口)函数,用于弹出一个对话框窗口,显示短信息。该函数第一个参数用于指定父窗口句柄,即对话框所在的窗口句柄。第二、三个参数分别用于指定显示的消息内容和对话框窗口的标题,最后一个参数用于指定在对话框中显示的按钮。