CSTest/接受我的表白/接受我的表白Dlg.cpp

153 lines
3.5 KiB
C++
Raw Permalink Normal View History

2024-10-17 15:56:43 +08:00

// 接受我的表白Dlg.cpp: 实现文件
//
#include "pch.h"
#include "framework.h"
#include "接受我的表白.h"
#include "接受我的表白Dlg.h"
#include "afxdialogex.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// C接受我的表白Dlg 对话框
C接受我的表白Dlg::C接受我的表白Dlg(CWnd* pParent /*=nullptr*/)
: CDialogEx(IDD_MY_DIALOG, pParent)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void C接受我的表白Dlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(C接受我的表白Dlg, CDialogEx)
// ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDCANCEL, &C接受我的表白Dlg::OnBnClickedCancel)
ON_WM_TIMER()
ON_WM_GETMINMAXINFO()
ON_BN_CLICKED(IDOK, &C接受我的表白Dlg::OnBnClickedOk)
END_MESSAGE_MAP()
// C接受我的表白Dlg 消息处理程序
BOOL C接受我的表白Dlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
// 设置此对话框的图标。 当应用程序主窗口不是对话框时,框架将自动
// 执行此操作
SetIcon(m_hIcon, TRUE); // 设置大图标
SetIcon(m_hIcon, FALSE); // 设置小图标
// TODO: 在此添加额外的初始化代码
//SetTimer(WM_USER + 1, 1, 0);
t1 = std::thread(([this](C接受我的表白Dlg* wnd, CWnd* cdlg)
{
srand(time(0));
int x, y;
POINT p;
CRect rt, rt1;
while (b)
{
GetCursorPos(&p);
cdlg->GetWindowRect(&rt);
wnd->GetClientRect(rt1);
if (rt.PtInRect(p))
{
x = rand() % (rt1.Width() - rt.Width());
y = rand() % (rt1.Height() - rt.Height());
rt.MoveToXY(x, y);
cdlg->MoveWindow(rt);
}
Sleep(1);
}
}), this, GetDlgItem(IDCANCEL));
return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
}
// 如果向对话框添加最小化按钮,则需要下面的代码
// 来绘制该图标。 对于使用文档/视图模型的 MFC 应用程序,
// 这将由框架自动完成。
//void C接受我的表白Dlg::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
// {
// CDialogEx::OnPaint();
// }
//}
//当用户拖动最小化窗口时系统调用此函数取得光标
//显示。
HCURSOR C接受我的表白Dlg::OnQueryDragIcon()
{
return static_cast<HCURSOR>(m_hIcon);
}
void C接受我的表白Dlg::OnBnClickedCancel()
{
// TODO: 在此添加控件通知处理程序代码
//CDialogEx::OnCancel();
MessageBox(_T("你是关不掉的"),_T("表白"));
}
void C接受我的表白Dlg::OnTimer(UINT_PTR nIDEvent)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
if (nIDEvent == WM_USER + 1)
{
}
CDialogEx::OnTimer(nIDEvent);
}
void C接受我的表白Dlg::OnGetMinMaxInfo(MINMAXINFO* lpMMI)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
lpMMI->ptMinTrackSize.x = 580; //x宽度
lpMMI->ptMinTrackSize.y = 400; //y高度
CDialogEx::OnGetMinMaxInfo(lpMMI);
}
void C接受我的表白Dlg::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
b = 0;
t1.join();
MessageBox(_T("从现在开始你就是我女朋友了!!!"), _T("表白成功"));
CDialogEx::OnOK();
}