最近刚开始学VC++,找了孙鑫老师的视频教程来看。由于孙老师用的是VC6.0,我的电脑里装的是2005,因此发现几个自己无法解决的问题。还请高人们指点一下:
1.在vc6.0中要设置对话框静态文本颜色的时候,只要重写WM_CTLCOLOR消息,在OnCtlcolor()函数中设置 
pDC->SetTextColor(RGB(r,g,b));就可以。
但是在vs2005中,这个方法只对static text文本有效,对组框GroupBox左上角的文本却无效。可是在孙老师的视频中,这个函数应该是对两个都有效的。vs2005 GroupBox左上角的静态文本默然为一种浅蓝色,我怀疑是MFC做了什么规定,但是我不知道是为什么,请老手们指点一下迷津。
2.同样是设置静态文本的问题,在孙老师的视频中,要设置static text的字体,比如说设成“华文行楷”,只要创建一个CFont的对象,然后将这个对象载入到DC中就可以,可是在我的VS2005中,用这种方法只能改变字体大小,却不能更改字体。显示出的字体依然是默然的宋体。孙老师的代码是:
CFont m_font;
m_font.CreatePointFont(150,_T("华文行楷"));
然后在OnCtlColor()这个函数中写:pDC->SelectObject(&m_font);这样就可以将static text设置成华文行楷的字体,但是在vs2005中完全无效。请前辈们指点。
3.vs6.0中设置程序启动画面用的那个CSplashWnd的插件到底在哪里?在vs6.0中只要选择插入项目--组件与控件,就可以但是在2005中这个鬼东西到底在哪里?有人说右键工具栏--选择设备,但是我在里面依然没有找到所谓的Splash组件。
以上问题,恳求高人们指点

解决方案 »

  1.   

    2.你要看下你的字体库里有没有设置的字体,没有的话,创建是不会有效果的
    3.CSplashWnd  在VS2005中好像去掉了,自己手动写一个就可以
    很简单的,在主界面起来前先创建并显示自己的SplashWnd,并暂停个几秒,再消掉这个窗口,显示主窗口就可以了
      

  2.   

    1 有执行到那一句吗
      nCtlColor == CTLCOLOR_STATIC
     && pWnd->GetDlgCtrlID() == IDC_STATIC_***
    2 在OnInitDialog初始化对话框里设就行了
    GetDlgItem(IDC_STATIC_***)->SetFont(&m_font);
    3 没有了要自己写http://blog.csdn.net/libenqing/archive/2010/10/24/5961991.aspx
      

  3.   

    好了,字体那个问题解决了,确实是因为我系统里就没有华文行楷,真囧,我还以为和windows的font库通用呢,原来不通用
      

  4.   

    谢谢你给的链接。虽然第一个GROUPBOX的字体颜色还是不能改,系统一直显示那个默然的浅蓝色,真郁闷。