




免費(fèi)預(yù)覽已結(jié)束,剩余3頁(yè)可下載查看
下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
/ 模擬時(shí)鐘.cpp : 定義應(yīng)用程序的入口點(diǎn)。/編制一個(gè)模擬時(shí)鐘,要求表面為一個(gè)粉色的源,并帶有刻度,秒針,分針,時(shí)針與運(yùn)行應(yīng)與實(shí)際接近。/本例應(yīng)設(shè)置一個(gè)1秒的計(jì)時(shí)器,處理計(jì)時(shí)器發(fā)生的消息時(shí)應(yīng)對(duì)屏幕進(jìn)行重繪,重繪時(shí)對(duì)時(shí)間進(jìn)行調(diào)整,/并根據(jù)新的時(shí)間繪制表中的時(shí)針、分針和秒針。為了保持時(shí)間,可以將時(shí)間設(shè)置為靜態(tài)變量或全局變量。/因表中的時(shí)間是動(dòng)態(tài)的,所以將繪圖的代碼應(yīng)放在響應(yīng)WM_PAINT消息。#include stdafx.h#include 模擬時(shí)鐘.h#include #include #include #define PI 3.1415926#define MAX_LOADSTRING 100typedef struct Time int hour,min,sec;TimeStructure;/ 全局變量:HINSTANCE hInst; / 當(dāng)前實(shí)例TCHAR szTitleMAX_LOADSTRING; / 標(biāo)題欄文本TCHAR szWindowClassMAX_LOADSTRING; / 主窗口類名/ 此代碼模塊中包含的函數(shù)的前向聲明:ATOM MyRegisterClass(HINSTANCE hInstance);BOOL InitInstance(HINSTANCE, int);LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);void AdjustTime(TimeStructure * x);INT_PTR CALLBACK About(HWND, UINT, WPARAM, LPARAM);int APIENTRY _tWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPTSTR lpCmdLine, _In_ int nCmdShow) UNREFERENCED_PARAMETER(hPrevInstance); UNREFERENCED_PARAMETER(lpCmdLine); / TODO: 在此放置代碼。 MSG msg; HACCEL hAccelTable; / 初始化全局字符串 LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING); LoadString(hInstance, IDC_MY, szWindowClass, MAX_LOADSTRING); MyRegisterClass(hInstance); / 執(zhí)行應(yīng)用程序初始化: if (!InitInstance (hInstance, nCmdShow) MessageBox(NULL,L創(chuàng)建窗口失敗!,_T(創(chuàng)建窗口),NULL); return FALSE; hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_MY); / 主消息循環(huán): while (GetMessage(&msg, NULL, 0, 0) if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg) TranslateMessage(&msg); DispatchMessage(&msg); return (int) msg.wParam;/ 函數(shù): MyRegisterClass()/ 目的: 注冊(cè)窗口類。/ATOM MyRegisterClass(HINSTANCE hInstance) WNDCLASSEX wcex; TCHAR szWindowClass=L窗口示例; TCHAR szTitle=L模擬時(shí)鐘; wcex.cbSize = sizeof(WNDCLASSEX); wcex.style = 0; wcex.lpfnWndProc = WndProc; wcex.cbClsExtra = 0; wcex.cbWndExtra = 0; wcex.hInstance = hInstance; wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_APPLICATION); wcex.hCursor = LoadCursor(NULL, IDC_ARROW); wcex.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); wcex.lpszMenuName = NULL; wcex.lpszClassName = szWindowClass; wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_APPLICATION); if (!RegisterClassEx(&wcex) MessageBox(NULL,L注冊(cè)窗口失敗,_T(注冊(cè)窗口),NULL); return FALSE; return RegisterClassEx(&wcex);/ 函數(shù): InitInstance(HINSTANCE, int)/ 目的: 保存實(shí)例句柄并創(chuàng)建主窗口/ 注釋:/ 在此函數(shù)中,我們?cè)谌肿兞恐斜4鎸?shí)例句柄并/ 創(chuàng)建和顯示主程序窗口。/BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) HWND hWnd; hInst = hInstance; / 將實(shí)例句柄存儲(chǔ)在全局變量中 hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL); if (!hWnd) return FALSE; ShowWindow(hWnd, nCmdShow); UpdateWindow(hWnd); return TRUE;/ 函數(shù): WndProc(HWND, UINT, WPARAM, LPARAM)/ 目的: 處理主窗口的消息。/ WM_COMMAND - 處理應(yīng)用程序菜單/ WM_PAINT - 繪制主窗口/ WM_DESTROY - 發(fā)送退出消息并返回/LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) int wmId, wmEvent; PAINTSTRUCT ps; HDC hdc; HBRUSH hBrush; HPEN hPen; RECT clientRect; static TimeStructure x; float sita=0; int xOrg,yOrg,rSec,rMin,rHour,rClock,xBegin,xEnd,yBegin,yEnd; switch (message) case WM_COMMAND: wmId = LOWORD(wParam); wmEvent = HIWORD(wParam); / 分析菜單選擇: switch (wmId) case IDM_ABOUT: DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About); break; case IDM_EXIT: DestroyWindow(hWnd); break; default: return DefWindowProc(hWnd, message, wParam, lParam); break; case WM_CREATE: /創(chuàng)建窗口時(shí),響應(yīng)的消息 SetTimer(hWnd,9999,1000,NULL); break; case WM_PAINT: x.sec+; AdjustTime(&x); hdc = BeginPaint(hWnd, &ps); / TODO: 在此添加任意繪圖代碼. GetClientRect(hWnd,&clientRect); /獲取用戶區(qū)的尺寸 hPen=(HPEN)GetStockObject(BLACK_PEN);/設(shè)置畫筆為系統(tǒng)預(yù)定的黑色畫筆 hBrush=CreateSolidBrush(RGB(255,220,220);/穿件粉紅色的單色畫刷 SelectObject(hdc,hPen); /選擇畫筆 SelectObject(hdc,hBrush); /選擇畫刷 xOrg=(clientRect.left+clientRect.right)/2; yOrg=(clientRect.top+clientRect.bottom)/2;/計(jì)算屏幕中心的坐標(biāo),它也是鐘表的中心 rClock=min(xOrg,yOrg )-50; /鐘表的的半徑 rSec=rClock * 6/7; /秒針的半徑 rMin=rClock * 5/6; /分針的半徑 rHour=rClock * 2/3; /時(shí)針的半徑 Ellipse(hdc,xOrg-rClock,yOrg-rClock,xOrg+rClock,yOrg+rClock);/繪制表面圓 for(int i=0;isec=60) x-sec=0; x-min+; if(x-min=60) x-min=0; x-hour+; if(x-hour=12) x-hour=0; / “關(guān)于”框的消息處理程序。INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) UNREFERENCED_PARAMETER(lPara
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 結(jié)腸癌護(hù)理常規(guī)
- 小區(qū)交付施工方案
- 2026版《全品高考》選考復(fù)習(xí)方案物理01 課時(shí)作業(yè)(一) 走近細(xì)胞含答案
- 如何發(fā)現(xiàn)胃腸腫瘤信號(hào)
- 圖書英文面試題及答案
- 幼兒快樂生活健康成長(zhǎng)
- 園林會(huì)計(jì)面試題及答案
- 前廳部考試題及答案
- 幼兒園健康課課件
- 內(nèi)科主管考試題及答案
- 醫(yī)學(xué)教材 暴發(fā)性心肌炎
- 車間6S可視化管理之定置劃線標(biāo)準(zhǔn)解讀
- 小學(xué)英語(yǔ)三年級(jí)《My Family》說(shuō)課課件
- Odoo:Odoo集成與第三方應(yīng)用技術(shù)教程.Tex.header
- 2024年江西省“振興杯”地質(zhì)調(diào)查員競(jìng)賽考試題庫(kù)(含答案)
- 人教部編版九年級(jí)歷史上冊(cè):第14課 文藝復(fù)興運(yùn)動(dòng) 教學(xué)設(shè)計(jì)
- 機(jī)械設(shè)備賠償協(xié)議
- 高一英語(yǔ)新教材全四冊(cè)單詞表漢譯英默寫(2019新人教版)
- 2024年菏澤鄆城縣結(jié)合事業(yè)單位公開招聘征集高校全日制本科及以上學(xué)歷入伍10人(高頻重點(diǎn)提升專題訓(xùn)練)共500題附帶答案詳解
- 氮?dú)鈨?chǔ)罐畢業(yè)設(shè)計(jì)
- 武術(shù)專業(yè)個(gè)人簡(jiǎn)歷模板范文
評(píng)論
0/150
提交評(píng)論