zoukankan      html  css  js  c++  java
  • 009 库存管理系统界继续

    菜单创建窗口

      ◉ 非模态对话框的创建

        ○ 等在另一个窗口完成之后

        ○ 初始化子窗口的时候要在初始化函数里面操作

        ○ 响应窗口只需要做显示窗口的操作

        //非模态对话框要注意的地方
    void CPoEduINVDemoDlg::OnMenuAdd()
    {
        //新的对话框的时候
            //1 模态对话框 临时对象 
                //等待另一个窗口完成之后
            //2 非模态对话框 使用 new Init new 这个对话框 Close时 del
                //跟主窗口同级
        //new        delete
        //第一种
        //m_pDlgGoodInfo.CreateWindow();  可不可以?
        //栈上面的对象
        m_pDlgGoodInfo = new CDlgGoodInfo;
        m_pDlgGoodInfo->Create(TEXT("Add"));
        m_pDlgGoodInfo.ShowWindow(SW_SHOW);
    }
    
    //使用非模态对话框的时候 创建窗口要在初始化窗口做
    //响应按键的只需要做一个SHOW窗口的操作
    // WM_CREATE 消息时 CreateWindow -> 发送 WM_CRETE
    //BOOL ::OnIntDialog()函数里面创建
        //初始化函数
        //WM_CREATE 消息 指示正在创建窗口
        //WM_CLOSE 消息 发出信号要某个窗口或应用程序终止
        

      ◉ 模态对话框

     1     //模态对话框
     2 void CPoEduINVDemoDlg::OnMenuAdd()
     3 {
     4     CDlgGoodInfo dlgGoodInfo;
     5     //dlgGoodInfo.SetWindowText(TEXT("添加程序"));    //通知窗口对象修改TEXT(标题)
     6     dlgGoodInfo.DoModal();    //阻塞
     7         //j就是创建窗口 CreateWindow
     8     dlgGoodInfo.SetWindowText(TEXT("添加程序"));    //通知窗口对象修改TEXT(标题)
     9     //如何设置程序标题
    10 }
    11     //重写 DoModal()函数
    12         //由于我们不知道源码 不知道她调用的是Create还是CreateWindow函数
    13         //这样做是不行的
    14     //重写 CDlgGoodInfo 初始化函数
    15 BOOL CDlgGoodInfo::OnInitDialog()
    16 {
    17     BOOL bRet = CDialog::OninitDialog();
    18     SetWindowText(TEXT("ADD"));
    19     return bRet;
    20 }
    21 
    22 //从上面这个实例我们得知MFC其实就是C++的方式对Windows 很多特性进行了一层一层的封装
    23 //然后对于我们的每一个消息都产生了一个On的消息
    24 //知道了这些我们就可以利用C++的特性对MFC进行各种各样的扩充填充以及修改

      ● 默认MFC窗口
        ○ 确定按钮
          ○ IDOK
          ○ CDialogEx::OnOK()
        ○ 取消按钮
          ○ IDCANCEL
          ○ CDialogEx::OnCancel()

      ● 模态对话框里面的返回值是有一定含义的

        ○ IDOK -> 按下确定
        ○ IDCANCEL -> 按下取消

     1 void CPoEduINVDemoDlg::OnMenuAdd()
     2 {
     3     CDlgGoodInfo dlgGoodInfo;            //构造函数接收参数
     4     DWORD dwTest = dlgGoodInfo.DoModal();
     5                     //DoModal的返回值和按钮绑定了
     6     if(dwTest == IDOK)
     7     {
     8         //文件写入操作
     9     }
    10     //CString strBuf;
    11     //strBuf.Format(TEXT("%d",dwTest);
    12     //MessageBox(strBuf);
    13     //设置一个方法
    14 }

    ● CFile类的成员
      ⊙ 数据成员
        ○ m_hFile常包含操作系统文件句柄

      HANDLE m_hFile;

    operator HANDLE() const; 


      ⊙ 构造函数
        ○ CFile 从一个路径或文件句柄构造一个CFile对象;
        ○ Abort不管任何警告和错误,关闭一个文件;
        ○ Duplicate构造一个基于该文件的副本;
        ○ Open 带才哦呜的检验选项,安全打开一个打开一个文件;
        ○ Close 关闭文件,删除对象。

      ⊙ 输入/输出
        ○ Read 从文件的当前
        ○ ReadHuge 可从文件的当前位置读取大于 64K数据,在32位编程种废弃了见 Read;
        ○ Write 将文件数据写入当前文件;
        ○ WriteHuge 可将文件的大于64K数据写到当前文件位置,在32位编程中废弃了,见 Write;
        ○ Flush 溢去来被写入的任何数据。

      ⊙ 定位
        ○ Seek 定位于当前文件指针;
        ○ SeekToBegin 定位当前文件指针到文件开头;
        ○ SeekToEnd 定位当前文件指针到文件尾;
        ○ GetLength 获取文件长度;
        ○ SetLength 改变文件长度;

      ⊙ 封锁
        ○ LockRange 在文件中封锁一定范围内字符;
        ○ UnlockRange 解锁一定范围内的字节。

      ⊙ 状态
        ○ GetPosition 获取当前文件指针;
        ○ GetStatus 获取打开文件状态;
        ○ GetFileName 获取被选文件的文件名;
        ○ GetFileTitle 获取被选文件的标题;
        ○ GetFilePath 获取被选文件的完整路径;
        ○ SetFilePath 设置被选文件的完整路径;
      ⊙ 静态
        ○ Rename 改名指定文件 (静态函数);
        ○ Remove 删除指定文件 (静态函数);
        ○ GetStatus 获取指定文件的状态(静态,虚函数);
        ○ SetStatus 设置指定文件的状态(静态,虚函数)

      ⊙ CFile 就是对我们的CreateFile进行封装

     1 public:
     2 // Flag values
     3     enum OpenFlags {
     4         modeRead =         (int) 0x00000,
     5         modeWrite =        (int) 0x00001,
     6         modeReadWrite =    (int) 0x00002,
     7         shareCompat =      (int) 0x00000,
     8         shareExclusive =   (int) 0x00010,
     9         shareDenyWrite =   (int) 0x00020,
    10         shareDenyRead =    (int) 0x00030,
    11         shareDenyNone =    (int) 0x00040,
    12         modeNoInherit =    (int) 0x00080,
    13 #ifdef _UNICODE
    14         typeUnicode =      (int) 0x00400, // used in derived classes (e.g. CStdioFile) only
    15 #endif
    16         modeCreate =       (int) 0x01000,
    17         modeNoTruncate =   (int) 0x02000,
    18         typeText =         (int) 0x04000, // used in derived classes (e.g. CStdioFile) only
    19         typeBinary =       (int) 0x08000, // used in derived classes (e.g. CStdioFile) only
    20         osNoBuffer =       (int) 0x10000,
    21         osWriteThrough =   (int) 0x20000,
    22         osRandomAccess =   (int) 0x40000,
    23         osSequentialScan = (int) 0x80000,
    24         };
    25 
    26     enum Attribute {
    27         normal     = 0x00,                // note: not same as FILE_ATTRIBUTE_NORMAL
    28         readOnly   = FILE_ATTRIBUTE_READONLY,
    29         hidden     = FILE_ATTRIBUTE_HIDDEN,
    30         system     = FILE_ATTRIBUTE_SYSTEM,
    31         volume     = 0x08,
    32         directory  = FILE_ATTRIBUTE_DIRECTORY,
    33         archive    = FILE_ATTRIBUTE_ARCHIVE,
    34         device     = FILE_ATTRIBUTE_DEVICE,
    35         temporary  = FILE_ATTRIBUTE_TEMPORARY,
    36         sparse     = FILE_ATTRIBUTE_SPARSE_FILE,
    37         reparsePt  = FILE_ATTRIBUTE_REPARSE_POINT,
    38         compressed = FILE_ATTRIBUTE_COMPRESSED,
    39         offline    = FILE_ATTRIBUTE_OFFLINE,
    40         notIndexed = FILE_ATTRIBUTE_NOT_CONTENT_INDEXED,
    41         encrypted  = FILE_ATTRIBUTE_ENCRYPTED
    42         };
    43 
    44     enum SeekPosition { begin = 0x0, current = 0x1, end = 0x2 };
    45 
    46     static AFX_DATA const HANDLE hFileNull;

      ● ini文件
        ○ .ini文件是 Initialization File的缩写
        ○ 初始化文件
        ○ Windows系统配置文件 才用的存储格式

      ● ini文件格式
        ○ INI文件由 节 键 值 组成
        ○ 节 [section]
        ○ 参数 (键 = 值) name = value
        ○ 注释 使用分号表示 (;).在分号后面的文字,直到该行结尾全部都是注释

  • 相关阅读:
    php分页类
    jquery Deferred对象
    sql 常见面试题
    C# socket编程第二篇
    Sqlserver本地服务启动不了,提示请求失败或服务未及时响应
    Sqlserver函数之log,power,len
    C#除法
    C# socket编程第一篇
    android菜鸟进修之路一layout里添加xml文件没有在R.java里生成ID
    form提交时应注意“&”符号
  • 原文地址:https://www.cnblogs.com/sdk123/p/6910650.html
Copyright © 2011-2022 走看看