码迷,mamicode.com
首页 > 其他好文 > 详细

009 库存管理系统界继续

时间:2017-05-27 21:48:31      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:auto   info   duplicate   dia   绑定   操作   mfc   指示   form   

菜单创建窗口

  ? 非模态对话框的创建

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

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

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

    //非模态对话框要注意的地方
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
    ○ 注释 使用分号表示 (;).在分号后面的文字,直到该行结尾全部都是注释

 

009 库存管理系统界继续

标签:auto   info   duplicate   dia   绑定   操作   mfc   指示   form   

原文地址:http://www.cnblogs.com/sdk123/p/6910650.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!