zoukankan      html  css  js  c++  java
  • 【Demo 0041】图钉桌面

    将一个窗体钉在桌面上, 在任务上不显示, 操作Window提供的显示桌面的功能也不会最小化, windows自带的便笺软件功能很好用,但有两个功能个人认人产品化做的很不好,第一、显示在任务栏(便笺的目的就是提示自己要做的事,所有应该一直挂在桌面上,而任务栏原本空间就有限,如果占用任务样影响了正常的工作), 其二、点击桌面时会被最小化, 被最小化了就失去了便笺) 为了实现以上不足我想这个软件应该是钉在桌面上的。

    实现方法要点:

    1.  读取Window Desktop 窗体中ListView 控件;

    2.  将此窗体的父窗体设置为步骤1返回窗体句柄即可;

    一、关键代码块

         1. 查到桌面控件(可适用于WindowXP, Window7)

    BOOL CALLBACK EnumWndProc(HWND hWnd, LPARAM lParam)
    {
        HWND* hParent = (HWND*)lParam;
        TCHAR szClassName[MAX_PATH];
        GetClassName(hWnd, szClassName, MAX_PATH);
        if (NULL != GetWindow(hWnd, GW_CHILD))
        {
            HWND hShellDLL = FindWindowEx(hWnd, NULL, _T("SHELLDLL_DefView"), NULL);
            if (NULL != hShellDLL)
            {            
                HWND hListView = FindWindowEx(hShellDLL, 0, _T("SysListView32"), NULL);
                if (NULL != hListView)
                {
                    *hParent = hListView;
                    return FALSE;
                }
            }
        }

        return TRUE;
    }

         2.  将窗体作为桌面窗体的子控件

    HWND hListView;
    EnumWindows(EnumWndProc, (LPARAM)&hListView);
    if (NULL != hListView)
    {

        SetWindowLong(hWnd, GWL_STYLE, GetWindowLong(hWnd, GWL_STYLE) & ~(WS_CAPTION | WS_THICKFRAME));   
        SetParent(hWnd, hListView);
    }

    二、效果

       image

     

    演示代码

  • 相关阅读:
    ubuntu给手机建wifi
    UTF-8编码的字符串拆分成单字、获取UTF-8字符串的字符个数的代码及原理(c++实现)
    Android 获取WIFI MAC地址的方法
    【美妙的Python之二】Python初步
    LCD深度剖析
    Eclipse断点调试
    Draw2d中的布局管理器Layout比较
    Java实现 蓝桥杯VIP 算法训练 输出米字形
    Java实现 蓝桥杯VIP 算法训练 输出米字形
    Java实现 蓝桥杯VIP 算法训练 斜率计算
  • 原文地址:https://www.cnblogs.com/ztercel/p/2162420.html
Copyright © 2011-2022 走看看