VC++6.0想在单文档中随机输入26个小写字母,为什么调用了TextOut却什么也没显示出来呢?

更新一下自己的代码

int i = 0,j = 0;
void CWangLiuLin190304View::OnDraw(CDC* pDC)
{
    CWangLiuLin190304Doc* pDoc = GetDocument();
    if(j == 10) ::TextOut((pDC->GetSafeHdc()),0,0,"\n\r",lstrlen("\n\r"));//每10个换行
    if(i == 1)
    {
        int a;
        a = rand()%25;
        a += 'a';
        ::TextOut((pDC->GetSafeHdc()),0,0,((CString)a),lstrlen((CString)a));        
    }
    ASSERT_VALID(pDoc);
    // TODO: add draw code for native data here
}

两段代码

void CWangLiuLin190304View::OnBegin() 
{
    // TODO: Add your command handler code here
    SetTimer(1,500,NULL);
    i = 1;
}

void CWangLiuLin190304View::OnTimer(UINT nIDEvent) 
{
    // TODO: Add your message handler code here and/or call default
    j++;
    if(i == 1)
    {
        CDC *pDC=GetDC(); //调用OnDraw(pDC)重画 
        OnDraw(pDC);
    }
    if(j == 99) 
    {
        KillTimer(1);//100个结束
    }
    //CView::OnTimer(nIDEvent);
}

void CWangLiuLin190304View::OnEnd() 
{
    // TODO: Add your command handler code here
    i = 0;
    KillTimer(1);
}
c++

2个回答

::TextOut(要写在OnPaint里面
否则窗体刷新就被擦除了。

你可以定义一个全局变量,在你的定时器里设置,然后让窗体的 Paint 去绘图,在定时器里再刷新客户区

xiaowang_hi
xiaowang_hi 你说的是对的,虽然在移动窗口的过程中,窗体没有被刷新,但是缩小化后但文档中的内容依旧没有保留,不知道怎么办,如果您还愿意解答的话,可以告诉我一下吗,不愿意的话也没关系5个C币,回答下这个问题,也算是解决了我的一个小疑惑。
10 个月之前 回复
xiaowang_hi
xiaowang_hi OnDraw()行吗,我用OnDraw()出现了字,但是字都是叠在一起的,也不知道怎么换行
11 个月之前 回复

####################################################
有运行结果截图,有关键代码截图,有详尽的注释。
我那么完美的答案,被论坛管理员删除了,不知道为什么。
只好再补充一下源代码链接:

链接: https://pan.baidu.com/s/1JPC8UloawjY06CE-QKQbQw
提取码: 4vb6

####################################################

xiaowang_hi
xiaowang_hi 可能是因为你说没有C币了吧,最后你解决的问题是,用了你的字体,感谢,但是不是这个的解决办法,衡量了一下,还是将C币给了楼上,不过很感谢啦,不好意思了
10 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问