如何将自定义窗口注入到Windows资源管理器中

时间:2012-12-17 06:41:16

标签: windows hook explorer

RT。如下图所示。 custom window inject into explorer

我尝试了以下几种方法,但不起作用:

  1. 资源管理器栏,工具栏和桌面乐队,请参阅here
  2. 命名空间扩展,请参阅here
  3. 实施文件夹视图,请参阅here
  4. 我已经解决了这个问题,只需调整文件夹视图窗口的大小并创建一个新的自定义窗口并将其移动到右侧位置,如下所示,此代码将在文件夹视图窗口的顶部显示自定义窗口:

    HWND phwnd = (HWND)explorer SHELLDLL_DefView handle;
    HWND chwnd = (HWND)explorer DirectUIHWND handle;
    RECT *rcClient = new RECT(); 
    GetClientRect(phwnd, rcClient);
    MoveWindow(chwnd, rcClient->left, rcClient->top+39, rcClient->right, rcClient->bottom-39, TRUE);
    HWND haddwnd = ::CreateDialogParam(hInst,
                    MAKEINTRESOURCE(IDD_DIALOG1),
                    phwnd,
                    (DLGPROC)About,
                    (LPARAM)rcClient);
    ShowWindow(haddwnd, SW_SHOWNOACTIVATE);
    MoveWindow(haddwnd, 0, 0, rcClient->right, 39, TRUE);
    <pre>
    

0 个答案:

没有答案