亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發(fā)設計 > 正文

在ActiveX控件中引入窗體技術

2019-11-17 05:32:34
字體:
來源:轉載
供稿:網友
一、引入Dialog技術

  下面介紹在制作ActiveX控件時引入有模式對話框技術,制作步驟如下:

  創(chuàng)建一新的MFC ActiveX ControlWizard項目,取名為Hello,其他用缺省選項;
 
  在ResourceView頁中新增一對話框資源,命名為IDD_HELLODIALOG,可以在對話框上放自己的控件;
 
  為對話框資源IDD_HELLODIALOG創(chuàng)建新類CHelloDialog,從CDialog繼續(xù);
 
  確認在HelloCtrl.h中已加入語句#include "HelloDialog.h",為CHelloCtrl類添加成員變量CHelloDialog m_helloDialog;
 
  用ClassWizard在Automation頁中為CHelloCtrl添加一方法void DoHello(),外部名亦為DoHello;

void CHelloCtrl::DoHello() { // 顯示對話框 m_helloDialog.DoModal(); }

  可以用ActiveX Control Test Container測試Hello Control的DoHello方法。

  下面介紹在制作ActiveX控件時引入無模式對話框技術,制作步驟如下:

  在上面工作的基礎上,用ClassWizard為CHelloCtrl添加WM_CREATE的處理函數OnCreate,在此創(chuàng)建無模式對話框;
 
  修改DoHello代碼,在此顯示對話框;

int CHelloCtrl::OnCreate (LPCREATESTRUCT lpCreateStruct) {
 if (COleControl::OnCreate(lpCreateStruct) == -1) return -1;
 // 創(chuàng)建對話框
 m_helloDialog.Create(IDD_HELLODIALOG);
 return 0;
}
void CHelloCtrl::DoHello() {
 // 顯示對話框
 m_helloDialog.ShowWindow(SW_SHOW);
}
  下面介紹制作以對話框作為界面的ActiveX控件技術,制作步驟如下:

  在上面工作的基礎上,設置對話框資源IDD_HELLODIALOG屬性的Style頁為Style:Child、Border:Dialog Frame、Title Bar:unchecked;設置More Style頁為Visible:checked;Control:checked;設置Extended Styles頁為Static Edge:checked;
 
  在CHelloCtrl::OnCreate中寫入m_helloDialog.Create(IDD_HELLODIALOG,this)語句;
 
  在CHelloCtrl::OnDraw中寫入m_helloDialog.MoveWindow(rcBounds,TRUE);

int CHelloCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct) {
 if (COleControl::OnCreate(lpCreateStruct) == -1) return -1;
 // 創(chuàng)建對話框
 m_helloDialog.Create(IDD_HELLODIALOG,this);
 return 0;
}
void CHelloCtrl::OnDraw(CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid) {
 // 定位Hello對話框
 m_helloDialog.MoveWindow(rcBounds,TRUE);
}
  二、引入FormView技術

  下面介紹在制作ActiveX控件時引入FormView技術,制作步驟如下:

  在上面工作的基礎上,在ResourceView頁中新增一對話框資源,命名為IDD_HELLOFORMVIEW,可以在對話框上放自己的控件;
 
  設置對話框資源IDD_HELLODIALOG屬性的Style頁為Style:Child、Border:Dialog Frame、Title Bar:unchecked;設置More Style頁為Visible:checked;Control:checked;設置Extended Styles頁為Static Edge:checked;
 
  為對話框資源IDD_HELLOFORMVIEW創(chuàng)建新類CHelloFormView,從CFormView繼續(xù);
 
  在HelloFormView.h中將CHelloFormView的構造函數CHelloFormView()和析構函數virtual ~CHelloFormView()從PRotected改為public;
 
  在HelloFormView.h中對CHelloFormView類加入public friend class CHelloCtrl;
  
  確認在HelloCtrl.h中已加入語句#include "HelloFormView.h",為CHelloCtrl類添加成員變量CHelloFormView m_helloFormView;
 
  修改CHelloCtrl::OnCreate函數,在此創(chuàng)建m_helloFormView;
 
  修改DoHello代碼,在此顯示FormView;

int CHelloCtrl::OnCreate (LPCREATESTRUCT lpCreateStruct) {
 if (COleControl::OnCreate(lpCreateStruct) == -1) return -1;
 // 創(chuàng)建FormView
 m_helloFormView.Create(NULL,NULL,AFX_WS_DEFAULT_VIEW, CRect(0, 0, 0, 0), this, AFX_IDW_PANE_FIRST, NULL);
 return 0;
}
void CHelloCtrl::OnDraw(CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid) {
 // 定位Hello對話框
 m_helloFormView.MoveWindow(rcBounds,TRUE);
}
  三、引入Document/View結構技術

  下面介紹在制作ActiveX控件時引入Document/View技術,制作步驟如下:

  在上面工作的基礎上,在Hello工程中用ClassWizard添加一新類CPrintFrame,取其父類為CFrameWnd;
 
  在PrintFrame.h中將CPrintFrame的構造函數CPrintFrame()和析構函數virtual ~CPrintFrame()從protected改為public;
 
  在Hello工程中用ClassWizard添加一新類CPrintView,取其父類為CView;
 
  在PrintView.h中將CPrintView的構造函數CPrintView()和析構函數virtual ~CPrintView()從protected改為public;
 
  在Hello工程中用ClassWizard添加一新類CPrintDoc,取其父類為CDocument;
 
  在PrintDoc.h中將CPrintDoc的構造函數CPrintDoc()和析構函數virtual ~CPrintDoc()從protected改為public;
 
  在Hello工程中用ClassWizard添加一新類CPrintThread,取其父類為CWinThread;
 
  在HelloCtrl.h文件中為CHelloCtrl類添加成員變量CPrintThread* m_pPrintThread,確認在HelloCtrl.h中已加入語句#include "PrintThread.h";

void CHelloCtrl::DoHello() { // 創(chuàng)建打印線程 m_pPrintThread = (CPrintThread*) AfxBeginThread(RUNTIME_CLASS(CPrintThread), THREAD_PRIORITY_NORMAL, CREATE_SUSPENDED, NULL); m_pPrintThread- >ResumeThread();}
 
  在PrintThread.h中添加新成員變量

  CPrintDoc* m_pPrintDoc和CPrintFrame* m_pPrintFrame,并在構造函數和析構函數中完成對它們的初始設置和清除,確認在PrintThread.h中已加入語句#include "PrintDoc.h"和#include "PrintFrame.h";


CPrintThread::CPrintThread(){
 m_pPrintDoc=NULL;
 m_pPrintFrame=NULL;
}
CPrintThread::~CPrintThread(){
 if (m_pPrintDoc!=NULL)
  delete m_pPrintFrame;
 if (m_pPrintFrame!=NULL)
  delete m_pPrintDoc;
}
  在PrintThread.cpp的CPrintThread::InitInstance中,進行創(chuàng)建窗體CPrintFrame,確認在PrintThread.cpp中已加入語句#include "PrintFrame.h";

BOOL CPrintThread::InitInstance(){
 // 創(chuàng)建文檔/視圖框架
 CPrintFrame* pFrame = new CPrintFrame;
 m_pMainWnd = pFrame;
 m_pPrintFrame=pFrame;
 m_pPrintDoc=new CPrintDoc;
 CCreateContext context;
 context.m_pCurrentDoc = m_pPrintDoc;
 context.m_pNewViewClass = RUNTIME_CLASS(CPrintView);
 pFrame- >Create(NULL,"打印主窗體", WS_OVERLAPPEDWINDOW,CRect(0,0,100,100), NULL,NULL,0,&context);
 pFrame- >InitialUpdateFrame(m_pPrintDoc, TRUE);
 return TRUE;
}
  在PrintView.h的CPrintView中,添加成員函數CPrintDoc* GetDocument(),確認在PrintView.h中已加入語句#include "PrintDoc.h";

CPrintDoc* CPrintView::GetDocument(){
 ASSERT(m_pDocument- >ISKINdOf (RUNTIME_CLASS(CPrintDoc)));
 return (CPrintDoc*)m_pDocument;
}
  四、實現ActiveX打印預覽技術

  下面介紹利用上面的技術成果來實現ActiveX的打印預覽技術,實現步驟如下:

  在上面工作的基礎上,用ClassWizard對CPrintView類實現OnPreparePrinting函數,如下:

BOOL CPrintView::OnPreparePrinting(CPrintInfo* pInfo) { // 預備打印 return DoPreparePrinting(pInfo);}
  用ClassWizard在Automation頁中為CHelloCtrl添加一方法void DoPreview(),外部名亦為DoPreview;

void CHelloCtrl::DoPreview() {
 // 進行打印預覽
 ::PostMessage(m_pPrintThread- >m_pPrintFrame- > GetActiveView()- >m_hWnd,WM_USER_PREVIEW,0,0);
}
  在PrintView.h中添加#define WM_USER_PREVIEW WM_USER+10
 
  在PrintView.cpp中的消息映射中添加ON_MESSAGE(WM_USER_PREVIEW, DoPreview),形成如下:

BEGIN_MESSAGE_MAP(CPrintView, CView)ON_MESSAGE(WM_USER_PREVIEW, DoPreview)
//
{{AFX_MSG_MAP(CPrintView)
//
}}
AFX_MSG_MAPEND_MESSAGE_MAP()
  為類CPrintView添加成員函數LRESULT DoPreview(WPARAM wParam, LPARAM lParam)
 
  實現CPrintView::DoPreview如下:

LRESULT CPrintView::DoPreview(WPARAM wParam, LPARAM lParam){
 // 進入打印預覽
 OnFilePrintPreview();
 return 0;
}
  為CPrintView添加public成員變量COleControl* m_pControlPreview,并初始化如下:

CPrintView::CPrintView(){
 m_pControlPreview=NULL;
 // 初始化要預覽的ActiveX控件類為空
}
  在CPrintView::OnDraw中對控件內容進行顯示:

void CPrintView::OnDraw(CDC* pDC){
 if (m_pControlPreview==NULL)
  pDC->TextOut(0,0,"No Preview View");
 else {
  CRect controlRect;
  m_pControlPreview- >GetClientRect(&controlRect);
  CRect previewRect(0,0,controlRect. Width(),controlRect.Height());
  m_pControlPreview- >OnDraw (pDC,controlRect,controlRect);
 }
}
  用ClassWizard在Automation頁中為CHelloCtrl添加一方法void SetPreviewControl(),外部名亦為SetPreviewControl,對其實現如下:


void CHelloCtrl::SetPreviewControl() {
 // 設置要預覽的View
 CView* pView=m_pPrintThread- > m_pPrintFrame- >GetActiveView();
 CPrintView* pPrintView=(CPrintView*)pView;
 pPrintView- >m_pControlPreview=this;
}
  在ActiveX Control Test Container測試,激活方法次序為DoHello、SetPreviewControl、DoPreview。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
欧美成人禁片在线观看网址| 久久久久成人网站| 国产精品久久77777| 欧美性xxxxhd| 久久精品久久99| 喷水视频在线观看| av免费在线免费观看| 国产成都精品91一区二区三| 亚洲精品无码久久久久久| 少妇搡bbbb搡bbb搡打电话| 日韩精品1区2区| 天天做夜夜操| 日韩欧美一区二区三区免费观看| 成年人网站免费视频| 欧美家庭影院| 91精品国产91久久久久麻豆 主演| 精品处破学生在线二十三| 亚洲女人18毛片水真多| 国产精品久久久久久久天堂第1集| 91久久精品久久国产性色也91| 99久久婷婷国产一区二区三区| 亚洲午夜一区二区| 亚洲在线偷拍自拍| 国产日韩影视精品| 97精品人妻一区二区三区| 人人妻人人爽人人澡人人精品| 91精品国产成人www| 欧美18一19xxx性| 亚洲色图欧美视频| 成a人片亚洲日本久久| 欧美.com| 99精品在免费线偷拍| 国产精品传媒精东影业在线| 亚洲图片欧美激情| 四虎精品一区二区免费| 欧美不卡视频| 丁香久久综合| 香港经典三级在线| 亚洲精品久久7777777| 亚洲7777| 在线看日韩欧美| 亚洲区免费影片| 樱花草涩涩www在线播放| 日本激情视频在线观看| 四虎免费视频| av成人影院在线| 国产剧情一区| 日韩国产大片| 精品乱码一区二区三区| 性直播在线观看| 久草在线免费二| 精品美女久久久久久免费| 黄色在线观看视频网站| 在线国产精品视频| 亚洲人在线视频| 国产美女久久久久久| 久草热久草热线频97精品| 久久99久久精品国产| 日韩一级在线| 亚洲精品伦理在线| 欧日韩一区二区三区| 中文字字幕一区二区三区四区五区| 免费国产麻豆传| 成码无人av片在线观看网站| 古装做爰无遮挡三级聊斋艳谭| 欧美日韩国产免费观看| 欧美日韩国产在线播放| 欧美s码亚洲码精品m码| 日本欧美亚洲| 亚洲一区二区乱码| 国产一区二区三区在线观看免费| 国产精品久久网| 亚洲欧美日韩一区二区三区在线观看| 懂色av粉嫩av蜜臀av| 欧美天天视频| 摸摸摸bbb毛毛毛片| 美女精品一区二区| 咪咪网在线视频| bestiality新另类大全| gogogo高清在线观看免费完整版| 日本在线观看www| 日本久久91av| 正在播放木下凛凛xv99| 亚洲欧美国产三级| jizzjizz少妇亚洲水多| 空姐吹箫视频大全| 久久精品一区二区三区四区五区| 满满都是荷尔蒙韩剧在线观看| 亚洲精品电影网站| 在线播放免费视频| 国产三级精品三级在线观看国产| 漂亮人妻被黑人久久精品| 四虎免费播放| 亚洲男人第一网站| 国产a级全部精品| 亚洲精品mv在线观看| 日韩制服诱惑| 免费看黄资源大全高清| 欧美伊人影院| 精品一区二区三区高清免费不卡| 人妻少妇一区二区| 九色porn蝌蚪| 精品国自产在线观看| 理论片一区二区在线| 蜜桃在线一区| 久久久久久久久毛片| 欧美大片免费播放| 国产精品333| 深爱激情久久| 久久久久久com| 搞黄网站在线看| 色悠悠久久综合网| 日韩福利影院| 91久久国产最好的精华液| 国产精品久久久久婷婷二区次| 久久久久99精品成人片毛片| 免费男女羞羞的视频网站主页在线观看| 伊人五月天婷婷| 午夜影院在线观看欧美| 亚洲自拍偷拍色图| www.色综合| 国产精品黄色片| 理论视频在线| 国产精品二区一区二区aⅴ| 久久91亚洲精品中文字幕奶水| 在线亚洲一区观看| www.国产精品一区| 欧洲黄色一级视频| 麻豆中文字幕在线观看| 3d动漫一区二区三区在线观看| 91成年人视频| 91成人抖音| 中文一区一区三区免费| 亚洲第一成人av| 日韩午夜精品| 日韩精品一区二区三区中文字幕| av资源在线| 91福利免费观看| 在线观看爽视频| 尤物视频最新网址| 99久久久免费精品国产一区二区| 99re在线观看视频| 亚洲最大的免费| 91社区在线| 国产精品va在线播放| 羞羞网站在线| 夜夜夜操操操| 久久99精品国产| 亚洲精品乱码久久久久久自慰| 精品中文字幕在线观看| 亚洲午夜精品视频| 99视频有精品高清视频| 国产熟女精品视频| 和岳每晚弄的高潮嗷嗷叫视频| 色综合视频二区偷拍在线| 亚洲一区二区在线观看视频| 2020国产成人综合网| 色五月激情五月| 99精品热视频| 麻豆传媒在线免费| 在线观看二区| 日韩大尺度黄色| 中文字幕免费一区| 午夜欧美在线| 精品一区二区久久久| 亚洲欧洲美洲一区二区三区| 亚洲美女视频在线观看| 亚洲天堂久久| 色先锋av资源中文字幕| 亚洲欧美激情一区二区| 国产伦精品一区二区三区在线观看| 亚洲AV无码成人片在线观看| 一二三四区精品视频| 最新国产精品视频| 国产一级黄色大片| 伊人222成人综合网| 51国偷自产一区二区三区的来源| 妞干网这里只有精品| 都市激情久久久久久久久久久| 久热国产精品| 狠狠狠综合7777久夜色撩人| 日韩国产欧美区| 很黄的网站在线观看| 进去里视频在线观看| 美女网站视频色| av网站免费播放| 免费看av在线| 精品福利在线导航| 日本精品一区二区三区在线播放| 日韩精品永久网址| 国产精品123区| 亚洲国产成人精品一区二区三区| 1024欧美极品| 亚洲国产高清在线观看| 欧美特黄一区| 69堂成人精品视频免费| 国产日韩精品一区二区浪潮av| 男女高潮又爽又黄又无遮挡| 粉嫩一区二区三区在线观看| 免费国产自久久久久三四区久久| 高清美女视频一区| 亚洲区一区二区三| 国产精品美女久久久免费| 国产日韩欧美综合精品| 麻豆精品视频入口| 欧美日韩一区二区精品| 亚洲欧美日韩国产| 国产精品久久久久永久免费看| 九九九伊在线综合永久| 女人色在线免费视频| 国产免费黄色| 黄色网页在线免费观看| 国产综合视频| 亚洲黄色小说网址| 久久精品日韩无码| 亚洲综合激情小说| 大陆极品少妇内射aaaaaa| 三级影片在线观看欧美日韩一区二区| 国产老妇伦国产熟女老妇视频| 色哟哟一区二区三区| 黄页在线观看视频| 精品免费av| 中文字幕制服丝袜成人av| 免费一级大片| 图片区小说区区亚洲五月| 一二三四中文在线| 麻豆明星ai换脸视频| 精品一区2区三区| 国产日产精品一区二区三区四区| 久久精品视频在线观看| 亚洲精品一区二区三区蜜桃下载| 午夜久久久久久久久久久| 欧美伦理视频在线观看| 最新天堂中文在线| 免费毛片a线观看| 欧美久久久久| 99视频精品免费视频| 色男人天堂av| 欧美午夜精品一区二区蜜桃| 色婷婷av一区二区三区gif| 亚洲欧美日韩久久久久久| 久久久久久中文| 国产精品国产三级国产有无不卡| 欧美激情在线一区二区三区| 午夜精品视频在线| 中文字幕成人一区| 97精品在线播放| 日韩精品影音先锋| 黄网站免费在线播放| 精品理论电影| 97精品久久久午夜一区二区三区| 亚洲人成在线播放网站岛国| 亚洲精华国产欧美| 91亚洲精品视频在线观看| 亚洲香蕉伊综合在人在线视看| 国产欧美久久久精品免费| 国产在线一区二区三区四区| 欧美交a欧美精品喷水| 国产精品国产精品| a毛片在线播放| 日韩在线播放av| 免费视频国产一区| 写真福利理论片在线播放| 99久久一区三区四区免费| 成人美女大片| 成人亚洲欧美| 1000部国产精品成人观看| 免费97视频在线精品国自产拍| 成年网站免费入口在线观看| 亚洲美女高潮久久久| 久久综合中文字幕| 日本免费看黄色| 中国一级片黄色一级片黄| av在线免费不卡| 国产美女免费无遮挡| 91九色美女在线视频| 日韩影片在线观看| 久久精品视频免费观看| 国产精品麻豆| 色婷婷激情综合| 青青青青在线| 成人欧美一区二区三区的电影| 日韩精品午夜| 最新视频 - x88av| 日韩高清在线观看| 东京热无码av男人的天堂| 日本一不卡视频| 日韩欧美四区| 欧美激情国产精品日韩| 亚洲成人av电影在线| 午夜爱爱毛片xxxx视频免费看| 日韩一级完整毛片| 九九爱免费视频在线观看| 久久免费精品国产久精品久久久久| 国产精品青青在线观看爽香蕉| 日韩和欧美的一区| 国产成人无码av在线播放dvd| 日韩精品久久一区二区| 91高清视频免费| 精品久久久久久电影| 国产a级黄色片| 欧美疯狂性受xxxxx喷水图片| 可以免费看的av毛片| 性xx无遮挡| 9久久婷婷国产综合精品性色| v888av成人| 亚洲 另类 春色 国产| av动漫在线免费观看| 免费一级欧美片在线观看| 91aaa精品| 日韩成人av网站| 欧美多人乱p欧美4p久久| 亚洲va在线va天堂成人| 人人超在线公开视频| 国产精品视频一区二区在线观看| 欧美乱妇高清无乱码| 丝袜a∨在线一区二区三区不卡| 四虎永久国产精品| 亚洲成人中文在线| 久久电影网站中文字幕| www.一区二区三区| 亚洲欧洲av一区二区三区久久| 蜜桃色永久入口| 污视频网站在线看| 黄色片一区二区三区| 日韩一区二区三区在线免费观看| 美女爆乳18禁www久久久久久| 国产福利电影在线播放|