MFC学习笔记5 VC多对话框管理
2017-11-23 09:29
176 查看
本系列学习笔记来源于《VC++就业培训宝典之MFC视频教程》,记录自己系统化学习VC++ MFC过程
设置焦点顺序,使用ctrl+d,然后点选顺序。
IDOK是个特殊的ID,回车键会默认点击它。
ESC默认是IDCANCEL
strcmp是C语言的字符串比较函数。
代码:
运行效果:
输入 admin password,回车进入主界面。
添加删除item的实现代码:
多对话框管理
新建两个对话框设置焦点顺序,使用ctrl+d,然后点选顺序。
IDOK是个特殊的ID,回车键会默认点击它。
ESC默认是IDCANCEL
strcmp是C语言的字符串比较函数。
代码:
// test3.cpp : Defines the entry point for the application. // #include "stdafx.h" #include "resource.h" #include "stdio.h" BOOL CALLBACK MainProc( HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { char s[256]; sprintf(s,"uMsg=0x%x,wParam=%d,lParam=%d \n", uMsg,wParam,lParam); OutputDebugString(s); switch(uMsg){ case WM_COMMAND: { switch (LOWORD(wParam)){ case IDCANCEL: EndDialog(hwndDlg,IDCANCEL); return FALSE; case IDOK: EndDialog(hwndDlg,IDCANCEL); return FALSE; } return FALSE; } } return FALSE; } BOOL CALLBACK LoginProc( HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch(uMsg){ case WM_COMMAND: { switch (LOWORD(wParam)){ case IDCANCEL: EndDialog(hwndDlg,IDCANCEL); return FALSE; case IDOK: { char sName[20]; char sPass[20]; GetDlgItemText(hwndDlg,IDC_NAME,sName,sizeof(sName)); GetDlgItemText(hwndDlg,IDC_PASS,sPass,sizeof(sPass)); if(0==strcmp("admin",sName) && 0==strcmp("pass",sPass)){ EndDialog(hwndDlg,IDOK); } else MessageBox(hwndDlg,"pass error","prompt",MB_OK); return FALSE; } } return FALSE; } } return FALSE; } int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { int nRet = DialogBox(hInstance,(LPCSTR)IDD_DIALOG_LOGIN,NULL,LoginProc); if(nRet==IDCANCEL) return -1; DialogBox(hInstance,(LPCSTR)IDD_DIALOG_MAIN, NULL,MainProc); return 0; }
运行效果:
输入 admin password,回车进入主界面。
添加删除item的实现代码:
void CTest4Dlg::OnAdd() { CString str; GetDlgItemText(IDC_NUMB,str); CListCtrl* pList = (CListCtrl*)GetDlgItem(IDC_LIST); int nCount = pList->GetItemCount(); pList->InsertItem(nCount,str); GetDlgItemText(IDC_NAME,str); pList->SetItemText(nCount,1,str); GetDlgItemText(IDC_SALARY,str); pList->SetItemText(nCount,2,str); } void CTest4Dlg::OnDel() { CListCtrl* pList = (CListCtrl*)GetDlgItem(IDC_LIST); int nSel = pList->GetSelectionMark(); if(nSel<0){ AfxMessageBox("please select one row."); } pList->DeleteItem(nSel); }
相关文章推荐
- 孙鑫VC学习笔记:第十五讲 编写一个基于MFC对话框的聊天程序
- 孙鑫VC学习笔记:第十五讲 (四) 编写一个基于MFC对话框的聊天程序
- 孙鑫VC学习笔记:第十五讲 编写一个基于MFC对话框的聊天程序
- MFC学习笔记--将对话框收获的输入在View中使用
- MFC学习笔记之:创建模态对话框和非模态对话框
- 孙鑫VC学习笔记:第十讲画图 创建设置画笔的对话框 并且可以预览效果
- mfc学习笔记二:vc中activex控件理解
- VS2013MFC对话框工程学习笔记九 - C++语法的的学习
- MFC学习笔记8 对话框与程序连接
- VC++ MFC编程学习笔记(1)
- VC学习笔记:对话框
- MFC学习笔记4 VC常用数据类型列表
- 孙鑫VC++视频学习笔记之2: MFC程序框架的剖析
- 孙鑫VC学习笔记:第七讲 对话框
- VC++学习笔记之MFC应用程序创建/执行顺序和MFC运行机制
- VC++学习笔记之MFC消息映射机制
- VS2013MFC对话框工程学习笔记一 - 新建MFC对话框项目
- 孙鑫VC学习笔记:第十讲画图 创建颜色/字体对话框
- VS2013MFC对话框工程学习笔记二 - 了结布局和一些基本的窗口组件
- 孙鑫VC++视频学习笔记之3: MFC消息映射机制和绘图DC