ä¸ãæå¼CD-ROM mciSendString("Set cdAudio door open wait",NULL,0,NULL); äºãå ³éCD_ROM mciSendString("Set cdAudio door closed wait",NULL,0,NULL); ä¸ãå ³éè®¡ç®æº OSVERSIONINFO OsVersionInfo; //å 嫿ä½ç³»ç»çæ¬ä¿¡æ¯çæ°æ®ç»æ OsVersionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx(&OsVersionInfo); //è·åæä½ç³»ç»çæ¬ä¿¡æ¯ if(OsVersionInfo.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS) {   //Windows98,è°ç¨ExitWindowsEx()彿°éæ°å¯å¨è®¡ç®æº   DWORD dwReserved;   ExitWindowsEx(EWX_REBOOT,dwReserved); //å¯ä»¥æ¹å第ä¸ä¸ªåæ°ï¼å®ç°æ³¨éç¨æ·ã   //å ³æºãå ³éçµæºçæä½   // éåºåçä¸äºå¤çç¨åº } åãéå¯è®¡ç®æº typedef int (CALLBACK *SHUTDOWNDLG)(int); //æ¾ç¤ºå ³æºå¯¹è¯æ¡å½æ°çæé HINSTANCE hInst = LoadLibrary("shell32.dll"); //è£ å ¥shell32.dll SHUTDOWNDLG ShutDownDialog; //æåshell32.dllåºä¸æ¾ç¤ºå ³æºå¯¹è¯æ¡å½æ°çæé if(hInst != NULL) {   //è·å¾å½æ°çå°åå¹¶è°ç¨ä¹   ShutDownDialog = (SHUTDOWNDLG)GetProcAddress(hInst,(LPSTR)60);   (*ShutDownDialog)(0); } äºãæä¸¾ææåä½ LOGFONT lf; lf.lfCharSet = DEFAULT_CHARSET; // Initialize the LOGFONT structure strcpy(lf.lfFaceName,""); CClientDC dc (this); // Enumerate the font families ::EnumFontFamiliesEx((HDC) dc,&lf, (FONTENUMPROC) EnumFontFamProc,(LPARAM) this,0); //æä¸¾å½æ° int CALLBACK EnumFontFamProc(LPENUMLOGFONT lpelf,                     LPNEWTEXTMETRIC lpntm,DWORD nFontType,long  lparam)                  {   // Create a pointer to the dialog window   CDay7Dlg* pWnd = (CDay7Dlg*) lparam;   // add the font name to the list box   pWnd ->m_ctlFontList.AddString(lpelf ->elfLogFont.lfFaceName);   // Return 1 to continue font enumeration   return 1; } //å ¶ä¸m_ctlFontListæ¯ä¸ä¸ªå表æ§ä»¶åé å ã䏿¬¡åªè¿è¡ä¸ä¸ªç¨åºå®ä¾ï¼å¦æå·²è¿è¡åéåº if( FindWindow(NULL,"ç¨åºæ é¢")) exit(0); ä¸ãå¾å°å½åé¼ æ æå¨ä½ç½® CPoint pt; GetCursorPos(&pt); //å¾å°ä½ç½® å «ãä¸ä¸æèåäºä»¶è§¦åäºä»¶ï¼OnContextMenuäºä»¶ ä¹ãæ¾ç¤ºåéèç¨åºèå CWnd *pWnd=AfxGetMainWnd(); if(b_m) //éèèå {   pWnd->SetMenu(NULL);   pWnd->DrawMenuBar();   b_m=false; } else {   CMenu menu;   menu.LoadMenu(IDR_MAINFRAME); æ¾ç¤ºèå ä¹å¯æ¹åèå项   pWnd->SetMenu(&menu);   pWnd->DrawMenuBar();   b_m=true;   menu.Detach(); } åãè·å坿§è¡æä»¶ç徿 HICON hIcon=::ExtractIcon(AfxGetInstanceHandle(),_T("NotePad.exe"),0); if (hIcon &&hIcon!=(HICON)-1) {   pDC->DrawIcon(10,10,hIcon);   } DestroyIcon(hIcon); åä¸ãçªå£èªå¨é è¾¹ç¨åºæ¼ç¤º BOOL AdjustPos(CRect* lpRect) {//èªå¨é è¾¹   int iSX=GetSystemMetrics(SM_CXFULLSCREEN);   int iSY=GetSystemMetrics(SM_CYFULLSCREEN);   RECT rWorkArea;   BOOL bResult = SystemParametersInfo(SPI_GETWORKAREA, sizeof(RECT), &rWorkAre       a, 0);   CRect rcWA;   if(!bResult)   {//妿è°ç¨ä¸æåå°±å©ç¨GetSystemMetricsè·åå±å¹é¢ç§¯       rcWA=CRect(0,0,iSX,iSY);   }   else       rcWA=rWorkArea;   int iX=lpRect->left;   int iY=lpRect->top;     if(iX < rcWA.left + DETASTEP && iX!=rcWA.left)   {//è°æ´å·¦       //pWnd->SetWindowPos(NULL,rcWA.left,iY,0,0,SWP_NOSIZE);       lpRect->OffsetRect(rcWA.left-iX,0);       AdjustPos(lpRect);       return TRUE;   }   if(iY < rcWA.top + DETASTEP && iY!=rcWA.top)   {//è°æ´ä¸       //pWnd->SetWindowPos(NULL ,iX,rcWA.top,0,0,SWP_NOSIZE);       lpRect->OffsetRect(0,rcWA.top-iY);       AdjustPos(lpRect);       return TRUE;   }   if(iX + lpRect->Width() > rcWA.right - DETASTEP && iX !=rcWA.right-lpRect->Width())   {//è°æ´å³       //pWnd->SetWindowPos(NULL ,rcWA.right-rcW.Width(),iY,0,0,SWP_NOSIZE);       lpRect->OffsetRect(rcWA.right-lpRect->right,0);       AdjustPos(lpRect);       return TRUE;   }   if(iY + lpRect->Height() > rcWA.bottom - DETASTEP && iY !=rcWA.bottom-lpRect       ->Height())   {//è°æ´ä¸       //pWnd->SetWindowPos(NULL ,iX,rcWA.bottom-rcW.Height(),0,0,SWP_NOSIZE);       lpRect->OffsetRect(0,rcWA.bottom-lpRect->bottom);       return TRUE;   }   return FALSE; } //ç¶åå¨ONMOVEINGäºä»¶ä¸ä½¿ç¨æä¸è¿ç¨è°ç¨ CRect r=*pRect; AdjustPos(&r); *pRect=(RECT)r; åäºãç»ç³»ç»èåæ·»å ä¸ä¸ªèå项ç»ç³»ç»èåæ·»å ä¸ä¸ªèå项éè¦è¿è¡ä¸è¿°ä¸ä¸ªæ¥éª¤ï¼ //é¦å ï¼ä½¿ç¨Resource Symbols对è¯ï¼å¨Viewèåä¸éæ©Resource Symbolsï¼ï¼ï¼å¯ä»¥æ¾ //示该对è¯ï¼å®ä¹èå项IDï¼è¯¥IDåºå¤§äº0x0Fèå°äº0xF000ï¼ //å ¶æ¬¡ï¼è°ç¨CWnd::GetSystemMenuè·åç³»ç»èåçæéå¹¶è°ç¨CWnd:: Appendmenuå°èå //项添å å°èåä¸ãä¸ä¾ç»ç³»ç»èåæ·»å 两个æ°ç int CMainFrame:: OnCreate (LPCREATESTRUCT lpCreateStruct) {   //⦠  //Make sure system menu item is in the right range.   ASSERT(IDM_MYSYSITEM<0xF000);   //Get pointer to system menu.   CMenu* pSysMenu=GetSystemMenu(FALSE);   ASSERT_VALID(pSysMenu);   //Add a separator and our menu item to system menu.   CString StrMenuItem(_T ("New menu item"));   pSysMenu->AppendMenu(MF_SEPARATOR);   pSysMenu->AppendMenu(MF_STRING, IDM_MYSYSITEM, StrMenuItem);   //⦠} åä¸ãè¿è¡å ¶å®ç¨åº 1ãè¿è¡EMAILæç½å char szMailAddress[80]; strcpy(szMailAddress,"mailto:[email protected]"); ShellExecute(NULL, "open", szMailAddress, NULL, NULL, SW_SHOWNORMAL); 2ãè¿è¡å¯æ§è¡ç¨åº WinExec("notepad.exe",SW_SHOW); //è¿è¡è®¡äºæ¬ ååã卿å¢å æå é¤èå 1ã å¢å èå //æ·»å CMenu *mainmenu; mainmenu=AfxGetMainWnd()->GetMenu(); //å¾å°ä¸»èå (mainmenu->GetSubMenu (0))->AppendMenu (MF_SEPARATOR);//æ·»å åé符 (mainmenu->GetSubMenu (0))->AppendMenu(MF_STRING,ID_APP_ABOUT,                           _T("Always on &Top")); //æ·»å æ°çèå项                           DrawMenuBar(); //éç»èå 2ã å é¤èå //å é¤ CMenu *mainmenu; mainmenu=AfxGetMainWnd()->GetMenu(); //å¾å°ä¸»èå CString str ; for(int i=(mainmenu->GetSubMenu (0))->GetMenuItemCount()-1;i>=0;i--) //åå¾èåç项æ°ã {   (mainmenu->GetSubMenu (0))->GetMenuString(i,str,MF_BYPOSITION);   //å°æå®èåé¡¹çæ ç¾æ·è´å°æå®çç¼å²åºãMF_BYPOSITIONçè§£éè§ä¸ã   if(str=="Always on &Top") //妿æ¯åææä»¬å¢å çèå项ï¼åå é¤ã   {       (mainmenu->GetSubMenu (0))->DeleteMenu(i,MF_BYPOSITION);       break;   } } åäºãæ¹ååºç¨ç¨åºç徿 éææ´æ¹ï¼ ä¿®æ¹å¾æ èµæºIDR_MAINFRAMEãå®æä¸¤ä¸ªå¾æ ï¼ä¸ä¸ªæ¯16*16çï¼å¦ä¸ä¸ªæ¯32*32çï¼æ³¨æè¦ä¸èµ·ä¿®æ¹ã //å¨ææ´æ¹ï¼ å主çªå£åéWM_SETICONæ¶æ¯.代ç å¦ä¸ï¼ HICON hIcon=AfxGetApp()->LoadIcon(IDI_ICON); ASSERT(hIcon); AfxGetMainWnd()->SendMessage(WM_SETICON,TRUE,(LPARAM)hIcon); åå ãå¦ä¸ç§æ¹åçªå£æ é¢çæ¹æ³ //使ç¨è¯å¥ CWnd* m_pCWnd = AfxGetMainWnd( )ï¼ç¶åï¼å以å¦ä¸å½¢å¼è°ç¨SetWindowText()彿°ï¼ SetWindowText( *m_pCWnd,(LPCTSTR)m_WindowText);// m_WindowTextå¯ä»¥æ¯ä¸ä¸ªCStringç±»çåéã åä¸ãåªåæ¿ä¸éè¿å¢å¼ºå æä»¶æ·è´å¾åæ°æ®ä¸é¢ä»£ç æ·è´éè¿å æä»¶æ·è´å¾åæ°æ®å°ä»»ä½åºç¨ç¨åºï¼ //å ¶å¯ä»¥æ¾ç½®å¨CViewæ´¾çç±»ç彿°ä¸ã CMetaFileDC * m_pMetaDC = new CMetaFileDC(); m_pMetaDC->CreateEnhanced(GetDC(),NULL,NULL,"whatever"); //draw meta file //do what ever you want to do: bitmaps, lines, text... //close meta file dc and prepare for clipboard; HENHMETAFILE hMF = m_pMetaDC->CloseEnhanced(); //copy to clipboard OpenClipboard(); EmptyClipboard(); ::SetClipboardData(CF_ENHMETAFILE,hMF);                                                CloseClipboard(); //DeleteMetaFile(hMF); delete m_pMetaDC; åå «ãåªåæ¿ä¸ææ¬æ°æ®çä¼ éæææ¬æ¾ç½®å°åªæ¥æ¿ä¸ï¼ CString source; //put your text in source if(OpenClipboard()) {   HGLOBAL clipbuffer;   char * buffer;   EmptyClipboard();   clipbuffer = GlobalAlloc(GMEM_DDESHARE, source.GetLength()+1);   buffer = (char*)GlobalLock(clipbuffer);   strcpy(buffer, LPCSTR(source));   GlobalUnlock(clipbuffer);   SetClipboardData(CF_TEXT,clipbuffer);   CloseClipboard(); } //ä»åªæ¥æ¿ä¸è·åææ¬ï¼ char * buffer; if(OpenClipboard()) {   buffer = (char*)GetClipboardData(CF_TEXT);   //do something with buffer here   //before it goes out of scope } CloseClipboard(); åä¹ãå°ææå±å¹å¾åå°åªåçä¸ void CShowBmpInDlgDlg::OnCutScreen() {   ShowWindow(SW_HIDE);   RECT r_bmp={0,0,::GetSystemMetrics(SM_CXSCREEN),    ::GetSystemMetrics(SM_CYSCREEN)};                                                          HBITMAP hBitmap;   hBitmap=CopyScreenToBitmap(&r_bmp);   //hWnd为ç¨åºçªå£å¥æ   if (OpenClipboard())   {       EmptyClipboard();       SetClipboardData(CF_BITMAP, hBitmap);       CloseClipboard();   }   ShowWindow(SW_SHOW); } HBITMAP CShowBmpInDlgDlg::CopyScreenToBitmap(LPRECT lpRect) {   //lpRect 代表éå®åºå   {       HDC hScrDC, hMemDC;       // å±å¹åå åè®¾å¤æè¿°è¡¨       HBITMAP hBitmap, hOldBitmap;       // ä½å¾å¥æ       int nX, nY, nX2, nY2;       // éå®åºååæ Â Â Â Â Â Â int nWidth, nHeight;       // ä½å¾å®½åº¦åé«åº¦       int xScrn, yScrn;       // å±å¹å辨ç          // ç¡®ä¿éå®åºåä¸ä¸ºç©ºç©å½¢       if (IsRectEmpty(lpRect))         return NULL;       //为å±å¹åå»ºè®¾å¤æè¿°è¡¨       hScrDC = CreateDC("DISPLAY", NULL, NULL, NULL);       //为å±å¹è®¾å¤æè¿°è¡¨åå»ºå ¼å®¹çå åè®¾å¤æè¿°è¡¨       hMemDC = CreateCompatibleDC(hScrDC);       // è·å¾éå®åºååæ Â Â Â Â Â Â nX = lpRect->left;       nY = lpRect->top;       nX2 = lpRect->right;       nY2 = lpRect->bottom;       // è·å¾å±å¹å辨ç       xScrn = GetDeviceCaps(hScrDC, HORZRES);       yScrn = GetDeviceCaps(hScrDC, VERTRES);       //ç¡®ä¿éå®åºåæ¯å¯è§ç if (nX<0)              nX = 0;       if (nY<0)         nY = 0;       if (nX2>xScrn)         nX2 = xScrn;       if (nY2>yScrn)         nY2 = yScrn;       nWidth = nX2 - nX;       nHeight = nY2 - nY;       // å建ä¸ä¸ªä¸å±å¹è®¾å¤æè¿°è¡¨å ¼å®¹çä½å¾       hBitmap = CreateCompatibleBitmap         (hScrDC, nWidth, nHeight);       // ææ°ä½å¾éå°å åè®¾å¤æè¿°è¡¨ä¸ Â Â Â Â Â Â hOldBitmap =(HBITMAP)SelectObject(hMemDC, hBitmap);       // æå±å¹è®¾å¤æè¿°è¡¨æ·è´å°å åè®¾å¤æè¿°è¡¨ä¸ Â Â Â Â Â Â BitBlt(hMemDC, 0, 0, nWidth, nHeight, hScrDC, nX, nY, SRCCOPY);       //å¾å°å±å¹ä½å¾ç奿       hBitmap = (HBITMAP)SelectObject(hMemDC, hOldBitmap);          //æ¸ é¤ Â Â Â Â Â Â DeleteDC(hScrDC);       DeleteDC(hMemDC);       // è¿åä½å¾å¥æ       return hBitmap;   } } äºåãå¦ä½å°ä½å¾ç¼©æ¾æ¾ç¤ºå¨Staticæ§ä»¶ä¸ //å¨Staicæ§ä»¶å æ¾ç¤ºä½å¾ void CShowBmpInDlgDlg::ShowBmpInStaic() {   CBitmap hbmp;   HBITMAP hbitmap;   //å°pStaticæåè¦æ¾ç¤ºçå°æ¹   CStatic *pStaic;   pStaic=(CStatic*)GetDlgItem(IDC_IMAGE);   //è£ è½½èµæº MM.bmpæ¯æçä¸ä¸ªæä»¶åï¼ç¨ä½ çæ¿æ¢ Â Â hbitmap=(HBITMAP)::LoadImage (::AfxGetInstanceHandle(),"MM.bmp",       IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);   hbmp.Attach(hbitmap);   //è·åå¾çæ ¼å¼ Â Â BITMAP bm;   hbmp.GetBitmap(&bm);   CDC dcMem;   dcMem.CreateCompatibleDC(GetDC());   CBitmap *poldBitmap=(CBitmap*)dcMem.SelectObject(hbmp);   CRect lRect;   pStaic->GetClientRect(&lRect);   //æ¾ç¤ºä½å¾   pStaic->GetDC()->StretchBlt(lRect.left ,lRect.top ,lRect.Width(),lRect.Height(),       &dcMem,0 ,0,bm.bmWidth,bm.bmHeight,SRCCOPY);   dcMem.SelectObject(&poldBitmap); } |