CFont的问题和一个郁闷我两天的Commobox背景色的问题

来源:互联网 发布:php初学者项目 编辑:程序博客网 时间:2024/05/16 12:03

1.如果是GDI绘制使用,需要选入(SelectObject)DC;如果是设置控件字体,用SetFont

2.为了指定FORMVIEW中部分文字的输出风格,写了个Set_Font(),在做改变static的背景色的时候,发现变化和预定义的不一致,原来是Cfont定义的是局部变量,在函数返回时就销毁,将m_Font修改成成员变量就OK

3.commbox当被选中时可以看到显示的问题,但是一旦不被设为焦点,就会发现白色一片,没有被显示

做了个测试程序,发现它与static的背景色始终一致,一直没有解决的办法,今天突然悟到,可能在OnCtlColor函数中将static的背景色和text色都设置成白色,一看代码,O FT,原来真的pDC->SetTextColor( RGB( 255,255,255) ),将它改成pDC->SetTextColor( RGB( 0,0,0) ) 就OK了

4.CListCtrl控件,当ITEM的宽度比较大时候,水平滚动条会出现,对于同样高度的LISTCTRL控件来讲,有滚动条和无滚动条时,你会发现m_List.GetClientRect(rect),rect.Hight不一样,原因是因为有水平滚动条时,rect区域不包含滚动条的区域.滚动条属于CScrollbar类.

CScrollBar * pbar = m_List.GetScrollBarCtrl(SB_HORZ);//垂直用SB_VERT

判断listctrl是否出现垂直滚动条:if(m_List.GetItemCount > m_List.GetCountPerPage())即出现水平滚动条

判断是否出现水平滚动条:m_List.GetClientRect(rect)

       if(总标题列宽度 > rect.Width()),即出现水平滚动条

类似的ListCtrl的标题属于CHeaderCtrl类

以后一定要细心,再细心  

原创粉丝点击