使用C語(yǔ)言編寫圣誕表白程序
快到圣誕節(jié)啦,男票女票都有了嘛?沒有的話,有沒有喜歡的女孩子或者男孩子???今天就給你們分享一個(gè)圣誕節(jié)的表白程序,希望你們喜歡咯,效果是這樣的:
圣誕節(jié)快到了,讓我們用C語(yǔ)言制作一個(gè)圣誕表白程序
具體代碼如下咯:
// GreetingCardDemoDlg.cpp : 實(shí)現(xiàn)文件 // #include "stdafx.h" #include "GreetingCardDemo.h" #include "GreetingCardDemoDlg.h" #include "afxdialogex.h" #ifdef _DEBUG #define new DEBUG_NEW #endif // 用于應(yīng)用程序“關(guān)于”菜單項(xiàng)的 CAboutDlg 對(duì)話框 class CAboutDlg : public CDialogEx { public: CAboutDlg(); // 對(duì)話框數(shù)據(jù) enum { IDD = IDD_ABOUTBOX }; protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 // 實(shí)現(xiàn) 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 對(duì)話框 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(); // 將“關(guān)于...”菜單項(xiàng)添加到系統(tǒng)菜單中。 // IDM_ABOUTBOX 必須在系統(tǒng)命令范圍內(nèi)。 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); } } // 設(shè)置此對(duì)話框的圖標(biāo)。 當(dāng)應(yīng)用程序主窗口不是對(duì)話框時(shí),框架將自動(dòng) // 執(zhí)行此操作 SetIcon(m_hIcon, TRUE);// 設(shè)置大圖標(biāo) SetIcon(m_hIcon, FALSE);// 設(shè)置小圖標(biāo) //1. 是不是方法沒有被調(diào)用 //2. 是不是里面的系統(tǒng)方法有問題 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; // 除非將焦點(diǎn)設(shè)置到控件,否則返回 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); // 用于繪制的設(shè)備上下文 SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0); // 使圖標(biāo)在工作區(qū)矩形中居中 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; // 繪制圖標(biāo) dc.DrawIcon(x, y, m_hIcon); } else { Draw(); CDialogEx::OnPaint(); } } //當(dāng)用戶拖動(dòng)最小化窗口時(shí)系統(tǒng)調(diào)用此函數(shù)取得光標(biāo) //顯示。 HCURSOR CGreetingCardDemoDlg::OnQueryDragIcon() { return static_cast<HCURSOR>(m_hIcon); } void CGreetingCardDemoDlg::Draw() { //1.日期 CClientDC clientDC(this);//獲取設(shè)備 //2.天氣 CDC memDC; memDC.CreateCompatibleDC(&clientDC); //memDC.CreateCompatibleDC(NULL); //如果我們要畫一張畫 //我們是不是需要知道這張畫得畫多大 //我們繪畫得紙有多大,我們就能畫多大 //我們的窗口有多大就能畫多大 //3.獲取大小 CRect clientRect;//四邊形的大小 GetClientRect(&clientRect); //我們要將一副畫畫上去 //1. 要有圖片我們使用搜索引擎 使用QQ截圖 //2. 我們要將圖片顯示在我們的窗口上 //1. 圖片加載到我們的軟件當(dāng)中 //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() { //坐標(biāo) 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); }
這些就是全部代碼辣,里面的句子你們可以自己改成想對(duì)對(duì)方說的話,這些都是可以自己改噠,代碼只是參考,要學(xué)的是編程思路,希望你們能學(xué)好C/C++,能為自己所用咯!!
如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
C語(yǔ)言中sizeof和strlen的區(qū)別詳解
這篇文章主要介紹了C語(yǔ)言中sizeof和strlen的區(qū)別,文中有通過代碼示例和相關(guān)例題給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06C語(yǔ)言中g(shù)etchar()的返回類型為什么是int詳解
這篇文章主要給大家介紹了關(guān)于C語(yǔ)言中g(shù)etchar()的返回類型為什么是int的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-11-11window調(diào)用api列出當(dāng)前所有進(jìn)程示例
這篇文章主要介紹了window調(diào)用api列出當(dāng)前所有進(jìn)程示例,需要的朋友可以參考下2014-04-04C語(yǔ)言實(shí)現(xiàn)飛機(jī)訂票系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)飛機(jī)訂票系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-12-12