问题1:
在MFC多文档程序中,如果要使其支持多种文档类型,需建立多个文档模板,程序
运行时,弹出一个对话框,让选择一个文档模板类型,之后以选定的文档模板建立
一个新文档,在WORD中,也支持多种文档类型,但其并不出现那个对话框,
它是如何实现的呢?另外,要使程序运行后,单击“打开”按钮,在“文件类型”
的列表框中显示*.zxc *.qaz *.qwe *.hhh(每个文档类型独占一行),
应加入怎样的代码?
问题2:
网络应用中,一般有以下两种情况,A.服务器24小时开机,客户机每接收一笔数据
,发往服务器,B.服务器定时开机,比如每日下午4点,客户机以文件的形式往服务器
传输文件,请问,这两种情况下,服务器和客户机的编程有何不同?另外,10个客户机同时向服务器发数据,使用不同的端口,服务器不使用多线程能否死机?
问题3:有项目A,它由两个模块组成B和C,有两种方法完成项目,一是在A中直接编写模块B和C
,由于B和C都很复杂,一个人完成项目有难度,二是由三个人分别设计A(壳),B,C,之后将其联编为一个exe文件,在TURBO C2.0中,建立prg文件包含B,C后编译即可,在
Visual c++6.0中如何实现,不能用调用exe文件的方法,因为B和C的参数较多。问题4:
如何隐藏功能,比如按Ctrl+R弹出一个对话框,在一般的编程中,如下实现:菜单中加一个菜单项,为该项加入一个函数,在函数中建立一个对话框即可。之后在工具栏中加入一项,修改其ID即可。我要实现的功能是,工具栏和菜单栏中都没有Ctrl+R的对应项,而按快捷键Ctrl+R却能弹出对话框。如何实现?

解决方案 »

  1.   

    问题一很简单!
    你在CYourWinApp::InitInstance()
    {
    //创建文档魔板,并将文档魔板保存为类的成员变量
    //例如你创建了三个文档魔板,并分别保存为
    //m_pTemplate1;
    //m_pTemplate2;
    //m_pTemplate3;
    }
    然后映射ID_FILE_NEW
    void CYourApp::OnFileNew() 
    {
    // TODO: Add your command handler code here
    //不会出现提示框,直接打开m_pTemplate1对应的doc/view
    m_pTemplate1->OpenDocumentFile(NULL);}
      

  2.   

    问题一的第二问是这样的:
     重载OnFileNew消息函数,然后自己调用CFileDialog来实现即可.
      

  3.   

    问题1的第二问,应加入一行代码,我忘了怎么写了,请提示一下Mattary(Mattary)好像不对吧,那样作的话,A,B,C三模块的关系应是并列的,
    现在要求是B和C是A的子模块,即A可以以不同的参数使用B和C,
      

  4.   

    问题1的第二问可以通过修改String Table实现。
    例如.txt
    把IDR_TEXTTYPE改为:
    \nText\nText\nTXT 檔案 (*.txt)\n.txt\nText.Document\nText Document
      

  5.   

    huahero(华英雄) 多项的如何写?
      

  6.   

    为每一个文档类型指定一个资源,如上面的IDR_TXETTYPE.
    这需要修改多个地方,如添加图标、菜单等。可对照创建
    工程时生成的那一个。
    在resource.h中加入:
    #define IDR_TEXTTYPE                    130
    String Table中也要加一项
      

  7.   

    问题4:在RESOURCE。H里面加一个ID(ID_R),然后在快捷键里面加上CTRL+R,其ID为ID_R,然后在主窗口的消息映射中添加 ON_COMMAND(ID_R,....)
      

  8.   

    问题四:
       使用热键
       1、映射消息处理函数 ON_MESSAGE(WM_HOTKEY, OnHotKey)
       2、定义热键  vk 作为注册热键的参数 
       3、注册系统热键
    BOOL RegisterHotKey(
      HWND hWnd,         // handle to window
      int id,            // hot key identifier
      UINT fsModifiers,  // key-modifier options
      UINT vk            // virtual-key code
    );
       4、添加事件处理函数,这里是OnHotKey()例如:
    ...
    ON_MESSAGE(WM_HOTKEY, OnHotKey)
    ...
    HotKey = 'D';
    RegisterHotKey(m_hWnd,m_WinShowHide, MOD_CONTROL, HotKey);
    //注册热键为 Ctrl+'D'
    ...
    OnHotKey()
    {
    ...
    你的对话框
    ...
    }