国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

什么是網(wǎng)絡(luò)營銷行為分析滎陽seo推廣

什么是網(wǎng)絡(luò)營銷行為分析,滎陽seo推廣,公司取名軟件,wordpress 嵌入pdf目錄 一.創(chuàng)建單文檔項目 二.消息映射機(jī)制 三.WM_PAINT消息觸發(fā) 四.CVIEW類 五.設(shè)備上下文 六.資源類和資源的關(guān)系 七.畫線,矩形 八.畫布 九.畫筆 十.畫刷 十一.利用TRACE打印日志 十二.文本編程 十三.ID號 十四.菜單欄 十五.菜單命令路由 十六.工具…

目錄

一.創(chuàng)建單文檔項目

二.消息映射機(jī)制

三.WM_PAINT消息觸發(fā)

四.CVIEW類

五.設(shè)備上下文

六.資源類和資源的關(guān)系

七.畫線,矩形

八.畫布

九.畫筆

十.畫刷

十一.利用TRACE打印日志

十二.文本編程

十三.ID號

十四.菜單欄

十五.菜單命令路由

十六.工具欄


一.創(chuàng)建單文檔項目

應(yīng)用程序選擇

文檔模板屬性

用戶界面功能

高級功能

生成的類,會生成 APP,VIEW,DOC,MainFrame

因為這兩個項目在同一個解決方案下面,所以把MFCPaint設(shè)置為啟動項目

編譯MFCPaint項目

二.消息映射機(jī)制

在 MFCPaintView.h 文件中記錄了 MFCPaintView 類的原型,在 MFCPaintView.cpp 中記錄 MFCPaintView 類的實現(xiàn),虛函數(shù)的實現(xiàn),消息映射機(jī)制。源碼如下:

BEGIN_MESSAGE_MAP(CMFCPaintView, CView)ON_WM_CONTEXTMENU()ON_WM_RBUTTONUP()ON_WM_LBUTTONDOWN()ON_WM_LBUTTONUP()ON_WM_MOUSEMOVE()ON_WM_CREATE()ON_WM_CHAR()
END_MESSAGE_MAP()

一些消息比如 WM_PAINT這樣的消息又框架封裝,自動處理這個消息映射到OnDraw函數(shù)處理,這個函數(shù)在CView中是虛函數(shù),MFCPaintView中仍然是虛函數(shù),但在MFCPaintView實例化時進(jìn)行了實現(xiàn)。還有一些消息的處理需要依賴消息映射表來處理

在 BEGIN_MESSAGE_MAP 宏中,CMFCPaintView 是接收消息的類,而 CView 則是基類。

  1. CMFCPaintView:表示接收消息的類,也稱為派生類。在這個例子中,CMFCPaintView 是自定義的視圖類,是從 MFC 框架提供的 CView 類派生而來的。CMFCPaintView 類擴(kuò)展了 CView 類的功能,并可以添加自定義的成員函數(shù)、變量和邏輯。

  2. CView:表示基類,也稱為父類或者超類。在這個例子中,CView 是 MFC 框架中的一個類,用于實現(xiàn)視圖。它提供了一些基本的功能和接口,包括繪圖、響應(yīng)用戶輸入、窗口管理等。CMFCPaintView 類通過派生自 CView 類,繼承了 CView 類的功能,并可以在派生類中進(jìn)行擴(kuò)展和自定義。

通過將 CMFCPaintView 作為接收消息的類,我們可以在 CMFCPaintView 類中定義消息處理函數(shù),并將它們與相應(yīng)的消息進(jìn)行關(guān)聯(lián)。當(dāng)窗口接收到對應(yīng)的消息時,框架會自動調(diào)用相應(yīng)的處理函數(shù)來處理該消息。

而 CView 則是作為基類,在宏的第二個參數(shù)中提供給 BEGIN_MESSAGE_MAP,它是處理消息的起點,當(dāng)消息映射表中的消息沒有匹配到具體的處理函數(shù)時,框架會繼續(xù)向基類查找,直到找到匹配的處理函數(shù)或者到達(dá)消息映射表的末尾。這樣的設(shè)計使得消息處理可以在派生類和基類中靈活地進(jìn)行組織和劃分。

給消息映射表添加映射,MFCPaintView右鍵,選擇屬性,選擇消息,選擇想要添加的消息即可

比如添加 WM_CHAR消息處理,就會在MFCPaintView中添加一個函數(shù)

afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags);

afx_msg 是 MFC 框架中的一個宏,用于聲明一個消息處理函數(shù)。在 MFC 中,消息處理函數(shù)需要使用 afx_msg 宏進(jìn)行聲明,以便正確連接到消息映射機(jī)制。

在MFCPaintView中就會添加一個方法。

三.WM_PAINT消息觸發(fā)

WM_PAINT 消息是 Windows 操作系統(tǒng)發(fā)送給窗口的一個重要消息,它用于通知窗口需要進(jìn)行繪圖操作。當(dāng)窗口的客戶區(qū)域(即窗口內(nèi)部可以進(jìn)行繪圖操作的區(qū)域)需要刷新或重繪時,Windows 就會發(fā)送 WM_PAINT 消息給窗口,以便窗口進(jìn)行相應(yīng)的繪圖操作。

WM_PAINT 消息的觸發(fā)通常由以下幾種情況引起:

  1. 窗口首次創(chuàng)建:當(dāng)一個窗口首次被創(chuàng)建時,Windows 會自動發(fā)送 WM_PAINT 消息給窗口,以便對窗口進(jìn)行初始的繪圖操作。

  2. 窗口被激活:當(dāng)一個窗口從非激活狀態(tài)轉(zhuǎn)換為激活狀態(tài)時,Windows 會發(fā)送 WM_PAINT 消息給窗口,以便窗口可以重新繪制自己。

  3. 窗口尺寸變化:當(dāng)窗口的大小發(fā)生變化時,Windows 會發(fā)送 WM_PAINT 消息給窗口,以便窗口可以根據(jù)新的大小來重新繪制自己。

  4. 窗口重疊變化:當(dāng)窗口與其他窗口發(fā)生重疊變化時,或者其他窗口遮蓋了部分窗口的客戶區(qū)域時,Windows 會發(fā)送 WM_PAINT 消息給被遮蓋的窗口,以便窗口可以重新繪制被遮蓋的區(qū)域。

  5. 窗口被顯式地要求重繪:開發(fā)人員可以通過調(diào)用 InvalidateRectInvalidateRgn 函數(shù)來顯式地要求窗口進(jìn)行重繪操作。當(dāng)這些函數(shù)被調(diào)用時,Windows 會發(fā)送 WM_PAINT 消息給窗口。

當(dāng)窗口接收到 WM_PAINT 消息時,通常會執(zhí)行以下操作:

  1. 開始繪圖操作:通過調(diào)用 BeginPaint 函數(shù)來獲取一個設(shè)備上下文(DC),以便進(jìn)行后續(xù)的繪圖操作。

  2. 繪制內(nèi)容:使用獲取到的設(shè)備上下文進(jìn)行繪圖操作,包括繪制圖形、文本、圖像等。

  3. 結(jié)束繪圖操作:通過調(diào)用 EndPaint 函數(shù)來釋放設(shè)備上下文,并通知系統(tǒng)繪圖操作已完成。

在MFC消息映射表沒有WM_PAINT的映射,WM_PAINT是如何調(diào)用OnDraw()函數(shù)處理?

在 MFC 中,如果消息映射表中沒有 WM_PAINT 的映射,框架會自動調(diào)用 CWnd::DefWindowProc 函數(shù)來處理該消息,進(jìn)而調(diào)用 OnPaint 函數(shù)來進(jìn)行繪圖操作。所以,即使沒有顯式地映射 WM_PAINT 消息,我們也可以在 OnDraw 函數(shù)中實現(xiàn)窗口繪圖。

四.CVIEW類

CView 類是 MFC(Microsoft Foundation Classes)框架中的一個基類,用于實現(xiàn)視圖(View)的功能。在 MFC 應(yīng)用程序中,視圖通常用于顯示和處理用戶界面的可視化部分。

CView 類是從 CWnd 類派生而來的,因此它繼承了 CWnd 類的一些基本窗口功能。CView 類主要用于以下幾個方面的功能:

  1. 繪圖:CView 類提供了 OnDraw 函數(shù)用于繪制視圖內(nèi)容。開發(fā)人員可以重寫該函數(shù),在其中使用 GDI(圖形設(shè)備接口)繪制圖形、文本、位圖等。繪圖操作可以響應(yīng)窗口消息(如 WM_PAINT),也可以通過代碼觸發(fā)。

  2. 響應(yīng)用戶輸入:CView 類可以處理鼠標(biāo)、鍵盤等用戶輸入消息。開發(fā)人員可以重寫 OnMouse...、OnKey... 等函數(shù)來響應(yīng)相應(yīng)的用戶輸入事件,并執(zhí)行相應(yīng)的操作。

  3. 布局管理:CView 類可以用于管理視圖的布局。開發(fā)人員可以通過調(diào)整控件的位置、大小、對齊方式等屬性,來控制視圖元素的布局和外觀。

  4. 與文檔類的交互:CView 類通常與文檔類(CDocument)緊密相關(guān)。視圖類負(fù)責(zé)將文檔類中的數(shù)據(jù)呈現(xiàn)給用戶,并將用戶的修改反饋給文檔類。開發(fā)人員可以通過重寫 OnUpdate 函數(shù),實現(xiàn)視圖的數(shù)據(jù)更新和刷新。

  5. 與框架交互:CView 類還可以與 MFC 框架中的其他類進(jìn)行交互,如與窗口類(CFrameWnd)進(jìn)行通信、與菜單類(CMenu)進(jìn)行菜單操作、與工具欄類(CToolBar)進(jìn)行工具條操作等。

也就是說CVIEW主要控制程序的視圖元素。使用VS2019時就會自動的生成一個類繼承自這個類,我們在編寫程序時,只需要注意處理消息即可,在類中對消息處理的實現(xiàn),最后往往會再調(diào)用一個CVIEW中的消息對應(yīng)處理方法。因為系統(tǒng)往往只會給一次消息,對這個消息可以有多個類進(jìn)行處理,而且處理都不一樣,這就是再調(diào)用一次的作用。

五.設(shè)備上下文

設(shè)備上下文(Device Context,簡稱 DC)是一個抽象概念,用于表示用于繪圖和輸出的設(shè)備環(huán)境。設(shè)備上下文封裝了與設(shè)備相關(guān)的繪圖表面、畫筆、字體、剪輯區(qū)域等信息,提供了一組函數(shù)和屬性,用于在特定設(shè)備上進(jìn)行繪圖操作。

設(shè)備上下文是由操作系統(tǒng)提供的,它可以代表不同類型的設(shè)備,如顯示器、打印機(jī)、屏幕緩沖區(qū)等。每個設(shè)備上下文都有自己的屬性和功能,可以通過設(shè)備上下文進(jìn)行繪制、填充、剪輯、文本輸出等操作。

在 Windows 應(yīng)用程序開發(fā)中,設(shè)備上下文通常用于使用 GDI(圖形設(shè)備接口)進(jìn)行繪圖。GDI 提供了一組函數(shù)和數(shù)據(jù)結(jié)構(gòu),用于在設(shè)備上進(jìn)行繪圖操作。設(shè)備上下文是 GDI 中的核心概念,通過設(shè)備上下文可以獲取和操作設(shè)備相關(guān)的繪圖資源,如畫筆、畫刷、字體等。

在 MFC(Microsoft Foundation Classes)框架中,設(shè)備上下文由 CDC(CDC 類型的指針)表示。CDC 類封裝了設(shè)備上下文操作的功能,例如繪圖、調(diào)色板管理、文本輸出等。通過獲取設(shè)備上下文指針,可以使用 CDC 類的成員函數(shù)來進(jìn)行相應(yīng)的繪圖操作。

設(shè)備上下文的使用是有一定規(guī)則的,例如在使用完設(shè)備上下文后,需要釋放相關(guān)資源,避免資源泄露。通常在獲取設(shè)備上下文之后,需要調(diào)用 ReleaseDC() 或者 DeleteDC() 函數(shù)來釋放設(shè)備上下文。

獲取設(shè)備上下文

void CMyView::OnDraw(CDC* pDC)
{// 獲取設(shè)備上下文指針CDC* pDC = GetDC();// 使用設(shè)備上下文進(jìn)行繪圖操作// ...// 釋放設(shè)備上下文資源ReleaseDC(pDC);
}

CDC類中提供了很多系統(tǒng)調(diào)用,如獲取資源,設(shè)置資源等等。

六.資源類和資源的關(guān)系

資源則是具體的實際資源,可以是文件、圖像、音頻、數(shù)據(jù)庫連接等等,它是應(yīng)用程序所需要的資料或者工具。資源可以以不同的形式存在,例如在內(nèi)存中、硬盤上、網(wǎng)絡(luò)上等。它們可以被資源類所管理和操作。

資源類通過對資源進(jìn)行封裝和抽象,提供了一種統(tǒng)一的接口和管理方式,使得應(yīng)用程序能夠更方便地訪問和利用資源。資源類可以對資源進(jìn)行創(chuàng)建、加載、釋放、更新等操作,同時還可以提供一些額外的功能,如緩存、安全性控制、多線程支持等。

資源類就像是對資源所用的一些屬性等信息進(jìn)行抽象,可以提供對類實例化設(shè)置屬性來設(shè)置資源的屬性,再通過系統(tǒng)調(diào)用來使用資源,釋放資源。

七.畫線,矩形

想要實現(xiàn)畫線功能,需要捕捉到鼠標(biāo)左鍵摁下,鼠標(biāo)左鍵抬起的位置,就可以繪制處一條直線。

還可以實現(xiàn)更復(fù)雜的功能,當(dāng)鼠標(biāo)左鍵摁下后,不抬起,鼠標(biāo)移動,同時會劃出一條線跟隨鼠標(biāo)移動。View相關(guān)的類是控制界面的繪制,需要在其中寫代碼

在 MFCPaintView.h 文件中,是MFCPaintView這個類,給該類加上幾個屬性

	CPoint m_start;// 起始點,用于繪制線條的CPoint m_cur; // 當(dāng)前點,用于繪制線條CPoint m_ptStop; // 終止點,用于繪制線條BOOL m_bStatus; // 繪制狀態(tài),用于繪制線條CString m_strText; // 用戶輸入的字符串

有意思的時,CPoint這個類是鼠標(biāo)的坐標(biāo),繼承自一個結(jié)構(gòu)體

typedef struct tagPOINT
{LONG  x;LONG  y;
} POINT, *PPOINT, NEAR *NPPOINT, FAR *LPPOINT;

處理鼠標(biāo)摁下消息,記錄線的起始點;處理鼠標(biāo)移動的消息,記錄一下臨時值,線的臨時終點;處理鼠標(biāo)抬起的消息,記錄線的終點;

現(xiàn)在討論一下實現(xiàn)的思路:

  • OnLButtonDown()處理鼠標(biāo)左鍵摁下,記錄起始點;同時設(shè)置狀態(tài)值為TRUE,表示鼠標(biāo)已經(jīng)摁下,FALSE,表示鼠標(biāo)沒有抬起;
  • OnMouseMove()處理鼠標(biāo)移動消息,判斷狀態(tài)值,未抬起。就記錄臨時重點,調(diào)用?InvalidateRect(NULL); 進(jìn)行界面重繪;
  • OnLButtonUp()處理鼠標(biāo)左鍵抬起,記錄線的終點,調(diào)用?InvalidateRect(NULL); 進(jìn)行界面重繪,修改狀態(tài)值;
// CMFCPaintView 消息處理程序void CMFCPaintView::OnLButtonDown(UINT nFlags, CPoint point)
{// TODO: 在此添加消息處理程序代碼和/或調(diào)用默認(rèn)值m_start = point;m_bStatus = TRUE;CView::OnLButtonDown(nFlags, point);
}void CMFCPaintView::OnLButtonUp(UINT nFlags, CPoint point)
{// TODO: 在此添加消息處理程序代碼和/或調(diào)用默認(rèn)值m_ptStop = point;//CDC* pDC = GetDC();// 1. 什么是上下文?// 2. 什么是設(shè)備上下文?//pDC->MoveTo(m_start);//pDC->LineTo(m_stop);//ReleaseDC(pDC);InvalidateRect(NULL);m_bStatus = FALSE;CView::OnLButtonUp(nFlags, point);
}void CMFCPaintView::OnMouseMove(UINT nFlags, CPoint point)
{// TODO: 在此添加消息處理程序代碼和/或調(diào)用默認(rèn)值if (m_bStatus){m_cur = point;InvalidateRect(NULL); // 調(diào)用OnDraw,界面重回
// 		CDC* pDC = GetDC();
// 		pDC->MoveTo(m_start);
// 		pDC->LineTo(point);
// 		ReleaseDC(pDC);}CView::OnMouseMove(nFlags, point);
}

InvalidateRect(NULL)是一種觸發(fā)重繪的方法,它可以使窗口客戶區(qū)域全部無效,并強(qiáng)制觸發(fā)WM_PAINT消息,以便應(yīng)用程序?qū)蛻魠^(qū)進(jìn)行重繪。

具體而言,InvalidateRect(NULL)函數(shù)會將整個窗口客戶區(qū)域標(biāo)記為無效(即需要重新繪制),并記錄下這個無效區(qū)域的位置和大小。然后,它會向系統(tǒng)發(fā)送WM_PAINT消息,以通知應(yīng)用程序客戶區(qū)需要重新繪制。

在應(yīng)用程序收到WM_PAINT消息后,它會根據(jù)無效區(qū)域的位置和大小,重新繪制客戶區(qū)。

需要指出的是,InvalidateRect(NULL)函數(shù)通常是在需要強(qiáng)制更新整個客戶區(qū)時使用的,因為它會將整個客戶區(qū)標(biāo)記為無效,即使只有一小部分區(qū)域需要更新。如果只需要更新某個特定的區(qū)域,則可以使用InvalidateRect()函數(shù)的其他重載版本,它們可以指定需要更新的區(qū)域。

在OnDraw來實現(xiàn)畫直線

    // 當(dāng)像素超過1時,線型會失效CPen pen(PS_DASHDOT, 1, RGB(255, 0, 0));// 返回一個筆CPen* pOldPen = pDC->SelectObject(&pen);CPoint start = m_start, cur = m_cur;start.y--;if (m_bStatus){cur.y--;pDC->MoveTo(m_start);pDC->LineTo(m_cur);pDC->MoveTo(start);pDC->LineTo(cur);}else{cur = m_cur;cur.y--;pDC->MoveTo(m_start);pDC->LineTo(m_cur);pDC->MoveTo(start);pDC->LineTo(cur);}// 還原原來的筆pDC->SelectObject(pOldPen);

繪制矩形

	if (m_bStatus){// 選擇NULL就會用上下文的刷子,不選空就會用指定的刷子else{pDC->FillRect(CRect(m_start, m_ptStop), NULL);}

八.畫布

在MFC中,畫布(Canvas)是指一個表示繪圖區(qū)域的設(shè)備上下文(Device Context,DC),它提供了繪制圖形和文本的基本操作。

畫布通常與窗口客戶區(qū)關(guān)聯(lián),它對應(yīng)于屏幕上的一個矩形區(qū)域,用于繪制窗口的內(nèi)容。在MFC中,可以通過調(diào)用CWnd類的GetDC函數(shù)來獲取當(dāng)前窗口客戶區(qū)的設(shè)備上下文句柄,從而獲得畫布的訪問權(quán)。

一旦獲取了畫布的設(shè)備上下文句柄,就可以使用GDI(圖形設(shè)備接口)函數(shù)來繪制各種圖形和文本。例如,可以使用LineTo函數(shù)在畫布上繪制一條直線,使用Rectangle函數(shù)繪制矩形,使用TextOut函數(shù)繪制文本等。

九.畫筆

實例化畫筆類CPen,并設(shè)置到CDC中,會返回以一個舊的畫筆

    CPen pen(PS_DASHDOT, 1, RGB(255, 0, 0));// 返回一個筆CPen* pOldPen = pDC->SelectObject(&pen);

繪制完成后,需要恢復(fù)

pDC->SelectObject(pOldBrush);

十.畫刷

實例化畫刷類CBrush,并設(shè)置到CDC中,會返回以一個舊的畫刷

    CBrush brush(RGB(255, 0, 0)), brush2(RGB(0, 255, 0));CBrush* pOldBrush = pDC->SelectObject(&brush);

繪制完成后,需要恢復(fù)

pDC->SelectObject(pOldBrush);

十一.利用TRACE打印日志

	LOGPEN logpen;pOldPen->GetLogPen(&logpen);TRACE("style = %d color = %08x width = %d\r\n",logpen.lopnStyle, logpen.lopnColor, logpen.lopnWidth);

LOGPEN logpen; 是一個定義變量的語句,它聲明了一個名為logpen的變量,并指定了它的數(shù)據(jù)類型為LOGPEN結(jié)構(gòu)體類型。

在Windows GDI中,LOGPEN結(jié)構(gòu)體用于描述一個邏輯畫筆的屬性,包括畫筆樣式、寬度和顏色等信息。LOGPEN結(jié)構(gòu)體的定義如下:

typedef struct tagLOGPEN {UINT    lopnStyle;      // 畫筆樣式POINT   lopnWidth;      // 畫筆寬度(當(dāng)樣式為PS_GEOMETRIC時,表示線段兩端的寬度)COLORREF lopnColor;     // 畫筆顏色
} LOGPEN;

十二.文本編程

模仿寫一個文本編輯器

響應(yīng)字符消息WM_CHAR

void CMFCPaintView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{// TODO: 在此添加消息處理程序代碼和/或調(diào)用默認(rèn)值TRACE("%c\r\n", nChar);CClientDC dc(this);m_strText += (TCHAR)nChar;InvalidateRect(NULL);CView::OnChar(nChar, nRepCnt, nFlags);
}

每當(dāng)接受一個新字符就觸發(fā)重繪,在OnDraw進(jìn)行實現(xiàn)

每次都是要遍歷真?zhèn)€字符串,未匹配到換行符就放入到sub中;匹配到換行符,把先前sub中的打印出來,同時調(diào)用CSIZE的GetTextExtent()方法,獲取此時 | 應(yīng)該放置的位置并調(diào)用全局的方法SetCaretPos(sz.cx + 2, y);重置位置。

    CString sub = _T("");int y = 0;for (int i = 0; i < m_strText.GetLength(); i++){if ((m_strText.GetAt(i) == '\n') || (m_strText.GetAt(i) == '\r')){pDC->TextOut(0, y, sub);CSize sz = pDC->GetTextExtent(sub);sub.Empty();y += sz.cy + 2;continue;}sub += m_strText.GetAt(i);}if (sub.IsEmpty() == false)pDC->TextOut(0, y, sub); //Textout()只能顯示單行文本CSize sz = pDC->GetTextExtent(sub);//方式一://CPoint pt; //CPoint 是Point的子類//pt.y = y;//pt.x = sz.cx + 2;//SetCarePos(pt.x, pt.y);// 方式二://SetCarePos(CPoint(sz.cx + 2, y));//方式三:::SetCaretPos(sz.cx + 2, y);

CSize sz = pDC->GetTextExtent(sub); 是一個將字符串繪制到設(shè)備上下文(pDC)的語句,并返回繪制的文本區(qū)域的大小。

十三.ID號

在MFC(Microsoft Foundation Classes)中,資源的ID號用于唯一標(biāo)識和引用資源。MFC中的資源可以是窗口、對話框、菜單、圖標(biāo)、位圖、字符串等。

資源的ID號具有以下作用:

  1. 標(biāo)識資源:每個資源在MFC中都有一個唯一的ID號,通過ID號可以標(biāo)識不同的資源。例如,對話框資源有一個ID號,可以通過該ID號在代碼中引用對話框資源。

  2. 引用資源:通過資源的ID號,可以在代碼中引用并使用該資源。通過調(diào)用MFC提供的函數(shù)或宏,可以根據(jù)資源的ID號加載、顯示、修改或處理相應(yīng)的資源。

  3. 管理資源:通過ID號,可以方便地管理和組織資源。在代碼中,可以使用資源的ID號進(jìn)行資源的加載、卸載、創(chuàng)建等操作,并且可以使用ID號將不同類型的資源關(guān)聯(lián)起來。

  4. 多語言支持:資源的ID號對于實現(xiàn)多語言支持非常重要。通過為不同語言的資源定義不同的ID號,可以根據(jù)當(dāng)前的語言環(huán)境加載相應(yīng)的資源,并實現(xiàn)多語言界面。

十四.菜單欄

在資源視圖->IDR_MAINFRAME中可以編輯菜單欄

主菜單是沒有ID的;子菜單可以設(shè)置

給菜單添加響應(yīng)函數(shù),在類視圖中找打MFCPaintView,選擇類向?qū)?#xff0c;選擇消息,選擇添加處理程序

方法被添加

查看消息映射表,消息翻譯為WM_COMMAND再進(jìn)行區(qū)分。

十五.菜單命令路由

有view和doc,觸發(fā)了view,但是沒有觸發(fā)doc

去掉view類的菜單響應(yīng)函數(shù),打開doc類的響應(yīng)函數(shù)。觸發(fā)view類,不觸發(fā)doc ??view>doc

去掉doc類的菜單響應(yīng)函數(shù),打開框架類的響應(yīng)函數(shù),觸發(fā)doc類,不觸發(fā)app ????doc>框架

去掉app類的菜單響應(yīng)函數(shù),打開app類的響應(yīng)函數(shù)框架》app

響應(yīng)菜單命令順序:View> doc >框架 >app

十六.工具欄

工具欄資源就在資源視圖 TOOLBAR中

添加一個工具

選中最后一個空的,手動繪制

需要注意,這個需要繪制兩個,填入ID,處理方式與菜單一樣。

刪除工具,拖著方塊移出區(qū)域即可。

http://aloenet.com.cn/news/37550.html

相關(guān)文章:

  • 電腦如何創(chuàng)建網(wǎng)頁優(yōu)化落實疫情防控新十條
  • 網(wǎng)站管理建設(shè)的總結(jié)中層管理者培訓(xùn)課程有哪些
  • 廣州市網(wǎng)站開發(fā)搜索引擎有哪些分類
  • 企業(yè)網(wǎng)站實驗報告網(wǎng)站優(yōu)化排名易下拉軟件
  • 企業(yè)官方網(wǎng)站認(rèn)證友情鏈接有哪些作用
  • 湖北網(wǎng)站設(shè)計制作開發(fā)廈門網(wǎng)站到首頁排名
  • 網(wǎng)站注冊時間網(wǎng)站點擊量 哪里查詢
  • 深圳網(wǎng)站seo 樂云踐新常用的網(wǎng)絡(luò)營銷工具
  • 靜態(tài)網(wǎng)站如何做自適應(yīng)移動端aso優(yōu)化工具
  • it外包人員有多慘涇縣網(wǎng)站seo優(yōu)化排名
  • 高質(zhì)量的合肥網(wǎng)站建設(shè)百度高級搜索頁面
  • 局域網(wǎng)內(nèi)做網(wǎng)站優(yōu)化seo廠家
  • 濰坊制作網(wǎng)站的公司搜索引擎調(diào)詞軟件
  • 中企動力做網(wǎng)站怎么樣國家高新技術(shù)企業(yè)查詢
  • 高唐建筑公司網(wǎng)站seo關(guān)鍵詞優(yōu)化要多少錢
  • 紹興做網(wǎng)站哪家好在線營銷推廣
  • 風(fēng)機(jī)網(wǎng)站怎么做南寧seo推廣服務(wù)
  • 企業(yè)門戶網(wǎng)站開發(fā)平臺的設(shè)計與實現(xiàn)櫻桃電視劇西瓜視頻在線觀看
  • django做的網(wǎng)站源碼百度網(wǎng)站怎么優(yōu)化排名
  • 網(wǎng)站建設(shè) 順德河南網(wǎng)站建設(shè)公司哪家好
  • 眉山政府網(wǎng)站建設(shè)seo網(wǎng)站推廣優(yōu)化
  • 如何查詢網(wǎng)站的建站工具seo門戶網(wǎng)站
  • 溫州網(wǎng)站建設(shè)成功案例山西seo基礎(chǔ)教程
  • 學(xué)院網(wǎng)站的作用中國疫情最新數(shù)據(jù)
  • 觸屏版網(wǎng)站開發(fā)樣式互聯(lián)網(wǎng)推廣與營銷
  • 沒有網(wǎng)站可以做淘寶客嗎搜索引擎的設(shè)計與實現(xiàn)
  • 做招商類型的網(wǎng)站怎么制作網(wǎng)站二維碼
  • 江西省住房和城鄉(xiāng)建設(shè)部網(wǎng)站市場營銷推廣方案
  • 中國做國外的網(wǎng)站廣東疫情最新消息今天又封了
  • 做網(wǎng)站主流軟件是php嗎什么是淘寶seo