BOOL CReticeWordDlg::OnInitDialog() { CDialogEx::OnInitDialog(); // 将“关于...”菜单项添加到系统菜单中。 // IDM_ABOUTBOX 必须在系统命令范围内。 ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000); CMenu* pSysMenu = GetSystemMenu(FALSE); if (pSysMenu != nullptr) { BOOL bNameValid; CString strAboutMenu; bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX); ASSERT(bNameValid); if (!strAboutMenu.IsEmpty()) { pSysMenu->AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); } } // 设置此对话框的图标。 当应用程序主窗口不是对话框时,框架将自动 // 执行此操作 SetIcon(m_hIcon, TRUE); // 设置大图标 SetIcon(m_hIcon, FALSE); // 设置小图标 // TODO: 在此添加额外的初始化代码 //程序启动时设置显示的欢迎信息 m_screen.SetWord(_T("welcome")); m_screen.SetExplain(_T("start to recite word! ")); //从文件中读取总单词库 FILE* fp1; fopen_s(&fp1, "words.txt", "r"); if (fp1 != NULL) { while (!feof(fp1)) { char line[256] = { 0 }; fgets(line, 256, fp1); if (strlen(line) == 0) { break; } if (line[strlen(line) - 1] == '\n') { line[strlen(line) - 1] = '\0'; } int i = 0; while (line[i] != ' ' && line[i] != '\t') { i++; } line[i] = '\0'; Word word; memset(&word, 0, sizeof(Word)); memcpy(word.word, line, strlen(line)); memcpy(word.explain, line + i + 1, strlen(line + i + 1)); words.push_back(word); } fclose(fp1); }
时间: 2024-03-15 22:42:51 浏览: 59
VC++ MFC 修改界面菜单添加与获取系统信息
4星 · 用户满意度95%
这段代码是一个 MFC(Microsoft Foundation Classes)框架下的对话框类 CReticeWordDlg 的 OnInitDialog 函数的实现。这个函数在对话框创建时被调用,用于初始化对话框的各个控件和数据。具体实现过程包括以下几个步骤:
1. 调用父类的 OnInitDialog 函数,完成对话框的基本初始化工作。
2. 将“关于...”菜单项添加到系统菜单中,这个菜单项是系统默认提供的,用于显示关于对话框的信息。
3. 设置对话框的图标,包括大图标和小图标。
4. 设置欢迎信息和总单词库。这里使用了一个自定义的控件 m_screen,它是一个 CStatic 类型的静态文本控件,用于显示欢迎信息和单词信息。同时从文件 "words.txt" 中读取总单词库的内容,并将每个单词和其解释存储到一个名为 words 的 vector 容器中。
总的来说,这段代码实现了对话框的初始化工作和单词库的读取,为后续的单词背诵提供了基础数据。
阅读全文