By YC
- 添加按钮
通过以上两个程序,我们对C语言Windows编程有了初步认识。接下来讨论Windows编程的过程。
Windows编程就是使用上述程序的代码模板,步骤是:
注册窗口类
根据窗口类来创建窗口
进入循环
编写窗口过程(主要是用户程序)
LRESULT CALLBACK WndProc (HWND,UINT,WPARAM,LPARAM),这是应用程序与windows之间的交互消息用,窗口过程,必写语句。
WndProc函数的返回类型为LRESULT。该类型等价于LONG。WndProc函数的类型为CALLBACK.
搞清楚Windows程序结构之后,我们来修改以上程序,增加一个按钮。
依葫芦画瓢:
在
#include <windows.h>
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
后加入
HINSTANCE hInst;
在
static TCHAR szClassName[] = TEXT("HelloWin"); //窗口类名
HWND hwnd; //窗口句柄
MSG msg; //消息
WNDCLASS wndclass; //窗口类
后加入
hInst = hInstance;
在LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
int wmId, wmEvent;
HDC hdc; //设备环境句柄
PAINTSTRUCT ps;
RECT rect;
后加入
static HFONT hFont;
static HWND hBtn;
在
switch (message){
后加入
- case WM_CREATE:
- //创建逻辑字体
- hFont = CreateFont(
- -15/*高度*/, -7.5/*宽度*/, 0, 0, 400 /*一般这个值设为400*/,
- FALSE/*不带斜体*/, FALSE/*不带下划线*/, FALSE/*不带删除线*/,
- DEFAULT_CHARSET, //使用默认字符集
- OUT_CHARACTER_PRECIS, CLIP_CHARACTER_PRECIS, //这行参数不用管
- DEFAULT_QUALITY, //默认输出质量
- FF_DONTCARE, //不指定字体族*/
- TEXT("微软雅黑") //字体名
- );
- //创建按钮控件
- hBtn = CreateWindow(
- TEXT("button"), //按钮控件的类名
- TEXT("这是按钮"),
- WS_CHILD | WS_VISIBLE | WS_BORDER | BS_FLAT/*扁平样式*/,
- 30 /*X坐标*/, 20 /*Y坐标*/, 150 /*宽度*/, 50/*高度*/,
- hwnd, (HMENU)2 /*控件唯一标识符*/, hInst, NULL
- );
- SendMessage(hBtn, WM_SETFONT, (WPARAM)hFont, NULL);//设置按钮字体
- break;
这样,我们就在程序中加入了一个按钮
编译,运行。结果如下:
现在,我们知道如何在windows程序中加入相应功能块了。