我的元件之HtmlCtrl

2021-06-12 13:08:05 字數 2129 閱讀 7500

前一篇介紹了 thread,這裡再演示一下 ownerpolicy 的妙用。以下是我的 htmlctrl 類(vs2005 及以上版本)。

#ifndef htmlctrl_h

#define htmlctrl_h

//#include #include #include //

#include "ownerpolicy.h"

//template class htmlctrlt : public chtmlview,

public ownerpolicy

virtual hresult ongetexternal(lpdispatch *lppdispatch)

hresult sethtmltext(lpctstr lpszhtml)

ppersiststreaminit = gethtmldocument();

if (ppersiststreaminit)

return hr;

} virtual void postncdestroy() };

//#endif

對話方塊的標頭檔案

#pragma once

#include #include "resource.h"

#include "htmlctrl.h"

//class cmaindialog : public cdialog

;protected:

virtual void dodataexchange(cdataexchange *pdx);

protected:

hicon m_hicon;

virtual bool oninitdialog();

afx_msg void onpaint();

afx_msg hcursor onquerydragicon();

declare_message_map()

declare_dispatch_map()

private:

void messagebox(bstr bstrmessage);

private:

chtmlctrl m_htmlctrl;

};

對話方塊的 cpp 檔案

#include "maindialog.h"

//begin_dispatch_map(cmaindialog, cdialog)

disp_function(cmaindialog, "messagebox", messagebox, vt_empty, vts_bstr)

end_dispatch_map()

//cmaindialog::cmaindialog(cwnd *pparent)

: cdialog(cmaindialog::idd, pparent)

void cmaindialog::dodataexchange(cdataexchange *pdx)

begin_message_map(cmaindialog, cdialog)

//}afx_msg_map

end_message_map()

bool cmaindialog::oninitdialog()

crect rect;

wndstatic.getwindowrect(&rect);

screentoclient(&rect);

wndstatic.destroywindow();

m_htmlctrl.owner(this);

m_htmlctrl.create(null, null, ws_child|ws_visible, rect, this, idc_html_ctrl, null);

m_htmlctrl.sethtmltext(text("message

"));

return true;

}void cmaindialog::onpaint()

else

}hcursor cmaindialog::onquerydragicon()

void cmaindialog::messagebox(bstr bstrmessage)

我的許可權元件

首先 設定三種要素 使用者 群組 角色。使用者為登入用,對應到人。群組對應為使用者的集合,是一種特殊的使用者。角色為一組許可權項的集合,使用者 群組 都有各自的角色。許可權的實現通過 permission 類和rule 類來實現。permission 供外部呼叫,rule 為乙個介面,為許可權判斷規...

Vue元件之全域性元件與區域性元件

元件 component 是 vue.js 最強大的功能之一。元件可以擴充套件 html 元素,封裝可重用的 在較高層面上,元件是自定義元素,vue.js 的編譯器為它新增特殊功能。在有些情況下,元件也可以是原生 html 元素的形式,以 is 特性擴充套件。個人認為就是乙個可以重複利用的結構層 片...

Vue 元件 元件之間的通訊 之全域性元件與區域性元件

在上篇部落格中介紹了元件,在註冊元件的簡寫中就用到了全域性元件 註冊元件的簡寫方式 vue.component my componenta 元件可分為全域性元件與區域性元件 全域性元件 在全域性api中的vue.component註冊 該專案中所有vue例項內均可以使用 區域性元件 在vue例項中的...