首页 > 代码库 > C语言调用WIN32 API学习之3创建复选框
C语言调用WIN32 API学习之3创建复选框
上一节学习了创建按钮,下面我们来在窗口上创建复选框,并进行点击动作。
1,打开VC++6.0,点击 文件->打开工作空间 选择example1,点击确定,打开工程。
2,添加代码
首先定义全局变量
HWND button1,checkBox1,checkBox2;
int checkBoxValve;
更改回调函数如下
LRESULT CALLBACK WinSunProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam)//回调函数定义
{
switch(uMsg)
{
case WM_CREATE:
button1=CreateWindow("BUTTON","第一个按键",WS_VISIBLE|WS_CHILD|WS_BORDER|BS_PUSHBUTTON,10,10,100,30,hwnd,NULL,(HINSTANCE) GetWindowLong(hwnd, GWL_HINSTANCE),NULL);//创建按键
checkBox1=CreateWindow("BUTTON","第一个复选框",WS_VISIBLE|WS_CHILD|WS_BORDER|BS_AUTOCHECKBOX,10,50,150,30,hwnd,NULL,(HINSTANCE) GetWindowLong(hwnd, GWL_HINSTANCE),NULL);//创建复选框
checkBox2=CreateWindow("BUTTON","第二个复选框",WS_VISIBLE|WS_CHILD|WS_BORDER|BS_AUTOCHECKBOX,10,100,150,30,hwnd,NULL,(HINSTANCE) GetWindowLong(hwnd, GWL_HINSTANCE),NULL);//创建复选框
break;
case WM_COMMAND:
if((HWND)lParam==button1)//判断消息是否来自按键
{
MessageBox(NULL,"按键1按下","提示",MB_OK);//弹出提示窗体
}
if(((HWND)lParam) == checkBox1)
{
checkBoxValve=(int)SendMessage(checkBox1,BM_GETCHECK,0,0);
if(checkBoxValve)
MessageBox(NULL,"复选框1被选择","提示",MB_OK);//弹出提示窗体
else
MessageBox(NULL,"复选框1被取消选择","提示",MB_OK);//弹出提示窗体
}
if(((HWND)lParam) == checkBox2)
{
checkBoxValve=(int)SendMessage(checkBox2,BM_GETCHECK,0,0);
if(checkBoxValve)
MessageBox(NULL,"复选框2被选择","提示",MB_OK);//弹出提示窗体
else
MessageBox(NULL,"复选框2被取消选择","提示",MB_OK);//弹出提示窗体
}
break;
case WM_DESTROY://关闭窗口是系统发送的消息
PostQuitMessage(0);//发送退出消息GetMessage收到消息后将return 0,主函数退出消息循环
break;
default:
return DefWindowProc(hwnd,uMsg,wParam,lParam);//不处理的消息交给系统处理。
}
return 0;
}
3,编译运行,按下按键试试,看看是否有响应
C语言调用WIN32 API学习之3创建复选框