在mfc中創(chuàng)建應(yīng)用程序的資源_第1頁(yè)
已閱讀1頁(yè),還剩64頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、1,第10章 在MFC中創(chuàng)建應(yīng)用程序的資源,2,在Windows的可執(zhí)行文件中,資源是獨(dú)立于代碼的,使用單獨(dú)的Resource Compiler進(jìn)行編譯,并嵌入到可執(zhí)行文件中。 在編程過程中,代碼是可復(fù)用的,資源也是可復(fù)用的,通過資源的“導(dǎo)入”和“導(dǎo)出”功能來實(shí)現(xiàn)資源的可復(fù)用。 程序的國(guó)際化,也是通過資源來實(shí)現(xiàn)的。,3,10.1獲取資源的一個(gè)樣例,,,查看Windows(98/2000)系統(tǒng)中自帶的紙牌游戲中的圖片

2、資源: c:\Windows\cards.dll 或 c:\WINNT\System32,4,10.2 資源的應(yīng)用,5,10.2.1 菜單資源的使用,菜單是圖形用戶界面的重要組成部分,菜單可以使用戶直觀方便地操作程序,為用戶提供各種功能。 在標(biāo)準(zhǔn)的Windows應(yīng)用程序中,菜單通常有三類:系統(tǒng)菜單、程序主菜單和快捷菜單。經(jīng)常使用程序主菜單。主菜單如下圖所示:,6,創(chuàng)建一個(gè)“計(jì)算”菜單,利用MFC創(chuàng)建菜單資源。(1)

3、創(chuàng)建一個(gè)基于單文檔的應(yīng)用程序(2)選擇Resource View | Menu|IDR_MAINFRAME,通過可視化編輯來創(chuàng)建菜單資源。,7,Hello World!,ID_OPER_REDID_OPER_GREENID_OPER_BLUE,ID_OPER_SHOW,【例10-1】創(chuàng)建一個(gè)基于單文檔結(jié)構(gòu)的應(yīng)用程序,在視圖中顯示一行字符串“Hello World!”,通過建立包含“顯示”和“顏色選擇”兩個(gè)菜單項(xiàng)的“操作”菜單來

4、控制字符串,菜單項(xiàng)“顯示”用以控制字符串的顯示與否,菜單項(xiàng)“顏色選擇”中包含一個(gè)級(jí)連菜單,內(nèi)容為“紅”、“綠”和“藍(lán)”三個(gè)菜單項(xiàng)。,8,在My_ResView.h中的 class CMy_ResView : public Cview中的public處加入如下聲明: COLORREF m_nColors[3]; //用戶可選顏色數(shù)組DWORDm_nColorIndex; // 當(dāng)前所選顏色索引CStr

5、ingm_strShow; // 顯示的內(nèi)容 BOOL m_bShow; // 是否顯示,9,在CMy_ResView::CMy_ResView()中初始化成員變量:m_nColors[0] = RGB(255,0,0);m_nColors[1] = RGB(0,255,0);m_nColors[2] = RGB(0,0,255);m_nColorIndex = 0;m_

6、strShow = "Hello World!";m_bShow = TRUE;,10,在void CMy_ResView::OnDraw(CDC* pDC)中加入如下代碼繪制字符串: if(m_bShow){pDC->SetTextColor(m_nColors[m_nColorIndex]); // 設(shè)置輸出字符串顏色pDC->TextOut(100,100,m_strSho

7、w); // 輸出字符串},11,若編譯運(yùn)行程序,可看到程序輸出一行紅色的字符串,但顏色設(shè)置菜單項(xiàng)還沒有起作用 下面將介紹如何通過菜單項(xiàng)來控制程序,在介紹菜單項(xiàng)的響應(yīng)時(shí),必須先了解幾個(gè)消息響應(yīng)機(jī)制:COMMAND消息的響應(yīng)UPDATE_COMMAND_UI消息的響應(yīng)ON_COMMAND_RANGE對(duì)COMMAND消息的響應(yīng)ON_UPDATE_COMMAND_UI_RANGE 對(duì)UPDATE_COMMAN

8、D_UI消息的響應(yīng),12,(1) COMMAND消息的響應(yīng),添加了對(duì)COMMAND消息的響應(yīng)之后, My_ResView.h發(fā)生如下變化: // Generated message map functions protected: //{{AFX_MSG(CMy_ResView) afx_msg void OnOperShow(); //ID_OPER_SHOW的響應(yīng)函數(shù)

9、 //}}AFX_MSG,13,14,在My_ResView.cpp文件中,讀者會(huì)看到ID_OPER_SHOW對(duì)應(yīng)的COMMAND消息的綁定,代碼如下 :BEGIN_MESSAGE_MAP(CMy_ResView, CView)//{{AFX_MSG_MAP(CMy_ResView)ON_COMMAND(ID_OPER_SHOW, OnOperShow)//}}AFX_MSG_MAP// Standard prin

10、ting commandsON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)END_MESSAGE

11、_MAP(),15,在My_ResView.cpp文件的最后加入如下代碼: void CMy_ResView::OnOperShow() { m_bShow = !m_bShow; Invalidate();// 強(qiáng)制程序重新窗口},重新編譯運(yùn)行程序,可看到“顯示”菜單項(xiàng)工作正常,16,(2) UPDATE_COMMAND_UI消息的響應(yīng),UPDATE_COMMAND_UI消息是在窗口將要繪制菜單項(xiàng)的

12、時(shí)候產(chǎn)生,上例中,僅僅只是使用“顯示”菜單項(xiàng)來控制是否顯示似乎還不夠,如果“顯示”菜單項(xiàng)能夠配合主程序體現(xiàn)出當(dāng)前是否顯示的狀態(tài)可能會(huì)更好一些。就像一個(gè)文本編輯軟件,菜單上是“10號(hào)字”、“12號(hào)字”的功能,如果不在菜單上標(biāo)識(shí)出來,那么使用者可能就搞不清當(dāng)前的字是多大的。,17,為ID_OPER_SHOW添加UPDATE_COMMAND_UI消息。在自動(dòng)生成消息處理函數(shù)中加入如下代碼:void CMy_ResView::OnUpdate

13、OperShow(CCmdUI* pCmdUI){pCmdUI->SetCheck(m_bShow);} 此時(shí)可看到隨著m_bShow的值的改變,顯示菜單項(xiàng)的狀態(tài)與實(shí)際是否顯示字符串的狀態(tài)一致了,通過菜單項(xiàng)前面的“√”標(biāo)記來體現(xiàn)。,18,,CCmdUI類常用的方法,19,(3)ON_COMMAND_RANGE對(duì)COMMAND消息的響應(yīng),ON_COMMAND_RANGE為處理具有連續(xù)Object ID的菜單項(xiàng)提供了

14、方便的途徑。 前面只響應(yīng)了三種顏色操作,若有100種顏色可供選擇,是否逐個(gè)定義其響應(yīng)函數(shù)?顯然工作量很大,我們可以使用ON_COMMAND_RANGE。 由于ClassWizard不支持ON_COMMAND_RANGE消息的自動(dòng)映射,只能手工添加消息的處理。,20,在My_ResView.h中聲明消息的處理函數(shù)//{{AFX_MSG(CMy_ResView) afx_msg void OnOperSho

15、w(); afx_msg void OnUpdateOperShow(CCmdUI* pCmdUI); afx_msg void OnOperColorChange(WORD nID);//}}AFX_MSG,21,在My_ResView.cpp的開頭部分加入如下斜體標(biāo)識(shí)的代碼,完成消息映射BEGIN_MESSAGE_MAP(CMy_ResView, CView)//{{……ON_COMMAND_RANGE(

16、ID_OPER_RED,// ID范圍的最小值ID_OPER_BLUE,// ID范圍的最大值OnOperColorChange)//消息處理函數(shù)END_MESSAGE_MAP(),22,在My_ResView.cpp的最后加入消息處理函數(shù):void CMy_ResView::OnOperColorChange(WORD nID){m_nColorIndex = nID-ID_OPER_RED;In

17、validate(); }運(yùn)行程序,可以通過菜單項(xiàng)來改變顏色了,23,(4) ON_UPDATE_COMMAND_UI_RANGE,ON_UPDATE_COMMAND_UI_RANGE與ON_UPDATE_COMMAND_UI的關(guān)系類似和ON_COMMAND_RANGE與ON_COMMAND的關(guān)系 下面仿照手工加入ON_COMMAND_RANGE過程加入ON_UPDATE_COMMAND_UI_RANGE宏。在My_Re

18、sView.h中加入如下代碼:afx_msg void OnUpdateOperColorChange(CCmdUI * pCmdUI);,24,在My_ResView.cpp中加入如下代碼:ON_UPDATE_COMMAND_UI_RANGE(ID_OPER_RED,ID_OPER_BLUE,OnUpdateOperColorChange)…void CMy_ResView::OnUpdateOperColorChange(C

19、CmdUI * pCmdUI){ pCmdUI->SetRadio(m_nColorIndex==(pCmdUI->m_nID - ID_OPER_RED));} 由于CCmdUI類的成員m_nID就是調(diào)用OnUpdateOperColorChange時(shí)當(dāng)前的菜單項(xiàng)ID,因此OnUpdateOperColorChange函數(shù)沒有nID這個(gè)參數(shù),25,10.2.2快捷菜單的創(chuàng)建及其應(yīng)用,【例10-2】在

20、【例10-1】的基礎(chǔ)上增加快捷菜單,實(shí)現(xiàn)“操作”菜單的功能,1. 創(chuàng)建菜單資源:在ResourceView菜單中右擊Menu,選擇Insert Menu,資源命名為IDR_MENU_POP,26,在My_ResView.h中聲明快捷菜單中對(duì)應(yīng)的變量。 CMenu m_PopMenu;// Pop-up快捷菜單 CMenu* m_pPop;// Pop-up快捷子菜單 ……afx_msg

21、 void OnRButtonDown(UINT nFlags, CPoint point);,27,在My_ResView.cpp中添加如下代碼: ON_COMMAND(ID_POP_SHOW, OnOperShow) //消息響應(yīng) … CMy_ResView::CMy_ResView(){ … m_PopMenu.LoadMenu(IDR_MENU

22、_POP); // 創(chuàng)建并加載菜單資源},28,CMy_ResView::~CMy_ResView(){m_PopMenu.DestroyMenu(); // 釋放菜單資源},29,void CMy_ResView::OnRButtonDown(UINT nFlags, CPoint point) {m_pPop=m_PopMenu.GetSubMenu(0); //獲得第一個(gè)子菜單 UINT

23、nCheck = m_bShow?MF_CHECKED:MF_UNCHECKED; // 更新【Show】的check狀態(tài) m_pPop->CheckMenuItem(ID_POP_SHOW,MF_BYCOMMAND|nCheck);ClientToScreen(&point); //將坐標(biāo)由客戶坐標(biāo)轉(zhuǎn)化為屏幕坐標(biāo)m_pPop->TrackPopupMenu(TPM_LEFTA

24、LIGN,point.x,point.y,this);// 顯示Pop-up菜單CView::OnRButtonDown(nFlags, point);},30,10.2.3加速鍵資源的創(chuàng)建及其使用,【例10-3】在【例10-2】的基礎(chǔ)上添加Ctrl+W來觸發(fā)“顯示”菜單項(xiàng)的功能。,31,10.2.4工具條資源的創(chuàng)建及其使用,,1 、工具條類的層次位置及其常用方法,在Windows應(yīng)用程序中,工具條可以看作是圖形化的菜

25、單,是一種更快捷、更有效、更直觀的人機(jī)交互方式。,工具條由CWnd類派生的,它們都連接到一個(gè)Windows應(yīng)用程序窗口。因此,CWnd的所有功能如創(chuàng)建、移動(dòng)、顯示和隱藏窗口等在用控制條工作時(shí)都是可用的。,32,CToolBar類提供了許多工具條的處理方法,這些方法分別是構(gòu)造方法、工具條按鈕的操作方法和虛擬方法。 構(gòu)造方法是用來建立Windows工具條CToolBar對(duì)象并在運(yùn)行時(shí)將它們附加到框架窗口上,它的構(gòu)造方法見下表:,3

26、3,CToolBar的構(gòu)造方法,Create(): 創(chuàng)建一個(gè)工具條并把它附加到CToolBar對(duì)象上CreateEx():創(chuàng)建一個(gè)定義了邊界的工具條并附加到 CToolBar對(duì)象上SetSizes(): 設(shè)置按鈕及位圖大小SetHeight(): 設(shè)置工具條的高度LoadToolBar():裝載工具條資源LoadBitmap(): 裝載包含工具按鈕圖像的

27、位圖SetBitmap(): 設(shè)置位圖圖像SetButtons(): 設(shè)置按鈕并使每個(gè)按鈕與位圖圖像相關(guān),34,工具條按鈕的操作方法用來處理某一工具條按鈕的,方法見表:,,35,在MFC中使用CToolBarCtrl類來控制工具條, CToolBarCtrl類的主要成員函數(shù)見下表:,36,2 、 加入用戶自定義的工具條,(1)增加工具條資源 Insert?Resource ?Toolbar ? New插入新的工具

28、條資源。(2)將工具條添加到窗口中 添加后,需把工具條的對(duì)象加入到應(yīng)用程序框架窗口中(CMainFrame)。在應(yīng)用程序的CMainFrame類中加入工具條對(duì)象m_wndToolBar。protected: CToolBar m_wndToolBar; //自己定義的工具條,37,在框架窗口類的OnCreate()函數(shù)中調(diào)用工具條類的Create()或CreateEx()成員函數(shù)創(chuàng)建該工具條,并調(diào)用LoadTo

29、olBar()成員函數(shù)將工具條對(duì)象和前面創(chuàng)建的工具條資源連接在一起。 if(!m_wndToolBar.Create(this, WS_VISIBLE|CBRS_TOP) ||!m_wndToolBar.LoadToolBar(IDR_TOOLBAR))//引入資源IDR_TOOLBAR{TRACE0("Failed to create toolba

30、r\n");return -1; // fail to create},38,39,3 、對(duì)工具條進(jìn)行操作 創(chuàng)建完成工具條后,可調(diào)用工具條類中的成員函數(shù)對(duì)工具條進(jìn)行操作,例如設(shè)定工具條風(fēng)格,在窗口中移動(dòng)工具條,控制工具條的顯隱等。 用下述代碼實(shí)現(xiàn),當(dāng)鼠標(biāo)光標(biāo)在按鈕上暫停時(shí),顯示工具提示和命令描述,并設(shè)定工具條的大小是可變的。m_wndToolBar.SetBarStyle(

31、 CBRS_TOOLTIPS |CBRS_FLYBY | CBRS_SIZE_DYNAMIC);,40,可在程序中設(shè)置允許用戶在程序運(yùn)行中在框架窗口內(nèi)移動(dòng)工具條。這是通過調(diào)用CToolBar::EnableDocking和CFrame::EnableDocking來實(shí)現(xiàn)的。二函數(shù)原型均如下: void EnableDocking( DWORD dwStyle )其中,參數(shù)dwSty

32、le為工具條風(fēng)格,其取值見下表:,41,42,下面代碼段是實(shí)現(xiàn)工具條移動(dòng)的常用代碼:m_wndToolBar.EnableDocking(CBS_ALIGN_ANY);EnableDocking(CBS_ALIGN_ANY); 工具條的顯示或隱藏可以通過應(yīng)用程序框架CMainFrame的成員函數(shù)ShowControlBar()來實(shí)現(xiàn)。,43,【例10-4】在【例10-3】中添加工具條,工具條中包含四個(gè)按鈕,分別對(duì)應(yīng)菜單的“

33、顯示”、“紅色”、“綠色”和“藍(lán)色”菜單項(xiàng)。該工具條可以在窗口中任意位置停靠,當(dāng)鼠標(biāo)停留在工具條按鈕上時(shí),將顯示該按鈕的功能。,44,在ResourceView中加入工具條資源 IDR_TOOLBAR_NEW。繪制四個(gè)按鈕并設(shè)置相應(yīng)ID。 在MainFrm.h中添加如下代碼,聲明一個(gè)CToolBar變量 CToolBar m_wndToolBarNew;,在程序中加入替她工具條:,45,在

34、MainFrm.cpp文件的 Int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) 函數(shù)中添加如下代碼:if (!m_wndToolBarNew.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS |

35、 CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||!m_wndToolBarNew.LoadToolBar(IDR_TOOLBAR_NEW)){TRACE0("Failed to create toolbar\n");return -1; // fail to create },46,為了使新增的工具條可以在窗口中自由???,在OnCreate函數(shù)中,

36、還要增加如下代碼:m_wndToolBarNew.EnableDocking(CBRS_ALIGN_ANY); //工具條可以在父窗口內(nèi)任何一邊停靠EnableDocking(CBRS_ALIGN_ANY);// 父窗口允許子工具條窗口在任何一邊??緿ockControlBar(&m_wndToolBarNew);// 父窗口內(nèi)按照前面指定的風(fēng)格??吭摴ぞ邨l,47,10.2.5 圖標(biāo)資源的創(chuàng)建及其使用

37、,每個(gè)Windows應(yīng)用程序在資源管理器中都有自己的圖標(biāo),這個(gè)圖標(biāo)就是ICON資源。,【例10-5】在【例10-4】的基礎(chǔ)上通過修改光標(biāo)資源,使得執(zhí)行程序的圖標(biāo)變?yōu)槿鐖D所示的樣子,48,ResourceView?Icon?IDR_MAINFRAME,就會(huì)看到圖標(biāo)編輯器,在這里可以選擇圖標(biāo)的尺寸,默認(rèn)的是16×16和32×32。 16×16的圖標(biāo)用于程序運(yùn)行時(shí)左上角圖標(biāo)、任務(wù)條圖標(biāo)、資源管理器的列表和詳

38、細(xì)信息模式; 32×32的圖標(biāo)用于程序運(yùn)行時(shí)默認(rèn)對(duì)話框圖標(biāo)、資源管理器圖標(biāo)模式; 48×48的圖標(biāo)用于資源管理器的平鋪和縮略圖模式。,49,單擊New Device Image按鈕對(duì)光標(biāo)資源進(jìn)行修改,50,10.2.6 字符串資源的使用,字符串資源最主要的用途就是用于程序的多語(yǔ)言版本。如果要想動(dòng)態(tài)切換界面語(yǔ)言,使用字符串資源是很好的選擇。 在MFC中,可以通過CString類的LoadString方

39、法來從資源載入字符串。 具體操作是打開ResourceView?String Table,在表中的空白高亮處雙擊,在彈出的String Properties對(duì)話框中的ID編輯框中輸入IDS_STRING_HELLO,Caption編輯框中輸入“Hello VC!”。,51,在My_ResView.cpp文件的構(gòu)造函數(shù)中,將原來的 m_strShow = "Hello World!"

40、; 改為:m_strShow.LoadString(IDS_STRING_HELLO); 這樣我們的程序的輸出就變?yōu)椤癏ello VC!”了,使用字符串資源的好處就是不需要在整個(gè)程序中去尋找某個(gè)字符串,如果某些字符串可能在將來會(huì)發(fā)生變更,那么最好將它寫在字符串資源中。,52,10.2.7 對(duì)話框資源的創(chuàng)建及其應(yīng)用,【例10-6】在上例的基礎(chǔ)上編寫一個(gè)對(duì)話框用于接收用戶輸入,然后用這個(gè)輸入來替換主程序原來顯示的字符串。,

41、53,(1)對(duì)話框控件的建立,類型 ID CaptionStaticText IDC_STATIC 請(qǐng)輸入新的字符Edit Box IDC_EDIT_INPUT Button IDOK OKButton

42、 IDCANCEL Cancel,54,(2)生成一個(gè)對(duì)話框類 在創(chuàng)建完對(duì)話框資源之后,需要生成一個(gè)相關(guān)的對(duì)話框類。View?ClassWizard ?Create a New Class ? OK,在Name中填入“CInputDlg”即可。,55,56,將對(duì)話框上的IDC_EDIT_INPUT控件與一個(gè)CString類型的m_strInput變量綁定,建立一種映射關(guān)系。

43、 在MFC ClassWizard 對(duì)話框中的MemberVariable頁(yè)中雙擊IDC_EDIT_INPUT,在彈出的Add Member variable name編輯框中輸入“m_strInput”,其余的保持不變,這樣就為IDC_EDIT_INPUT添加了一個(gè)DDX(Dialog Data eXchange)變量。,57,上面的操作使MFC在幕后作了些什么? 在InputDlg.h文件中,MFC加入了如下代碼: 

44、;// Dialog Data//{{AFX_DATA(CInputDlg)enum { IDD = IDD_DIALOG_NEW };CStringm_strInput;//}}AFX_DATA,58,在InputDlg.cpp的構(gòu)造函數(shù)中,MFC加入了如下代碼:  //{{AFX_DATA_INIT(CInputDlg) m_strInput = _T(""); //}}AF

45、X_DATA_INIT,對(duì)m_strInput的初始化,在InputDlg.cpp文件的DoDataExchange函數(shù)中,MFC加入了如下代碼: //{{AFX_DATA_MAP(CInputDlg) DDX_Text(pDX, IDC_EDIT_INPUT, m_strInput);//}}AFX_DATA_MAP 在函數(shù)DDX_Text調(diào)用中,完成了控件與變量之間的數(shù)據(jù)交換。,59,下面要在CMy_ResVie

46、w中使用新創(chuàng)建的對(duì)話框。首先為“操作”菜單增加菜單項(xiàng)“修改字符串”,其ID為ID_OPER_STRING。增加COMMAND消息響應(yīng)函數(shù)OnOperString。然后在My_ResView.cpp文件頭部include部分最后加入: #include "InputDlg.h",(3)使用對(duì)話框類,60,在OnOperString中加入如下代碼:void CMy_ResView::OnOperString()

47、{ CInputDlg dlgInput; // 聲明對(duì)話框變量 if(dlgInput.DoModal() == IDOK) // 如果用戶點(diǎn)擊OK按鈕 { m_strShow = dlgInput.m_strInput;// 更改字符串Invalidate(); // 強(qiáng)制重繪 } },61

48、,10.2.8位圖資源的創(chuàng)建及其應(yīng)用,標(biāo)準(zhǔn)控件比較單調(diào),若能通過一些精美的圖片來點(diǎn)綴,就活潑了,這個(gè)問題,可以選擇位圖資源來實(shí)現(xiàn)。 位圖是一種數(shù)字化的圖形表示形式,基本數(shù)據(jù)結(jié)構(gòu)是象素,一個(gè)像素表示一個(gè)離散點(diǎn)的顏色值。 常見位圖有2色、4色、16色、256色、16位、24位。其中VC 6的資源編輯器只支持256色以下(包括256色)的位圖的編輯,而最新的VC7已經(jīng)支持24位真彩位圖的編輯了。保存在文件中的位圖可以看

49、作是設(shè)備無關(guān)的,文件本身的數(shù)據(jù)用來描述位圖的內(nèi)容。,62,【例10-7】在【例10-6】的基礎(chǔ)上顯示兩幅圖片,一幅是256色,另一幅是24位真彩,兩幅圖片都是通過資源來顯示,63,(1)將一副圖片分別保存為256色位圖或24位圖。 單擊Resource View|My_Res Resource,單擊鼠標(biāo)右鍵,選擇Import,在彈出的對(duì)話框中的Open as中選擇Auto,文件類型選擇All Files,選擇一個(gè)256色畏途,并定義

50、ID為ID_BITMAP_256,然后以同樣的方式定義一個(gè)24位位圖,定義其ID為ID_BITMAP_24bit。,64,在CMy_ResView.cpp的OnDraw函數(shù)中加入如下代碼:CDC dcMemory; // 創(chuàng)建內(nèi)存緩沖DCdcMemory.CreateCompatibleDC(pDC);CBitmap bmp1; // 加載256位圖

51、bmp1.LoadBitmap(IDB_BITMAP_256);BITMAP bmpInfo1;bmp1.GetBitmap(&bmpInfo1); // 獲得位圖的尺寸CBitmap* pOldBitmap = dcMemory.SelectObject(&bmp1); // 選擇位圖到內(nèi)存緩沖設(shè)備中pDC->BitBlt(200,10,bmpInfo1.bmWidth,bmpInf

52、o1.bmHeight,&dcMemory,0,0,SRCCOPY); // 繪制到屏幕,65,CBitmap bmp2; bmp2.LoadBitmap(IDB_BITMAP_24bit); // 加載24位位圖BITMAP bmpInfo2;bmp2.GetBitmap(&bmpInfo2);dcMemory.SelectObject(&bmp2);pDC->BitBlt(400,1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論