VC++ GetSafeHwnd()和GetSafeHandle()】的更多相关文章

GetSafeHwnd()和GetSafeHandle()的主要区别: 使用者不同: (1)窗体使用:GetSafeHwnd()用于获取窗体的安全句柄(即HWND),有了HWND我们就可以方便的对HWND指向的窗体进行所需的操作了: (2)GDI对象使用:GetSafeHandle(),用于获取GDI对象的句柄. 注意:在使用指针时强烈建议这么做: // pSomeWnd 为一个窗体的指针 if ( NULL != pSomeWnd && NULL != pSomeWnd->GetS…
GetSafeHwnd()和GetSafeHandle()的主要区别: 1.使用者不同: (1)窗体使用: GetSafeHwnd()用于获取窗体的安全句柄(即HWND),有了HWND我们就可以方便的对HWND指向的窗体进行所需的操作了: (2)GDI对象使用: GetSafeHandle(),用于获取GDI对象的句柄. 注意:在使用指针时强烈建议这么做: // pSomeWnd 为一个窗体的指针 if ( NULL != pSomeWnd && NULL != pSomeWnd->…
GetSafeHwnd HWND GetSafeHwnd() const; 当我们想得到一个窗口对象(CWnd的派生对象)指针的句柄(HWND)时,最安全的方法是使用GetSafeHwnd()函数. 为什么呢?通过下面的例子来说明其理由:   CWnd* pWnd = FindWindow(_("ExploreWClass"), NULL); //希望找到资源管理器 HWND hWnd = pWnd->m_hwnd;    //得到它的HWND   这样的代码当开始得到的pWnd…
windows句柄 这篇文章是我在学习的时候为了以后忘记所以把当时的理解记录下来.一定有不正确的地方,所以仅供参考. 我们初学VC++是经常遇到一些我们在标准C++中没有的数据类型,如句柄,消息.  句柄:我们先看看Winnt.h有关句柄的定义. #ifdef   STRICT     typedef   void   *HANDLE;     #define   DECLARE_HANDLE(name)   struct   name##__   {   int   unused;   }; …
(1) 如何通过代码获得应用程序主窗口的 指针?主窗口的 指针保存在CWinThread::m_pMainWnd中,调用AfxGetMainWnd实现.AfxGetMainWnd() ->ShowWindow(SW_SHOWMAXMIZED)//使程序最大化. (2) 确定应用程序的路径Use GetModuleFileName 获得应用程序的路径,然后去掉可执行文件名.Example:TCHARexeFullPath[MAX_PATH] // MAX_PATH在API中定义了吧,好象是128G…
win32直接操作的是句柄HANDLE,每个句柄就对应windows窗口,而vc对HANDLE进行类封装,间接操作的都是HANDLE,现在句柄只是类的一个成员变量. 从句柄到指针 CWnd* pWnd=CWnd::FromHandle(hWnd); //a temporary CWnd object is created //and attached. pWnd->Attach(hWnd); //Attaches a Windows window to a CWnd object 从指针到句柄…
一.引用 当用户需要同时对文当的不同部分进行编辑时,常常会用到切分窗口;这些窗口可以都是相同的视,或者一个窗口为列表视,而另一个为树型视图.应用程序框架有多种方式来表示多视图,切分窗口是其中的方式之一. 切分窗口分为动态切分窗口和静态切分窗口,它们都是由CsplitterWnd类(MFC类库)来实现的,在这两种表示方式中,创建同一视图类的对象是比较容易的(Cview),而在同一应用程序使用两个或更多的视图类(如:ClistView.CtreeView等),相对来说则要困难一些. 动态切分功能多应…
原文网址:http://zhoumf1214.blog.163.com/blog/static/5241940200910265532959/ 最近在用VC2008做开发,后来由于要用到消息的发送,而且需要自定义消息,在网上查找了很多例子,根据他们所说的,虽然大致都差不多,但是基本上没有一个能完全做出来的.要知道VC编程有一个小地方出错,都可能是个让你头晕脑胀的事情.经过我后来不但探索,经过改进之后,一点错误都没有,现在贴出来供大家参考. 1. 先来个基本知识介绍 SendMessage的基本结…
ID--HANDLE--HWND三者之间的互相转换id->句柄        hWnd = ::GetDlgItem(hParentWnd,id);id->指针        CWnd::GetDlgItem();句柄->id        id = GetWindowLong(hWnd,GWL_ID);句柄->指针    CWnd *pWnd=CWnd::FromHandle(hWnd); 如:CEpdscDlg* pdlg=(CEpdscDlg*)CWnd::FromHandl…
窗口是屏幕上的一个矩形区域.窗口分为3种:重叠窗口.弹出窗口和子窗口.每个窗口都有由系统绘制的“非客户区”和应用程序绘制的“客户区”.在 MFC 中,CWnd 类为各种窗口提供了基类. 1 通过 HWND 获得 CWnd 指针 通过 HWND 获得 Cwnd 指针可以调用 Cwnd::FromHandle 函数. 1 2 3 4 5 6 7 8 void CDemoDlg::OnButton1() {     HWND hWnd = GetSafeHwnd();  //获得当前窗口的句柄    …