通过Remote Spy我们常能见到类名为Worker的窗口(如下图所示),那么工作窗口类是什么呢?
其实工作窗口与常规窗口十分相似,只不过我们无需调用RegisterClass()函数注册窗口类,并把我们传入的p参数作为窗口的额外数据保存了起来。想来微软青睐这类不可见的窗口也就是为了简化步骤,提高效率而已。
我们先来看看如何创建工作窗口的。在头文件miscsvcs.h内有CreateWorkerWindow()函数的原型声明:
// *************************************************************************
// CreateWorkerWindow
//
// Purpose:
// Helper function to create a worker window
//
// Parameters:
// pwszClass Class name (NULL preferred, unless you need a unique class)
// pfnWndProc Window proc for worker window
// hwndParent Parent
// dwExStyle WS_EX_* styles
// dwFlags WS_* styles
// pwszTitle Window title
// hmenu Menu or child ID
// p Comes through in lParam of CREATESTRUCT during WM_CREATE processing
//
// Returns:
// HWND of worker window
//
// Side Effects:
// none
// *************************************************************************
HWND CreateWorkerWindow(TCHAR *pwszClass, WNDPROC pfnWndProc, HWND hwndParent,
DWORD dwExStyle, DWORD dwFlags, TCHAR *pwszTitle,
HMENU hmenu, void * p);
下面给出CreateWorkerWindow()函数的实现:

本文介绍了工作窗口类(Worker Window)的概念,它与常规窗口类似但无需注册类,通常用于简化步骤提高效率。通过CreateWorkerWindow()函数创建工作窗口,该函数在miscsvcs.h中声明并实现。工作窗口的创建过程包括定义结构体、临时窗口过程以及注册和创建窗口。文章详细展示了CreateWorkerWindow()函数的实现细节。
9102

被折叠的 条评论
为什么被折叠?



