mfc 对话框 孙鑫 第七章
来源:互联网 发布:淘宝客户关系管理分析 编辑:程序博客网 时间:2024/05/16 02:14
第七章
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(HWNDhwnd/*当前窗口句柄*/,UNIT wCmd /*查找方向*/);// 是获取下一个窗口的句柄 参数:GW_HWNDNEXT GW_HWNDPREV
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)
- mfc 对话框 孙鑫 第七章
- mfc 对话框 孙鑫 第七章
- MFC(对话框,孙鑫C++第七讲笔记整理)
- MFC(对话框,孙鑫C++第七讲笔记整理)
- 第七章 MFC建立对话框 windows程序设计王艳平版
- MFC第七课——对话框编程
- 孙鑫:第七讲 对话框
- 第七章对话框
- 第七章(对话框一)
- 孙鑫VC学习笔记:第七讲 对话框
- 孙鑫VC学习笔记:第七讲 对话框
- 【转】第七章 对话框编程(2)
- 黄皮书第七章总结_对话框(咦)
- 第七章:无模式对话框 和 Windows通用对话框类
- 孙鑫-MFC笔记五--对话框
- 孙鑫-MFC笔记五--对话框
- MFC Windows 程序设计 第七章 控件
- MFC对话框
- 大数据问题记录
- Java中值传递和引用传递的区别
- 事务四大隔离级别(面试常考点)
- Android权限大全
- Ubuntu 16.04安装NVIDIA驱动
- mfc 对话框 孙鑫 第七章
- CodeForces
- HDU6075(签到水题)
- python学习网站
- 细说UGUI中Anchor和Pivot(一)
- UVA11488 字典树模板题
- 使用脚本刷怪的方法
- IntelliJ IDEA Error running Unnamed:Address localhost:1099 is already in use
- YV12,I420,YUV420P的区别与格式转换