判断单选按钮和复选框是否被选中

时间:2025-04-11 16:07:10
  • LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){
  • int wmId, wmEvent;
  • PAINTSTRUCT ps;
  • HDC hdc;
  • //设置缓冲区
  • static TCHAR szBufSex[10]; //保存性别
  • static TCHAR szBufMarriage[10]; //保存婚姻状况
  • static TCHAR szBufPet[20]; //保存宠物
  • static TCHAR szBufSubmit[100]; //保存提交时显示的文本
  • static TCHAR szBufTmp[10]; //临时缓冲区
  • /**
  • * 为了节省空间,这里省略了各种控件句柄的定义
  • * 这里的代码与上节相同,请参考上节代码
  • **/
  • static HWND btnSubmit; //按钮控件
  • switch (message){
  • case WM_CREATE:
  • /**
  • * 为了节省空间,这里省略了创建各种控件的语句
  • * 这里的代码与上节相同,请参考上节代码
  • **/
  • //创建按钮控件
  • btnSubmit = CreateWindow(TEXT("button"), TEXT("提 交"),
  • WS_CHILD | WS_VISIBLE | WS_BORDER | BS_FLAT,
  • 95, 110, 200, 36,
  • hWnd, (HMENU)13, hInst, NULL
  • );
  • /**
  • * 为了节省空间,这里省略了设置字体的语句
  • * 这里的代码与上节相同,请参考上节代码
  • **/
  • SendMessage(btnSubmit, WM_SETFONT, (WPARAM)hFont, NULL);
  • break;
  • //这里是重点
  • case WM_COMMAND:
  • wmId = LOWORD(wParam);
  • wmEvent = HIWORD(wParam);
  • if( wmEvent== BN_CLICKED){
  • switch (wmId){
  • //获取性别
  • case 2:
  • case 3:
  • GetWindowText((HWND)lParam, szBufSex, 10);
  • break;
  • //获取婚姻状况
  • case 5:
  • case 6:
  • case 7:
  • GetWindowText((HWND)lParam, szBufMarriage, 10);
  • break;
  • //获取宠物
  • case 9:
  • case 10:
  • case 11:
  • case 12:
  • memset(szBufPet, 0, sizeof(szBufPet));
  • //是否选中狗
  • if( SendMessage(checkboxDog, BM_GETCHECK, 0, 0) == BST_CHECKED ){
  • GetWindowText(checkboxDog, szBufTmp, 10);
  • wsprintf(szBufPet, TEXT("%s %s"), szBufPet, szBufTmp);
  • }
  • //是否选中猫
  • if( SendMessage(checkboxCat, BM_GETCHECK, 0, 0) == BST_CHECKED ){
  • GetWindowText(checkboxCat, szBufTmp, 10);
  • wsprintf(szBufPet, TEXT("%s %s"), szBufPet, szBufTmp);
  • }
  • //是否选中鱼
  • if( SendMessage(checkboxFish, BM_GETCHECK, 0, 0) == BST_CHECKED ){
  • GetWindowText(checkboxFish, szBufTmp, 10);
  • wsprintf(szBufPet, TEXT("%s %s"), szBufPet, szBufTmp);
  • }
  • //是否选中其他
  • if( SendMessage(checkboxOther, BM_GETCHECK, 0, 0) == BST_CHECKED ){
  • GetWindowText(checkboxOther, szBufTmp, 10);
  • wsprintf(szBufPet, TEXT("%s %s"), szBufPet, szBufTmp);
  • }
  • break;
  • //点击提交按钮
  • case 13:
  • wsprintf(szBufSubmit, TEXT("你的性别:%s\n婚姻状况:%s\r\n你的宠物:%s"), szBufSex, szBufMarriage, szBufPet);
  • MessageBox(hWnd, szBufSubmit, TEXT("信息提示"), MB_ICONINFORMATION);
  • break;
  • default:
  • return DefWindowProc(hWnd, message, wParam, lParam);
  • }
  • }
  • return DefWindowProc(hWnd, message, wParam, lParam);
  • /**
  • * 为了节省空间,这里省略了部分语句
  • * 这里的代码与上节相同,请参考上节代码
  • **/
  • }
  • return 0;
  • }