使用SendMessage() 方法时候发现程序字体总是不能达到想要的效果,尝试有Setfont() 去完成时候却可以实现:
// global define 
CFont ResultFont;

    ResultFont.CreateFont(
   50,
   0,
   0,
   0,
   FW_NORMAL,
   FALSE,
   FALSE,
   0,
   ANSI_CHARSET,
   OUT_DEFAULT_PRECIS,
   CLIP_DEFAULT_PRECIS,
   DEFAULT_QUALITY,
   DEFAULT_PITCH | FF_SWISS,
   _T("Arial") ); 

(CStatic*)this->GetDlgItem(IDC_STATIC_FONT)->SetFont(&ResultFont,TRUE); //正常工作

  //::SendMessage(::GetDlgItem(this->m_hWnd,IDC_STATIC_FONT),WM_SETFONT,(WPARAM)(&ResultFont),MAKELPARAM(TRUE,0)); 不正常

SendDlgItemMessage(IDC_STATIC_FONT,WM_SETFONT,(WPARAM)(&ResultFont)->GetSafeHandle(),MAKELPARAM(TRUE,0));  正常


SendMessage(
(HWND) hWnd,              // handle to destination window
WM_SETFONT,               // message to send
(WPARAM) wParam,          // handle to font
(LPARAM) lParam           // redraw option
);
MSDN 里面SendMessage() 里面使用WM_SETFONT参数 wParam 必须使用自己定义的FONT的句柄,而不是使用 FONT 定义的内容。所以错误发生在:
(WPARAM)(&ResultFont) 而应该使用 (WPARAM)(&ResultFont)->GetSafeHandle()。