亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? visual c++ 50 編 程 經 驗.htm

?? VC的一些技巧性文檔
?? HTM
?? 第 1 頁 / 共 3 頁
字號:
    <h3><font color="#FFFFFF">----</font> 在 通 過AppWizard 生 成 的 具 有 窗 口 框     架 結 構 的 應 用 程 序(SDI 和MDI) 中,MFC 類 庫 已 為 我 們 加 載 上     了 菜 單( 包 括 一 個 系 統 菜 單)、 工 具 條 和 狀 態 條。 但 有     時 由 于 特 殊 需 要, 我 們 可 能 希 望 在 自 己 的 應 用 程 序 中     事 先 不 加 載 菜 單、 工 具 條 和 狀 態 條。 這 時 就 需 要 我 們     手 動 地 刪 除 和 修 改 一 些 類 中 的 語 句。 </h3>    <ul type="square">      <li>打 開MainFrm.cpp 文 件, 使 用 工 具 條 上 的 函 數 下 拉 列 表 框         找 到OnCreate() 函 數。 按 照 下 述 程 序 注 釋 掉 創 建 工 具 條 和         狀 態 條 部 分 的 語 句。 </li>    </ul>    <pre>int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct){	if (CFrameWnd::OnCreate(lpCreateStruct) == -1)		return -1;//在此處開始加注釋符號/*	if (!m_wndToolBar.Create(this) ||		!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))	{		TRACE0(&quot;Failed to create toolbar\n&quot;);		return -1;      // fail to create	}	if (!m_wndStatusBar.Create(this) ||		!m_wndStatusBar.SetIndicators(indicators,		  sizeof(indicators)/sizeof(UINT)))	{		TRACE0(&quot;Failed to create status bar\n&quot;);		return -1;      // fail to create	}	// TODO: Remove this if you don't want tool tips or a resizeable toolbar	m_wndToolBar.SetBarStyle(m_wndToolBar.GetBarStyle()      | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);	// TODO: Delete these three lines if you don't want the toolbar to be dockable	m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);	EnableDocking(CBRS_ALIGN_ANY);	DockControlBar(&amp;m_wndToolBar);在處結束注釋*/		return 0;}</pre>    <ul type="square">      <li>在MainFrm.cpp 文 件 中, 使 用 工 具 條 上 的 函 數 下 拉 列 表 框         找 到PreCreateWindow() 函 數。 參 照 第 三 部 分 中 的 程 序, 加 入 特         定 的 窗 口 框 架 屬 性, 不 妨 把cs.style 設 置 成 如 下 形 式, 即         不 加 載 系 統 菜 單。 <br>        // Create a window without min/max buttons,system menu, or sizable border <br>        cs.style =WS_OVERLAPPED | WS_BORDER; </li>      <li>在 主 應 用 程 序, 即 含 有 定 義theApp 全 程 變 量 的.cpp 文 件         中, 使 用 工 具 條 上 的 函 數 下 拉 列 表 框 找 到InitInstance() 函         數。 在“pDocTemplate = new CSingleDocTemplate” 一 句 中, 用NULL 替 換IDR_MAINFRAME。         如 下 段 程 序 所 示。 </li>    </ul>    <pre>BOOL CYourMainApp::InitInstance(){//.....此處略去一部分無關語句	CSingleDocTemplate* pDocTemplate;	pDocTemplate = new CSingleDocTemplate(		NULL, //IDR_MAINFRAME,          //用NULL替換IDR_MAINFRAME		RUNTIME_CLASS(CNoBarDoc),		RUNTIME_CLASS(CMainFrame),           // main SDI frame window		RUNTIME_CLASS(CNoBarView));	AddDocTemplate(pDocTemplate);//.....此處略去一部分無關語句}</pre>    <ul type="square">      <li>找 到Visual C++ 編 輯 器 的 工 具 條 上 的 編 譯 方 式 下 拉 列 表         框, 選 擇Win32 Release, 生 成Release 版 本 的 應 用 程 序。 </li>    </ul>    <p><font color="#FFFFFF">----</font> 至 此, 我 們 就 得 到 了 不 含 菜 單、     工 具 條 和 狀 態 條 結 構 的 應 用 程 序。 </p>    <p> </p>    <h3><font color="#FF0000">實 現 操 作 過 程 提 示 對 話 框 的 一 種 方 法 </font><font    color="#FFFFFF">----</font> 在 使 用Windows95 進 行 文 件 拷 貝 或 者 刪 除     操 作 時, 您 一 定 見 到 過 那 種 具 有 飛 文 件 動 畫 的 操 作 過     程 提 示 對 話 框。 這 一 功 能 的 加 入 不 僅 使 我 們 能 夠 在 操     作 過 程 當 中 隨 時 取 消 操 作, 而 且 也 使 文 件 拷 貝 或 者 刪     除 操 作 變 得 生 動 活 潑。 其 實, 在 使 用Visual C++ 進 行 應 用     程 序 設 計 時, 我 們 也 可 以 使 用 下 述 方 法 在 適 當 位 置 加     入 自 己 的 操 作 過 程 提 示 對 話 框。 </h3>    <ul type="square">      <li>為 每 一 個 操 作 過 程 提 示 對 話 框 創 建 一 個 對 話 框 類。         為 了 下 面 敘 述 方 便, 我 們 只 假 設 應 用 程 序 需 要 一 個 操         作 過 程 提 示 對 話 框 并 以“CModel” 作 為 對 應 的 對 話 框 類         的 名 字。 <br>      </li>      <li>使 用Visual C++ 提 供 的 資 源 編 輯 器 編 輯 提 示 對 話 框, 比 如         加 入 一 些 文 字 說 明 和 動 畫 等。 <br>      </li>      <li>在CModel 類 的 頭 文 件(Model.h) 中, 加 入 兩 個 成 員 變 量, <br>        CWnd* m_pParent; // 指 向 調 用 該 提 示 對 話 框 的 框 架 類( 或 對 話         框 類), 即 它 的“ 父 類” int m_nID;// 記 錄 該 提 示 對 話 框 的ID         號 <br>        以 及 下 面 兩 個 成 員 函 數: <br>        CModel(CWnd* pParent = NULL); // 舍 棄 原 有 的 構 造 函 數, 或 者 把 原         函 數 修 改 成 這 種 無 模 式 對 話 框 的 構 造 函 數 <br>        BOOL Create(); // 該 函 數 將 調 用 創 建 基 類 的Create() 函 數 創 建 對         話 框 </li>      <li>在Model.cpp 文 件 中, 加 入 相 應 函 數 的 實 現 部 分。 </li>    </ul>    <pre>CModel::CModel(CWnd* pParent /*=NULL*/)	: CDialog(CModel::IDD, pParent){	m_pParent=pParent;	m_nID=CModel::IDD;	//{{AFX_DATA_INIT(CModel)		// NOTE: the ClassWizard will add member initialization here	//}}AFX_DATA_INIT}BOOL CModel::Create(){	return CDialog::Create(m_nID,m_pParent);}</pre>    <ul type="square">      <li>同 時 按 下Ctrl 和W 鍵 或 直 接 單 擊 工 具 條 上 的ClassWizard 按         鈕, 打 開ClassWizard 對 話 框。 在 類 名(Class name) 列 表 框 中 選 擇         該 提 示 對 話 框 類, 在Object IDs 列 表 框 中 選 擇 該 類 的 類 名         后, 在 消 息(Messages) 列 表 框 中 選 擇PostNcDestroy 消 息 并 雙 擊         它, 這 時ClassWizard 就 會 在 該 對 話 框 類 中 加 入 一 個PostNcDestroy()         函 數。 該 函 數 將 會 在 對 話 框 窗 口 消 失 后, 由OnNcDestroy() 函         數 調 用。 因 此, 可 以 在 該 函 數 中 加 入 一 些 掃 尾 工 作,         例 如 數 據 傳 送, 釋 放 指 針 空 間 等。 </li>    </ul>    <pre>void CModel::PostNcDestroy() {	// TODO: Add your specialized code here and/or call the base class	delete this;	CDialog::PostNcDestroy();}</pre>    <ul type="square">      <li>在 要 調 用 提 示 對 話 框 類 的 類 的 頭 文 件 中, 先 包 含(#include)CModel         類 的 頭 文 件, 再 聲 明 一 個 指 向CModel 類 的 對 象 的 指 針,         如m_Dlg, 并 在 該 類 的 構 造 函 數 中, 加 入“m_Dlg = NULL;” 一         句。 然 后, 在 打 開 和 關 閉 提 示 對 話 框 的 函 數 中 加 入 如         下 一 段 程 序: </li>    </ul>    <pre>	if (m_Dlg==NULL) {//如果當前沒用提示對話框在活動,就創建一個		m_Dlg = new CModel(this);		m_Dlg-&gt;Create();		GetDlgItem(IDC_EXPORT)-&gt;EnableWindow(FALSE);	}	else//否則就激活它		m_Dlg-&gt;SetActiveWindow();	另外,再在要關閉提示對話框的地方,加入如下語句:	m_Dlg-&gt;DestroyWindow();	m_Dlg=NULL;</pre>    <p><font color="#FFFFFF">----</font> 至 此, 您 已 經 擁 有 了 自 己 的 過     程 操 作 提 示 對 話 框。 不 過, 它 還 不 具 有 動 畫 和 隨 時 取     消 操 作 的 功 能。 您 不 妨 嘗 試 著 加 入 這 些 功 能。 另 外,     筆 者 也 曾 嘗 試 過 用 下 面 介 紹 的 方 法 實 現 過 程 操 作 提     示 對 話 框。 兩 種 方 法 比 較, 可 謂 各 有 千 秋。 如 果 您 希     望 上 面 設 計 的 過 程 提 示 對 話 框 能 夠 被 多 個 應 用 程 序     共 享, 那 么 最 好 把 提 示 對 話 框 作 為 獨 立 的 進 程 來 調     用。 但 是, 當 您 還 希 望 在 提 示 對 話 框 與 調 用 者 之 間 傳     輸 數 據 的 話, 似 乎 這 一 部 分 介 紹 的 實 現 方 法 更 簡 潔 且     更 有 效。 </p>    <h3><font color="#FF0000">應 用 進 程 實 現 對 其 他 應 用 程 序 的 調 用</font></h3>    <h3><font color="#FFFFFF">----</font> 在 我 們 設 計 的 應 用 程 序 中, 很     可 能 會 用 到 其 他 應 用 程 序 來 完 成 某 一 特 定 功 能。 例     如, 當 我 們 為 了 便 于 數 據 的 傳 輸 而 對 諸 多 文 件 進 行 壓     縮 和 解 壓 縮 時, 一 種 作 法 是 我 們 自 己 設 計 一 個 這 樣 的     壓 縮/ 解 壓 縮 程 序, 然 后 以 動 態 鏈 接 庫(DLL) 或 者 函 數 庫     的 形 式 由 主 應 用 程 序 調 用。 但 更 方 便 而 且 高 效 的 作 法     是 利 用 現 有 的 這 方 面 的 優 秀 軟 件, 比 如ARJ.EXE, 并 以 進     程 的 形 式 調 用 它, 再 在 適 當 時 候 關 閉 它。 下 面 將 以 上     面 所 述 為 例, 具 體 介 紹 后 一 種 方 法 的 實 現 過 程。 </h3>    <ul type="square">      <li>在 需 要 調 用ARJ.EXE 進 行 壓 縮/ 解 壓 縮 的 類 中, 創 建 一 個         成 員 函 數, 不 妨 稱 作CreateBat(), 其 作 用 是 生 成 一 個 批 處         理 文 件。 由 該 批 處 理 文 件 調 用ARJ.EXE, 并 給 出 具 體 壓 縮/         解 壓 縮 參 數。 之 后, 再 利 用MS-DOS 的DIR 命 令 生 成 一 個 臨 時         文 件, 以 作 為 壓 縮/ 解 壓 縮 工 作 完 成 的 標 志。 </li>    </ul>    <pre>void CMyCompress:: CreateBat(CString BatPath,CString ArjPath,                  CString BatName,CString ArjFileName,                  CString TempPath,CString ExitFlag,BOOL out){	LPTSTR lpBuffer;	UINT uSize;	HANDLE hHeap;	uSize=(GetCurrentDirectory(0,NULL))*sizeof(TCHAR);	hHeap=GetProcessHeap();	lpBuffer=(LPSTR)HeapAlloc(hHeap,HEAP_ZERO_MEMORY,uSize);	GetCurrentDirectory(uSize,lpBuffer);     //得知當前目錄信息,以便根據需要變換目錄	if (lpBuffer!=BatPath) //diferent dir		SetCurrentDirectory(BatPath);	CStdioFile f;	CFileException e;	if (!f.Open( BatName, CFile::modeCreate|CFile::modeWrite, &amp;e))       //以BatName的內容創建一個批處理文件	{		AfxMessageBox(&quot;不能創建文件&quot;+BatName);		return ;	}	char density[6];	sprintf(density,&quot;%d&quot;,mTotalBytes);</pre>    <p><font color="#FFFFFF">----</font> //mTotalBytes 是 由 其 他 函 數 設 定 的 變     量, 用 于 記 錄 用 于 拷 入 或 拷 出 文 件 的 磁 盤 所 具 有 的 最     大 可 用 空 間 </p>    <pre>	CString Density=density;	CString string;	if (out)//說明是生成做壓縮工作的批處理文件		string=&quot;arj a -v&quot;+Density;	else //說明是生成做解壓縮工作的批處理文件		string=&quot;arj e -v&quot;+Density;	string+=&quot; ..\\&quot;+ArjPath+&quot;\\&quot;+ArjFileName+&quot; &quot;;	if (out)		string=string+&quot;..\\&quot;+TempPath+&quot;\\*.* -y -jm\n&quot;;	else		string=string+&quot;..\\&quot;+TempPath+&quot;\\ -y -jm\n&quot;;	f.WriteString(string);	string=&quot;dir &gt;&quot;+ExitFlag+&quot;\n&quot;;	f.WriteString(string);	f.Close();	SetCurrentDirectory(lpBuffer);//回復到原來的目錄下}</pre>    <p><font color="#FFFFFF">----</font> 該 函 數 執 行 后, 將 生 成 一 個 批     處 理 文 件, 內 容 大 致 是: <br>    <font color="#FFFFFF">----</font> ARJ A -V1440 壓 縮 后 文 件 的 路 徑 名+ 文     件 名 被 壓 縮 文 件 的 路 徑 名+ 文 件 名 -Y -JM <br>    <font color="#FFFFFF">----</font> DIR &gt; 臨 時 文 件 名 <br>    <font color="#FFFFFF">----</font> 或 者 是: <br>    <font color="#FFFFFF">----</font> ARJ E -V1440 被 解 壓 縮 文 件 的 路 徑 名+     文 件 名 解 壓 縮 后 文 件 的 路 徑 名+ 文 件 名 -Y -JM <br>    <font color="#FFFFFF">----</font> DIR &gt; 臨 時 文 件 名 <ul type="square">      <li>在 需 要 調 用ARJ.EXE 進 行 壓 縮/ 解 壓 縮 的 類 中, 再 創 建 一         個 成 員 函 數, 不 妨 稱 作RunBat(), 其 作 用 是 創 建 和 執 行 進         程 來 運 行 上 述 所 生 成 的 批 處 理 文 件, 并 在 適 當 時 候 撤         消 進 程。 </li>    </ul>    <pre>void CMyCompress::RunBat(CString         BatPath,CString fileName,CString ExitFlag){	CString lpApplicationName=BatPath+&quot;\\&quot;+fileName;           // 進 程 執 行 的 應 用 程 序 的 完 全 路 徑 名	STARTUPINFO StartupInfo;// 創 建 進 程 所 需 的 信 息 結 構 變 量	GetStartupInfo(&amp;StartupInfo);	StartupInfo.lpReserved=NULL;	StartupInfo.lpDesktop=NULL;	StartupInfo.lpTitle=NULL;	StartupInfo.dwX=0;	StartupInfo.dwY=0;	StartupInfo.dwXSize=200;	StartupInfo.dwYSize=300;	StartupInfo.dwXCountChars=500;	StartupInfo.dwYCountChars=500;	StartupInfo.dwFlags=STARTF_USESHOWWINDOW;	StartupInfo.wShowWindow=SW_HIDE;      // 說 明 進 程 將 以 隱 藏 的 方 式 在 后 臺 執 行	StartupInfo.cbReserved2=0;	StartupInfo.lpReserved2=NULL;	StartupInfo.hStdInput=stdin;	StartupInfo.hStdOutput=stdout;	StartupInfo.hStdError=stderr;	LPTSTR lpBuffer;	UINT uSize;	HANDLE hHeap;	uSize=(GetCurrentDirectory(0,NULL))*sizeof(TCHAR);	hHeap=GetProcessHeap();	lpBuffer=(LPSTR)HeapAlloc(hHeap,HEAP_ZERO_MEMORY,uSize);	GetCurrentDirectory(uSize,lpBuffer);      // 得 知 當 前 目 錄 信 息, 以 便 根 據 需 要 變 換 目 錄	if (lpBuffer!=BatPath) //diferent dir		SetCurrentDirectory(BatPath);// 創 建 進 程	if (CreateProcess(lpApplicationName,NULL,NULL,			NULL,FALSE,CREATE_DEFAULT_ERROR_MODE,			NULL,NULL,&amp;StartupInfo,&amp;pro_info)) 	{

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本黄色一区二区| 制服丝袜亚洲色图| 欧美日韩一区精品| 久久久久88色偷偷免费| 一级女性全黄久久生活片免费| 亚洲第一搞黄网站| 成人性生交大片免费| 91精品国产综合久久国产大片 | 国产福利91精品一区二区三区| 91丨porny丨蝌蚪视频| 欧美成人激情免费网| 一区二区三区四区在线免费观看| 国产一区二区三区香蕉| 欧美精品自拍偷拍动漫精品| 中文字幕一区二区三中文字幕| 国内外成人在线| 欧美一区二区三区人| 亚洲一区二区三区免费视频| av亚洲精华国产精华精| 国产亚洲成av人在线观看导航| 日韩一区欧美二区| 欧美精品乱码久久久久久 | 三级久久三级久久久| 97成人超碰视| 国产精品欧美经典| 成人亚洲一区二区一| 久久美女艺术照精彩视频福利播放| 日韩黄色免费电影| 欧美一区二区日韩| 日本网站在线观看一区二区三区 | 国产成人在线色| 久久综合精品国产一区二区三区| 日韩一区精品视频| 日韩三级高清在线| 免费成人av在线| 精品日韩欧美一区二区| 免费成人在线网站| 精品播放一区二区| 国产成人自拍网| 欧美激情一区二区三区| 成人性生交大片免费 | 欧美激情艳妇裸体舞| 国产成人日日夜夜| 国产精品毛片a∨一区二区三区| 成人综合日日夜夜| 亚洲人成网站影音先锋播放| 91网站在线观看视频| 亚洲美女少妇撒尿| 色婷婷狠狠综合| 性久久久久久久久久久久| 91精品国产麻豆国产自产在线 | 亚洲自拍偷拍图区| 7799精品视频| 国产一区欧美一区| 国产精品福利影院| 欧美体内she精高潮| 蜜臀av一区二区在线免费观看| 日韩你懂的在线观看| 丰满少妇在线播放bd日韩电影| 国产精品久久国产精麻豆99网站| 91免费版在线看| 蜜桃传媒麻豆第一区在线观看| 精品国产乱码久久久久久老虎| 91在线视频播放| 日韩经典一区二区| 久久精品人人爽人人爽| 日本高清免费不卡视频| 免费观看日韩电影| 亚洲婷婷综合久久一本伊一区| 欧美日免费三级在线| 国产精品1区2区| 一区二区高清在线| 久久综合狠狠综合久久激情| 一本大道久久a久久综合婷婷| 午夜精品视频一区| 国产精品欧美一级免费| 制服丝袜中文字幕亚洲| 成人免费毛片aaaaa**| 亚洲图片自拍偷拍| 国产欧美日韩精品a在线观看| 欧洲日韩一区二区三区| 国产精品中文有码| 亚洲二区视频在线| 国产精品久久一卡二卡| 91精品国产综合久久久久久久 | 国产精品福利影院| 欧美大片在线观看一区二区| 91麻豆精品秘密| 精品一区二区三区欧美| 亚洲一区二区三区中文字幕| 国产欧美一区二区精品久导航 | 国产视频亚洲色图| 欧美一区二区大片| 在线观看成人小视频| 国产精品2024| 久久99久久久欧美国产| 亚洲综合免费观看高清完整版| 欧美激情在线一区二区三区| 欧美大片免费久久精品三p | 99久久免费精品高清特色大片| 捆绑变态av一区二区三区| 亚洲一区二区综合| 亚洲色图欧洲色图婷婷| 欧美国产精品专区| 337p日本欧洲亚洲大胆色噜噜| 在线综合视频播放| 欧美日韩国产精品成人| 日本丶国产丶欧美色综合| 成人app软件下载大全免费| 国产一区二区在线观看视频| 免费观看久久久4p| 久久66热偷产精品| 久久99九九99精品| 国产自产v一区二区三区c| 久久99精品久久只有精品| 美女精品自拍一二三四| 日韩综合一区二区| 日本成人在线视频网站| 日韩精品一卡二卡三卡四卡无卡| 亚洲成人福利片| 天堂精品中文字幕在线| 日韩在线一二三区| 久久精工是国产品牌吗| 久久国产精品露脸对白| 加勒比av一区二区| 国产999精品久久久久久绿帽| 国产成人免费在线观看不卡| 国产盗摄女厕一区二区三区 | 中文字幕免费一区| 最新日韩在线视频| 亚洲综合在线观看视频| 亚洲成人你懂的| 精品亚洲成a人| 国产91对白在线观看九色| 成人高清av在线| 色婷婷久久久久swag精品 | 亚洲国产精品ⅴa在线观看| 国产精品久久久99| 亚洲成人手机在线| 韩国v欧美v日本v亚洲v| av一区二区三区| 欧美日韩成人综合天天影院| 日韩美女视频一区二区在线观看| 久久免费看少妇高潮| 亚洲色图丝袜美腿| 美女视频一区二区三区| 国产成人av一区二区三区在线| 色偷偷成人一区二区三区91| 91精品国产色综合久久ai换脸| 久久奇米777| 一区二区不卡在线视频 午夜欧美不卡在 | 97精品超碰一区二区三区| 91精品免费在线观看| 欧美激情艳妇裸体舞| 日韩国产欧美三级| 成人国产在线观看| 欧美一区二区福利视频| 亚洲婷婷国产精品电影人久久| 日本视频一区二区三区| 成人黄色电影在线 | 国产亲近乱来精品视频| 一区二区三区精品| 国产精品77777| 91精品久久久久久久91蜜桃| 国产欧美日韩在线看| 日韩1区2区3区| 色一情一伦一子一伦一区| 2020国产精品自拍| 亚洲不卡av一区二区三区| 国产91丝袜在线18| 精品日韩在线一区| 亚洲123区在线观看| 91网站在线观看视频| 国产三级精品视频| 精品在线一区二区三区| 欧美日韩一区成人| 一区二区三区四区五区视频在线观看| 极品少妇一区二区三区精品视频| 在线视频一区二区三| 国产精品久久久久一区二区三区 | 国产精品天天看| 蜜桃久久久久久久| 3atv一区二区三区| 亚洲成人免费电影| 欧美日韩中文字幕精品| 亚洲色大成网站www久久九九| 国产精品一二三| 精品成a人在线观看| 久久成人精品无人区| 91精品国产综合久久香蕉的特点| 一区二区三区在线观看国产| 91社区在线播放| 亚洲欧洲综合另类| 99久久精品免费观看| 国产精品大尺度| www.欧美色图| 成人免费在线观看入口| 99视频精品全部免费在线| 中文字幕电影一区| 成人h动漫精品|