快到圣诞节啦,男票女票都有了嘛?没有的话,有没有喜欢的女孩子或者男孩子啊?今天就给你们分享一个圣诞节的表白程序,希望你们喜欢咯,效果是这样的:
圣诞节快到了,让我们用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++,能为自己所用咯!!
如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!
主要内容:安装C-Free 5.0,运行C语言代码安装C-Free 5.0 C-Free 是一款国产的Windows下的C/ C++ IDE,最新版本是 5.0,整个软件才 14M,非常轻巧,安装简单。 下载地址: C-Free 5.0下载 按照教程中的说明安装并 C-Free 5.0。 需要注意的是:C-Free 5.0 在 XP、Win7 下能够完美运行,在 Win8、Win10 下可能会存在兼容性问题,读者可以先尝试安装,不行的话再使用
主要内容:1) 新建源文件,2) 生成可执行程序,4) 总结前面我们给出了一段完整的C语言代码,就是在显示器上输出“小牛知识库”,如下所示: 本节我们就来看看如何通过 Dev C++ 来运行这段代码。 Dev C++ 支持单个源文件的编译,如果你的程序只有一个源文件(初学者基本都是在单个源文件下编写代码),那么不用创建项目,直接运行就可以;如果有多个源文件,才需要创建项目。 1) 新建源文件 打开 Dev C++,在上方菜单栏中选择“文件 --> 新建 -
本文向大家介绍C语言设计一个闪闪的圣诞树,包括了C语言设计一个闪闪的圣诞树的使用技巧和注意事项,需要的朋友参考一下 控制台打印一个圣诞树:简简单单的C语言知识,真的很基础,小白也能看得懂哦 最终的效果图 也没有那么高大上的啦,就很简单的,效果的话是动态的,可以闪动的呢。 如果大家看以上代码不过瘾,大家可以参考下这篇文章。 使用C语言编写圣诞表白程序 以上所述是小编给大家介绍的C语言设计一个闪闪的圣
主要内容:安装VC6.0,在VC6.0下运行C语言程序,工程文件说明Visual C++ 6.0简称VC或者VC6.0,是微软1998年推出的一款C/C++ IDE,界面友好,调试功能强大。VC6.0是一款革命性的产品,非常经典,至今仍然有很多企业和个人在使用,很多高校也将VC6.0作为C语言的教学基础,作为上机实验的工具。本教程中的代码,也都是在VC6.0下运行通过。 VC6.0 确实有点老了,如果不是学校要求或者项目需要,建议使用 Visual Studio
主要内容:创建工程,CLion运行C语言程序对于安装完成并配置好 C/C++ 编译器的 CLion,就可以直接使用它编写并运行 C 语言程序了。接下来,我们以一段完整的 C 语言代码为例,为大家讲解如何用 CLion 运行这段代码。 创建工程 打开 CLion,选择“新建项目”,如下图所示: 图 1 新建项目 弹出如下窗口,选择要创建的项目类型,这里选择创建“C 可执行文件”项目,该项目遵循的 C语言标准为 C11: 图 2 创建C语言项目
主要内容:1) 创建项目(Project),2) 添加源文件,3) 编写代码并生成程序,4) 总结提示:VS2010 可以在 XP、Win7 和 Win8 下完美运行,但在 Win10 下 可能会有兼容性问题,使用 Win10 的读者建议安装 VS2015 或者 VS2017。 前面我们给出了一段完整的C语言代码,就是在显示器上输出“小牛知识库”,如下所示: 本节我们就来看看如何通过 VS2010 来运行这段代码。 1) 创建项目(Project) 在 VS2010 下开发程序首先要创建项目,