VCä¸çä¸äºå¸¸ç¨æ¹æ³ï¼20æ¡ï¼
//ä¸ãæå¼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);
}