• CEdit自绘点


    就几个点:

    背景色,字体颜色,字体大小,

    注意的是字体大小最好用WM_SETFONT来处理,我也是在挂钩时打印消息发现了它,直接看MSDN就知道怎么发送了。

    代码:

    HBRUSH CSkinEdit::CtlColor(CDC* pDC, UINT nCtlColor)
    {
         m_Brush.DeleteObject();
    	 m_Brush.CreateSolidBrush(m_BkClr);
    	 pDC->SetBkColor(m_BkClr);
    	 pDC->SetTextColor(m_TextClr);
    
    	return (HBRUSH)m_Brush;
    }

    必须return 一个HBRUSH对象,表示你设置了,不然设置无效

    void CSkinEdit::SetTextFont(LONG FontHeight, CString szFontName, int FontType)
    {
    	BOOL bRedraw = FALSE;
    	if ((FontHeight != m_FontHeight)&&FontHeight)
    	{
    		m_FontHeight = FontHeight;
    		bRedraw = TRUE;
    	}
    	if (!szFontName.IsEmpty()&&(m_szFontName != szFontName))
    	{
    		m_szFontName = szFontName;
    		bRedraw = TRUE;
    	}
    	if(FontType != m_FontType)
    	{
    		m_FontType = FontType;
    		bRedraw = TRUE;
    	}
    
    	if (bRedraw)
    	{
    		LOGFONT lf;
    		m_Font.GetLogFont(&lf);
    
    		lf.lfHeight = m_FontHeight;   
    		lf.lfWeight = m_FontType;  
    
    		memcpy(lf.lfFaceName, m_szFontName.GetBuffer(LF_FACESIZE), LF_FACESIZE);
    		m_szFontName.ReleaseBuffer(LF_FACESIZE);
    
    		m_Font.DeleteObject();
    		m_Font.CreateFontIndirect(&lf);
    
    		SendMessage(WM_SETFONT, (WPARAM)((HFONT)m_Font), MAKELPARAM(TRUE, 0));
    	}
    }

    
    
    szFontName可以是TEXT("Arial"),TEXT("宋体")
    
  • 相关阅读:
    第一类斯特林数,第二类斯特林数,组合数
    P1005 矩阵取数游戏
    P4609 [FJOI2016]建筑师
    射击小游戏一03(碰撞检测)
    CCLabelAtlas 特效 自定义CCLabelTTF
    CCSpriteBatchNode cocos2dx使用
    cocos2dx plist动画
    CCSpriteBatchNode 渲染
    cocos2dx 实现翻牌效果
    cocos2dx技能冷却
  • 原文地址:https://www.cnblogs.com/hgy413/p/3693592.html
Copyright © 2020-2023  润新知