摘要:
MapDialogRect,转换对话框坐标为像素坐标 功能:该函数把指定的对话框单位映射成屏幕单位(像素)。函数MapDialogRect用变换坐标替换指定的RECT结构中的坐标,这就使得该结构可以用来创建对话框或定位对话框内的控制。 函数原型:BOOL MapDialogRect(HWND hDlg,LPRECT IpRect); 参数: hDlg:标识对话框。MapDialogRec... 阅读全文
摘要:
#include<iostream>#include<Windows.h>using namespace std;DWORD WINAPI ThreadProc1(LPVOID lpParameter);DWORD WINAPI ThreadProc2(LPVOID lpParameter);CRITICAL_SECTION CriticalSection;int tick... 阅读全文
摘要:
#include<iostream>#include<Windows.h>using namespace std;DWORD WINAPI ThreadProc1(LPVOID lpParameter);DWORD WINAPI ThreadProc2(LPVOID lpParameter);HANDLE hEvent;int tickets = 100;int main(... 阅读全文
摘要:
#include <iostream>#include <Windows.h>using namespace std;int tickets = 100;HANDLE hMutex;DWORD WINAPI ThreadProc1(LPVOID lpParameter);DWORD WINAPI ThreadProc2(LPVOID lpParameter);int mai... 阅读全文
摘要:
#include <iostream>#include <Windows.h>using namespace std;int main(){ HANDLE hMutex = CreateMutex(NULL,TRUE,L"OnlyInstance"); if (hMutex) { if (ERROR_ALREADY_EXISTS == GetLastError()) { c... 阅读全文
摘要:
#include <iostream>#include <Windows.h>using namespace std;DWORD WINAPI ThreadProc(LPVOID lpParameter);int main(){ DWORD ThreadID; HANDLE hThread = CreateThread(NULL,0,ThreadProc,NULL,0,&a... 阅读全文
摘要:
对于WIN32控制台程序:如果main线程在其一个时间片内便已经运行完成,那么,所有的资源都会被系统释放,子线程便不能得到时间片运行。所以,如果main的运行时间不足够长的话,要在main后面加上sleep,以保证子线程能够获取时间片运行。 阅读全文
摘要:
当使用CreateProcess调用时,系统将创建一个进程和一个主线程。CreateThread将在主线程的基础上创建一个新线程,大致做如下步骤: 1在内核对象中分配一个线程标识/句柄,可供管理,由CreateThread返回 2把线程退出码置为STILL_ACTIVE,把线程挂起计数置1 3分配context结构 4分配两页的物理存储以准备栈,保护页设置为PAGE_READWRITE,第... 阅读全文
摘要:
五、MFC对多线程编程的支持 MFC中有两类线程,分别称之为工作者线程和用户界面线程。二者的主要区别在于工作者线程没有消息循环,而用户界面线程有自己的消息队列和消息循环。 工作者线程没有消息机制,通常用来执行后台计算和维护任务,如冗长的计算过程,打印机的后台打印等。用户界面线程一般用于处理独立于其他线程执行之外的用户输入,响应用户及系统所产生的事件和消息等。但对于Win32的API编程而言,这... 阅读全文
摘要:
好多网友会有这样的疑问,WNDCLASSA结构体中遇到的HINSTANCE到底是什么类型,它是否是某种基本数据类型呢?下面通过我的阐述你就会有一个准确的把握了!在WINDEF.H中有这样的语句DECLARE_HANDLE(HINSTANCE);,在WINNT.H中有这样的内容#ifdef STRICTtypedef void *HANDLE;#define DECLARE_HANDLE(name)... 阅读全文