修改static控件背景颜色和文字颜色

本文介绍如何在Windows编程中修改static控件的背景颜色和文字颜色。通过创建自定义画刷和逻辑字体,并在WM_CTLCOLORSTATIC消息处理中返回画刷句柄,实现了将控件背景设为翠绿色,文字显示为默认字体。
摘要由CSDN通过智能技术生成
当 static 控件或具有 ES_READONLY 风格的 edit 控件被绘制时,会向父窗口发送 WM_CTLCOLORSTATIC 消息。如果我们在窗口过程中处理该消息,就必须返回一个画刷句柄,Windows 会使用该画刷来绘制控件背景(子窗口背景)。

也就是说,改变 static 控件的背景颜色只有这一种方式,就是处理 WM_CTLCOLORSTATIC 消息。WM_CTLCOLORSTATIC 消息就是用来设置背景画刷的。

改变 static 控件的背景颜色:
   
   
   
  1. LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){
  2. PAINTSTRUCT ps;
  3. HDC hdcWnd;
  4. static HFONT hFont; //逻辑字体
  5. static HWND hStatic; //静态文本框控件
  6. static HBRUSH hBrush; //画刷
  7. switch (message){
  8. case WM_CREATE:
  9. //创建画刷
  10. hBrush = CreateSolidBrush( RGB(0x41, 0x96, 0x4F) ); //翠绿色
  11. //创建逻辑字体
  12. hFont = CreateFont(-14/*高*/, -7/*宽*/, 0, 0, 400 /*400表示正常字体*/,
  13. FALSE/*斜体?*/, FALSE/*下划线?*/, FALSE/*删除线?*/,DEFAULT_CHARSET,
  14. OUT_CHARACTER_PRECIS, CLIP_CHARACTER_PRECIS, DEFAULT_QUALITY,
  15. FF_DONTCARE, TEXT("微软雅黑")
  16. );
  17. //创建静态文本框控件
  18. hStatic = CreateWindow(TEXT("static"), TEXT("欢迎来到C语言中文网!"),
  19. WS_CHILD | WS_VISIBLE | SS_CENTERIMAGE | SS_CENTER,
  20. 20 /*x坐标*/, <
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值