153 lines
3.5 KiB
C++
153 lines
3.5 KiB
C++
|
|
|||
|
// 接受我的表白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();
|
|||
|
}
|