ISWindowUnicode
摘要:IswindowUnicode函数功能:该函数确定指定的窗口是否是一个本地Unicode窗口。函数原型: BOOL IswindowUnicode(HWND hwnd);参数:hWnd:被测试窗口的句柄。返回值:如果窗口是一个本地Unicode窗口,返回值为非零;如果窗口不是一个本地Unicode窗口,返回值为零,同时说明窗口是一个ANSI窗口。备注;一个窗口的字符集是由函数RegosterClass决定的。如果窗口类是以ANSI版的RegisterClass ( RegjsterClassA)注册的,则窗口字符集是ANSI的;如果窗口类是以Unicode版的Registerclass( Re
阅读全文
Rich Edit 控件 SDK 参考手册
摘要:摘要: 本文对Rich Edit控件底层消息机制进行了讲解,以期读者对Windows平台下的Rich Edit控件有一个更深入的认识,同时对于使用Win32 SDK进行开发的人员具有一定参考价值。因为文章的初衷是引领VB程序员通过Win32 API调用来扩展VB下的Rich Edit控件的功能,所以对于每个消息的详细说明和注意事项未作过多说明,感兴趣的朋友可以参考Visual Studio下的MSDN Library。关键字:Rich Edit Control、RTF、SDK、MSDN。一、引言Rich Edit控件是一个可用于输入、编辑、格式化、打印和保存文本的窗体。这些文本可以设置字符和段
阅读全文
UpdateWindow api介绍
摘要:只将窗口显示区域标记为无效以产生WM_PAINT消息,对于某些应用程序来说也许不是完全令人满意的选择。在呼叫InvalidateRect之后,Windows将WM_PAINT消息放入消息队列中,最后由窗口消息处理程序处理它。然而,Windows将WM_PAINT消息当成低优先级消息,如果系统有许多其它的动作正在发生,那么也许会让您等待一会儿工夫。这时,当对话框消失时,将会出现一些空白的「洞」,程序仍然等待更新它的窗口。如果您希望立即更新无效区域,可以在呼叫InvalidateRect之后呼叫UpdateWindow:UpdateWindow (hwnd) ;UpdateWindow (hwnd
阅读全文
MapWindowsPoints函数使用
摘要:MapWindowPoints的百度解释:函数功能:该函数把相对于一个窗口的坐标空间的一组点映射成相对于另一窗口的坐标空 的一组点。 函数原型:int MapWindowPoints(HWND hWndFrom, HWND hWndTo,LPPOINT lpPoints, UINT cPoints); 参数: hWndfrom:转换点所在窗口的句柄,如果此参数为NULL或HWND_DESETOP则假定这些点在屏幕坐标上。 hWndTo:转换到的窗口的句柄,如果此参数为NULL或HWND_DESKTOP,这些点被转换为屏幕坐标。 lpPoints:指向POINT结构数组的指针,此结构数...
阅读全文
posted @
2013-04-01 10:57
归海一刀
阅读(283)
推荐(0)
窗口的位置
摘要:把你的Windows任务栏移到屏幕的上方,你就会发现有多少程序会在启动的时候,把自己的标题栏移到任务栏的下方,以至于不能用鼠标移动它,甚至有的窗口还没有系统菜单(Atl + 空格 打开系统菜单,可以移动窗口)。所以,这篇文章我们来讨论一下窗口的位置,以避免这样的事情发生。如果让你写个程序,要把窗口的位置移动到桌面的左上角,我想很多人都会写出如下的代码:MoveWindow(hWnd,0,0,?,?);后面?的位置如何填写呢?很多人就会找到GetWindowRect函数来得到当前窗口的宽度。当然,这么写也不是不可以。我觉得更好的方式是使用SetWindowPos函数。MoveWindow函数有个
阅读全文
windows消息大全
摘要:消息,就是指Windows发出的一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息。例如,对于单击鼠标所产生的消息来说,这个记录中包含了单击鼠标时的坐标。这个记录类型叫做TMsg,它在Windows单元中是这样声明的:typeTMsg = packed recordhwnd: HWND; / /窗口句柄message: UINT; / /消息常量标识符wParam: WPARAM ; // 32位消息的特定附加信息lParam: LPAR
阅读全文
改变窗口的位置 (转载)
摘要:目的还是为了大家进一步熟悉Windows的窗口实现消息的机制,也使大家了解多一点的Windows API 函数,从而利于日后的实际编程。平常我们都是用鼠标拖着窗口来改变窗口的,今天我们来点新鲜的,通过单击鼠标来使窗口改变位置。从前面的知识中,我们知道,窗口的初始位置是在CreateWindow函数中设定的,Windows既然可以让用户通过鼠标拖来改变窗口位置,那么肯定就有函数是专门用来改变窗口位置的。是的,的确有这样的函数,常用的有两个,它们是etWindowPos和MoveWindow。两个函数的详细情况如下:SetWindowPos 函数功能:该函数改变一个子窗口,弹出式窗口式顶层窗口的.
阅读全文
posted @
2013-03-13 14:26
归海一刀
阅读(989)
推荐(0)
setwindowpos
摘要:转自于:http://hi.baidu.com/max_new/blog/item/e2bbe607b1f127c57b8947c0.html许多软件,特别是占桌面面积不是很大的软件,通常都提供了一个常居顶端的功能(可能有的软件不是这么叫法,但作用是相同的),它的作用是保持窗口一直在其他窗口的上面,可以省去频繁切换窗口的动作。如果你想这么做,有一个API可以实现: SetWindowPos,声明是这样的: Private Declare Function SetWindowPos Lib "user32" Alias "SetWindowPos" (By
阅读全文
wm_size
摘要:在窗口大小发生改变时,系统往窗口发送WM_SIZE消息,WPARAM指出窗口新的状态,LPARAM给出窗口新的大小。窗口的状态有三种:SIZE_MINIMIZE,SIZE_MAXIMIZE,SIZE_RESTORED。系统根据当前窗口的状态,在产生WM_SIZE消息时指定不同的WPARAM。然而,系统如何知道窗口当前的状态。很显然,系统必须用一些内存保存窗口当前的状态。保存在哪里呢? 用spy++观察一个窗口,很快就可以发现在窗口最大化、最小化、正常状态下,style的值是不同的。在最小化时,会多出WS_MINIMIZE,在最大化时会多出WS_MAXIMIZE,在正常状态下则没有这两个值。所以
阅读全文
WM_MOUSEWHEEL消息
摘要:使用WM_MOUSEWHEEL 需要把CWnd设定为Focus ON_WM_MOUSEWHEEL( ) CWnd::OnMouseWheel afx_msg BOOL OnMouseWheel( UINT nFlags, short zDelta, CPoint pt ); 返回值:如果允许鼠标轮滚动,则返回非零值;否则返回0。 参数: nFlags 指明是否按下了虚拟键。这个参数可以是下列值的组合: · MK_CONTROL 如果CTRL键被按下,则设置此位。 · MK_LBUTTON 如果鼠标左键被按下,则设置此位。 · MK_MBUTTON 如果鼠标中键被按
阅读全文
WM_ACTIVE的消息
摘要:WM_ACTIVE的消息参数wParam的低阶word指示窗口是被激活还是失去激活:WA_ACTIVE,被鼠标点击以外的方法激活;WA_CLICKACTIVE,由鼠标点击激活;WA_INACTIVE,失去激活;wParam的高阶word指示窗口是否被最小化;非零表示最小化;lPararm表示将激活的窗口句柄(WA_INACTIVE),或者将失去激活的窗口句柄(WA_CLICKACTIVE、WA_ACTIVE)。在标准Windows消息处理的章节中,曾指出处理WM_ACTIVE消息时,先要调用一个函数_AfxHandleActivate,此函数的原型如下: static void AFXAPI.
阅读全文
WM_MOUSELEAVE和WM_MOUSEHOVER使用
摘要:默认情况下,窗口是不响应 WM_MOUSELEAVE 和 WM_MOUSEHOVER 消息的,所以要使用 _TrackMouseEvent 函数来激活这两个消息。调用这个函数后,当鼠标在指定窗口上停留超过一定时间或离开窗口后,该函数会 Post 这两个消息到指定窗口。使用方法:1. 在对话框类中定义一个变量来标识是否追踪当前鼠标状态,之所以要这样定义是要避免鼠标已经在窗体之上时,一移动鼠标就不断重复产生 WM_MOUSEHOVER 。 BOOL _bMouseTrack=TRUE ;2. 在 OnMouseMove 中调用 _TrackMouseEvent 函数 if (_bMouseTrac
阅读全文
posted @
2013-03-11 16:08
归海一刀
阅读(289)
推荐(0)
WM_CLOSE WM_QUIT WM_DESTROY 三者的区别
摘要:WM_CLOSE WM_QUIT WM_DESTROY 三者的区别 收藏 一直以来,我都不是很明白这三个的区别,今天看了一写文章,才明白过来,一下是转载的文字:有三个消息看起来差不多,都是处理关闭的事情的。它们是WM_DESTROY,WM_CLOSE,和WM_QUIT。它们的确很相似,但你需要知道它们之间的不同!一个窗口或者应用程序应该被关闭时发出WM_CLOSE消息,当接收到WM_CLOSE消息时,如果你愿意,向用户提出是否真的退出。你知道让用户作确认或有错误出现或有什么应该注意的事情发生的时候,往往弹出一个消息框。插播消息框int MessageBox(HWND hWnd, // hand
阅读全文
posted @
2013-03-11 16:04
归海一刀
阅读(422)
推荐(0)