運用C言語編寫聖誕表達順序。本站提示廣大學習愛好者:(運用C言語編寫聖誕表達順序)文章只能為提供參考,不一定能成為您想要的結果。以下是運用C言語編寫聖誕表達順序正文
快到聖誕節啦,男票女票都有了嘛?沒有的話,有沒有喜歡的女孩子或許男孩子啊?明天就給你們分享一個聖誕節的表達順序,希望你們喜歡咯,效果是這樣的:
聖誕節快到了,讓我們用C言語制造一個聖誕表達順序
詳細代碼如下咯:
// GreetingCardDemoDlg.cpp : 完成文件 // #include "stdafx.h" #include "GreetingCardDemo.h" #include "GreetingCardDemoDlg.h" #include "afxdialogex.h" #ifdef _DEBUG #define new DEBUG_NEW #endif // 用於使用順序“關於”菜單項的 CAboutDlg 對話框 class CAboutDlg : public CDialogEx { public: CAboutDlg(); // 對話框數據 enum { IDD = IDD_ABOUTBOX }; protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 // 完成 protected: DECLARE_MESSAGE_MAP() }; CAboutDlg::CAboutDlg() : CDialogEx(CAboutDlg::IDD) { } void CAboutDlg::DoDataExchange(CDataExchange* pDX) { CDialogEx::DoDataExchange(pDX); } BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx) END_MESSAGE_MAP() // CGreetingCardDemoDlg 對話框 CGreetingCardDemoDlg::CGreetingCardDemoDlg(CWnd* pParent /*=NULL*/) : CDialogEx(CGreetingCardDemoDlg::IDD, pParent) { m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); } void CGreetingCardDemoDlg::DoDataExchange(CDataExchange* pDX) { CDialogEx::DoDataExchange(pDX); } BEGIN_MESSAGE_MAP(CGreetingCardDemoDlg, CDialogEx) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() //ON_BN_CLICKED(IDC_BTN_DRAW, &CGreetingCardDemoDlg::OnBnClickedBtnDraw) ON_WM_TIMER() END_MESSAGE_MAP() // CGreetingCardDemoDlg 音訊處置順序 BOOL CGreetingCardDemoDlg::OnInitDialog() { CDialogEx::OnInitDialog(); // 將“關於...”菜單項添加到零碎菜單中。 // IDM_ABOUTBOX 必需在零碎命令范圍內。 ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000); CMenu* pSysMenu = GetSystemMenu(FALSE); if (pSysMenu != NULL) { BOOL bNameValid; CString strAboutMenu; bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX); ASSERT(bNameValid); if (!strAboutMenu.IsEmpty()) { pSysMenu->AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); } } // 設置此對話框的圖標。 當使用順序主窗口不是對話框時,框架將自動 // 執行此操作 SetIcon(m_hIcon, TRUE);// 設置大圖標 SetIcon(m_hIcon, FALSE);// 設置小圖標 //1. 是不是辦法沒有被調用 //2. 是不是外面的零碎辦法有問題 m_pFont = new CFont; m_pFont->CreateFontW(80, 0, 0, 0, FW_BOLD, FALSE, FALSE, 0, ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_SWISS, L"Arial"); SetTimer(1, 100, nullptr); return TRUE; // 除非將焦點設置到控件,否則前往 TRUE } void CGreetingCardDemoDlg::OnSysCommand(UINT nID, LPARAM lParam) { if ((nID & 0xFFF0) == IDM_ABOUTBOX) { CAboutDlg dlgAbout; dlgAbout.DoModal(); } else { CDialogEx::OnSysCommand(nID, lParam); } } void CGreetingCardDemoDlg::OnPaint() { if (IsIconic()) { CPaintDC dc(this); // 用於繪制的設備上下文 SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0); // 使圖標在任務區矩形中居中 int 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; // 繪制圖標 dc.DrawIcon(x, y, m_hIcon); } else { Draw(); CDialogEx::OnPaint(); } } //當用戶拖動最小化窗口時零碎調用此函數獲得光標 //顯示。 HCURSOR CGreetingCardDemoDlg::OnQueryDragIcon() { return static_cast<HCURSOR>(m_hIcon); } void CGreetingCardDemoDlg::Draw() { //1.日期 CClientDC clientDC(this);//獲取設備 //2.天氣 CDC memDC; memDC.CreateCompatibleDC(&clientDC); //memDC.CreateCompatibleDC(NULL); //假如我們要畫一張畫 //我們是不是需求知道這張畫得畫多大 //我們繪畫得紙有多大,我們就能畫多大 //我們的窗口有多大就能畫多大 //3.獲取大小 CRect clientRect;//四邊形的大小 GetClientRect(&clientRect); //我們要將一副畫畫上去 //1. 要有圖片我們運用搜索引擎 運用QQ截圖 //2. 我們要將圖片顯示在我們的窗口上 //1. 圖片加載到我們的軟件當中 //2. 顯示 //我要畫成什麼樣子 CBitmap drawBmp; drawBmp.LoadBitmapW(IDB_BITMAP_CARD); BITMAP bitMap; drawBmp.GetBitmap(&bitMap); memDC.SelectObject(&drawBmp); clientDC.BitBlt(clientRect.left, clientRect.top, bitMap.bmWidth, clientRect.Height(), &memDC, 0, 0, SRCCOPY); memDC.DeleteDC(); } void CGreetingCardDemoDlg::DrawText() { //坐標 1.0版本 static int nX = 0; static int nY = 0; static int nColor = 255; CClientDC clientDC(this); CRect clientRect; GetClientRect(&clientRect); CFont *pOldFont = clientDC.SelectObject(m_pFont); //clientDC.SetBkMode(TRANSPARENT); clientDC.SetTextColor(RGB(nColor, 0, 0)); //nColor -= 10; if (0 >= nColor) nColor = 255; Draw(); clientDC.TextOutW(clientRect.left , clientRect.top + nY, L"我 love you * 莉莉"); nX += 10; nY += 10; if (nX >= clientRect.Width()) { nX = 0; nY = 0; } if (nY >= clientRect.Height()) { nY = 0; } clientDC.SelectObject(pOldFont); } void CGreetingCardDemoDlg::OnTimer(UINT_PTR nIDEvent) { DrawText(); CDialogEx::OnTimer(nIDEvent); }
這些就是全部代碼辣,外面的句子你們可以自己改成想對對方說的話,這些都是可以自己改哒,代碼只是參考,要學的是編程思緒,希望你們能學好C/C++,能為自己所用咯!!
假如大家有任何疑問請給我留言,會及時回復大家的。在此也十分感激大家對網站的支持!