学卫网教程:是一个免费提供流行杀毒软件教程、在线学习分享的学习平台!

金山卫士开源软件之旅(二) 容易指南:怎么创建1个基于金山卫士界面库的工程-程序设计

(IsWinXPAndLater() ? CS_DROPSHADOW : 0),  
                  StartWindowProc, 0, 0, NULL, NULL, NULL,  
                  (HBRUSH)(COLOR_WINDOW + 1), NULL, NULL, NULL }, 
                NULL, NULL, IDC_ARROW, TRUE, 0, _T("") 
            }; 
        return wc; 
    } 
 
public: 
    CBkDialogImpl(UINT uResID = 0) 
        : m_uResID(uResID) 
        , m_bShowWindow(TRUE) 
        , m_bExitModalLoop(FALSE) 
    { 
    } 
    virtual ~CBkDialogImpl() 
    { 
 
    } 
 
protected: 
    typedef CBkDialogImpl<T, TBkView, TBase, TWinTraits> __thisClass; 
 
    UINT m_uResID; 
    UINT m_uRetCode; 
 
    TBkView m_richView; 
 
    BOOL m_bShowWindow; 
 
    void ResizeClient(SIZE sizeClient, BOOL bRedraw) 
    { 
        ResizeClient(sizeClient.cx, sizeClient.cy, bRedraw); 
    } 
 
    void ResizeClient(int cx, int cy, BOOL bRedraw) 
    { 
        CRect rcWindow, rcClient; 
        CPoint ptWindow; 
 
        GetWindowRect(rcWindow); 
        GetClientRect(rcClient); 
 
        ptWindow = rcWindow.TopLeft(); 
 
        rcWindow.MoveToXY(0, 0); 
 
        rcWindow -= rcClient; 
        rcClient.SetRect(0, 0, cx, cy); 
        rcWindow += rcClient; 
 
        rcWindow.MoveToXY(ptWindow); 
 
        MoveWindow(rcWindow, bRedraw); 
    } 
 
    void OnSize(UINT nType, CSize size) 
    { 
        CRect rcClient; 
 
        GetClientRect(rcClient); 
 
        if (SIZE_MINIMIZED != nType) 
        { 
            if (m_richView.m_hWnd) 
                m_richView.MoveWindow(rcClient); 
 
        } 
 
        SetMsgHandled(FALSE); 
    } 
 
    BOOL OnEraseBkgnd(CDCHandle dc) 
    { 
        return TRUE; 
    } 
 
    LRESULT OnNcCalcSize(BOOL bCalcValidRects, LPARAM lParam) 
    { 
        if (bCalcValidRects) 
        { 
            CRect rcWindow; 
 
            GetWindowRect(rcWindow); 
 
            LPNCCALCSIZE_PARAMS pParam = (LPNCCALCSIZE_PARAMS)lParam; 
 
            if (SWP_NOSIZE == (SWP_NOSIZE & pParam->lppos->flags)) 
                return 0; 
 
            if (0 == (SWP_NOMOVE & pParam->lppos->flags)) 
            { 
                rcWindow.left = pParam->lppos->x; 
                rcWindow.top = pParam->lppos->y; 
            } 
 
            rcWindow.right = rcWindow.left + pParam->lppos->cx; 
            rcWindow.bottom = rcWindow.top + pParam->lppos->cy; 
            pParam->rgrc[0] = rcWindow; 
            pParam->rgrc[1] = pParam->rgrc[0]; 
        } 
 
        return 0; 
    } 
 
    void OnGetMinMaxInfo(LPMINMAXINFO lpMMI) 
    { 
        HMONITOR hMonitor = ::MonitorFromWindow(m_hWnd, MONITOR_DEFAULTTONULL); 
 
        if (hMonitor) 
        { 
            MONITORINFO mi = {sizeof(MONITORINFO)}; 
            ::GetMonitorInfo(hMonitor, &mi); 
 
            CRect rcWork = mi.rcWork, rcMonitor = mi.rcMonitor; 
            lpMMI->ptMaxPosition.x = abs(rcWork.left - rcMonitor.left) - 1; 
            lpMMI->ptMaxPosition.y = abs(rcWork.top - rcMonitor.top) - 1; 
            lpMMI->ptMaxSize.x = abs(rcWork.Width()) + 2; 
            lpMMI->ptMaxSize.y = abs(rcWork.Height()) + 2; 
            lpMMI->ptMaxTrackSize.x = abs(rcWork.Width()) + 2; 
            lpMMI->ptMaxTrackSize.y = abs(rcWork.Height()) + 2; 
        } 
    } 
 
    BOOL OnNcActivate(BOOL bActive) 
    { 
        return TRUE; 
    } 
 
public: 
 
    BOOL Load(UINT uResID) 
    { 
        CStringA strXml; 
 
        BOOL bRet = BkResManager::LoadResource(uResID, strXml); 
 
        if (!bRet) 
            return FALSE; 
 
        return SetXml(strXml); 
    } 
 
    BOOL SetXml(LPCSTR lpszXml) 
    { 
        return m_richView.SetXml(lpszXml); 
    } 
 
    HWND GetViewHWND() 
    { 
        return m_richView.m_hWnd; 
    } 
 
    BOOL SetPanelXml(UINT uItemID, UINT uResID) 
    { 
        return m_richView.SetPanelXml(uItemID, uResID); 
    } 
 
    BOOL SetPanelXml(UINT uItemID, LPCSTR lpszXml) 
    { 
        return m_richView.SetPanelXml(uItemID, lpszXml); 
    } 
 
    BOOL SetRichText(UINT uItemID, UINT uResID) 
    { 
        return m_richView.SetRichText(uItemID, uResID); 
    } 
 
    BOOL FormatRichText(UINT uItemID, LPCTSTR lpszFormat, ...) 
    { 
        va_list args; 
        CString strText; 
 
        va_start(args, lpszFormat); 
 
        strText.FormatV(lpszFormat, args); 
 
        return m_richView.SetRichText(uItemID, strText); 
    } 
 
    BOOL SetRichText(UINT uItemID, LPCWSTR lpszXml) 
    { 
        return m_richView.SetRichText(uItemID, lpszXml); 
    } 
 
    BOOL SetRichText(UINT uItemID, LPCSTR lpszXml) 
    { 
        return m_richView.SetRichText(uItemID, lpszXml); 
    } 
 
    BOOL SetItemText(UINT uItemID, LPCTSTR lpszText) 
    { 
        return m_richView.SetItemText(uItemID, lpszText); 
    } 
 
    CString GetItemText(UINT uItemID) 
    { 
        return m_richView.GetItemText(uItemID); 
    } 
 
    BOOL FormatItemText(UINT uItemID, LPCTSTR lpszFormat, ...) 
    { 
        va_list args; 
        CString strText; 
 
        va_start(args, lpszFormat); 
 
        strText.FormatV(lpszFormat, args); 
 
        return m_richView.SetItemText(uItemID, strText); 
    } 
 
    BOOL SetItemAttribute(UINT uItemID, LPCSTR lpszAttrib, LPCSTR lpszValue) 
    { 
        return m_richView.SetItemAttribute(uItemID, lpszAttrib, lpszValue); 
    } 
 
    BOOL GetItemRect(UINT uItemID, RECT &rcItem) 
    { 
        return m_richView.GetItemRect(uItemID, rcItem); 
    } 
 
    BOOL SetItemStringAttribute(UINT uItemID, LPCSTR lpszAttrib, LPCTSTR lpszValue) 
    { 
        return m_richView.SetItemStringAttribute(uItemID, lpszAttrib, lpszValue); 
    } 
 
    BOOL SetItemIntAttribute(UINT uItemID, LPCSTR lpszAttrib, int nValue) 
    { 
        return m_richView.SetItemIntAttribute(uItemID, lpszAttrib, nValue); 
    } 
 
    BOOL SetItemDWordAttribute(UINT uItemID, LPCSTR lpszAttrib, DWORD dwValue) 
    { 
        return m_richView.SetItemDWordAttribute(uItemID, lpszAttrib, dwValue); 
    } 
 
    BOOL SetItemColorAttribute(UINT uItemID, LPCSTR lpszAttrib, COLORREF crValue) 
    { 
        return m_richView.SetItemColorAttribute(uItemID, lpszAttrib, crValue); 
    } 
 
    BOOL GetItemCheck(UINT uItemID) 
    { 
        return m_richView.GetItemCheck(uItemID); 
    } 
 
    BOOL SetItemCheck(UINT uItemID, BOOL bCheck) 
    { 
        return m_richView.SetItemCheck(uItemID, bCheck); 
    } 
 
    BOOL IsItemEnable(UINT uItemID, BOOL bCheckParent = FALSE) 
    { 
        return m_richView.IsItemEnable(uItemID, bCheckParent); 
    } 
 
    BOOL EnableItem(UINT uItemID, BOOL bEnable) 
    { 
        return m_richView.EnableItem(uItemID, bEnable); 
    } 
 
    BOOL IsItemVisible(UINT uItemID, BOOL bCheckParent = FALSE) 
    { 
        return m_richView.IsItemVisible(uItemID, bCheckParent); 
    } 
 
    BOOL SetItemVisible(UINT uItemID, BOOL bVisible) 
    { 
        return m_richView.SetItemVisible(uItemID, bVisible); 
    } 
 
    BOOL SetTabCurSel(UINT uItemID, int nPage) 
    { 
        return m_richView.SetTabCurSel(uItemID, nPage); 
    } 
 
    int GetTabCurSel(UINT uItemID) 
    { 
        return m_richView.GetTabCurSel(uItemID); 
    } 
 
    BOOL SetTabTitle(UINT uItemID, int nPage, LPCTSTR lpszTitle) 
    { 
        return m_richView.SetTabTitle(uItemID, nPage, lpszTitle); 
    } 
 
    BOOL IsTabPageVisible(UINT uItemID, int nPage) 
    { 
        return m_richView.IsTabPageVisible(uItemID, nPage); 
    } 
 
    BOOL SetTabPageVisible(UINT uItemID, int nPage, BOOL bVisible) 
    { 
        return m_richView.SetTabPageVisible(uItemID, nPage, bVisible); 
    } 
 
    BOOL SetItemIconHandle(UINT uItemID, HICON hIcon) 
    { 
        return m_richView.SetItemIconHandle(uItemID, hIcon); 
    } 
 
    BOOL SetItemPaintHook(UINT uItemID, IBkWindowPaintHook* lpPaintHook) 
    { 
        return m_richView.SetItemPaintHook(uItemID, lpPaintHook); 
    } 
 
    void SetWindowCaption(LPCTSTR lpszCaption) 
    { 
        m_richView.SetWindowCaption(lpszCaption); 
    } 
 
    // Call at WM_INITDIALOG 
    void DontShowWindow() 
    { 
        m_bShowWindow = FALSE; 
    } 
 
<span style="color:#cc0000;">    HWND Create(HWND hWndParent = ::GetActiveWindow(), LPRECT rect = NULL) 
    { 
</span>        if (!m_richView.XmlLoaded()) 
        { 
            if (0 == m_uResID
软件下载:      

(网视站,专业提供浏览器下载)

标签:软件 金山 程序 如何 

相关软件

2345安全卫士最新官方版

2345安全卫士官方版 | 45.34MB

2345安全卫士官方版

2345安全卫士是集电脑体检、木马查杀、垃圾清理、修复系统漏洞、系统加速、软件管理等功能为一体的电脑安全管理的软件.提供全方位检测,用户可以通过检测结果快速了解自己的电脑并且对电脑进行优化..

360杀毒软件官方正式版

360杀毒软件官方正式版 | 35.10MB

360杀毒软件官方正式版

360杀毒具有查杀率高、资源占用少、升级迅速等优点。零广告、零打扰、零胁迫,一键扫描,快速、全面地诊断系统安全状况和健康程度,并进行精准修复,带来安全、专业、有效、新颖的查杀防护体验...

360安全卫士最新版下载

360安全卫士最新版下载 | 50.3MB

360安全卫士最新版下载

360安全卫士是一款由奇虎360公司推出的功能强、效果好、受用户欢迎的安全杀毒软件。360安全卫士拥有查杀木马、清理插件、修复漏洞、电脑体检、电脑救援、保护隐私,电脑专家,清理垃圾,清理痕迹...

QQ电脑管家官方正式版

QQ电脑管家官方正式版 | 24.2MB

QQ电脑管家官方正式版

腾讯电脑管家(Tencent PC Manager/原名QQ电脑管家)是腾讯公司推出的免费安全软件。拥有云查杀木马,系统加速,漏洞修复,实时防护,网速保护,电脑诊所,健康小助手...

金山毒霸2022最新版下载

金山毒霸2022下载 | 37MB

金山毒霸2018最新版下载

金山毒霸融合了启发式搜索、代码分析、虚拟机查毒等技术。经业界证明成熟可靠的反病毒技术,以及丰富的经验,使其在查杀病毒种类、查杀病毒速度、未知病毒防治等多方面达到世界先进水平...

猎豹清理大师官方版下载

猎豹清理大师下载 | 47.4MB

猎豹清理大师官方版下载

猎豹清理大师(原金山清理大师)是由金山网络开发的智能手机应用。它可以清理智能手机上的应用缓存、残余程序文件、历史痕迹以及应用程序安装包...