看了个c++程序。很简单的程序却搞的我头很大
// LUCKYDlg.cpp : 实现文件 // #include "stdafx.h" #include "LUCKY.h" #include "LUCKYDlg.h" #include "Mmsystem.h" #pragma comment( lib, "Winmm.lib" ) #ifdef _DEBUG #define new DEBUG_NEW #endif int beijing=1; int beijing_num=23; int num=45; CString phoneno[100]; int selnum=0; int be_sel[100]; // 用于应用程序“关于”菜单项的 CAboutDlg 对话框 class CAboutDlg : public CDialog { public: CAboutDlg(); // 对话框数据 enum { IDD = IDD_ABOUTBOX }; protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 // 实现 protected: DECLARE_MESSAGE_MAP() }; CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) { } void CAboutDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); } BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) END_MESSAGE_MAP() // CLUCKYDlg 对话框 CLUCKYDlg::CLUCKYDlg(CWnd* pParent /*=NULL*/) : CDialog(CLUCKYDlg::IDD, pParent) { m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); } void CLUCKYDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //DDX_Control(pDX, IDC_BUTTON_Choujiang, m_IconBtn); //DDX_Control(pDX, IDC_BUTTON_Tingzhi, m_IconBtn1); } BEGIN_MESSAGE_MAP(CLUCKYDlg, CDialog) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() //}}AFX_MSG_MAP ON_BN_CLICKED(IDC_BUTTON_Choujiang, &CLUCKYDlg::OnBnClickedButtonChoujiang) ON_BN_CLICKED(IDC_BUTTON_Tingzhi, &CLUCKYDlg::OnBnClickedButtonTingzhi) ON_WM_TIMER() ON_BN_CLICKED(IDOK, &CLUCKYDlg::OnBnClickedOk) ON_WM_CTLCOLOR() ON_WM_DESTROY() ON_WM_CREATE() END_MESSAGE_MAP() // CLUCKYDlg 消息处理程序 BOOL CLUCKYDlg::OnInitDialog() { CDialog::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); // 设置小图标 // TODO: 在此添加额外的初始化代码 myfont.CreateFont(38, // nHeight 0, // nWidth 0, // nEscapement 0, // nOrientation FW_BOLD, // nWeight FALSE, // bItalic FALSE, // bUnderline 0, // cStrikeOut ANSI_CHARSET, // nCharSet OUT_DEFAULT_PRECIS, // nOutPrecision CLIP_DEFAULT_PRECIS, // nClipPrecision DEFAULT_QUALITY, // nQuality DEFAULT_PITCH | FF_SWISS, // nPitchAndFamily _T("微软雅黑")); // lpszFac for(int i=0;i<100;i++) { phoneno[i].Format("%d",i); be_sel[i]=0; } //参与抽奖的电话号码 phoneno[1]="1348504123"; phoneno[2]="1396180846"; phoneno[3]="1596180182"; phoneno[4]="1876260241"; phoneno[5]="1895247720"; phoneno[6]="1594924913"; phoneno[7]="1596180376"; phoneno[8]="1318209196"; phoneno[9]="1586140658"; phoneno[10]="1348500515"; phoneno[11]="1526152207"; phoneno[12]="1891233320"; phoneno[13]="1366511977"; phoneno[14]="1377113520"; phoneno[15]="1377176407"; phoneno[16]="1596830294"; phoneno[17]="1386704030"; phoneno[18]="1386178747"; phoneno[19]="1391249195"; phoneno[20]="1391536459"; phoneno[21]="1891283129"; phoneno[22]="1396176630"; phoneno[23]="1396180061"; phoneno[24]="1876261321"; phoneno[25]="1525163182"; phoneno[26]="1526152022"; phoneno[27]="1348501851"; phoneno[28]="1526156537"; phoneno[29]="1596170193"; phoneno[30]="1876260832"; phoneno[31]="1303351716"; phoneno[32]="1381510083"; phoneno[33]="1860157601"; phoneno[34]="1596176356"; phoneno[35]="1876265135"; phoneno[36]="1506150646"; phoneno[37]="1876265197"; phoneno[38]="1876265198"; phoneno[39]="1396173525"; phoneno[40]="1348504286"; phoneno[41]="1895247414"; /// phoneno[42]="1586140707"; phoneno[43]="134850356"; phoneno[44]="1586142977"; phoneno[45]="1891535512"; /// CString iniName="d:\\PHOTOBMP\\Selected.ini"; selnum=GetPrivateProfileInt("MATCH","selnum",0,iniName); for(int i=1;i<=selnum;i++) { CString keystr=""; keystr.Format("sel%d",i); int k=GetPrivateProfileInt("MATCH",keystr,0,iniName); be_sel[k]=1; } ///////////////// CStatic *pStatic=(CStatic*)GetDlgItem(IDC_STATIC_MUSIC); HWND h=pStatic->GetSafeHwnd(); CString open1; char buf[256]; open1.Format("open d:\\PHOTOBMP\\music.wma Alias movie parent %u Style %u notify", h,WS_CHILD); mciSendString(open1.GetBuffer(open1.GetLength()),buf,sizeof(buf),NULL);//播放音乐d:\\PHOTOBMP\\music.wma ///////////////// m_IconBtn.LoadBitmaps(IDB_BITMAP2); m_IconBtn.SubclassDlgItem(IDC_BUTTON_Choujiang,this); m_IconBtn.SizeToContent(); m_IconBtn1.LoadBitmaps(IDB_BITMAP3); m_IconBtn1.SubclassDlgItem(IDC_BUTTON_Tingzhi,this); m_IconBtn1.SizeToContent(); GetDlgItem(IDC_BUTTON_Choujiang)->ShowWindow(1); GetDlgItem(IDC_BUTTON_Tingzhi)->ShowWindow(0); //////////////// mciSendString("play movie repeat ",buf,sizeof(buf),NULL); SetTimer(4,1,NULL); SetTimer(3,2000,NULL); return TRUE; // 除非将焦点设置到控件,否则返回 TRUE } void CLUCKYDlg::OnSysCommand(UINT nID, LPARAM lParam) { if ((nID & 0xFFF0) == IDM_ABOUTBOX) { CAboutDlg dlgAbout; dlgAbout.DoModal(); } else { CDialog::OnSysCommand(nID, lParam); } } // 如果向对话框添加最小化按钮,则需要下面的代码 // 来绘制该图标。对于使用文档/视图模型的 MFC 应用程序, // 这将由框架自动完成。 void CLUCKYDlg::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 { CDialog::OnPaint(); } GetDlgItem(IDC_STATIC_Phone)->SetFont(&myfont); GetDlgItem(IDC_STATIC_B1)->SetFont(&myfont); GetDlgItem(IDC_STATIC_B2)->SetFont(&myfont); CClientDC dc(this);//得到主界面上下文 CRect rect; GetClientRect(&rect); CBitmap m_bmp; m_bmp.LoadBitmap(IDB_BITMAP1); BITMAP bm; m_bmp.GetObject(sizeof(BITMAP),&bm); CDC dcMem; dcMem.CreateCompatibleDC(&dc); CBitmap *pOldbmp=dcMem.SelectObject(&m_bmp); dc.BitBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,SRCCOPY); dcMem.SelectObject(pOldbmp); dcMem.DeleteDC(); m_bmp.DeleteObject(); GetDlgItem(IDC_BUTTON_Choujiang)->Invalidate(); GetDlgItem(IDC_BUTTON_Tingzhi)->Invalidate(); } //当用户拖动最小化窗口时系统调用此函数取得光标 //显示。 HCURSOR CLUCKYDlg::OnQueryDragIcon() { return static_cast<HCURSOR>(m_hIcon); } void CLUCKYDlg::OnBnClickedButtonChoujiang() { // TODO: 在此添加控件通知处理程序代码 KillTimer(3); GetDlgItem(IDC_STATIC_BeiJing)->ShowWindow(0); SetTimer(1,20,NULL); GetDlgItem(IDC_BUTTON_Choujiang)->ShowWindow(0); GetDlgItem(IDC_BUTTON_Tingzhi)->ShowWindow(1); GetDlgItem(IDC_STATIC_B1)->ShowWindow(0); GetDlgItem(IDC_STATIC_B2)->ShowWindow(0); } void CLUCKYDlg::OnBnClickedButtonTingzhi() { // TODO: 在此添加控件通知处理程序代码 KillTimer(1); GetDlgItem(IDC_BUTTON_Choujiang)->ShowWindow(1); GetDlgItem(IDC_BUTTON_Tingzhi)->ShowWindow(0); SetTimer(2,100,NULL); } void CLUCKYDlg::OnTimer(UINT_PTR nIDEvent) { // TODO: 在此添加消息处理程序代码和/或调用默认值 switch(nIDEvent) { case 1: ShowPhoneNo(); break; case 2: { KillTimer(2); CStatic * pWnd=(CStatic*)GetDlgItem(IDC_STATIC_JIANG); pWnd->ModifyStyle(0,SS_BITMAP); CString path="d:\\PHOTOBMP\\";//将参与抽奖者的照片放到该文件夹下 CString no=""; GetDlgItem(IDC_STATIC_Phone)->GetWindowTextA(no); path+=no; path+=".bmp"; pWnd->SetBitmap((HBITMAP)::LoadImage(0,path.GetBuffer(),IMAGE_BITMAP,0,0,LR_CREATEDIBSECTION |LR_DEFAULTSIZE |LR_LOADFROMFILE)); GetDlgItem(IDC_STATIC_Phone)->Invalidate(); for(int i=1;i<=num;i++) { if(no==phoneno[i]) { selnum++; be_sel[i]=1; CString iniName="d:\\PHOTOBMP\\Selected.ini";// CString str=""; str.Format("%d",selnum); ::WritePrivateProfileString("MATCH", "selnum", str, iniName); CString keystr=""; keystr.Format("sel%d",selnum); str.Format("%d",i); ::WritePrivateProfileString("MATCH", keystr, str, iniName); } } } break; case 3: { /// CStatic * pWnd=(CStatic*)GetDlgItem(IDC_STATIC_BeiJing); pWnd->ModifyStyle(0,SS_BITMAP); CString path="d:\\PHOTOBMP\\"; CString no=""; no.Format("%d",(beijing-1)%beijing_num+1); path+=no; path+=".bmp"; pWnd->SetBitmap((HBITMAP)::LoadImage(0,path.GetBuffer(),IMAGE_BITMAP,0,0,LR_CREATEDIBSECTION |LR_DEFAULTSIZE |LR_LOADFROMFILE)); Invalidate(); GetDlgItem(IDC_STATIC_Phone)->Invalidate(); if(beijing==1) { Sleep(2000); } beijing++; } break; case 4: { KillTimer(4); int e=100; CString Ming1="2012年针织中心元旦晚会抽奖系统"; for(int i=1;i<=Ming1.GetLength()/2;i++) { CString ss=Ming1.Left(i*2); GetDlgItem(IDC_STATIC_B1)->SetWindowTextA(ss); Sleep(e); } CString Ming2="策划:朱启"; for(int i=1;i<=Ming2.GetLength()/2;i++) { CString ss=Ming2.Right(i*2); GetDlgItem(IDC_STATIC_B2)->SetWindowTextA(ss); Sleep(e*2); } { Sleep(3000); } } break; } CDialog::OnTimer(nIDEvent); } void CLUCKYDlg::ShowPhoneNo(void)//随机显示电话号码 { CString nowText=""; GetDlgItem(IDC_STATIC_Phone)->GetWindowTextA(nowText); unsigned long rand1=::GetTickCount(); srand(rand1); unsigned long rand2=rand(); int index=(rand1+rand2-1)%num+1; if(be_sel[index]!=0) { for(int i=1;i<=num;i++) { if(be_sel[(index+i-1)%num+1]==0 && phoneno[(index+i-1)%num+1]!=nowText) { index=(index+i-1)%num+1; break; } } } if(selnum>=num) { GetDlgItem(IDC_STATIC_Phone)->SetWindowText("所有人都已抽过奖"); } else { GetDlgItem(IDC_STATIC_Phone)->SetWindowText(phoneno[index]); } } void CLUCKYDlg::OnBnClickedOk() { // TODO: 在此添加控件通知处理程序代码 OnOK(); } HBRUSH CLUCKYDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); // TODO: 在此更改 DC 的任何属性 if(pWnd->GetDlgCtrlID()==IDC_STATIC_Phone) { pDC->SetBkColor(RGB(255,247,83)); pDC->SetTextColor(RGB(248,0,0)); // pDC->SetBkMode(TRANSPARENT); return (HBRUSH)::GetStockObject(NULL_BRUSH); } if(pWnd->GetDlgCtrlID()==IDC_STATIC_B1 || pWnd->GetDlgCtrlID()==IDC_STATIC_B2) { pDC->SetTextColor(RGB(248,0,0)); //pDC->SetBkMode(TRANSPARENT); return (HBRUSH)::GetStockObject(NULL_BRUSH); } // TODO: 如果默认的不是所需画笔,则返回另一个画笔 return hbr; } void CLUCKYDlg::OnDestroy() { CDialog::OnDestroy(); // TODO: 在此处添加消息处理程序代码 myfont.DeleteObject(); } int CLUCKYDlg::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CDialog::OnCreate(lpCreateStruct) == -1) return -1; // TODO: 在此添加您专用的创建代码 AnimateWindow(800, AW_BLEND|AW_CENTER); return 0; }
小张老师喜欢用这样的代码方式
GetDlgItem(IDC_STATIC_Phone)->GetWindowTextA(nowText);
原文链接: https://www.cnblogs.com/smallerpig/archive/2011/12/07/2279840.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/37997
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!