摘要:事件内核对象1.综述线程同步过程中,首先需要定义一个同步对象,同步对象一般具有两种状态:标志的,和非标志的。线程根据是否已经完成操作将同步对象设置为标志的和未标志的。而等待函数的功能是专门用于等待同步对象状态改变。一个线程调用等待函数后执行会暂停。直到同步对象的状态改变后,等待函数才会返回,线程才会继续执行。等待函数分为“单对象”等待函数和多对象等待函数。经常用到的同步对象包括,事件(Event),互斥(Mutex),信号量(Semaphore),可等待计时器(Waitabletimer)。一、事件对象事件对象就是上面所说的能够标志的对象。通过这个对象可以操作现成的执行顺序。事件的创建HAND
阅读全文
摘要:键盘谁获得了了焦点由于程序可能有多个窗体,问题如果如何判断哪一个窗体获取了键盘输入,这是回想MSG每一个时间所得到的信息中都会得到一个hwnd结构,(不多想线程队列事情只针对每一个hwnd)。然后由信息回圈函数DispatchMessage函数向视窗发送信息。每一个窗体的信息处理函数可以通过拦截WM_SETFOCUS 和 WM_KILLFOCUS 信息来判定它的视窗什么时候获得了焦点。WM_SETFOCUS指示正在得到输入焦点,WM_KILLFOUCS表示视窗正在失去输入焦点。序列和同步一般系统中应该存在一个缓存的消息队列,这个和每一个窗体的消息队列并不相同,对于每一个消息的传送,应该是先到系
阅读全文
摘要:字体显示章节宗旨:使用Windows 提供的功能来取得关於程式执行环境的资讯。1. WM_PAINT 消息大多数Windows 程式在WinMain 中进入讯息回圈之前的初始化期间都要呼叫函式UpdateWindow。Windows 利用这个机会给视窗讯息处理程式发送第一个WM_PAINT 讯息。这个讯息通知视窗讯息处理程式:必须绘制显示区域。此後,视窗讯息处理程式应在任何时刻都准备好处理其他WM_PAINT 讯息,必要的话,甚至重新绘制视窗的整个显示区域。在发生下面几种事件之一时,视窗讯息处理程式会接收到一个WM_PAINT 讯息:在使用者移动视窗或显示视窗时,视窗中先前被隐藏的区域重新可见
阅读全文
摘要:一. 先要定义自己将要使用WNDCALSS 的基本样式。typedef struct tagWNDCLASS { UINT style; WNDPROC lpfnWndProc; int cbClsExtra; int cbWndExtra; HINSTANCE hInstance; HICON hIcon; HCURSOR hCursor; HBRUSH hbrBackground; LPCTSTR lpszMenuName; LPCTSTR lpszClassName;} WNDCLASS, *PWNDCLASS;参数按顺序解释UINT style : 字面意思可以设置我们将要建立窗体的的
阅读全文