20個VC開發小技巧

2021-08-25 18:47:11 字數 4069 閱讀 5974

//一、開啟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)

//四、重啟計算機

typedef int (callback *shutdowndlg)(int); //顯示關機對話方塊函式的指標

hinstance hinst = loadlibrary("shell32.dll"); //裝入shell32.dll

shutdowndlg shutdowndialog; //指向shell32.dll庫中顯示關機對話方塊函式的指標

if(hinst != null)

//五、列舉所有字型

logfont lf;

lf.lfcharset = default_charset; // initialize the logfont structure

strcpy(lf.lffacename,"");

cclientdc dc (this);

// enumerate the font families

::enumfontfamilie***((hdc) dc,&lf, (fontenumproc) enumfontfamproc,(lparam) this,0);

//列舉函式

int callback enumfontfamproc(lpenumlogfont lpelf,

lpnewtextmetric lpntm,dword nfonttype,long lparam)

//其中m_ctlfontlist是乙個列表控制項變數

//六、一次只執行乙個程式例項,如果已執行則退出

if( findwindow(null,"程式標題")) exit(0);

//七、得到當前滑鼠所在位置

cpoint pt;

getcursorpos(&pt); //得到位置

//八、上下文選單事件觸發事件:oncontextmenu事件

//九、顯示和隱藏程式選單

cwnd *pwnd=afxgetmainwnd();

if(b_m) //隱藏選單

else

//十、獲取可執行檔案的圖示

hicon hicon=::extracticon(afxgetinstancehandle(),_t("notepad.exe"),0);

if (hicon &&hicon!=(hicon)-1)

destroyicon(hicon);

//十一、視窗自動靠邊程式演示

bool adjustpos(crect* lprect)

if(iy < rcwa.top + detastep && iy!=rcwa.top)

if(ix + lprect->width() > rcwa.right - detastep && ix !=rcwa.right-lprect->width())

if(iy + lprect->height() > rcwa.bottom - detastep && iy !=rcwa.bottom-lprect

->height())

return false;

}//然後在onmoveing事件中使用所下過程呼叫

crect r=*prect;

adjustpos(&r);

*prect=(rect)r;

//十三、執行其它程式

//1、執行email或**

char szmailaddress[80];

strcpy(szmailaddress,"mailto:[email protected]");

shellexecute(null, "open", szmailaddress, null, null, sw_shownormal);

//2、執行可執行程式

winexec("notepad.exe",sw_show); //執行計事本

//十四、動態增加或刪除選單

cstring str ;

for(int i=(mainmenu->getsubmenu (0))->getmenuitemcount()-1;i>=0;i--) //取得選單的項數。

}//十

五、改變應用程式的圖示靜態更改:

//修改圖示資源idr_mainframe。它有兩個圖示,乙個是16*16的,另乙個是32*32的,注意要一起修改。

//十六、另一種改變視窗標題的方法

//使用語句 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())

//從剪接板上獲取文字:

char * buffer;

if(openclipboard())

closeclipboard();

//十九、將捕捉螢幕影象到剪下版中

void cshowbmpindlgdlg::oncutscreen()

showwindow(sw_show);

}hbitmap cshowbmpindlgdlg::copyscreentobitmap(lprect lprect)

}//二

十、如何將位圖縮放顯示在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

VC開發小技巧20個

vc開發小技巧20個 一 開啟cd rom mcisendstring set cdaudio door open wait null,0,null 二 關閉cd rom mcisendstring set cdaudio door closed wait null,0,null 三 關閉計算機 o...

vc 20個小技巧

一 開啟cd rom mcisendstring set cdaudio door open wait null,0,null 二 關閉cd rom mcisendstring set cdaudio door closed wait null,0,null 三 關閉計算機 osversioninf...

VC小技巧15個

vc小技巧15個 一 一次只執行乙個程式例項 二 裝載游標 三 獲得主框架 獲得應用程式主視窗的指標 example afxgetmainwnd showwindow sw showmaxmized 使程式最大化 四 重新建立字型的 if m fontlogo.m hobject m fontlog...