mfc 对话框 孙鑫 第七章
来源:互联网 发布:sd卡数据恢复手机版 编辑:程序博客网 时间:2024/05/22 14:10
第七章
1. 模态对话框
1.1 创建 Domodal();
内部调用ShowWindow(SW_SHOW);
对话框类的对象声明为局部变量就可以,因为Domodal阻塞在这里。
1.2 销毁,直接点“确定”、“取消”就可以了。CTestDlg::OnOK()和CTestDlg:: OnCancel ()调用CDialog::OnOK()和CDialog:: OnCancel (),后面两个调用EndDialog()。对于模态,EndDialog()销毁对话框。
2.非模态对话框
2.1 创建
// lpszTemplateName对话框模板名称
// pParentWnd 对话框的父窗口,一般用this(谁调用。this就是谁)
BOOL Create(LPCTSTR lpszTemplateName, CWnd* pParentWnd = NULL);
BOOL Create(UINT nIDTemplate, CWnd* pParentWnd = NULL);
ShowWindow(SW_SHOW);
注意:对话框类对象要用全局变量或调用所在类的成员变量,或定义为局部指针变量,然后new出来,存在于堆上。
2.2销毁
a). 如果是new出来的局部比变量,要在CTestDlg::PostNcDestory(){
delete this;
CDialog::PostNcDestory(); }
b). OK按钮调用的EndDialog() 对于非模态,只是隐藏,并未销毁。
解决方法:重写OnOK和OnCancel,调用DestroyWindow(),同时不要在调用CDialog::OnOK()和CDialog:: OnCancel ();
3.动态创建按钮
CButton类成员函数Create();可以在mfc项目里查看接口。
4.控件的访问
CWnd::CWnd* GetDlgItem(intnID)const;获取控件指针
GetNextDlgTabItem();//返回指定控件前面或后面一个具有WS_TABSTOP风格的控件
SetWindowText(); GetWindowText();
GetDlgItemText(); SetDlgItemText();
GetDlgItemInit(); SetDlgItemInit()
char ch1[256];memset(ch1,0,sizeof(char)/sizeof(char));
SendMessage(GetDlgItem(nID)->m_hwnd,WM_GETTEXT,10,(lparam)ch1);
SendMessage(m_edit.m_hwnd,WM_GETTEXT,10,(lparam)ch1);
m_edit.SendMessage(WM_GETTEXT,10,(lparam)ch1);
WM_SETTEXT
4.对话框伸缩功能 通过GetWindowRect()或者GetClientRect()等获取窗口大小,然后调用SetWindowPos来实现对话框伸缩。
5.焦点传递
a).实现方法
a-1).为编辑框控件编写一个类,利用这个类来捕获键盘消息
a-2).修改编辑框控件过程函数
LRESULT CALLBACK NewEditProc //窗口过程的名字可以随意命名
(
HWND hwnd, // 窗口的句柄
UINT uMsg, //
WPARAM wParam, //第一个消息参数
LPARAM lParam // 第二个消息参数
)
{
if(uMsg == WM_CHAR && wParam == 0x0d)//判断是都为回车符,wparam参数保存的是字符的ASCII码
{
::SetFocus(GetNextWindow(hwnd,GW_HWNDNEXT))//SetFocus(hwnd)GetNextWindow是获取下一个窗口的句柄
return 1;
}
else
{
return prevProc(hwnd,uMsg,wParam,lParam);如果不是回车调用先前的窗口过程来处理该消息
}
}
在On
On
{
PrevProc = (WNDPROC)SetWindowLong(GetDlgItem(IDC_EDIT1)->m_hWnd,GWL_WNDPROC,(LONG)NewEditProc);
}
SetFouce(HWND hwnd)
GetNextWindow(HWNDhwnd/*当前窗口句柄*/,UNIT wCmd /*查找方向*/);GW_HWNDNEXT GW_HWNDPREV
- mfc 对话框 孙鑫 第七章
- mfc 对话框 孙鑫 第七章
- MFC(对话框,孙鑫C++第七讲笔记整理)
- MFC(对话框,孙鑫C++第七讲笔记整理)
- 第七章 MFC建立对话框 windows程序设计王艳平版
- MFC第七课——对话框编程
- 孙鑫:第七讲 对话框
- 第七章对话框
- 第七章(对话框一)
- 孙鑫VC学习笔记:第七讲 对话框
- 孙鑫VC学习笔记:第七讲 对话框
- 【转】第七章 对话框编程(2)
- 黄皮书第七章总结_对话框(咦)
- 第七章:无模式对话框 和 Windows通用对话框类
- 孙鑫-MFC笔记五--对话框
- 孙鑫-MFC笔记五--对话框
- MFC Windows 程序设计 第七章 控件
- MFC对话框
- Maven初识
- 已知中序、后序 序列重构二叉树
- HDU 6070 Dirt Ratio 线段树 二分
- Win7 手动开启 WiFi 共享
- 框架整合____Spring整合hibernate
- mfc 对话框 孙鑫 第七章
- C++迭代子类
- 判断一棵树是否是完全二叉树
- 1.2 解压可迭代对象赋值给多个变量
- 杭电暑期多校集训—Time To Get Up
- 动态规划——Compatible Numbers
- 无向图建立 邻接表(2)
- CentOS7如何设置防火墙
- HDU6077