当前位置: 首页 > news >正文

day05 控件的使用

 

 

 

 

 

/**GetDlgItem  获取窗口句柄
SendMessage  发送消息
MoveWindow
GetWindowText
getParent
ShowWindow空间被用户操作的时候,会给父窗口发送消息 我们根据用户的动作去实现一些功能
我们需要使用代码控制去干一些事情,一般情况下都是GetDlgItem  获取窗口句柄,根据子控件ID获取到子控件,再通过
SendMessage发送消息控制控件的行为标准控件【可以直接使用,数量少,功能简单】
按钮,复选框,单选框,静态文本框,图片,复合框,编辑框通用控件【需要做一些初始化操作,数量多,功能强大】*/#include <Windows.h>
#include <CommCtrl.h>
#include "resource.h"
#include <windowsx.h>
INT_PTR CALLBACK Dlgproc(HWND hWnd,UINT uParam,WPARAM wParam,LPARAM lParam
);
// 居中函数
void CenterWindow(HWND hWnd);
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hInstPrev, PSTR cmdline, int cmdshow)
{DialogBoxW(hInst, MAKEINTRESOURCEW(IDD_DIALOG1), NULL, Dlgproc);return 0;
}INT_PTR CALLBACK Dlgproc(HWND hWnd,UINT uParam,WPARAM wParam,LPARAM lParam
)
{switch (uParam){case WM_INITDIALOG:{// DPI自适应UINT dpi = GetDpiForWindow(hWnd);int baseWidth = 500;int baseHeight = 350;int scaledWidth = MulDiv(baseWidth, dpi, 96);int scaledHeight = MulDiv(baseHeight, dpi, 96);SetWindowPos(hWnd, NULL, 0, 0, scaledWidth, scaledHeight,SWP_NOZORDER | SWP_NOMOVE | SWP_NOACTIVATE);// 居中显示CenterWindow(hWnd);// 方式1HWND hchecked_1 = GetDlgItem(hWnd, IDC_CHECK1);SendMessageW(hchecked_1, BM_SETCHECK, BST_CHECKED, 0);//方式2 SendDlgItemMessageW(hWnd, IDC_CHECK2, BM_SETCHECK, BST_CHECKED, 0);//方式3 需要引入#include <windowsx.h>Button_SetCheck(GetDlgItem(hWnd, IDC_CHECK3), BST_CHECKED);break;}case WM_CLOSE: {EndDialog(hWnd, 0);break;}case WM_COMMAND:{WORD controlId = LOWORD(wParam);switch (controlId){case IDOK: {WCHAR buff[20] = { 0 };//WORD controlId = LOWORD(wParam);for (UINT btnid = IDC_CHECK1; btnid <= IDC_CHECK3; btnid++){UINT Checked = SendDlgItemMessageW(hWnd, btnid, BM_GETCHECK, 0, 0);if (Checked){GetDlgItemTextW(hWnd, btnid, buff, 20);MessageBoxW(hWnd, buff, L"结果", MB_OK);}}break;}case IDC_BUTTON1: {WCHAR buff[20] = { 0 };//WORD controlId = LOWORD(wParam);for (UINT btnid = IDC_RADIO1; btnid <= IDC_RADIO3; btnid++){UINT Checked = SendDlgItemMessageW(hWnd, btnid, BM_GETCHECK, 0, 0);if (Checked){GetDlgItemTextW(hWnd, btnid, buff, 20);MessageBoxW(hWnd, buff, L"结果", MB_OK);}}break;}default:break;}break;}default:return FALSE;}return TRUE;}// 居中函数
void CenterWindow(HWND hWnd)
{RECT rc;GetWindowRect(hWnd, &rc);int width = rc.right - rc.left;int height = rc.bottom - rc.top;int screenWidth = GetSystemMetrics(SM_CXSCREEN);int screenHeight = GetSystemMetrics(SM_CYSCREEN);SetWindowPos(hWnd, NULL,(screenWidth - width) / 2,(screenHeight - height) / 2,0, 0, SWP_NOZORDER | SWP_NOSIZE);
}

  

http://www.gsyq.cn/news/67623.html

相关文章:

  • 力扣校招算法通关:双指针技巧全场景拆解 —— 从数组执行到环检测的高效解题范式
  • 【大数据高并发核心场景实战】缓存层 - 读缓存
  • 最好的儿童英语项目是什么?——中国家长的新加坡英语课程报名权威指南
  • 2025 雅思培训机构终极指南:线下白金品牌 + 线上标杆,7 大主流机构实力拆解与择校攻略
  • 有哪些知名的冰箱牌子?几款性价比高的家用冰箱推荐
  • 2025 年评价高的陕西铝单板厂家用户好评排行榜
  • 扣子Coze实战:一键复刻全网10W+爆款文案
  • 使用Rufus创建USB启动盘安装UBUNTU22.04.5
  • 盘点2025:中小微企业最值得关注的10款库存管理系统
  • 仓库管理软件哪家强?2025年10款热门工具全解析,帮你告别Excel乱局
  • 敏捷项目管理软件TOP7:如何选出你的团队“最佳拍档”?
  • JavaEE初阶——多线程(5)单例模式和阻塞队列 - 实践
  • 寻客精灵联系方式:了解AI营销系统功能与注意事项
  • 2025牙医联合背书!去除牙垢牙黄美白效果超好牙膏排行榜​TOP15,第一名臻芙宁
  • 成都市津染化工有限公司 联系方式:产品服务范围及注意事项说明
  • 创建虚拟环境
  • 2025实测封神!黄牙去渍美白牙膏排行榜TOP8 ,烟渍茶渍咖啡渍全搞定​
  • 北京市盛廷律师事务所联系方式:客观参考与行业常识
  • 成都容顺佳建材有限公司联系方式:建材合作基本流程与建议
  • 2025 年 12 月喷码机厂家权威推荐榜:全自动/小字符/高解析/条码二维码喷码机,智能高效,精准赋码,赋能生产线!
  • 义乌婚纱摄影推荐:罗亚摄影
  • 成都蓝美源环境卫生管理有限公司联系方式:运营背景与实用指南参考
  • 2025 年 12 月病媒生物防治公司权威推荐榜:专业除四害与长效防制服务口碑之选
  • 成都蓝美源环境卫生管理有限公司联系方式:企业合作与风险提示参考
  • Mysql的:ON DUPLICATE KEY UPDATE
  • 四川洁明之晨环保设备有限责任公司联系方式:工业水处理服务选择参考
  • 2025 年中国塑料平网挤出机与塑料网管机优质厂家推荐榜
  • 2025 年 BI 部署服务商精选榜单 (赋能决策):企业智能 BI 私有化部署厂商 + BI 私有化部署方案商,解锁企业数据智能升级新路径
  • 太顶了!全网最全的600+图片生成玩法!
  • 值得推荐的 geo 公司有哪些?2025 年 12 月精选榜单