GetSafeHwnd()】的更多相关文章

GetSafeHwnd()和GetSafeHandle()的主要区别: 1.使用者不同: (1)窗体使用: GetSafeHwnd()用于获取窗体的安全句柄(即HWND),有了HWND我们就可以方便的对HWND指向的窗体进行所需的操作了: (2)GDI对象使用: GetSafeHandle(),用于获取GDI对象的句柄. 注意:在使用指针时强烈建议这么做: // pSomeWnd 为一个窗体的指针 if ( NULL != pSomeWnd && NULL != pSomeWnd->…
当我们想得到一个窗口对象(CWnd的派生对象)指针的句柄(HWND)时,最安全的方法是使用GetSafeHwnd()函数,通过下面的例子来看其理由: CWnd *pwnd = FindWindow(“ExploreWClass”,NULL); //希望找到资源管理器   HWND hwnd = pwnd->m_hwnd; //得到它的HWND   这样的代码当开始得到的pwnd为空的时候就会出现一个“General protection error”,并关闭应用程序,因为一般不能对一个NULL指…
当我们想得到一个窗口对象(CWnd的派生对象)指针的句柄(HWND)时,最安全的方法是使用GetSafeHwnd()函数,通过下面的例子来看其理由: CWnd *pwnd = FindWindow(“ExploreWClass”,NULL); //希望找到资源管理器 HWND hwnd = pwnd->m_hwnd; //得到它的HWND 这样的代码当开始得到的pwnd为空的时候就会出现一个“General protection error”,并关闭应用程序,因为一般不能对一个NULL指针访问其…
GetSafeHwnd()和GetSafeHandle()的主要区别: 使用者不同: (1)窗体使用:GetSafeHwnd()用于获取窗体的安全句柄(即HWND),有了HWND我们就可以方便的对HWND指向的窗体进行所需的操作了: (2)GDI对象使用:GetSafeHandle(),用于获取GDI对象的句柄. 注意:在使用指针时强烈建议这么做: // pSomeWnd 为一个窗体的指针 if ( NULL != pSomeWnd && NULL != pSomeWnd->GetS…
GetSafeHwnd HWND GetSafeHwnd() const; 当我们想得到一个窗口对象(CWnd的派生对象)指针的句柄(HWND)时,最安全的方法是使用GetSafeHwnd()函数. 为什么呢?通过下面的例子来说明其理由:   CWnd* pWnd = FindWindow(_("ExploreWClass"), NULL); //希望找到资源管理器 HWND hWnd = pWnd->m_hwnd;    //得到它的HWND   这样的代码当开始得到的pWnd…
在看MFC源码的过程中,有个地方一直不解,看如下代码 BOOL CFrameWnd::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, LPCTSTR lpszMenuName, DWORD dwExStyle, CCreateContext* pContext) { HMENU hMenu = NULL; if (lpszMenuNam…
HWND是Windows系统中的窗口句柄,CWnd是MFC中的窗体类,两者的所属不同.CWnd对HWND进行了封装类,更加高级也更加简化. HWND是Window内核处理对象,系统通过HWND进行操作,而我们则更多的通过CWnd提供的函数来间接操作HWND. HWND是CWnd类的组成部分,CWnd对象的成员中有HWND对象(m_hWnd). 以下三种都可获取控件句柄: HWND hwnd = GetDlgItem(控件的ID)->GetSafeHwnd();   //获取句柄,GetSafeH…
CreateCompatibleBitmap The CreateCompatibleBitmap function creates a bitmap compatible with the device that is associated with the specified device context.  该函数创建与指定的设备环境相关的设备兼容的位图. HBITMAP CreateCompatibleBitmap( HDC hdc, // handle to DC int nWidth…
# 一: # typedef BOOL (WINAPI *lpfnSetLayeredWindowAttributes)(HWND hWnd, COLORREF crKey, BYTE bAlpha, DWORD dwFlags); lpfnSetLayeredWindowAttributes SetLayeredWindowAttributes; //设置成边缘透明 COLORREF maskColor = RGB(240, 240, 240); HMODULE hUser32 = GetMo…
#ifndef __HSS_AUTO_REVISE_AVI_FRAMERATE_HSS__ #define __HSS_AUTO_REVISE_AVI_FRAMERATE_HSS__ /**************************************************************************************************\ * 2012-05-31 关于avi的一些功能. (1) 由于丢帧等问题,导致录像长度不对,根据录像时间和帧数,修…
1.theApp extern声明之后不可以使用?可以用,只是需要extern之后的类名和类名称写对,不要犯得低级错误.2.怎样取出列表控件中的第某列的值?GetItemText(); CListCtrl的使用:http://www.cnblogs.com/sura/archive/2012/05/15/2501132.html3.图标CPaintDC dc(this);da.DrawIcon();画图表WM_PAINT 和与之对应的OnPaint()函数,可以放在启动时设置4.光标 HotSp…
CString setSavePath() { CString strPath = _T(""); HRESULT hr; LPITEMIDLIST pItemList; BROWSEINFO browseinfo; TCHAR path[MAX_PATH]; hr = ::CoInitializeEx(NULL, COINIT_APARTMENTTHREADED); if (FAILED(hr)) { TRACE("CoInitEx failed: %x\n",…
想在对话框里,显示几个字是很简单的,只要用静态文本的输出就可以了.然而有时候我们需要显示特效的字,我们希望显示的文字就像Word里的艺术字一样,看起来美观.这时我们可以重写CStatic类.用DrawItem方法重绘.     首先,我们想要激活CStatic控件的自绘属性,这样DrawItem才能有效.我们发现用激活CButton自绘属性的方法那样来激活 CStatic控件的自绘属性是不行的.他们的激活方式是不一样的.    不用说先新建一个MFC类叫CCustomStatic类并继承于CSt…
Copyright © 1900-2016, NORYES, All Rights Reserved. http://www.cnblogs.com/noryes/ 欢迎转载,请保留此版权声明. --------------------------------------------------------------------------------------- 转载自 http://www.cnblogs.com/cy163/archive/2006/11/02/547428.html…
Windows多线程多任务设计初步 [前言:]当前流行的Windows操作系统,它能同时运行几个程序(独立运行的程序又称之为进程),对于同一个程序,它又可以分成若干个独立的执行流,我们称之为线程,线程提供了多任务处理的能力.用进程和线程的观点来研究软件是当今普遍采用的方法,进程和线程的概念的出现,对提高软件的并行性有着重要的意义.现在的应用软件无一不是多线程多任务处理,单线城的软件是不可想象的.因此掌握多线程多任务设计方法对每个程序员都是必需要掌握的.本文针对多线程技术在应用中经常遇到的问题,如…
这是一个精练的服务端套接字类,类名.函数名和变量名均采用匈牙利命名法.小写的x代表我的姓氏首字母(谢欣伦),个人习惯而已,如有雷同,纯属巧合. CxServerSocket的使用如下(以某个叫做CSomeClass的类的相关代码为例): 一.声明服务端套接字对象实例. CxServerSocket m_ssLocalHost; 二.设置服务端套接字事件通知方式.消息响应或回调函数,任选其一.服务端套接字事件有:接收到客户端的连接请求. void CSomeClass::PreSubclassWi…
int select(         int nfds,            //忽略         fd_ser* readfds,    //指向一个套接字集合,用来检测其可读性         fd_set* writefds,   // 指向一个套接字结合,用来检测其可写性         fd_ser* exceptfds, //指向一个套接字集合,用来检测错误         const struct timeval * timeout   //指定此函数等待的最长时间,如果为…
前言 DirectShow是微软公司提供的一套在Windows平台上进行流媒体处理的开发包,与DirectX开发包一起发布.DirectShow为多媒体流的捕捉和回放提供了强有力的支持.用DirectShow开发应用程序,我们可以很方便地从支持WDM驱动模型的采集卡上捕获数据,并且进行相应的后期处理乃至存储到文件中. DirectShow是基于COM的,为了编写DirectShow应用程序,需要了解COM客户程序编写的基础知识.DirectShow提供了大量的接口,但在编程中发现还是不够方便,如…
这是一个精练的无连接套接字类,类名.函数名和变量名均采用匈牙利命名法.小写的x代表我的姓氏首字母(谢欣伦),个人习惯而已,如有雷同,纯属巧合. CxUdpSocket的使用如下(以某个叫做CSomeClass的类的相关代码为例): 一.声明无连接套接字对象实例. CxUdpSocket m_usRemoteHost; 二.设置无连接套接字事件通知方式.消息响应或回调函数,任选其一.无连接套接字事件有:缓冲区有数据可接收. void CSomeClass::PreSubclassWindow()…
这是一个精练的串口类,类名.函数名和变量名均采用匈牙利命名法.小写的x代表我的姓氏首字母(谢欣伦),个人习惯而已,如有雷同,纯属巧合. 串口类CxSerial的使用如下(以某个叫做CSomeClass的类的相关代码为例): 一.声明串口对象实例. CxSerial m_xComm; 二.打开串口. 三.配置串口(可选).通常配置波特率.奇偶校验位.停止位等. 四.设置串口(可选).通常设置缓冲区大小.接收阈值等. 五.设置串口接收缓冲区事件通知方式.消息响应或回调函数,任选其一. 六.侦听串口.…
这是一个精练的客户端套接字类,类名.函数名和变量名均采用匈牙利命名法.小写的x代表我的姓氏首字母(谢欣伦),个人习惯而已,如有雷同,纯属巧合. CxClientSocket的使用如下(以某个叫做CSomeClass的类的相关代码为例): 一.声明客户端套接字对象实例. CxClientSocket m_csRemoteHost; 二.设置客户端套接字事件通知方式.消息响应或回调函数,任选其一.客户端套接字事件有:缓冲区有数据可读取.与远程主机的连接被断开. void CSomeClass::Pr…
CEF版本是Branch 2171 开发环境是VS2012 查看一下libcef_dll_wrapper工程属性,确定Code Generation 选择MTD(Debug) 或者MT(Release),这个设置是编译出的静态库是多线程静态链接,在其他工程中使用时,使用者的工程属性也要对应设置MTD或者MT,让二者保持一致,这样保证不会链接出错. 然后我们选择ALL_BUILD后Build,如果不出意外应该会报编译错误: 然后上网搜了一下,是编译器把警告当成错误了 参考我之前博客可以解决:htt…
一,ALT+TAB切换时小图标的添加 Dlg类中添加变量 protected: HICON m_hIcon; #define IDR_MAINFRAME 128 ICON IDR_MAINFRAME,IDC_STATIC,,,, // Icon with lowest ID value placed first to ensure application icon // remains consistent on all systems. IDR_MAINFRAME ICON DISCARDAB…
树形控件可以用于树形的结构,其中有一个根接点(Root)然后下面有许多子结点,而每个子结点上有允许有一个或多个或没有子结点.MFC中使用CTreeCtrl类来封装树形控件的各种操作.通过调用BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );创建一个窗口,dwStyle中可以使用以下一些树形控件的专用风格: TVS_HASLINES 在父/子结点之间绘制连线TVS_LINESATROOT 在根/子结…
一.OCX控件开发常见的问题 1.OCX控件在IE8浏览器下不能使用问题 原因:IE8会拦截OCX控件的方法. 解决方法:在OCX控件开发时加入安全接口. (1)在有"Crtl"字样的头文件".h"中加入如下代码: #include <objsafe.h> #include <objsafe.h> 并在头文件类的内部加入如下安全接口,代码如下: //ISafeObject DECLARE_INTERFACE_MAP() BEGIN_INTER…
获取窗口句柄 FindWindow               根据窗口名获取 GetSafehWnd                取你程序所在窗口类的句柄 GetActiveWindow          取当前活动窗口句柄 AfxGetMainWnd            取主窗口句柄 GetForegroundWindow   取前台窗口句柄 窗口对象和CWnd对象,Attach和Detach函数 CWnd对象实际上并没有把整个Windows对象都包装在其中,它只是有一个窗口句柄.(在M…
<转>MFC注册系统/全局热键. 1. BEGIN_MESSAGE_MAP(CRS232TESTDlg, CDialog) //{{AFX_MSG_MAP(CRS232TESTDlg) ON_MESSAGE(WM_HOTKEY,OnHotKey) //}}AFX_MSG_MAP 2.在BOOL CRS232TESTDlg::OnInitDialog()中添加 ::RegisterHotKey(GetSafeHwnd(),WM_HOTKEY,MOD_ALT|MOD_CONTROL,VK_F12)…
WIN 下的超动态菜单(一)介绍 WIN 下的超动态菜单(二)用法 WIN 下的超动态菜单(三)代码 作者:黄山松,发表于博客园:http://www.cnblogs.com/tomview/         WINDOWS 编程中,通常弹出菜单的方法是在资源文件中建立菜单资源,然后在程序中装载资源显示菜单:另外可以用动态创建菜单的方法,但是逐次调用创建菜单添加菜单项的函数很麻烦.本文给出一个封装的自动创建动态菜单的类.         此类 auto_dynamenu 中只有一个静态函数 dy…
WIN 下的超动态菜单(一)简介 WIN 下的超动态菜单(二)用法 WIN 下的超动态菜单(三)代码 作者:黄山松,发表于博客园:http://www.cnblogs.com/tomview/         auto_dynamenu 是一个动态生成WINDOWS菜单的c++封装库,设计思路是要尽量简化动态菜单的生成代码,在程序界面任何地方想要显示菜单(特别是右键菜单)的时候,可以方便生成菜单,特别可以根据程序当时的内部数据,内部状态来生成不同的动态菜单.         auto_dynam…
CString FicowGetDirectory() { BROWSEINFO bi; char name[MAX_PATH]; ZeroMemory(&bi, sizeof(BROWSEINFO)); bi.hwndOwner = AfxGetMainWnd()->GetSafeHwnd(); bi.pszDisplayName = name; bi.lpszTitle = "选择文件夹目录"; bi.ulFlags = BIF_RETURNFSANCESTORS;…