前一篇介紹了 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例項中的...