vc對話框繪制會變色的橢圓_第1頁
vc對話框繪制會變色的橢圓_第2頁
vc對話框繪制會變色的橢圓_第3頁
vc對話框繪制會變色的橢圓_第4頁
vc對話框繪制會變色的橢圓_第5頁
已閱讀5頁,還剩16頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、vc對話框繪制會變色的橢圓 / zz24Dlg.cpp : implementation file/#include "stdafx.h"#include "zz24.h"#include "zz24Dlg.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CAboutDlg dialog used for App Aboutclass CAboutDlg

2、: public CDialogpublic:CAboutDlg();/ Dialog Data/AFX_DATA(CAboutDlg)enum IDD = IDD_ABOUTBOX ;/AFX_DATA/ ClassWizard generated virtual function overrides/AFX_VIRTUAL(CAboutDlg)protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV support/AFX_VIRTUAL/ Implementationprotected:/AFX_MSG(CA

3、boutDlg)/AFX_MSGDECLARE_MESSAGE_MAP();CAboutDlg:CAboutDlg() : CDialog(CAboutDlg:IDD)/AFX_DATA_INIT(CAboutDlg)/AFX_DATA_INITvoid CAboutDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CAboutDlg)/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CAboutDlg, CDialog)/AFX_MSG_MAP(CAboutDlg)/ N

4、o message handlers/AFX_MSG_MAPEND_MESSAGE_MAP()/ CZz24Dlg dialogCZz24Dlg:CZz24Dlg(CWnd* pParent /*=NULL*/): CDialog(CZz24Dlg:IDD, pParent)/AFX_DATA_INIT(CZz24Dlg)/ NOTE: the ClassWizard will add member initialization here/AFX_DATA_INIT/ Note that LoadIcon does not require a subsequent DestroyIcon in

5、 Win32m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);void CZz24Dlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CZz24Dlg)DDX_Control(pDX, IDC_EDIT3, m_edit3);DDX_Control(pDX, IDC_EDIT2, m_edit2);DDX_Control(pDX, IDC_EDIT1, m_edit1);DDX_Control(pDX, IDC_SCROLLBAR

6、3, m_scr3);DDX_Control(pDX, IDC_SCROLLBAR2, m_scr2);DDX_Control(pDX, IDC_SCROLLBAR1, m_scr1);/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CZz24Dlg, CDialog)/AFX_MSG_MAP(CZz24Dlg)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_WM_HSCROLL()/AFX_MSG_MAPEND_MESSAGE_MAP()/ CZz24Dlg message handlersBOOL CZz24Dlg

7、:OnInitDialog()CDialog:OnInitDialog();/ Add "About." menu item to system menu./ IDM_ABOUTBOX must be in the system command range.ASSERT(IDM_ABOUTBOX & 0xFFF0) = IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX < 0xF000);CMenu* pSysMenu = GetSystemMenu(FALSE);if (pSysMenu != NULL)CS

8、tring strAboutMenu;strAboutMenu.LoadString(IDS_ABOUTBOX);if (!strAboutMenu.IsEmpty()pSysMenu->AppendMenu(MF_SEPARATOR);pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);/ Set the icon for this dialog. The framework does this automatically/ when the application's main

9、window is not a dialogSetIcon(m_hIcon, TRUE);/ Set big iconSetIcon(m_ hIcon, FALSE);/ Set small icon/ TODO: Add extra initialization here/* m_scr1.SetScrollRange(0,255);m_scr1.SetScrollPos(50);/char sPos110;/itoa(m_Scrollbar1.GetScrollPos(),sPos1,10);/m_Edit1.SetSel(0,-1);/ m_Edit1.ReplaceSel(sPos1)

10、;m_edit1=m_scr1.GetScrollPos();UpdateData(FALSE);*/m_scr1.SetScrollRange(0,255);m_scr1.SetScrollPos(50);char sPos110;itoa(m_scr1.GetScrollPos(),sPos1,10);m_edit1.SetSel(0,-1);m_edit1.ReplaceSel(sPos1);UpdateData(FALSE);m_scr2.SetScrollRange(0,255);m_scr2.SetScrollPos(50);char sPos210;itoa(m_scr2.Get

11、ScrollPos(),sPos2,10);m_edit2.SetSel(0,-1);m_edit2.ReplaceSel(sPos2);UpdateData(FALSE);m_scr3.SetScrollRange(0,255);m_scr3.SetScrollPos(50);char sPos310;itoa(m_scr3.GetScrollPos(),sPos3,10);m_edit3.SetSel(0,-1);m_edit3.ReplaceSel(sPos3);UpdateData(FALSE);return TRUE; / return TRUE unless you set the

12、 focus to a controlvoid CZz24Dlg:OnSysCommand(UINT nID, LPARAM lParam)if (nID & 0xFFF0) = IDM_ABOUTBOX)CAboutDlg dlgAbout;dlgAbout.DoModal();elseCDialog:OnSysCommand(nID, lParam);/ If you add a minimize button to your dialog, you will need the code below/ to draw the icon. For MFC applicatio

13、ns using the document/view model,/ this is automatically done for you by the framework./*在運行窗口時,系統畫出我們的對話框時用下面的函數畫的!開始不懂為什么將畫圖的代碼寫在初始化函數中就不會一運行就畫出突來,而那些控件卻可以畫出來,原因是,那些控件是我們自己班上去的,而圓卻是函數要畫的,系統畫東西就是在ONPAINT函數中*/void CZz24Dlg:OnPaint() / if (IsIconic()CPaintDC dc(this); / device context for paintingSen

14、dMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);/ Center icon in client rectangleint cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect rect;GetClientRect(&rect);int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - cyIcon + 1) / 2;/ Draw

15、the icondc.DrawIcon(x, y, m_hIcon);elseCDialog:OnPaint();/HDC hdc; /PAINTSTRUCT ps; /HPEN hP; /HBRUSH hB; / /hdc=BeginPaint(&ps); /SetMapMode(hdc,MM_TEXT); / hP=CreatePen(PS_DASHDOT,1,RGB(255,255,0);/hdc=:GetDC(m_hWnd); /Ellipse(hdc,200,200,270,250); /HDC hdc; /設備環境句柄HPEN hP; /HBRUSH hB; / S

16、etMapMode(hdc,MM_TEXT); /設置映射模式hB=CreateHatchBrush(7,RGB(50,50,50);hdc=:GetDC(m_hWnd); /SelectObject(hdc,hB);Ellipse(hdc,150,160,350,280); DeleteObject(hP);DeleteObject(hB);/ The system calls this to obtain the cursor to display while the user drags/ the minimized window.HCURSOR CZz24Dlg:OnQueryDrag

17、Icon()return (HCURSOR) m_hIcon;void CZz24Dlg:OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) / TODO: Add your message handler code here and/or call defaultCDialog:OnHScroll(nSBCode, nPos, pScrollBar);char sPos110,sPos210,sPos310;int iNowPos1,iNowPos2,iNowPos3;/CScrollBar *m_Scrollbar=new

18、CScrollBar;/對象與對象之間的賦值操作都不可以啊!/CEdit *m_Edit=new CEdit;if(pScrollBar=&m_scr1)switch(nSBCode)/if(pScrollBar=&m_Scrollbar1)/ m_Scrollbar=&m_Scrollbar1;/ m_Edit=&m_Edit1; /這個IF語句是用來在多個滾動條情況下進行判斷,/看操作的是哪個控件case SB_THUMBTRACK: /拖動滾動條時m_scr1.SetScrollPos(nPos);itoa(nPos,sPo

19、s1,10);m_edit1.SetSel(0,-1);m_edit1.ReplaceSel(sPos1);/m_edit1=m_scr1.GetScrollPos();/UpdateData(FALSE);break;case SB_LINEDOWN: /單擊滾動條向下的箭頭iNowPos1=m_scr1.GetScrollPos();/獲取滾動塊目前的位置并賦值給變量iNowPosiNowPos1=iNowPos1+1; /變量在當前的值上自動加一,以實現單擊一下向下的箭頭,滾動塊就會下移一個位置if(iNowPos1>255)iNowPos1=255; /判斷滾動塊是否到底

20、了m_scr1.SetScrollPos(iNowPos1); /設置滾動塊的位置,此步完成之后滾動快就已經到了相應的位置itoa(m_scr1.GetScrollPos(),sPos1,10);/得到滾動塊的位置(整型),并將此十進制數轉化成字符m_edit1.SetSel(0,-1); /選中顯示框中的所有內容m_edit1.ReplaceSel(sPos1); /用sPos替換顯示框中的所有內容/m_edit1=m_scr1.GetScrollPos();/UpdateData(FALSE);break;case SB_LINEUP: /單擊滾動條向上的箭頭iNowPos1=m_scr1

21、.GetScrollPos();/獲取滾動塊目前的位置并賦值給變量iNowPosiNowPos1=iNowPos1-1; /變量在當前的值上自動加一,以實現單擊一下向下的箭頭,滾動塊就會下移一個位置if(iNowPos1<0)iNowPos1=0; /判斷滾動塊是否到底了m_scr1.SetScrollPo s(iNowPos1); /設置滾動塊的位置,此步完成之后滾動快就已經到了相應的位置itoa(m_scr1.GetScrollPos(),sPos1,10);/得到滾動塊的位置(整型),并將此十進制數轉化成字符m_edit1.SetSel(0,-1); /選中顯示框中的所有內

22、容m_edit1.ReplaceSel(sPos1); /用sPos替換顯示框中的所有內容/m_edit1=m_scr1.GetScrollPos();/UpdateData(FALSE);break;/通過這個我們知道給EDIT(編輯框)進行賦if(pScrollBar=&m_scr2)switch(nSBCode)/if(pScrollBar=&m_Scrollbar3)/這個IF語句是用來在多個滾動條情況下進行判斷,/看操作的是哪個控件case SB_THUMBTRACK: /拖動滾動條時m_scr2.SetScrollPos(nPos);itoa(nPo

23、s,sPos2,10);m_edit2.SetSel(0,-1);m_edit2.ReplaceSel(sPos2);break;case SB_LINEDOWN: /單擊滾動條向下的箭頭iNowPos2=m_scr2.GetScrollPos();/獲取滾動塊目前的位置并賦值給變量iNowPosiNowPos2=iNowPos2+1; /變量在當前的值上自動加一,以實現單擊一下向下的箭頭,滾動塊就會下移一個位置if(iNowPos2>255)iNowPos2=255; /判斷滾動塊是否到底了m_scr2.SetScrollPos(iNowPos2); /設置滾動塊的位置,此步完

24、成之后滾動快就已經到了相應的位置itoa(m_scr2.GetScrollPos(),sPos2,10);/得到滾動塊的位置(整型),并將此十進制數轉化成字符m_edit2.SetSel(0,-1); /選中顯示框中的所有內容m_edit2.ReplaceSel(sPos2); /用sPos替換顯示框中的所有內容break;case SB_LINEUP: /單擊滾動條向上的箭頭iNowPos2=m_scr2.GetScrollPos();/獲取滾動塊目前的位置并賦值給變量iNowPosiNowPos2=iNowPos2-1; /變量在當前的值上自動加一,以實現單擊一下向下的箭頭,滾動塊就會下移

25、一個位置if(iNowPos2<0)iNowPos2=0; /判斷滾動塊是否到底了m_scr2.SetScrollPos(iNowPos2); /設置滾動塊的位置,此步完成之后滾動快就已經到了相應的位置itoa(m_scr2.GetScrollPos(),sPos2,10);/得到滾動塊的位置(整型),并將此十進制數轉化成字符m_edit2.SetSel(0,-1); /選中顯示框中的所有內容m_edit2.ReplaceSel(sPos2); /用sPos替換顯示框中的所有內容break;if(pScrollBar=&m_scr3 )switch(nSBCode

26、)/if(pScrollBar=&m_Scrollbar1)/ m_Scrollbar=&m_Scrollbar1;/ m_Edit=&m_Edit1; /這個IF語句是用來在多個滾動條情況下進行判斷,/看操作的是哪個控件case SB_THUMBTRACK: /拖動滾動條時m_scr3.SetScrollPos(nPos);itoa(nPos,sPos3,10);m_edit3.SetSel(0,-1);m_edit3.ReplaceSel(sPos3);/m_edit3=m_scr3.GetScrollPos();/UpdateData(FA

27、LSE);break;case SB_LINEDOWN: /單擊滾動條向下的箭頭iNowPos3=m_scr3.GetScrollPos();/獲取滾動塊目前的位置并賦值給變量iNowPosiNowPos3=iNowPos3+1; /變量在當前的值上自動加一,以實現單擊一下向下的箭頭,滾動塊就會下移一個位置if(iNowPos3>255)iNowPos3=255; /判斷滾動塊是否到底了m_scr3.SetScrollPos(iNowPos3); /設置滾動塊的位置,此步完成之后滾動快就已經到了相應的位置itoa(m_scr3.GetScrollPos(),sPos3,10);/

28、得到滾動塊的位置(整型),并將此十進制數轉化成字符m_edit3.SetSel(0,-1); /選中顯示框中的所有內容m_edit3.ReplaceSel(sPos3); /用sPos替換顯示框中的所有內容/m_edit3=m_scr3.GetScrollPos();/UpdateData(FALSE);break;case SB_LINEUP: /單擊滾動條向上的箭頭iNowPos3=m_scr3.GetScrollPos();/獲取滾動塊目前的位置并賦值給變量iNowPosiNowPos3=iNowPos3-1; /變量在當前的值上自動加一,以實現單擊一下向下的箭頭,滾動塊就會下移一個位置if(iNowPos3<0)iNowPos3=0; /判斷滾動塊是否到底了m_scr3.SetScrollPos(iNowPos3); /設置滾動塊的位置,此步完成之后滾動快就已經到

溫馨提示

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

評論

0/150

提交評論