win32sdk编程如何改变一个static控件上文字的字体和颜色

关于对话框中要处理的控件的ID是IDC_MYSTATIC  
   
   
   
  //   “关于”框的消息处理程序。  
  LRESULT   CALLBACK   About(HWND   hDlg,   UINT   message,   WPARAM   wParam,   LPARAM   lParam)  
  {  
  static   HFONT   hfont_static;   //   自定义字体的句柄  
  static   HWND   hwnd_static;   //   Static   控件的句柄  
   
  switch   (message)  
  {  
  case   WM_INITDIALOG:  
  //   建立自定义字体  
  LOGFONT   lgf;  
  GetObject(GetStockObject(DEFAULT_GUI_FONT),   sizeof(lgf),   &lgf);  
  lgf.lfWeight   =   FW_BOLD;  
  hfont_static   =   CreateFontIndirect(&lgf);  
  //   设置字体  
  hwnd_static   =   GetDlgItem(hDlg,   IDC_MYSTATIC);   //***  
  SendMessage(hwnd_static,   WM_SETFONT,   (WPARAM)hfont_static,   (LPARAM)TRUE);   //***  
  return   TRUE;  
   
  case   WM_CTLCOLORSTATIC:  
  //   改变文本颜色和背景颜色  
  if((HWND)lParam   ==   hwnd_static)  
  {  
  SetTextColor((HDC)wParam,   0xff0000);   //***  
  }  
  else  
  {  
  SetTextColor((HDC)wParam,   GetSysColor(COLOR_WINDOWTEXT));  
  }  
  SetBkColor((HDC)wParam,   GetSysColor(COLOR_BTNFACE));  
  SetWindowLong(hDlg,   DWL_MSGRESULT,   (LONG)TRUE);  
  return   (LRESULT)GetSysColorBrush(COLOR_BTNFACE);  
   
  case   WM_COMMAND:  
  if   (LOWORD(wParam)   ==   IDOK   ||   LOWORD(wParam)   ==   IDCANCEL)    
  {  
  DeleteObject(hfont_static);  
  EndDialog(hDlg,   LOWORD(wParam));   //   销毁自定义字体  
  return   TRUE;  
  }  
  break;  
  }  
  return   FALSE;  
  }
posted @   荷包蛋  阅读(6182)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示