HWND CreateSearchControl( _In_ UINT CommandID ) { PEDIT_CONTEXT context; context = (PEDIT_CONTEXT)PhAllocate(sizeof(EDIT_CONTEXT)); memset(context, 0, sizeof(EDIT_CONTEXT)); context->CommandID = CommandID; // Create the SearchBox window. context->WindowHandle = CreateWindowEx( WS_EX_CLIENTEDGE, WC_EDIT, NULL, WS_CHILD | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | ES_LEFT | ES_AUTOHSCROLL | WS_VISIBLE, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, RebarHandle, NULL, NULL, NULL ); // TODO: Why does the Edit control require WS_VISIBLE to be correctly initialized under some conditions? // For now just call ShowWindow with SW_HIDE instead of removing the WS_VISIBLE style passed to CreateWindowEx. if (SearchBoxDisplayMode == SEARCHBOX_DISPLAY_MODE_HIDEINACTIVE) { ShowWindow(SearchboxHandle, SW_HIDE); } //NcAreaInitializeTheme(context); NcAreaInitializeImageList(context); // Set initial text Edit_SetCueBannerText(context->WindowHandle, L"Search Processes (Ctrl+K)"); // Set our window context data. SetProp(context->WindowHandle, L"EditSubclassContext", (HANDLE)context); // Subclass the Edit control window procedure. SetWindowSubclass(context->WindowHandle, NcAreaWndSubclassProc, 0, (ULONG_PTR)context); // Initialize the theme parameters. SendMessage(context->WindowHandle, WM_THEMECHANGED, 0, 0); return context->WindowHandle; }
HWND CreateSearchControl( _In_ UINT CommandID ) { PEDIT_CONTEXT context; context = (PEDIT_CONTEXT)PhAllocate(sizeof(EDIT_CONTEXT)); memset(context, 0, sizeof(EDIT_CONTEXT)); context->cxImgSize = 22; // GetSystemMetrics(SM_CXVSCROLL); context->CommandID = CommandID; // Create the SearchBox window. context->WindowHandle = CreateWindowEx( WS_EX_CLIENTEDGE, WC_EDIT, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | ES_LEFT | ES_AUTOHSCROLL, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, RebarHandle, NULL, NULL, NULL ); NcAreaInitializeTheme(context); NcAreaInitializeImageList(context); // Set initial text Edit_SetCueBannerText(context->WindowHandle, L"Search Processes (Ctrl+K)"); // Set our window context data. SetProp(context->WindowHandle, L"EditSubclassContext", (HANDLE)context); // Subclass the Edit control window procedure. SetWindowSubclass(context->WindowHandle, NcAreaWndSubclassProc, 0, (ULONG_PTR)context); // Initialize the theme parameters. SendMessage(context->WindowHandle, WM_THEMECHANGED, 0, 0); return context->WindowHandle; }