www.gusucode.com > 一个VC++随机选号程序源码程序 > 一个VC++随机选号程序/Caipiao/Caipiao/LabelDlg.cpp
// LabelDlg.cpp : implementation file //Download by http://www.codesc.net #include "stdafx.h" #include "彩票.h" #include "LabelDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CLabelDlg dialog CLabelDlg::CLabelDlg(CWnd* pParent /*=NULL*/) : CDialog(CLabelDlg::IDD, pParent) { //{{AFX_DATA_INIT(CLabelDlg) // NOTE: the ClassWizard will add member initialization here //}}AFX_DATA_INIT } void CLabelDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CLabelDlg) // NOTE: the ClassWizard will add DDX and DDV calls here //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CLabelDlg, CDialog) //{{AFX_MSG_MAP(CLabelDlg) ON_WM_PAINT() ON_WM_CREATE() ON_WM_LBUTTONDOWN() ON_WM_TIMER() ON_WM_CLOSE() //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CLabelDlg message handlers BOOL CLabelDlg::OnInitDialog() { CDialog::OnInitDialog(); // TODO: Add extra initialization here CWindowDC dc(this); CDC memDC; CBitmap bmp; bmp.LoadBitmap(IDB_STAMP); BITMAP bmpInfo; bmp.GetBitmap(&bmpInfo); int iWidth = bmpInfo.bmWidth; int iHeight = bmpInfo.bmHeight; CRect rect; GetWindowRect(&rect); memDC.CreateCompatibleDC(&dc); memDC.SelectObject(&bmp); CRgn wndRgn, rgnTemp; wndRgn.CreateRectRgn(0,0,iWidth,iHeight); ::SetBkMode(dc.m_hDC, TRANSPARENT); COLORREF col = memDC.GetPixel(0,0); for(int i = 0 ; i < iWidth; i ++) for(int j = 0; j < iHeight; j ++) { COLORREF colTemp = memDC.GetPixel(i,j); if(colTemp == col) { rgnTemp.CreateRectRgn(i,j,i+1,j+1); wndRgn.CombineRgn(&wndRgn,&rgnTemp,RGN_XOR); rgnTemp.DeleteObject(); } } SetWindowRgn((HRGN)wndRgn, TRUE); memDC.DeleteDC(); // MoveWindow(rect.left,rect.top,rect.left + iWidth,rect.top + iHeight); MoveWindow(0,0,iWidth,iHeight); CenterWindow(); SetWindowText("阿皮小精灵"); SetTimer(1,1,NULL); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CLabelDlg::PostNcDestroy() { // TODO: Add your specialized code here and/or call the base class delete this; CDialog::PostNcDestroy(); } void CLabelDlg::OnPaint() { CPaintDC dc(this); // device context for painting // TODO: Add your message handler code here CBitmap bmp; bmp.LoadBitmap(IDB_STAMP); BITMAP bmpInfo; bmp.GetBitmap(&bmpInfo); int iWidth = bmpInfo.bmWidth; int iHeight = bmpInfo.bmHeight; CDC memDC; memDC.CreateCompatibleDC(&dc); memDC.SelectObject(&bmp); dc.BitBlt(0,0,iWidth,iHeight,&memDC,0,0,SRCCOPY); // Do not call CDialog::OnPaint() for painting messages } int CLabelDlg::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CDialog::OnCreate(lpCreateStruct) == -1) return -1; return 0; } void CLabelDlg::OnLButtonDown(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default SendMessage(WM_SYSCOMMAND, SC_MOVE|HTCLIENT, 0); CDialog::OnLButtonDown(nFlags, point); } void CLabelDlg::OnTimer(UINT nIDEvent) { // TODO: Add your message handler code here and/or call default if(nIDEvent == 1) { int iFullWidth = GetSystemMetrics(SM_CXFULLSCREEN); int iFullHeigth = GetSystemMetrics( SM_CYFULLSCREEN); // time tTime = CTime::getCurrentTime; CTime tCur = CTime::GetCurrentTime(); srand(tCur.GetTime()); srand(rand()); srand(rand()); srand(rand()); srand(rand()); //随机抽取坐标 int iXPos = rand() % iFullWidth; int iYPos = rand() % iFullHeigth; CRect rect; GetWindowRect(&rect); rect.right = iXPos + rect.Width(); rect.bottom = iYPos + rect.Height(); rect.left = iXPos; rect.top = iYPos; MoveWindow(&rect); } CDialog::OnTimer(nIDEvent); } void CLabelDlg::OnClose() { // TODO: Add your message handler code here and/or call default KillTimer(1); CDialog::OnClose(); }