zoukankan      html  css  js  c++  java
  • 周报_2012第09周(2012/02/262012/03/03)

    项目:X保密项目

    2012.02.29

    WTL反射CMenu自绘消息(MEASUREITEM\DRAWITEM),GDI绘制菜单项8个颜色区域。 已完成

    #include "FenceMenu.h"

    MESSAGE_HANDLER(WM_MEASUREITEM, OnMeasureItem)
    MESSAGE_HANDLER(WM_DRAWITEM, OnDrawItem)
    CHAIN_MSG_MAP_MEMBER(m_menuFence)

    MESSAGE_HANDLER(UDM_CONTEXTMENU_HOOK, OnMenuHook)

    LRESULT    OnMouseMove(UINT uMsg,WPARAM wParam,LPARAM lParam,BOOL& bHandled);

    LRESULT    OnMenuHook(UINT uMsg,WPARAM wParam,LPARAM lParam,BOOL& bHandled);

    /*****************************************************************************\
        @file:    FolderView.h
        @brief:      brief description.
        @author:     lishupeng
        @create date:   2012-2-29 (21:48)
        @version:    ver1.0.0
        @func_name:
        @param [IN]:  first value.
        @param [IN]:  second value.
        @param [IN]:  ...
        @param [OUT]:  return value.
        @note:    Fence Screen ContextMenu Hook钩子窗口过程
        @detailed history description:
        ver -> date -> author -> actions
        1.0.0 -> 2012-2-29 -> lishupeng -> create
    \*****************************************************************************/
    static LRESULT CALLBACK HookContextMenuWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);

    CFenceMenu m_menuFence;

    int m_nColorMenuSel;

    static WNDPROC            s_pOldProc;
    static WNDPROC            s_pCurMenuProc;
    static IContextMenu2*    s_pIContext2;

    static IContextMenu3*    s_pIContext3;

    static HBITMAP                 m_hIconChangeTxtBk;
    static map<DWORD, HBITMAP>     m_mapIconsChangeTxtBk;//高位为1是文件名染色的背景图片,高位为0是数字图片。

    static const TCHAR *s_arrColorMenuNames[] =
    {
        _T("红色"),
        _T("橘黄"),
        _T("淡黄"),
        _T("嫩绿"),
        _T("天蓝"),
        _T("紫红"),
        _T("灰色"),
        _T("还原"),
    };

    // 16进制颜色RGB值、注意RGB顺序
    static const COLORREF s_arrMenuRGB[] =
    {
        0x0000FF,
        0x00A5FF,
        0x00FFFF,
        0x008000,
        0xFF0000,
        0x800080,
        0x6E6F73
    };

    // 通过自绘消息取得的环境菜单的窗口句柄
    static HWND m_wndMenu = NULL;

    const int gcn_COLOR_MENU_CNT = 8;
    const int gcn_COLOR_MARGIN_TOP = 20;
    const int gcn_COLOR_MARGIN_H = 20;
    const int gcn_CONTEXTMENU_WIDTH = 200;
    const int gcn_CONTEXTMENU_HEIGHT = 40;

    if(InsertMenuW(hMenu, nPos, MF_POPUP|MF_BYPOSITION|MF_OWNERDRAW
    , TEXT_BKCOLOR_COMMAND_IDBASE/*(UINT_PTR)(&m_menuFence)*/, L"更改文字背景色"))

    POINT pt;
    GetCursorPos(&pt);
    idCmd = TrackPopupMenu(hMenu, TPM_LEFTALIGN | TPM_RETURNCMD | TPM_RIGHTBUTTON, pt.x, pt.y);

    if (TEXT_BKCOLOR_COMMAND_IDBASE == idCmd)
    {
    cmi.cbSize = sizeof(CMINVOKECOMMANDINFO);
    cmi.fMask = 0;
    cmi.hwnd = m_pDUIContainer->m_hWnd;
    cmi.lpVerb = MAKEINTRESOURCEA(idCmd/*-1*/);
    cmi.lpParameters = NULL;
    cmi.lpDirectory = NULL;
    cmi.nShow = SW_SHOWNORMAL;
    cmi.dwHotKey = 0;
    cmi.hIcon = NULL;

    if (!b64Program)
    {
    hr= spContextMenu->InvokeCommand(&cmi);
    }

    //INT nColorIndex = idCmd - TEXT_BKCOLOR_COMMAND_IDBASE;
    if (m_nColorMenuSel >= 0)
    {
    pAppInfo->SetTextBkColorIndex(gcn_COLOR_MENU_CNT - 1 - m_nColorMenuSel);
    //pAppInfo->SetTextBkColorIndex(nColorIndex);
    InvalidateRect(NULL);
    }
    }

    LRESULT CFolderView::OnMeasureItem(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& b_ret)
    {
    int nIDCtl = (UINT)wParam;
    LPMEASUREITEMSTRUCT lpDrawItemStruct = (LPMEASUREITEMSTRUCT)lParam;
    //lpDrawItemStruct->itemWidth = ::GetSystemMetrics(SM_CXMENUSIZE);
    lpDrawItemStruct->itemWidth = gcn_CONTEXTMENU_WIDTH;
    lpDrawItemStruct->itemHeight = gcn_CONTEXTMENU_HEIGHT;

    return 1;
    }

    在右键菜单的自绘事件中,挂入钩子截获菜单窗口过程,分析消息(ID: 485),筛选出菜单项的mousemove事件、ncpaint/paint事件、ncdestroy/destroy事件。通知菜单项自身重绘,菜单销毁时恢复原有窗口过程。         30%     22:37

    2012.03.01

    判断鼠标位置绘制hover状态的图标。(用户体验产品设计-闫磊)

     

    2012.03.02

    截图进程功能需求:

    1、增加截图统计:用户点击侧边栏截图按钮、消息盒子、意见反馈、快捷键启动360截图,均发送该统计http://stat.apc.360.cn/stat.html?type=new&action=snapshot&from=0&uid=1&pid=h_home&m=e0a9b0b3c25a85517a4873626575b29a&modulever=1.4.0.1135&appver=1.4.0.1135)。

    action:= snapshot截图

    from:= 0调起截图;=1矩形工具;=2圆形工具;=3箭头工具;=4画刷工具;=5荧光笔工具;=6文本工具;=7撤销编辑;=8保存选中区域;=9取消;=10完成=11分享/发微博;=12右键取消;=13右键显示菜单;=14右键矩形工具;=15右键圆形工具;=16右键箭头工具;=17右键画刷工具;=18右键荧光笔;=19右键文本工具;=20右键撤销编辑;=21右键重新选择绘图区域;=22右键完成截图=23右键保存;=24右键退出截图

     

    /*****************************************************************************\
        @file:    MainFram.h
        @brief:      brief description.
        @author:     lishupeng
        @create date:   2012-3-2 (18:12)
        @version:    ver1.0.0
        @func_name:
        @param [IN]:  first value.
        @param [IN]:  second value.
        @param [IN]:  ...
        @param [OUT]:  return value.
        @note:    (=9取消;=10完成;=22右键完成截图;=24右键退出截图)4个操作要求
                    延迟发送统计信息
        @detailed history description:
        ver -> date -> author -> actions
        1.0.0 -> 2012-3-2 -> lishupeng -> create
    \*****************************************************************************/
    void Delay(int time); //time为秒数

    void CMainFram::Delay(int time) //time为秒数
    {
        clock_t now = clock();
        while(clock() - now < time);
    }

    此方案不能解决问题(统计消息在进程结束之前不能成功发送),建议等待信号量。

    18:00 已完成

    2、截图鼠标移动跟随框性能调查。

    在我的计算机上没有问题,已反馈产品设计张金瑞,需要进一步调查此问题先联系梁志辉。 18:38 已完成

    项目:放射源监控地理信息系统

    2012.03.02

    用户角色功能权限

    在 ASP.NET MVC 3.0 中应用 M$ Membership 角色权限控制模块,实现用户注册、登录、修改密码、Action的[Authorize]权限控制功能,VS2010 + SQL Server 2008,C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regsql.exe。

  • 相关阅读:
    spring注入原型bean
    按时间间隔查询
    Qconf安装文档
    HttpEnum
    MyIfmHttpClient
    enum StatCode
    Linux修改war包中文件
    maven settings.xml windows
    maven settings.xml linux
    docker报错
  • 原文地址:https://www.cnblogs.com/DancingFish/p/2377403.html
Copyright © 2011-2022 走看看