freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

c++課程設(shè)計---用vc++制作多功能計算器-預(yù)覽頁

2025-06-21 19:17 上一頁面

下一頁面
 

【正文】 具有不規(guī)則的形狀,可以根據(jù)用戶鼠標(biāo)的位置和單擊狀態(tài)的不同,顯示不同的顏色 [3]。 (8)計算功能基本上是用系統(tǒng)內(nèi)部函數(shù)。 (2)其次,添加一個高級編輯控件類,在此類的基礎(chǔ) 上實現(xiàn)高級編輯控件。 4 系統(tǒng)的實現(xiàn) 窗體設(shè)計 利用 MFC AppWinzard 生成計算 器應(yīng)用程序框架具體步驟如下: (1)執(zhí)行 VC 程序,選擇 File|New 命令,彈出 New 對話框 .單擊 Projects 標(biāo)簽,轉(zhuǎn)到 Projects 選項卡,選擇 MFC AppWizard(exe)選項,然后在 Project name 文本框中輸入 Calculator 。 (3)單擊 Next 按鈕,彈出 MFC AppWinzard_Step2 of4 對話框,如圖所示。 編輯資源 (1)編輯對話框及控件資源 利用 Visual C++提供的資源編輯器對對話框資源進行編輯。 表 41 按鈕控件資源清單 按鈕名稱 按鈕 ID 用途 0 BTN_0 按鍵 0 1 BTN_1 按鍵 1 2 BTN_2 按鍵 2 3 BTN_3 按鍵 3 4 BTN_4 按鍵 4 5 BTN_5 按鍵 5 6 BTN_6 按鍵 6 7 BTN_7 按鍵 7 8 BTN_8 按鍵 8 9 BTN_9 按鍵 9 。在其中的 Menu 項上右擊,在彈出的快捷菜單中選擇 Insert 命令,如圖 42 所示。 圖 45 添加 CAdvButton 類 (1)添加成員變量和成員函數(shù) 為實現(xiàn)高級按鈕控件對鼠標(biāo)的移動和單擊作出相應(yīng)的顏色變化。 //按鈕所處狀態(tài) CPoint m_Point。 //}}AFX_VIRTUAL 其中對于所有的對于按鈕的繪制工作都是在 DrawItem 函數(shù)中完成的。 (3)設(shè)置按鈕形狀、外觀、顏色、標(biāo)題 PreSubclassWindow 函數(shù)在窗口被創(chuàng)建之前就被調(diào)用,因此,在 PreSubclassWindow 函數(shù)中,將按鈕的風(fēng)格設(shè)為BS_OWNERDRAW。當(dāng)鼠標(biāo)坐標(biāo)位落于窗口客戶區(qū)域內(nèi),且當(dāng)前按鈕控件處于非選中狀態(tài)時,將按鈕狀態(tài)標(biāo)識設(shè)為選中狀態(tài),即將 m_State 設(shè)為 2。rect)。amp。 } 在鼠標(biāo)左鍵抬起時,得到按鈕窗口客戶區(qū)域的屏幕坐標(biāo)位置和鼠標(biāo)的屏幕坐標(biāo)位置。 在用戶移動鼠標(biāo)時,如果計時器沒有啟動,則啟動計時器,并將計時器啟動標(biāo)識 m_IsTimerOn 設(shè)為 TRUE。 OnTimer 函數(shù)的實現(xiàn)代碼如附錄 1 所示。從參數(shù) lpDrawItemStruct 結(jié)構(gòu)中得到按鈕控件客戶區(qū)域的設(shè)備環(huán)境變量指針。 通過上面操作,按鈕已經(jīng)具有對鼠標(biāo)不同的位置和動作改變不同的顏色。 //通到窗口的有效矩形區(qū)域 ()。 至此,一個完整的高級按鈕類全部完成。 //編輯框文本 利用 AppWizard 添加消息函數(shù) OnPaint。 //繪制編輯控件客戶區(qū) void OnDisplay(LPCTSTR lpszStr)。 OnDraw()。 在 OnDraw 函數(shù)中,在編輯控件客戶區(qū)域內(nèi)繪制文本。 主要成員變量: // 頭文件 CButton m_DspStatic。 //標(biāo)志對話框是否已擴展 主要成員函數(shù): // 頭文件 //{{AFX_VIRTUAL(CCalculatorDlg) Protected: virtual void DoDataExchange(CDataExchange*pDX)。 afx_msg void OnPaint()。利用 CMenu 類的LoadMenu 函數(shù),將菜單資源加載到內(nèi)存中。 圖 414 關(guān)聯(lián)控件與對象 (3)實現(xiàn)對話框擴展功能 首先在 CCalculatorDlg::OnCreate 函數(shù)中,設(shè)定對話框的初始大小與位置。 //得到對話框的窗口區(qū)域矩形 //指定窗口大小與位置 :寬為 186 像素 ,高度為 245 像素 SetWindowPos(amp。 如果對話框已被擴展,則收縮對話框。 如果對話框為 非擴展,則擴展對話框。效果如圖 415 和 416 所示: 圖 415 擴展圖 圖 416 收縮圖 (4)屏蔽 Enter 鍵 直到現(xiàn)在為止,雖然計算器的界面已經(jīng)完成。 void CCalculatorDlg::OnOK() { //CDialog::OnOK()。 圖 417 添加位圖 參數(shù)設(shè)置后對話框的外觀如圖 418 所示。還需要一個整形變量來記錄當(dāng)前運算符,以及一個整形變量來記錄當(dāng)前小數(shù)點按鈕是否被單擊過。 // double m_end。//判斷是否按下了小數(shù)點符號 ,當(dāng)其為 0 時,表示沒有按下 當(dāng)數(shù)字鍵 0— 9 被單擊時,則將當(dāng)前所按鍵加到初始操作數(shù)末尾,并將初始操作數(shù)顯示出來。 當(dāng)小數(shù)點鍵被單擊時,首先判斷小數(shù)點鍵是否已經(jīng)被單擊過,以及當(dāng)前初始操作數(shù)字符串是否為空。 m_StrBegin != ) //如果小數(shù)點沒有按下 ,且字符不為空 { m_StrBegin = m_StrBegin+.。清除小數(shù)點標(biāo)識,將保存初始操作數(shù)和結(jié)果操作數(shù)的字符串清空,將保存初始操作數(shù)和結(jié)果操作數(shù)的浮點數(shù)清 0,將當(dāng)前操作符清 0。 //清 0 m_end = 。 //計算運算結(jié)果 m_bit = 1。 5 程序結(jié)果的演示 測試的研究與選擇 測試過程中要判斷測試是否成功,要分析程序界面的變化和計算數(shù)據(jù)的結(jié)果是否正確以及各功能鍵是否能正常使用。課程設(shè)計是以一個計算器的實現(xiàn)為基礎(chǔ),掌握一個基于對話框的應(yīng)用程序的編程方法以及對話框常用控件的高級編程。 本系統(tǒng)適合于運行在 Microsoft Windows 的各個版本下,包括 Windows9 Windows Me、 Windows20 Windows XP 等系統(tǒng)平臺下。 = 0。 //刪除區(qū)域?qū)ο? (amp。 m_IsTimerOn = FALSE。 GetWindowRect(amp。 //得到鼠標(biāo)的屏幕坐標(biāo)位置 if(((m_Point))amp。 //重繪客戶區(qū) } CButton::OnLButtonUp(nFlags, point)。 //得到按鈕客戶區(qū)域的屏幕坐標(biāo)位置 GetCursorPos(amp。(m_State != 2)) { m_State = 1。 //重繪客戶區(qū) } KillTimer(nIDEvent)。m_ClientRect)。 //在矩形區(qū)域內(nèi)創(chuàng)建橢圓 //設(shè)置窗口的有效區(qū)域為橢圓 SetWindowRgn(m_ClientRgn,FALSE)。 break。 break。//設(shè)置背景模式為透明 pPen = pDCSelectObject(pPen)。 if(pPen) delete pPen。 //指定文本顏色 //繪制文本 ,作為按鈕標(biāo)題 pDCDrawText(pCaption,iLen,amp。 GetClientRect(amp。 //設(shè)置背景模式為透明 CBrush * pBrush = new CBrush(RGB(255,255,255))。// 設(shè)置文本顏色 //繪制文本 ,用指定的顏色和字體 pDCDrawText(m_Caption,rect,DT_SINGLELINE|DT_VCENTER|DT_RIGHT)。 //加載菜單資源模板 SetMenu(m_Menu)。rect)。寬為 186 像素 ,高度不變 SetWindowPos(amp。 //設(shè)置編輯框窗口位置與大小 。 //設(shè)置表態(tài)框窗口位置與大小 (NULL,168,(),SWP_NOMOVE|SWP_NOZORDER)。wndTop,0,0,330,(),SWP_NOMOVE|SWP_NOZORDER)。 //得到靜態(tài)框的窗口區(qū)域矩形 (amp。 m_IsExtend = TRUE。 } void CCalculatorDlg::OnDegree() { m_isDegree=0。 if (!m_IsCheckPoint) //如 果小數(shù)點按下了 (m_StrBegin+.)。 else //如果小數(shù)點沒有按下 (m_StrBegin)。 } void CCalculatorDlg::AdvButton4()//按下 4 鍵時的處理函數(shù) { m_StrBegin = m_StrBegin+4。 if (!m_IsCheckPoint) //如果小數(shù)點按下了 (m_StrBegin+.)。 else //如果小數(shù)點沒有按下 (m_StrBegin)。 } void CCalculatorDlg::AdvButton8()//按下 8 鍵時的處理函數(shù) { m_StrBegin = m_StrBegin+8。 if (!m_IsCheckPoint) //如果小數(shù)點按下了 (m_StrBegin+.)。 //當(dāng)輸入數(shù)據(jù)轉(zhuǎn)為浮點數(shù) switch(m_bit) { case 1: //處理 +號 m_end += m_begin。 case 3: //處理 *號,即乘法 m_end *= m_begin。 } m_end /= m_begin。 } m_end = sqrt(m_end)。 case 8: //處理 sin 號 m_end = sin(m_end*DtoR)。 case 10: //處理 tan 號 m_end = tan(m_end*DtoR)。 case 12: //處理 x^3 號,即立方 m_end = m_end*m_end*m_end。 case 14: //處理 Exp 號,即求 e 的 x 次方 m_end = exp(m_end)。 } m_end = log(m_end)。 } m_end = log10(m_end)。 } int i。 break。 break。 int i = sprintf(m_buffer,%,m_e
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1