项目:X保密项目

2012.03.12

// Win XP 需要判断取消操作.    By lishupeng@360.cn 2012/03/12 11:49.
    if (FileOp.fAnyOperationsAborted)
    {
        bRet = FALSE;
    }

const int gcn_SEC_DELAY = 100;    // 等待 HTTP Download 下载线程处理网络数据。
                                // By lishuepng@360.cn 2012/03/12 16:37

if (Report(STAT_*))
            {
                ShowWindow(SW_HIDE);
                Delay(gcn_SEC_DELAY);
                PostMessage(WM_CLOSE);
                //TerminateProcess(GetCurrentProcess(),0);

//PostQuitMessage(-1);
                //TerminateProcess(GetCurrentProcess(),0);
            }

2012.03.13

\BackUp\import.fg 配置文件 –> \AppData\Roaming\360Desktop

2012.03.14

// DRAWENTIRE时窗口句柄为空。 RedrawWindow时窗口句柄有效。
            //m_wndMenu = ::WindowFromDC(lpDIS->hDC);
            //::GetWindowRect(m_wndMenu, &rectTmp);

if (ODA_SELECT == lpDIS->itemAction)
{
    // 菜单高度超过屏幕高度时,菜单项位置会变化,每次选中时需要保存菜单项位置。
    m_wndMenu = ::WindowFromDC(lpDIS->hDC);
   
    // 获取菜单的裁剪区域
    ::GetClipBox(lpDIS->hDC, &rectTmp);
   
    // 判断菜单是否被裁剪,如果被裁剪则计算顶端偏移位置。(20像素为菜单顶端和底端箭头按钮的高度)
    int nTopOffset = rectTmp.top ? 20 - rectTmp.top : 0;
   
    ::GetWindowRect(m_wndMenu, &rectTmp);
    // 系统内置 V:3 像素边框
    rectTmp.top    = rectTmp.top + lpDIS->rcItem.top + gcn_COLOR_MARGIN_TOP + 3 + nTopOffset;
    rectTmp.bottom = rectTmp.top + bmpInfo.bmHeight;
    // 系统内置 H:4 像素边框
    rectTmp.left += 4;
    m_vecIconRect.clear();
    for (int i = 0; i < s_nColorMenuItemCnt; ++i)
    {
        rectTmp.left = rectTmp.left + gcn_COLOR_MARGIN_H;               
        rectTmp.right = rectTmp.left + bmpInfo.bmWidth;               
        m_vecIconRect.push_back(rectTmp);
    }

// 鼠标进入热区后截获环境菜单的窗口过程。    Added by Li Shupeng 2012\02\29 22:13.
    if (s_pCurMenuProc == NULL)
    {
        this->PostMessageW(UDM_CONTEXTMENU_HOOK, WPARAM(m_wndMenu), NULL);
    }
}

LRESULT CFolderView::OnMeasureItem(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& b_ret)
{   
    int nIDCtl = (UINT)wParam;
    LPMEASUREITEMSTRUCT lpDrawItemStruct = (LPMEASUREITEMSTRUCT)lParam;

// Windows XP 下判断控件类型: 菜单项 TEXT_BKCOLOR_COMMAND_IDBASE(区别 Notepad++ 的自绘菜单项)
    if (ODT_MENU == lpDrawItemStruct->CtlType && TEXT_BKCOLOR_COMMAND_IDBASE == lpDrawItemStruct->itemID)


}

LRESULT CFolderView::OnDrawItem(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& b_ret)
{
    int nCtrlID = (UINT)wParam;
    LPDRAWITEMSTRUCT lpDIS = (LPDRAWITEMSTRUCT)lParam;

// Windows XP 下判断控件类型: 菜单项 TEXT_BKCOLOR_COMMAND_IDBASE(区别 Notepad++ 的自绘菜单项)
    if (ODT_MENU == lpDIS->CtlType && TEXT_BKCOLOR_COMMAND_IDBASE == lpDIS->itemID)


}

2012.03.15

调查截图操作异常:全屏的截图进程启动之后,再激活后台进程窗口,截图进程的窗口过程将不会再接收到键盘消息。

解决方案:创建线程监控激活的进程窗口。

virtual BOOL PreTranslateMessage(MSG* pMsg)
{
    if(pMsg->message==WM_KEYDOWN)
    {
        HWND hWndLiveWriter = ::FindWindowW(_T("WindowsForms10.Window.8.app.0.33c0d9d"), NULL);
        switch ((int)pMsg->wParam)
        {
        case VK_ESCAPE:
            Report(STAT_ESC);
            ShowWindow(SW_HIDE);
            Delay(gcn_SEC_DELAY);
            PostMessage(WM_CLOSE);
            return TRUE;
        case VK_SHIFT:               
            if (hWndLiveWriter)
            {
                ::ShowWindow(hWndLiveWriter, SW_SHOW);
            }
            break;
        case VK_CONTROL:               
            if (hWndLiveWriter)
            {
                ::SetForegroundWindow(m_hWnd);
            }
            break;
        }
    }

if( CFrameWindowImpl<CMainFram>::PreTranslateMessage(pMsg) )
    {
        return TRUE;
    }
    else
    {
        return FALSE;
    }
}

DWORD dwThreadId = 0;
g_hThreadActive = CreateThread(
    NULL,                   // default security attributes
    0,                      // use default stack size 
    MonitorActiveThread,    // thread function name
    wndMain.m_hWnd,         // argument to thread function
    CREATE_SUSPENDED,       // use default creation flags
    &dwThreadId);            // returns the thread identifier
if (g_hThreadActive)
{
    ResumeThread(g_hThreadActive);
}

if (g_hThreadActive)
{
    TerminateThread(g_hThreadActive, 0);
    CloseHandle(g_hThreadActive);
    g_hThreadActive = NULL;
}

DWORD WINAPI MonitorActiveThread( LPVOID lpParam )
{
    while (true)
    {
        HWND hWndMainfrm = (HWND)lpParam;
        if (hWndMainfrm == NULL)
        {
            break;
        }
        HWND hWndForeground = ::GetForegroundWindow();
        if (hWndForeground && (hWndMainfrm != hWndForeground))
        {
            ::SetForegroundWindow(hWndMainfrm);
        }               
    }

return 0;
}

转载于:https://www.cnblogs.com/DancingFish/archive/2012/03/12/2391554.html

周报_2012第11周(2012/03/11-2012/03/17)相关推荐

  1. 周报_2012第51周(2012/12/16-2012/12/22)

    2012.12.18 Windows Phone 墓碑机制(多任务) Launching和Closing方法在通常情况下使用:例如用返回键退出,或者从程序列表中启动. Activated和Deacti ...

  2. 【北交所周报】和创科技成北交所首个过会的亏损企业;北证50周跌2.11%;新股辰光医疗周涨22.67%;...

     关注ITValue,看企业级最新鲜.最价值报道! 北交所一周动态速览:上周(12月5日-12月9日)北交所又迎多只新股,雷特科技.辰光医疗 秋乐种业.恒立钻具.欧康医药和绿亨科技等企业登录北交所,其 ...

  3. python精通-11周精通python计划(完结)-网易云课堂

    微专业 11周精通python计划(完结) 课程概况 Python 语言是计算机工程.大数据及人工智能等领域的基础性语言,广泛且深刻地影响着信息技术各领域的发展方式及速度,从软件开发到硬件开发.从数据 ...

  4. 分享Silverlight/WPF/Windows Phone/HTML5一周学习导读(11月28日-12月4日)

    分享Silverlight/WPF/Windows Phone/HTML5一周学习导读(11月28日-12月4日) 本周Silverlight学习资源更新 Silverlight HttpUtil 封 ...

  5. c++第八周【任务1-1】实现复数类中的运算符重载

    /* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: c++第八周 ...

  6. 20145231 《信息安全系统设计基础》第11周学习总结

    20145231<信息安全系统设计基础>第11周学习总结 教材学习内容总结 异常 异常是异常控制流的一种形式,由硬件和操作系统实现.简单来说,就是控制流中的突变. 出现异常的处理方式: 1 ...

  7. 分享Kali Linux 2017年第11周镜像文件

    分享Kali Linux 2017年第11周镜像文件 Kali?Linux官方于3月12日发布2017年的第11周镜像.这次维持了11个镜像文件的规模.默认的Gnome桌面的4个镜像,E17.KDE. ...

  8. IDC评述网:2012年11月全国IDC品牌排行榜

    中国IDC评述网12月01日报道:据IDC评述网最新数据显示,11月份,全国IDC品牌关注指数Top10排行榜中,中国万网以1624231的关注指数再次高居榜首.蓝讯CDN和世纪互联分列二.三名,关注 ...

  9. 20175310 《Java程序设计》第11周学习总结

    20175310 <Java程序设计>第11周学习总结 教材学习内容总结 学习中的问题和解决过程 问题1:在做简易计算器时,测试乘法出错,如下图,显示格式错误: 问题1解决方案: 检查代码 ...

  10. 2017-2018-1 20155330 《信息安全系统设计基础》第11周学习总结

    2017-2018-1 20155330 <信息安全系统设计基础>第11周学习总结 教材学习内容总结 物理和虚拟寻址 计算机系统的主存被组织成一个由M个连续的字节大小的单元组成的数组.每字 ...

最新文章

  1. php集成paypal付款流程,在PHP中集成PayPal标准支付
  2. 人工智能进军餐饮:AI调酒,越喝越有
  3. Mybatis:resultMap的万字使用总结
  4. 【深度学习】人脸识别和口罩检测的应用
  5. python全套视频教程下载-老男孩python全套视频教程百度云资源下载
  6. linux异机拷贝,rman恢复异机数据库
  7. S/4HANA表现抢眼——第一季度SAP大中华区营收再现双位数增长
  8. 长春理工大学第十四届程序设计竞赛
  9. 即构科技金健忠:回顾20年音视频技术演进
  10. 小程序 、h5图片铺满div,自适应容器大小
  11. Swagger如何测试Date类型参数
  12. 帖子内容 mysql_mysql-SQL:选择最新主题和最新帖子,按论坛...
  13. Quicksort算法之父——1980年图灵奖获得者查尔斯·霍尔
  14. 一款黑科技神器:uTools
  15. 文件的输入法程序的字符编码
  16. 51单片机外部中断使用示例程序
  17. 社交 APP 唔哩星球完成数百万元天使轮融资,投资方为启明创投
  18. SCJP刷题学习笔记(Part four)
  19. 奇舞周刊第 330 期:别让自己“墙”了自己
  20. 一年纯手工打造的Java老A上册开始预售了

热门文章

  1. TOJ 3046: 招商银行网络系统
  2. 您收到一封 2019 阿里云峰会 (北京) 邀请函
  3. 跟着太白老师学python day11 可迭代对象和迭代器
  4. react 项目总结
  5. easyui动态显示和隐藏表头
  6. arrayPointer
  7. struts2中文件上传
  8. GMF 教程 Mindmap 5
  9. Eclipse开发Android程序如何在手机上运行
  10. _beginthreadex 一定要自己写 CloseHandle 可以不用 _endthreadex