HDC hdc = ::GetDC(m_hWnd); LOGFONT lf = { 0 }; lf.lfWeight = 16; //平均宽度 lf.lfHeight = 40;//字体高度 lf.lfCharSet = GB2312_CHARSET;//字符集 lstrcpy(lf.lfFaceName, _T("宋体")); HFONT hfont = ::CreateFontIndirect(&lf);//创建逻辑字体 HFONT holdfont = (HFONT)SelectObject(hdc, hfont); COLORREF oldcolor=GetTextColor(hdc);//获取DC中的文本颜色 COLORREF color1= SetTextColor(hdc, RGB(0,0,255));//设置指定DC中的文字颜色 int i=SetBkMode(hdc,TRANSPARENT);//设置指定DC的背景混合模式 /* 背景混合模式用于与文本,填充画刷和当画笔不是实线时 参数1:HDC hdc 参数2:int iBkMode 要设置的模式,其值可以为: OPAQUE 不透明-默认 TRANSPARENT 透明 返回值:如果函数运行成功,返回当前DC之前的背景模式 如果函数运行失败,返回零 */ RECT rect = { 50,50,400,400 }; DrawText(hdc, _T("GDI测试"), -1, &rect, DT_LEFT); SetTextColor(hdc, color1);//还原 SelectObject(hdc, holdfont); DeleteObject(hfont);
标签:lf,HFONT,MFC,SetBkMode,DC,模式,hdc From: https://www.cnblogs.com/liming19680104/p/17356192.html