hdlg WM_INITDIALOG

Posted hshy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hdlg WM_INITDIALOG相关的知识,希望对你有一定的参考价值。

https://www.cnblogs.com/gakusei/articles/1585212.html

//   “关于”框的消息处理程序。   
  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;   
  }

  

以上是关于hdlg WM_INITDIALOG的主要内容,如果未能解决你的问题,请参考以下文章

win32 SetDlgItemText 在 WM_INITDIALOG 中不起作用

关于Visual Studio 2010中MFC工程的消息WM_INITDIALOG找不到的问题

WM_INITDIALOG与WM_CREATE消息的区别

MFC编程 -- 运行窗口居中显示

MFC绘制一个心形

MFC编程 -- 编辑框随窗口改变大小