版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、不可多得的好資料Windows程序設計(VC+.NET)上機實驗指導書中原工學院計算機科學系郭清宇實驗一Visual C+ .NET集成開發(fā)環(huán)境的使用1、 實驗目的熟悉Visual C+ .NET集成開發(fā)環(huán)境,了解菜單和工具欄的功能。掌握生成應用程序框架的過程,熟悉解決方案資源管理器、類視圖、資源視圖,初步掌握文檔-視圖結構。2、 實驗內容(1) Visual C+ NET的IDE環(huán)境了解集成開發(fā)環(huán)境的菜單功能,掌握程序的編譯、連接、運行及調試方法。(2) 應用程序的生成能利用集成開發(fā)環(huán)境生成Single document、Multiple documents、Dialog based三個應用
2、程序框架,熟悉握生成應用程序框架的步驟。使用解決方案資源管理器、類視圖、資源視圖,瀏覽生成三個應用程序中包含的文件、類及資源信息,熟悉它們的作用。初步掌握基于MFC的Windows應用程序框架結構,理解文檔-視圖結構。實例1:建立跨平臺應用程序目的:使用AppWizard向導創(chuàng)建一個MFC應用程序,運行后只顯示一個標準Windows 窗口。1)啟動VS.NET,選擇新建項目,類型選擇“VC+項目”,模板選擇“MFC應用程序”。指定路徑,輸入項目名稱,單擊確定。應用程序類型選擇“單文檔”;復合文檔支持、數(shù)據(jù)庫支持、用戶界面、生成類等接受系統(tǒng)默認設置。2)單擊菜單“生成、生成解決方案”編輯程序;3
3、)單擊菜單“調試、啟動”運行程序。實例2:創(chuàng)建控制臺應用程序目的:創(chuàng)建DOS界面的應用程序。1)啟動VS.NET,選擇新建項目,類型選擇“VC+項目”,模板選擇“Win32項目”,指定路徑,輸入項目名稱,單擊確定。應用程序類型選擇“控制臺應用程序”,選擇“空項目”,單擊“完成”2)在“解決方案資源管理器”右鍵單擊“源文件”,選擇“添加、添加新項”。選擇“C+文件(.cpp)”,單擊“打開”。3)添加代碼;#include<iostream.h> /預編譯c+頭文件void main() int x=0,y=0,sum=0; /聲明三個代表整數(shù)的符號:x,y為兩個被加的數(shù),sum為和
4、 /它們的初值都為0 cout<<"Enter 2 integers separated by space:" /界面提示用戶輸入 cin>>x>>y; /輸入操作 sum=x+y; /加操作 cout<<"The sum is:" /界面:提示用戶將得到輸出 <<sum /輸出sum <<endl; /輸出一個換行單擊菜單“生成、生成解決方案”編輯程序;單擊菜單“調試、啟動”運行程序。實例3:應用程序窗口初始化目的:初始化Windows 窗口。1)啟動VS.NET,選擇新建項目,類
5、型選擇“VC+項目”,模板選擇“MFC應用程序”。指定路徑,輸入項目名稱,單擊確定。應用程序類型選擇“單文檔”;復合文檔支持、數(shù)據(jù)庫支持、用戶界面、生成類等接受系統(tǒng)默認設置。2)添加代碼:在MainFrm.CPP中添加(黑體部分)BOOL CMainFrame:PreCreateWindow(CREATESTRUCT& cs)if( !CFrameWnd:PreCreateWindow(cs) )return FALSE;/初始化應用程序窗口大小和位置 int xSize = :GetSystemMetrics (SM_CXSCREEN); int ySize = :GetSystem
6、Metrics (SM_CYSCREEN); cs.cx = xSize*2/3; cs.cy = ySize*2/3; cs.x = (xSize-cs.cx)/2; cs.y = (ySize-cs.cy)/2; cs.style &=(WS_MAXIMIZEBOX|WS_MINIMIZEBOX); /去掉最小化和最大化按鈕 cs.style &=WS_THICKFRAME; /使窗口大小固定 cs.style &=FWS_ADDTOTITLE; /去掉無標題 m_strTitle="My Program" /改變窗口標題內容/ TODO: 在此
7、處通過修改 CREATESTRUCT cs 來修改窗口類或/ 樣式return TRUE;3)單擊菜單“生成、生成解決方案”編輯程序。4)單擊菜單“調試、啟動”運行程序。實例4:改變應用程序窗口圖標目的:對Windows 窗口進行個性化設置。1)啟動VS.NET,選擇新建項目,類型選擇“VC+項目”,模板選擇“MFC應用程序”。指定路徑,輸入項目名稱,單擊確定。應用程序類型選擇“單文檔”;復合文檔支持、數(shù)據(jù)庫支持、用戶界面、生成類等接受系統(tǒng)默認設置。2)打開資源視圖窗口,刪除“IDR_MAINFRAME”圖標。3)添加圖標資源,設置圖標ID為IDR_MAINFRAME。4)單擊菜單“生成、生成
8、解決方案”編輯程序。5)單擊菜單“調試、啟動”運行程序。注意:添加資源前,需要將添加的圖標文件拷貝到對應項目文件夾的“res”文件夾中。實驗二文檔、視圖模型與 MFC1. 實驗目的學習文檔、視圖模型。包括文檔、視圖概念、作用和相互關系;掌握如何創(chuàng)建文檔視圖應用程序的方法;以及多文檔視圖界面應用程序的架構和創(chuàng)建方法。2. 實驗內容初步掌握基于MFC的Windows應用程序框架結構,理解文檔-視圖結構。實例一:滾動視圖1.新建項目啟動“Visual Studio.Net”,選擇新建項目,類型選擇“Visual C+項目”,模板選擇“MFC應用程序”,輸入項目名稱t8,單擊確定。生成的類中,基類選擇
9、CscrollView,其他接受系統(tǒng)默認值,單擊完成。2.修改“t8view.cpp”文件中的代碼:void Ct8View:OnInitialUpdate()CScrollView:OnInitialUpdate();CSize sizeTotal;/ TODO: 計算此視圖的合計大小sizeTotal.cx = sizeTotal.cy = 100; /此處100為出現(xiàn)滾動條時的窗口大小,將此值適當增大。SetScrollSizes(MM_TEXT, sizeTotal);3.編譯運行程序實例二:分割視圖1.新建項目啟動“Visual Studio.Net”,選擇新建項目,類型選擇“Vis
10、ual C+項目”,模板選擇“MFC應用程序”,輸入項目名稱t9,單擊確定。用戶界面功能中選擇“拆分窗口”,其他接受系統(tǒng)默認值,單擊完成。2.修改“ChildFrm.cpp”文件中的代碼:BOOL CChildFrame:OnCreateClient(LPCREATESTRUCT /*lpcs*/, CCreateContext* pContext)return m_wndSplitter.Create(this,1, 2,/ TODO:調整行號和列號CSize(10, 10),/ TODO: 調整最小窗格大小pContext);3.編譯運行程序選擇菜單命令“窗口、拆分”。當前窗口將被拆分成指
11、定樣式。實例三:列表視圖1.新建項目啟動“Visual Studio.Net”,選擇新建項目,類型選擇“Visual C+項目”,模板選擇“MFC應用程序”,輸入項目名稱listview,單擊確定。生成的類中,基類選擇CListView,其他接受系統(tǒng)默認值,單擊完成。2.在listviewView.cpp中添加代碼BOOL CListViewView:PreCreateWindow(CREATESTRUCT& cs)/ TODO: 在此處通過修改 CREATESTRUCT cs 來修改窗口類或/ 樣式return CListView:PreCreateWindow(cs);void C
12、ListViewView:OnInitialUpdate()CListView:OnInitialUpdate();/ TODO: 調用 GetListCtrl() 直接訪問 ListView 的列表控件,/ 從而可以用項填充 ListView。/設置列表控件的風格,為“報表”風格GetListCtrl().ModifyStyle(0,LVS_REPORT|LVS_SHOWSELALWAYS|LVS_SORTASCENDING) ; /設置兩種列表控件風格:第一種擴展風格,在列表上畫線,分隔行和列;第二種風格允許用戶選中整行。 GetListCtrl().SendMessage(LVM_SET
13、EXTENDEDLISTVIEWSTYLE,0, LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT) ; CDC* pDC = GetDC();/獲得設備環(huán)境對象 TEXTMETRIC tm; pDC->GetTextMetrics(&tm) ; /定義列表頭 GetListCtrl().InsertColumn (0,"姓名",LVCFMT_LEFT,20*tm.tmAveCharWidth, 0); GetListCtrl().InsertColumn (1,"地址",LVCFMT_LEFT,80*tm.tmA
14、veCharWidth, 1); / CListViewView 診斷3.編譯運行程序實驗三對話框和控件基本知識(一)1. 實驗目的學習對話框和控件的基本知識和應用。3. 實驗內容初步掌握模態(tài)對話框和非模態(tài)對話框的概念,了解各種Windows標準控件的功能和使用方法,以及對話框和控件的設計、初始化、通知消息等概念。實例1:設置對話框背景色1.新建項目類型:Visual C+項目;模板:MFC應用程序;項目名稱:BgColorDlg;應用程序類型:基于對話框。2.對話框編輯器選擇菜單“視圖、資源視圖”命令,打開資源視圖編輯框,設置屬性。3.添加代碼(1)建立WM_CTLCOLOR消息的相應函數(shù):
15、在屬性框里,單擊消息圖標,設置WM_CTLCOLOR消息的相應函數(shù)為:ONCtlColor。(2)添加成員變量在BgColorDlgDlg.h頭文件中添加成員變量(斜體字)/ CBgColorDlgDlg 對話框class CBgColorDlgDlg : public CDialog/ 構造public:CBgColorDlgDlg(CWnd* pParent = NULL);/ 標準構造函數(shù)public: CBrush m_brush;/創(chuàng)建畫刷對象在BgColorDlgDlg.cpp : 實現(xiàn)文件中添加以下代碼:SetIcon(m_hIcon, TRUE);/ 設置大圖標SetIcon(
16、m_hIcon, FALSE);/ 設置小圖標/ TODO:在此添加額外的初始化代碼m_brush.CreateSolidBrush(RGB(255,255,200);/初始化畫刷return TRUE; / 除非設置了控件的焦點,否則返回 TRUEHBRUSH CBgColorDlgDlg:OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)HBRUSH hbr = CDialog:OnCtlColor(pDC, pWnd, nCtlColor);/ TODO: 在此更改 DC 的任何屬性return m_brush;/ TODO: 如果默認的不是
17、所需畫筆,則返回另一個畫筆/return hbr;4. 編譯執(zhí)行程序實例2:模態(tài)對話框1.新建項目類型:Visual C+項目;模板:MFC應用程序;項目名稱:ModalDlg;應用程序類型:單文檔。2.新建對話框選擇菜單“視圖、資源視圖”、打開資源視圖編輯框,插入新對話框資源。設計新對話框,標題為“模態(tài)對話框”。3添加代碼(1)增加一個頭文件MyDlg.h#pragma once/ CMyDlg 對話框class CMyDlg : public CDialogDECLARE_DYNAMIC(CMyDlg)public:CMyDlg(CWnd* pParent = NULL); / 標準構造函
18、數(shù)virtual CMyDlg();/ 對話框數(shù)據(jù)enum IDD = IDD_DIALOG1 ;protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV 支持DECLARE_MESSAGE_MAP();(2) 增加一個C+文件MyDlg.cpp/ MyDlg.cpp : 實現(xiàn)文件/#include "stdafx.h"#include "ModalDlg.h"#include "MyDlg.h"/ CMyDlg 對話框IMPLEMENT_DYNAMIC(
19、CMyDlg, CDialog)CMyDlg:CMyDlg(CWnd* pParent /*=NULL*/): CDialog(CMyDlg:IDD, pParent)CMyDlg:CMyDlg()void CMyDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);BEGIN_MESSAGE_MAP(CMyDlg, CDialog)END_MESSAGE_MAP()(3)在資源視圖中雙擊Menu、IDR_MAINFRAME,打開菜單編輯器,添加新菜單。在視圖菜單的狀態(tài)欄下增加“模態(tài)對話框”菜單,并在其屬性欄中將ID
20、修改為ID_VIEW_MODALDLG。選擇菜單“視圖、類視圖”、選擇CmodalDlgView類,打開其屬性菜單;單擊屬性菜單中的事件按鈕,選擇ID_VIEW_MODALDLG,點擊左側的“+”號,選擇“COMMAND”,在右側為CmodalDlgView類添加菜單響應函數(shù)OnViewModaldlg()。Void CmodalDlgView:OnViewModaldlg()/TODO: 在此添加命令處理程序代碼CMyDlg m_Dlg;/創(chuàng)建自定義對話框對象m_Dlg.DoModal ();/啟動對話框(4)在ModalDlgView.cpp中的起始位置添加#include "M
21、yDlg.h"4.編譯、運行運行程序,選擇視圖、模態(tài)對話框命令,顯示模態(tài)對話框。實例3:非模態(tài)對話框1.新建項目類型:Visual C+項目;模板:MFC應用程序;項目名稱:ModallessDlg;應用程序類型:單文檔。2.新建對話框選擇菜單“視圖、資源視圖”、打開資源視圖編輯框,插入新對話框資源。設計新對話框,標題為“非模態(tài)對話框”。3添加代碼(1)增加一個頭文件MyDlg.h#pragma once/ CMyDlg 對話框class CMyDlg : public CDialogDECLARE_DYNAMIC(CMyDlg)public:CMyDlg(CWnd* pParent
22、 = NULL); / 標準構造函數(shù)virtual CMyDlg();/ 對話框數(shù)據(jù)enum IDD = IDD_DIALOG1 ;protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV 支持DECLARE_MESSAGE_MAP();(2)增加一個C+文件MyDlg.cpp#include "stdafx.h"#include "ModallessDlg.h"#include "MyDlg.h"/ CMyDlg 對話框IMPLEMENT_DYNAMIC
23、(CMyDlg, CDialog)CMyDlg:CMyDlg(CWnd* pParent /*=NULL*/): CDialog(CMyDlg:IDD, pParent)CMyDlg:CMyDlg()void CMyDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);BEGIN_MESSAGE_MAP(CMyDlg, CDialog)END_MESSAGE_MAP()(3)在資源視圖中雙擊Menu、IDR_MAINFRAME,打開菜單編輯器,添加新菜單。在視圖菜單的狀態(tài)欄下增加“非模態(tài)對話框”菜單,并在其屬性欄中將
24、ID修改為ID_VIEW_MODALLESSDLG。選擇菜單“視圖、類視圖”、選擇CmodallessDlgView類,打開其屬性菜單;單擊屬性菜單中的事件按鈕,選擇ID_VIEW_MODALLESSDLG,點擊左側的“+”號,選擇“COMMAND”,在右側為CmodalDlgView類添加菜單響應函數(shù)OnViewModaldlg()。在ModalDlgView.cpp中添加代碼:/ ModallessDlgView.cpp : CModallessDlgView 類的實現(xiàn)/#include "stdafx.h"#include "ModallessDlg.h&q
25、uot;#include "MyDlg.h"#include "ModallessDlgDoc.h"#include "ModallessDlgView.h"#ifdef _DEBUG#define new DEBUG_NEW#endif/ CModallessDlgViewIMPLEMENT_DYNCREATE(CModallessDlgView, CView)BEGIN_MESSAGE_MAP(CModallessDlgView, CView)/ 標準打印命令ON_COMMAND(ID_FILE_PRINT, CView:OnFi
26、lePrint)ON_COMMAND(ID_FILE_PRINT_DIRECT, CView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView:OnFilePrintPreview)ON_COMMAND(ID_VIEW_MODALLESSDLG, OnViewModallessdlg)END_MESSAGE_MAP()/ CModallessDlgView 構造/銷毀CModallessDlgView:CModallessDlgView()/ TODO: 在此處添加構造代碼m_pDlg=NULL;/初始化指針對象CModallessDlgV
27、iew:CModallessDlgView()if(m_pDlg!=NULL)delete m_pDlg;/釋放指針對象空間BOOL CModallessDlgView:PreCreateWindow(CREATESTRUCT& cs)/ TODO: 在此處通過修改 CREATESTRUCT cs 來修改窗口類或/ 樣式return CView:PreCreateWindow(cs);/ CModallessDlgView 繪制void CModallessDlgView:OnDraw(CDC* /*pDC*/)CModallessDlgDoc* pDoc = GetDocument(
28、);ASSERT_VALID(pDoc);/ TODO: 在此處為本機數(shù)據(jù)添加繪制代碼/ CModallessDlgView 打印BOOL CModallessDlgView:OnPreparePrinting(CPrintInfo* pInfo)/ 默認準備return DoPreparePrinting(pInfo);void CModallessDlgView:OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)/ TODO: 打印前添加額外的初始化void CModallessDlgView:OnEndPrinting(CDC* /*
29、pDC*/, CPrintInfo* /*pInfo*/)/ TODO: 打印后添加清除過程/ CModallessDlgView 診斷#ifdef _DEBUGvoid CModallessDlgView:AssertValid() constCView:AssertValid();void CModallessDlgView:Dump(CDumpContext& dc) constCView:Dump(dc);CModallessDlgDoc* CModallessDlgView:GetDocument() const / 非調試版本是內聯(lián)的ASSERT(m_pDocument-&
30、gt;IsKindOf(RUNTIME_CLASS(CModallessDlgDoc);return (CModallessDlgDoc*)m_pDocument;#endif /_DEBUG/ CModallessDlgView 消息處理程序void CModallessDlgView:OnViewModallessdlg()/ TODO: 在此添加命令處理程序代碼if(m_pDlg=NULL)m_pDlg=new CMyDlg;/為指針對象分配空間m_pDlg->Create(IDD_DIALOG1,this);/創(chuàng)建對話框資源m_pDlg->ShowWindow(SW_SHO
31、W);/顯示對話框在ModallessDlgView.h文件中添加代碼:/ ModallessDlgView.h : CModallessDlgView 類的接口/#include "MyDlg.h"#pragma onceclass CModallessDlgView : public CViewprotected: / 僅從序列化創(chuàng)建CModallessDlgView();DECLARE_DYNCREATE(CModallessDlgView)/ 屬性public:CModallessDlgDoc* GetDocument() const;/ 操作public:CMyD
32、lg * m_pDlg;/創(chuàng)建指向對話框類指針/ 重寫public:virtual void OnDraw(CDC* pDC); / 重寫以繪制該視圖virtual BOOL PreCreateWindow(CREATESTRUCT& cs);protected:virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
33、/ 實現(xiàn)public:virtual CModallessDlgView();#ifdef _DEBUGvirtual void AssertValid() const;virtual void Dump(CDumpContext& dc) const;#endifprotected:/ 生成的消息映射函數(shù)protected:DECLARE_MESSAGE_MAP()public:afx_msg void OnViewModallessdlg();#ifndef _DEBUG / ModallessDlgView.cpp 的調試版本inline CModallessDlgDoc* CM
34、odallessDlgView:GetDocument() const return reinterpret_cast<CModallessDlgDoc*>(m_pDocument); #endif實例4:消息框1.新建項目類型:Visual C+項目;模板:MFC應用程序;項目名稱:MsgBox;應用程序類型選擇“基于對話框”。2.新建對話框選擇菜單“視圖、資源視圖”、打開資源視圖編輯框,選中DialogIDD_MSGBOX_DIALOG,展開對話框編輯器,設計對話框。增加兩個按鈕控件,標題分別為“彈出消息框1”和“彈出消息框2”。將兩個按鈕控件的ID屬性修改為Msgbox1和M
35、sgbox2。3添加代碼單擊按鈕控件,為兩個控件添加代碼:void CMsgBoxDlg:OnBnClickedMsgbox1()/ TODO: 在此添加控件通知處理程序代碼/創(chuàng)建消息框MessageBox("程序運行出錯,是否繼續(xù)","提示",MB_ICONWARNING+MB_YESNO+MB_DEFBUTTON1);void CMsgBoxDlg:OnBnClickedMsgbox2()/ TODO: 在此添加控件通知處理程序代碼/創(chuàng)建消息框AfxMessageBox("你好!");4.編譯運行實驗四對話框和控件基本知識(二)1
36、. 實驗目的學習對話框和控件的基本知識和應用。5. 實驗內容初步掌握模態(tài)對話框和非模態(tài)對話框的概念,了解各種Windows標準控件的功能和使用方法,以及對話框和控件的設計、初始化、通知消息等概念。實例一:列表框要點:InsertItem函數(shù):插入新條目。 SetItemText函數(shù):改變條目中的文本。1.新建項目類型:Visual C+項目;模板:MFC應用程序;項目名稱:ListDlg;應用程序類型:基于對話框。2.對話框編輯設計對話框, 添加一個列表框控件:List Control,將View屬性改為“報告”。ID改為IDD_LIST_DIALOG添加一個靜態(tài)文本控件:Static Tex
37、t,將Caption屬性改為“學生”。添加一個文本編輯控件:Edit Control,將Read Only屬性改為“True”。如圖所示:3.添加代碼:實例二:組合框要點:AddString函數(shù):插入新條目。1.新建項目類型:Visual C+項目;模板:MFC應用程序;項目名稱:CombolBoxDlg;應用程序類型:基于對話框。2.對話框編輯設計對話框, 添加一個組合框控件。如圖所示:3.添加代碼:實例三:彈出式菜單要點:TrackPopupMenu 函數(shù)定義了彈出菜單項及位置。1.新建項目類型:Visual C+項目;模板:MFC應用程序;項目名稱:PopMenu;應用程序類型:單文檔。
38、2.創(chuàng)建新菜單打開資源視圖編輯框,單擊鼠標右鍵,選擇“插入Menu”,建立新菜單“IDR_MENU1”,雙擊IDR_MENU1,編輯新菜單。如圖:3.為CpopMenuView類添加鼠標右鍵響應函數(shù):打開類視圖,選擇CpopMenuView類,在屬性框中單擊消息圖標,添加消息處理函數(shù)。如圖:4.添加代碼:編輯PopMenuView.cpp文件/ CPopMenuView 消息處理程序void CPopMenuView:OnRButtonDown(UINT nFlags, CPoint point)/ TODO: 在此添加消息處理程序代碼和/或調用默認值CMenu menu;/創(chuàng)建菜單對象men
39、u.LoadMenu(IDR_MENU1);/裝載菜單CMenu* pM=menu.GetSubMenu(0);/獲得子級菜單CPoint pt;/創(chuàng)建點對象GetCursorPos(&pt);/獲得鼠標位置pM->TrackPopupMenu(TPM_LEFTALIGN,pt.x,pt.y,this);/在指定位置顯示彈出菜單CView:OnRButtonDown(nFlags, point);實例四:編輯工具欄,增加工具欄按鈕1.新建項目類型:Visual C+項目;模板:MFC應用程序;項目名稱:ToolBar;應用程序類型:單文檔。2.添加菜單代碼和工具欄按鈕打開資源視圖
40、編輯框,展開菜單,在視圖菜單下增加一新的菜單命令“新增工具按鈕”,將ID改為AddTool,打開類視圖,找到ID_AddTool,為其添加命令響應函數(shù)OnAddtool/ CToolBarView 消息處理程序void CToolBarView:OnAddtool()/ TODO: 在此添加命令處理程序代碼AfxMessageBox("新增工具欄按鈕");/消息對話框選擇“ToolBar|IDR_MAINFRAME”,展開工具欄編輯器,新增工具按鈕,將新增按鈕的ID改為ID_AddTool(和新增菜單的ID相同),如圖:注意:如果沒有相應的菜單命令和處理函數(shù),工具欄按鈕不可
41、用(灰色).實例五:修改狀態(tài)欄1.新建項目類型:Visual C+項目;模板:MFC應用程序;項目名稱:ToolBar;應用程序類型:單文檔。2.新建狀態(tài)條打開資源視圖編輯框,選中”StringTable| StringTable”,雙擊展開字符串編輯框,如圖:將新增字符串的ID改為”ID_STATUS1”,標題改為”當前狀態(tài):”3.增加代碼:打開MainaFrm.cpp加入狀態(tài)行指示器代碼:static UINT indicators =ID_SEPARATOR, / 狀態(tài)行指示器ID_INDICATOR_CAPS,ID_INDICATOR_NUM,ID_INDICATOR_SCRL,ID_
42、STATUS1,其中:數(shù)組indicators用開定義狀態(tài)條.實例六:創(chuàng)建登錄對話框1.新建項目類型:Visual C+項目;模板:MFC應用程序;項目名稱:Log_On_Dlg;應用程序類型:單文檔。2.插入編輯新對話框:打開資源視圖,插入新對話框,ID為“IDD_DIALOG_Log_On”,添加一靜態(tài)文本和一文本控件,如圖:其中:靜態(tài)文本控件的標題屬性改為提示內容“請輸入口令”;文本控件的ID設置為 IDC_EDIT_Password,Password屬性改為True。也可以設置對話框的標題、圖標和ID。3.生成對話框類并添加變量:鼠標右鍵單擊文本控件,選擇添加類:鼠標右鍵單擊文本控件,
43、選擇添加變量,設置變量如圖:4.添加代碼:在Log_On_Dlg.cpp中添加代碼:/ Log_On_Dlg.cpp : 定義應用程序的類行為。/#include "stdafx.h"#include "Log_On_Dlg.h"#include "MainFrm.h"#include "Log_On_DlgDoc.h"#include "Log_On_DlgView.h"#include "MyDlg.h"#ifdef _DEBUG#define new DEBUG_NEW
44、#endif/ CLog_On_DlgApp/ CLog_On_DlgApp 初始化BOOL CLog_On_DlgApp:InitInstance()/ 如果一個運行在 Windows XP 上的應用程序清單指定要/ 使用 ComCtl32.dll 版本 6 或更高版本來啟用可視化方式,/則需要 InitCommonControls()。否則,將無法創(chuàng)建窗口。InitCommonControls();CWinApp:InitInstance();MyDlg m_Dlg;/創(chuàng)建對話框對象if(m_Dlg.DoModal ()=IDOK)/啟動對話框if(m_Dlg.My_PWD !=11111
45、)/設置密碼MessageBox(NULL,"口令不對,退出!","出錯",MB_OK);/錯誤提示 return false;elsereturn false;/ 初始化 OLE 庫編譯運行,如果口令不等于“11111”,程序提示以后結束;口令正確繼續(xù)執(zhí)行。實驗五對話框和控件高級應用1. 實驗目的學習對話框和控件的基本知識和高級應用。6. 實驗內容了解各種Windows高級控件的功能和使用方法。實例一:標簽式對話框1.新建項目類型:Visual C+項目;模板:MFC應用程序;項目名稱:Tab;應用程序類型:基于對話框。2.插入編輯新對話框:打開資源視
46、圖,展開對話框編輯器,設計對話框。把命令按鈕移動到下部,然后增加一個Tab Control控件,一個靜態(tài)文本控件Static Text,一個編輯框Edit Control控件。如圖:3.設置屬性4.添加代碼:1)TabDlg.h : 頭文件/ TabDlg.h : 頭文件/#pragma once#include "afxcmn.h"/ CTabDlg 對話框class CTabDlg : public CDialog/ 構造public:CTabDlg(CWnd* pParent = NULL);/ 標準構造函數(shù)/ 對話框數(shù)據(jù)enum IDD = IDD_TAB_DIAL
47、OG ;protected:virtual void DoDataExchange(CDataExchange* pDX);/ DDX/DDV 支持/ 實現(xiàn)protected:HICON m_hIcon;/ 生成的消息映射函數(shù)virtual BOOL OnInitDialog();afx_msg void OnSysCommand(UINT nID, LPARAM lParam);afx_msg void OnPaint();afx_msg HCURSOR OnQueryDragIcon();DECLARE_MESSAGE_MAP()public:CTabCtrl m_TabCtrl;/創(chuàng)建T
48、ab控件對象afx_msg void OnTcnSelchangeTab1(NMHDR *pNMHDR, LRESULT *pResult);2)TabDlg.cpp/ TabDlg.cpp : 實現(xiàn)文件/#include "stdafx.h"#include "Tab.h"#include "TabDlg.h"#ifdef _DEBUG#define new DEBUG_NEW#endif/ 用于應用程序“關于”菜單項的 CAboutDlg 對話框class CAboutDlg : public CDialogpublic:CAbo
49、utDlg();/ 對話框數(shù)據(jù)enum IDD = IDD_ABOUTBOX ;protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV 支持/ 實現(xiàn)protected:DECLARE_MESSAGE_MAP();CAboutDlg:CAboutDlg() : CDialog(CAboutDlg:IDD)void CAboutDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);BEGIN_MESSAGE_MAP(CAboutDlg, C
50、Dialog)END_MESSAGE_MAP()/ CTabDlg 對話框CTabDlg:CTabDlg(CWnd* pParent /*=NULL*/): CDialog(CTabDlg:IDD, pParent)m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);void CTabDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);DDX_Control(pDX, IDC_TAB1, m_TabCtrl);BEGIN_MESSAGE_MAP(CTabDlg, CD
51、ialog)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()/AFX_MSG_MAPON_NOTIFY(TCN_SELCHANGE, IDC_TAB1, OnTcnSelchangeTab1)END_MESSAGE_MAP()/ CTabDlg 消息處理程序BOOL CTabDlg:OnInitDialog()CDialog:OnInitDialog();/ 將“關于.”菜單項添加到系統(tǒng)菜單中。/ IDM_ABOUTBOX 必須在系統(tǒng)命令范圍內。ASSERT(IDM_ABOUTBOX & 0xFFF0) = IDM_ABOUTBO
52、X);ASSERT(IDM_ABOUTBOX < 0xF000);CMenu* pSysMenu = GetSystemMenu(FALSE);if (pSysMenu != NULL)CString strAboutMenu;strAboutMenu.LoadString(IDS_ABOUTBOX);if (!strAboutMenu.IsEmpty()pSysMenu->AppendMenu(MF_SEPARATOR);pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);/ 設置此對話框的圖標。當應用程序
53、主窗口不是對話框時,框架將自動/ 執(zhí)行此操作SetIcon(m_hIcon, TRUE);/ 設置大圖標SetIcon(m_hIcon, FALSE);/ 設置小圖標/ TODO:在此添加額外的初始化代碼/設置選項卡標題TC_ITEM * m_pItem;m_pItem=new TC_ITEM;m_pItem->mask =TCIF_TEXT;m_pItem->pszText="第一頁"m_TabCtrl.InsertItem (0,m_pItem);m_pItem->pszText="第二頁"m_TabCtrl.InsertItem (1,m_pItem);/初始化選項卡,默認為第一頁GetDlgIt
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 漫畫寫真制作課程設計
- 2024年工業(yè)氣態(tài)氮項目可行性研究報告
- 洗瓶機課程設計大圖
- 幼兒園立體陶藝課程設計
- 微機控制電梯課程設計
- 新中國成立課程設計
- 無人機課程設計資源分析
- 漫畫課程設計介紹文案
- 幼兒園剝豆課程設計
- 2024年度航空機票代理及行李超重處理合同2篇
- 《新視野商務英語視聽說》第四版-上-U2 Jobs and Responsibilities
- 第9課《古詩三首》(同步練) 2024-2025學年四年級語文上冊(統(tǒng)編版)
- 建筑工程技術專業(yè)《建筑工程質量與安全管理》課程標準
- (新版)吉林省生態(tài)環(huán)境監(jiān)測專業(yè)技術人員大比武理論試題庫(含答案)
- 7.4 等差數(shù)列與等比數(shù)列的應用(課件)-【中職專用】高二數(shù)學(高教版2021·拓展模塊一下冊)
- 2024男女雙方自愿離婚協(xié)議書
- TDT 1015.2-2024 地籍數(shù)據(jù)庫 第2部分:自然資源(正式版)
- 關于大數(shù)據(jù)的職業(yè)生涯規(guī)劃書課件
- 電子化文件與信息管理制度
- 心理健康講座(課件)-小學生心理健康
- 頂管工程安全措施和操作規(guī)程
評論
0/150
提交評論