当前位置: 首页 > 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.jsqmd.com/news/57326/

相关文章:

  • 设置dockr的代理IP
  • APP上架苹果应用商店经验教训与注意事项
  • 2025 年 12 月二手车交易公司权威推荐榜:昆山/上海/浙江/太仓二手车选购指南,甄选高性价比与诚信服务口碑之选
  • 力扣校招算法通关:双指针技巧全场景拆解 —— 从数组执行到环检测的高效解题范式
  • 2025中国主流薪酬管理软件推荐及选型指南
  • 2025年弯管加工厂家推荐榜:折弯/不锈钢折弯/不锈钢/驾驶室/线材/弯管加工品牌综合参考,合肥翼达机械精准工艺赋能智造
  • 【大数据高并发核心场景实战】缓存层 - 读缓存
  • 最好的儿童英语项目是什么?——中国家长的新加坡英语课程报名权威指南
  • 博士留学中介排行榜TOP10:申请季的实力派选择
  • 博士留学中介排行榜TOP10:申请救星,实力大揭秘
  • 2025 雅思培训机构终极指南:线下白金品牌 + 线上标杆,7 大主流机构实力拆解与择校攻略
  • 有哪些知名的冰箱牌子?几款性价比高的家用冰箱推荐
  • 成都最好吃的社区火锅:10家平价又好吃的火锅店,老火锅/火锅店/川渝火锅/重庆火锅/特色美食/火锅/美食火锅品牌找哪家
  • 博士留学机构申请硬核实力,全奖录取攻略
  • 十大博士留学中介:申请神助攻,offer拿到手软!
  • 质量管理 / 科研必备:Minitab 22 下载安装步骤 帮你快速搞定过程控制与数据检验
  • 2025 年评价高的陕西铝单板厂家用户好评排行榜
  • 博士留学中介深度观察:申请优势与机构特色全景解析
  • 出入库管理软件怎么选?这份超详细横评指南,让你一眼找到“本命神器”
  • Jmeter命令行模式下 运行注意事项 - BKY007
  • 扣子Coze实战:一键复刻全网10W+爆款文案
  • 使用Rufus创建USB启动盘安装UBUNTU22.04.5
  • 盘点2025:中小微企业最值得关注的10款库存管理系统
  • php 上传视频到阿里云OSS (不用SDK) 升级版本
  • 博士留学中介申请学术深度+导师匹配双核驱动
  • AI元人文构想:价值行为表演与文明新形态
  • CF1872E-Data Structures Fan
  • 客户端学习Day01_Markdown学习_Dos命令
  • 敏捷项目管理软件TOP7:如何选出你的团队“最佳拍档”?
  • 2025年车间布袋风管供货厂家权威推荐榜单:布袋风道布袋风管‌/布袋风管‌/工厂布袋风管‌源头厂家精选