1:谁教我做个基于对话框应用程序启动界面,用来确认用户名和密码.
2:如何动态改变一个控件上字体颜色,用哪个控件最方便,怎么做呢?
有源程序更好。

解决方案 »

  1.   

    1、很简单,你再做一个对话框,在App的InitInstance函数中在实际的对话框之前调用其DoModal,在依据返回值判断是不是执行后面真正的内容2、如果说要改变控件的字体颜色,的确有很多现成的代码,我这就有一个标签控件,需要的话留下mail
      

  2.   

    好谢谢,[email protected]
    就第二个问题,我想用来实现如下功能:
    如果数据正确在对话框某个位置或者某个控件上显示GREEN字体.
    如果数据错误则显示RED字体,应该怎样做好,可否给个链接 或者源码?
      

  3.   

    MAIL已发
    你的要求只要使用MAIL中的控件在不同的情况下设置不同的字体颜色即可实现。
    具体请参见示例
      

  4.   

    能给我一份吗?
    [email protected]
      

  5.   

    HBRUSH CSetTextColorDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
    {
    HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
    //BOOL bError = FALSE;

    if (pWnd == &m_Text)
    if (bError)
    pDC->SetTextColor(RGB(255, 0, 0));
    else
    pDC->SetTextColor(RGB(0, 255, 0));
    // TODO: Return a different brush if the default is not desired
    return hbr;
    }
    你只要将bError声明为类的成员变量,然后再相应的地方改变他的值,并且调用
    Invalidate();就可以了。
      

  6.   

    谢谢我来也师兄,稍等片刻我再结贴。
    我想问楼上小周周:
    1:此方法是不是修改过后要重画才行
    2:Invalidate函数在哪里?是什么?
      

  7.   

    快回答我这两个问题啊,我马上结贴!
    1:此方法是不是修改过后要重画才行
    2:Invalidate函数在哪里?是什么?,我调用了过后屏幕不停地被刷新.
      

  8.   

    楼上,以你的情况看,不需要调用Invalidate()
      

  9.   

    Invalidate刷新函数了
    可以只有用了
    this->Invalidate(TRUE);
    这个函数你不能在onpaint里用
      

  10.   

    Invalidate是用来刷新你的窗口显示的函数,不要在OnCtlColor中调用。zhouyong0371(小周周) 的意思是你应该在改变bError的值也就是判断数据正确与否之后调用。