我的问题是这样的,说起来有点疑惑.
习惯了字符界面下的编程,诸如这样的和用户做输入交互:
scanf("%d%d",&a,&b);
printf("%d",a+b);
但是,我不知道如何在窗口中的客户区中和用户做这样的交互输入呢?
WINDOWS程序设计中没有讲到,只是实现了写字板的功能,我是想即能和用户做输入,又能想他输出,怎么实现呢?
能够帮我解决问题的朋友,如果可以,我愿意给他更多的分.

解决方案 »

  1.   

    很简单你只要在选择view是选择为CEditView类就可以
      

  2.   

    如果你使用对话框,可以在对话框的控件中
    比如Edit中输入和输入数据
    在普通的窗口中,可以用CDC::DrawText函数在窗口中显示数据
      

  3.   

    CEditVeiw 在WINDOWS程序设计里面有提及过吗?
      

  4.   

    用CEditView可以实现简单的记事本功能。
    用CRichEditView可以实现功能强大的文本编程功能。
    你可以用一个对话框,加入edit控件,输入以后,运算结果在视图中显视。显视方法有很多种,最简单的pDC->TextOut(x,y,str);
      

  5.   

    Window 是用 Edit 控件接受用户输入的
    用 MassageBox 或 TextOut 输出信自己给用户
      

  6.   

    楼上的不用多说,这个我都很清楚
    我想说的是那种...类似于Telnet的交互式的,理解我所说的吗?
    即用户的输入和输出都在客户区中共存
    对了,上面说的控件,Charles那本书中没有提及到多少,有专门介绍这方面的书籍吗?
      

  7.   

    如果仅仅实现你说的要求实际上不难,只要你将原来输出到dos得东西重定向到edit就行了,我以前做过
    [email protected]
    实际上就是模拟一下而已。
    如果要彻底的解决问题,则需要hook
      

  8.   

    响应CTestView类的WM_CHAR消息void CTestView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) 
    {
    // TODO: Add your message handler code here and/or call default
    static int x=0;
    CClientDC dc(this);
    CString s;
    s.Format("%c",nChar);
    dc.TextOut(x,10,s);
    x+=10;

    CView::OnChar(nChar, nRepCnt, nFlags);
    }
      

  9.   

    在你的WndProc()里添加如下代码: case WM_CHAR:
    //case WM_KEYDOWN:
    MessageBeep(MB_OK);
    break;如果你敲键盘听到了,叮叮的声音说明就有些了,呵呵。
    所谓的WINDOWS程序设计就是指SDK吗,没有听过哦:(
      

  10.   

    I think you should provide another message loop to capture all keyboard input. it is obvious there is other thing to do after getting inputs.
      

  11.   

    楼上的psusong兄,我对你的提议很感兴趣,能否给过发一份你的代码呢?
    如果不介意的话.
      

  12.   

    scanf("%d%d",&a,&b);
    printf("%d",a+b); 可变为以下:
    int a=8;
    int b=9;
    CString s;
    s.Format("%d",a+b);
    AfxMessageBox("a+b="+s); 
      

  13.   

    选择view是选择为CEditView类就可以了。
      

  14.   

    SDK----动态创建EDIT等控件!
    GUI程序只有通过基本控件才能于用户交互啊!!!!