MFC CWnd

Posted 千面鬼手大人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC CWnd相关的知识,希望对你有一定的参考价值。

CWnd

//获得窗口句柄

//1

CWnd *pWnd = GetDlgItem(IDC_BIN);

//2

HWND hButton = pWnd->m_hWnd;

//3

HWND hButton = GetDlgItem(IDC_BIN)->GetSafeWnd();

 

//干掉窗口

CWnd *pWnd = GetDlgItem(IDC_BIN);

pWnd->CloseWindow();

pWnd->DestroyWindow();

 

//居中

CWnd *pWnd = GetDlgItem(IDC_BIN);

pWnd->CenterWindow();

 

//获得桌面句柄

CWnd pWnd = GetDesktopWindow();

 

//寻找

CWnd *pWnd = FindWindow(_T("Notepad"), NULL);

if (pWnd != NULL)

{

pWnd->SendMessage(WM_CLOSE, 0, 0);

}

 

 

从窗口指针获取句柄

This->m_hWnd

CWnd::Attach  附加Windows句柄 CWnd 对象。

CWnd::operator HWND

CWnd::GetSafeHwnd() 比如获取不存在控件的句柄

 

从句柄获取窗口指针

CWnd::FromHandle注意不要保存在成员变量中

CWnd::GetDlgItem注意不要保存在成员变量中

CWnd::Attatch

CWnd::Detach

CWnd::SubclassWindow

CWnd::UnsubclassWindow

CWnd::EnableWindow启用或禁用鼠标和键盘输入。

 

绘图

CWnd::BeginPaint  CWnd 用于绘制准备。

CWnd::EndPaint标记绘制的结尾。

CWnd::GetDC检索工作区中的显示上下文。

CWnd::ReleaseDC版本客户端和windows设备上下文,让他们自由供其他应用程序。

 

//剪切板

CWnd::OpenClipboard打开剪贴板。

 

窗口

CWnd::Create创建并初始化子窗口与 CWnd 对象。

CWnd::CreateEx创建Windows中的重叠,弹出或子窗口并将它附加到 CWnd 对象。

CWnd::CloseWindow最小化窗口。

CWnd::DestroyWindow销毁附加的Windows窗口。

 

CWnd::CenterWindow焦点一个窗口相对于其父级。

CWnd::ClientToScreen将给定的坐标点的客户端或在中演示的矩形到屏幕坐标。

 

 

 

CWnd::FindWindow返回窗口的句柄,由其窗口名称和windows选件类标识。

CWnd::FindWindowEx返回窗口的句柄,由其窗口名称和windows选件类标识。

CWnd::FlashWindow一个闪烁窗口。

CWnd::FlashWindowEx在具有其他功能的窗口。

 

CWnd::GetClientRect获取 CWnd 工作区的尺寸。

CWnd::GetDesktopWindow 检索Windows桌面窗口。

CWnd::GetDlgCtrlID如果 CWnd 是子窗口,调用此函数返回其ID值。

CWnd::GetDlgItem从指定的对话框检索与指定的ID的控件。

CWnd::GetDlgItemInt将一个控件中的文本与特定对话框中为整数值。

CWnd::GetDlgItemText检索该声明或文本与控件关联。

CWnd::GetExStyle返回窗口的扩展的样式。

CWnd::GetFocus检索当前具有输入焦点的 CWnd

CWnd::GetFont检索当前字体。

CWnd::GetIcon检索句柄图标。

CWnd::GetActiveWindow检索活动窗口。

CWnd::SetActiveWindow窗口被激活。

CWnd::GetAncestor检索指定窗口的上级窗口对象。

CWnd::GetForegroundWindow返回指向前台窗口(使用用户当前)的顶级窗口。

CWnd::GetLastActivePopup确定 CWnd 拥有的哪个弹出窗口最近活动的。

CWnd::GetNextWindow返回在窗口管理器的下(或先前)窗口列表。

CWnd::GetOwner检索指向 CWnd的所有者。

CWnd::GetParent检索父窗口 CWnd (如果有)。

CWnd::GetParentFrame检索 CWnd 对象的父级框架窗口。

CWnd::GetParentOwner返回指向子窗口的父窗口。

CWnd::GetMenu检索指向所指定的菜单。

CWnd::GetSafeHwnd如果 this 指针是 NULL,返回 m_hWnd NULL

CWnd::GetStyle返回当前窗口样式。

CWnd::GetTopLevelOwner检索顶级窗口。

CWnd::GetTopLevelParent检索窗口的顶部父级。

CWnd::GetTopWindow返回属于 CWnd的第一个子窗口

CWnd::GetWindow返回具有指定关系的窗口到此窗口。

CWnd::GetWindowRect获取 CWnd屏幕坐标。

CWnd::GetWindowRgn检索窗口的windows区域的副本。

CWnd::GetWindowText(如果有),返回窗口文本或章节标题。

CWnd::GetWindowTextLength返回窗口的文本或章节标题的长度。

CWnd::Invalidate无效的整个工作区。

CWnd::InvalidateRect通过添加该矩形无效在给定矩形内的工作区到当前更新区域。

CWnd::InvalidateRgn通过添加该区域无效在给定区域内的工作区到当前更新区域。

CWnd::IsChild指示 CWnd 是否为子窗口或指定的其他windows直接子代。

CWnd::IsIconic确定是否 CWnd 最小化(图标样式)。

CWnd::IsWindowEnabled确定窗口是否为鼠标和键盘输入启用。

CWnd::IsWindowVisible确定窗口是否可见。

CWnd::IsZoomed确定 CWnd 是否被最大化。

CWnd::KillTimer杀害一个系统计时器。

CWnd::MessageBox创建并显示包含一个由应用程序提供的消息和说明的窗口。

CWnd::ModifyStyle修改当前窗口样式。

CWnd::ModifyStyleEx修改窗口的扩展的样式。

CWnd::MoveWindow更改位置和尺寸 CWnd

CWnd::ScreenToClient将给定的屏幕坐标位置或在中演示的矩形到客户端协调。

CWnd::PostMessage在应用程序队列中放置一个消息,然后返回,而不等待窗口处理消息。

CWnd::SetDlgItemInt设置控件的文本设置为表示整数值的字符串。

CWnd::SetDlgItemText将控件的声明或文本在指定的对话框中。

CWnd::SetFocus声明输入焦点。

CWnd::SetFont设置当前字体。

CWnd::SetForegroundWindow将创建windows到前台和激活窗口的线程。

CWnd::SetIcon设置句柄特定图标。

CWnd::SetMe-nu设置菜单到指定的菜单。

CWnd::SetOwner更改 CWnd的所有者。

CWnd::SetParent更改父窗口。

CWnd::SetTimer安装发送 WM_TIMER 信息,在触发的系统计时器。

CWnd::SetWindowPos更改范围,位置和排序子项、弹出窗口以及顶级窗口。

CWnd::SetWindowRgn设置窗口的区域。

CWnd::SetWindowText设置窗口文本或章节标题(如果有)到指定的文本。

CWnd::ShowWindow显示或隐藏窗口。

CWnd::SubclassDlgItem附加 Windows 控件绑定到 CWnd 对象并将CWnd 的消息映射使其路由消息。

CWnd::SubclassWindow附加到窗口到 CWnd 对象并将CWnd的消息映射使其路由消息。

CWnd::UnsubclassWindow分离 CWnd对象的窗口

CWnd::UpdateData从对话框初始化或检索数据。

CWnd::UpdateWindow更新工作区。

CWnd::ValidateRect移除个矩形验证在给定矩形内的工作区从当前更新区域。

 

 

CWinApp

CWinApp::InitInstance应用程序初始化的重写,例如创建windows对象。

CWinApp::ExitInstance清理的重写,当应用程序停止。

CWinApp::LoadCursor加载一种光标资源。

CWinApp::LoadIcon加载一个图标资源。

CWinApp::PreTranslateMessage筛选器消息,并在调度到Windows之前函数 TranslateMessage DispatchMessage

CWinApp::SetRegistryKey在注册表中导致应用程序设置中而不是.INI文件。

CWinApp::GetProfileBinary从应用程序的.INI文件的项检索二进制数据。

CWinApp::GetProfileInt从应用程序的.INI文件的项检索整数。

CWinApp::GetProfileString从应用程序的.INI文件的项检索字符串。

CWinApp::WriteProfileBinary对项的写入二进制数据在应用程序的.INI文件。

CWinApp::WriteProfileInt编写每对项的整数在应用程序的.INI文件。

CWinApp::WriteProfileString写入项的字符串在应用程序的.INI文件。

 

以上是关于MFC CWnd的主要内容,如果未能解决你的问题,请参考以下文章

如何在 MFC 的 CWnd 中显示 CFormView?

如何处理 CWnd 中的 wm_print 消息(使用 MFC)?

MFC浅析 CWnd类虚函数的调用时机缺省实现

《深入浅出MFC》第七章 简单而完整:MFC骨干程序

MFC:使用CTreeCtrl和CToolbar创建一个类(CWnd?)

HWND CWND 转换