您的位置:首页 > 其它

EDIT控件设置字体,背景色

2012-10-25 09:12 155 查看
截获WM_CTLCOLORSTATIC消息

Gdiplus::Bitmap *pBitmap = (Gdiplus::Bitmap*)CMiUIUtils::LoadImage(IDB_PNG_LICENSE_BG);
if(pBitmap != NULL)
{
HBITMAP hBitmap = NULL;
pBitmap->GetHBITMAP(Gdiplus::Color(0, 0, 0), &hBitmap);
delete pBitmap;
pBitmap = NULL;
m_hEditBrush = ::CreatePatternBrush(hBitmap);
::DeleteObject(hBitmap);
hBitmap = NULL;
}


LRESULT OnCtlColor(UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
HDC hDC = (HDC)wParam;
HWND hWnd = (HWND)lParam;
if(!::IsWindow(hWnd) || hDC == NULL)
{
bHandled = FALSE;
return 0L;
}
::SetTextColor(hDC, RGB(0x76, 0x76, 0x76));
::SetBkColor(hDC, RGB(246, 246, 246));
::SetBkMode(hDC, TRANSPARENT);
return (LRESULT)m_hEditBrush/*(HBRUSH)::GetStockObject(NULL_BRUSH)*/;
}


::SendMessage(m_hEdit, WM_SETFONT, (WPARAM)CMiUIUtils::GetTextFont(14, m_hEdit), TRUE);
::SendMessage(m_hEdit, EM_SETREADONLY, 1L, 0L);
::PostMessage(m_hEdit, EM_SETSEL, -1, 0);


WTL中的WindowProc

BEGIN_MSG_MAP(CMainDlg)
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
MESSAGE_HANDLER(WM_DESTROY, OnDestroy)
MESSAGE_HANDLER(WM_CTLCOLORSTATIC, OnCtlColor)
COMMAND_ID_HANDLER(ID_APP_ABOUT, OnAppAbout)
COMMAND_ID_HANDLER(IDOK, OnOK)
COMMAND_ID_HANDLER(IDCANCEL, OnCancel)
{
SetMsgHandled(TRUE);
lResult = m_oSkin.WindowProc(uMsg, wParam, lParam);
if(lResult != 0L)
return TRUE;
SetMsgHandled(FALSE);
return FALSE;
}
END_MSG_MAP()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐