介绍

上一课我们已经画出了一个只有边框的按钮,这一次我们要完善一下按钮的外观了,至少要让人看起来像按钮而不只是一个框。
完善按钮外观很简单,只要在WM_PAINT消息中画一下就是了。
由于原来的代码被我误删了,所以这一次的代码可能会与之前的有点出入,请见谅!

代码解释

首先我先在代码最上面添加一个HWND用于存储按钮的句柄,代码如下: enter image description here

enter image description here
创建并存储了一个按钮句柄,接下来我们在BtnWndProc回调函数的WM_PAINT消息绘制按钮,代码如下:
enter image description here
DrawText可以在按钮里写字符串,样式里我们选择“单行”、垂直居中与水平居中。rect是指定绘制文字的范围,这里我们选择整个按钮,这样文字才会在按钮中间显示,效果如下:
enter image description here
这样就比原来更像是一个按钮了,至少中间写着“按钮”的英文。 有了按钮,但是似乎没什么反应,点它都没用。 因为我们还没有写按钮的点击事件消息,这就要在WM_LBUTTONUP中写点击事件代码,这里我们弹出一个消息框表示自己点击了按钮,代码如下: enter image description here hwnd == btn_hwnd表示我们要判断对哪个按钮句柄进行消息响应,虽说我们只有一个按钮,但这么做更安全,可读性也更高,表示我们要对刚刚存储的按钮句柄进行操作。 现在我们运行程序,点击按钮,效果如下:
enter image description here

注意

目前我们还没有对中文做处理,所以如果你们写文字用的是中文的话会产生乱码问题,所以最好还是用英文,我现在也懒得写处理中文的情况。。。