CClientDC dc(this);
dc.SetBkMode(TRANSPARENT); 
dc.TextOut(0,0,"Hello World!!!!"); 
MFC的DLG工程,代码放在OnInitDialog()函数中,界面不显示。为什么啊我另外又建了个static的控件
static CDC memdc;
memdc.CreateCompatibleDC(GetDlgItem(IDC_Bitmap_STATIC)->GetDC());
         memdc.SetBkMode(TRANSPARENT); 
memdc.TextOut(0,0,"Hello World!!!!"); 
我想显示在static空间中,还是不行呢?
差点什么东西吗

解决方案 »

  1.   

    把这三句写进OnPaint()
    CClientDC dc(this);
    dc.SetBkMode(TRANSPARENT); 
    dc.TextOut(0,0,"Hello World!!!!");
      

  2.   

    MFC的DLG工程,代码放在OnInitDialog()函数中,界面不显示。为什么啊
    =========================================
    OnInitDialog时窗口还没有显示好呢,当然没办法显示了,加在OnPaint中.
      

  3.   

    {
    CClientDC dc(this);
    dc.SetBkMode(TRANSPARENT);
    dc.TextOut(0,0,"Hello World!!!!"); 
    }
    {
    CDC memdc;
    memdc.CreateCompatibleDC(GetDlgItem(IDC_Bitmap_STATIC)->GetDC());
    memdc.SetBkMode(TRANSPARENT);
    string text="haha";
    memdc.TextOut(0,0,text.c_str(),text.size());
    }
    放在OnPaint()中,上面那段代码在Client要显示,但我想在static控件中显示就不行了,为什么?
    下面那段代码,在static中显示不出来
      

  4.   

    static中也要使用OnPaint
    代码也是
    CClientDC dc(this);
    dc.SetBkMode(TRANSPARENT);
    dc.TextOut(0,0,"Hello World!!!!"); 
    不是
    memdc
      

  5.   

    还是这样的话,如何让文字显示在static控件中?那样写没有和该控件联系上啊
      

  6.   

    控件本身也有OnPaint的,控件本身也是一个子窗口
      

  7.   

    可以把static控件ID改掉,然后用SetDlgItemText(...)改文字
      

  8.   

    CClientDC dc(this);
    dc.SetBkMode(TRANSPARENT);
    dc.TextOut(0,0,"Hello World!!!!"); 
    只能显示在Client窗口上,我想显示在static控件中啊
      

  9.   

    第一,只是想在static控件里显示的话,用GetDlgItem(IDC_XXX)->SetWindowText("123");
    IDC_XXX为控件的坐标;
    第二,如果还想在static里成画图什么的```派生个子类MyStatic,里面的onpaint里画好你的东西,当然,TextOut是可以用的``````
      

  10.   


    从 CStatic 派生 CYourStatic
    void CYourStatic::OnPaint() 
    {
        CPaintDC dc(this); 
        dc.SetBkMode(TRANSPARENT);
        dc.TextOut(0,0,"Hello World!!!!"); 
    }在界面窗口所在类的头文件里#include YourStatic.h
    在界面设计器上放一个静态文本框
    将静态文本框的ID由IDC_STATIC改成任何其它的内容
    在界面设计器上按下Ctrl键不放的同时按下"W"键
    在弹出的ClassWizard中选择第二个page
    为该静态文本框添加控件成员变量
    将该控件成员变量的基类由CStatic改为CYourStatic
    点Ok
      

  11.   

    我是在codeproject里找的一个位图显示的类CDIBSectionLite。
    CDIBSectionLite gDibMgr;
    CBitmap bitmap;
    bitmap.LoadBitmap(IDB_BITMAP1);
    gDibMgr.SetBitmap((HBITMAP)bitmap); //OnInitDialog()函数中         gDibMgr.Draw(GetDlgItem(IDC_Bitmap_STATIC)->GetDC(),CPoint(0,0));//OnPaint()函数中
    这样,能马上将图显示在Static控件中。(证明这样写可以在Static控件中显示位图)
    但我写成:
    CClientDC dc(this);
    dc.SetBkMode(TRANSPARENT);
    dc.TextOut(0,0,"Hello World!!!!");
    HBITMAP hbitmap = (HBITMAP*dc.GetCurrentBitmap();
    gDibMgr.SetBitmap(hbitmap);         
                      gDibMgr.SetBitmap((HBITMAP)bitmap); //OnInitDialog()函数中
    TextOut()中内容,在Client窗口中有显示,但Static控件中就不能显示了。中间就有个GetCurrentBitmap()函数,是不是这个函数的用法不对。