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

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

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

?? VC的一些技巧性文檔
?? HTM
?? 第 1 頁 / 共 3 頁
字號:
<html><body background="di2001.jpg"><head><meta http-equiv="Content-Type" content="text/html; charset=gb_2312-80"><meta name="GENERATOR" content="Microsoft FrontPage 3.0"><title> Visual C++5.0編程經驗</title><style type="text/css"><!--.10V {font-size: 9pt; font-family: 宋體;text-decoration:none;color="0000ff";}.12V {font-size: 12pt; font-family: 宋體;}--></style></head><body bgcolor="#FFFFFF"><h2 align="center"><font size="6" color="#0000FF">Visual C++ 5.0 編 程 經 驗</font></h2><div align="center"><center><table border="0" cellpadding="0" cellspacing="0" width="80%">  <tr>    <td valign="top"><p align="left"><font size="4">作者:北京大學計算機系-蔣志華</font>     </p>    <h3><font color="#A30004">另 一 種 改 變 窗 口 標 題 的 方 法</font></h3>    <h3><font color="#FFFFFF">----</font> 在1997 年9 月1 日 出 版 的《 計 算 機 世     界》 上 有 一 篇 名 為《Visual C++ 4.0 編 程 經 驗 談》 的 文 章, 其     中 提 到 過 一 種 改 變 窗 口 標 題 的 方 法, 即 在 應 用 程 序 的     框 架 類CMainFrame 類( 注: 它 是CFrameWnd 類 的 派 生 類) 的 成 員 函     數PreCreateWindow() 中 修 改CFrameWnd 類 的 成 員 變 量m_strTitle 的 值。 這     種 方 法 的 不 足 之 處 就 是 只 能 一 次 性 的 設 置 窗 口 標 題     的 內 容, 不 能 在 程 序 運 行 過 程 中 隨 時 修 改 它。 比 如 當     需 要 把 鼠 標 的 當 前 坐 標 在 窗 口 標 題 上 顯 示 時, 我 們 就     要 使 用 到Visual C++ 提 供 的 全 程 函 數 BOOL SetWindowText( HWND hWnd,     LPCTSTR lpString )。 這 個 函 數 實 際 上 是 一 個Win32 函 數。 它 的 第     一 個 參 數 要 求 是 一 個 窗 口 框 架 的 句 柄, 而 第 二 個 參 數     要 求 是 一 個 指 向 一 個 常 量 字 符 串 的32 位 指 針, 即LPCTSTR     類 型 的 變 量。 通 常 情 況 下, 我 們 往 往 會 在 應 用 程 序 的     文 檔 類 或 視 類 中 動 態 改 變 窗 口 標 題 的 內 容, 從 而 沒 有     現 成 的 指 向 窗 口 框 架 的 句 柄 供 我 們 使 用, 因 此 我 們 還     需 要 在 使 用SetWindowText() 函 數 前 先 調 用 另 一 個Win32 函 數AfxGetMainWnd(),     來 獲 得 一 個 指 向 應 用 程 序 的 框 架 類 的 指 針, 例 如 使 用     語 句 </h3>    <p><font color="#FFFFFF">----</font> CWnd* m_pCWnd= AfxGetMainWnd() </p>    <p><font color="#FFFFFF">----</font> 然 后, 再 以 如 下 形 式 調 用SetWindowText()     函 數: </p>    <p><font color="#FFFFFF">----</font> SetWindowText(*m_pCWnd, (LPCTSTR) m_WindowText);//     m_WindowText 可 以 是 一 個CString 類 的 變 量 </p>    <p><font color="#FFFFFF">----</font> 如 何 把 多 于256 色 的 位 圖 作 為 資     源 加 入 到 應 用 程 序 中 </p>    <p><font color="#FFFFFF">----</font> 曾 經 使 用 過Visual C++ 進 行 應 用 程 序     開 發 的 同 行 們 都 知 道,Visual C++ 5.0 以 前 版 本 中 自 帶 的 位     圖 編 輯 器 不 能 瀏 覽 和 編 輯256 色 以 上 的 位 圖, 并 且 資 源     文 件 中 也 不 允 許 嵌 入(Import)256 色 以 上 的 位 圖 作 為 資 源(     否 則, 在 應 用 程 序 運 行 時 會 報 錯)。 這 一 特 性 使 得 我 們     用Visual C++ 開 發 應 用 程 序 時 不 得 不 使 用 其 他 方 法 來 增 強     界 面 圖 畫 的 美 觀 性, 于 是 就 有 使 用Visual C++ 開 發 應 用 程     序 內 核, 用Visual Basic 開 發 界 面 部 分 的 組 合 方 法。 好 在Visual     C++ 5.0 中 這 個 問 題 有 了 改 善。 首 先, 位 圖 編 輯 器 可 以 創     建 并 編 輯256 色 的 位 圖 了。 另 外,Visual C++ 5.0 允 許 程 序 員 把256     色 以 上 的 位 圖 嵌 入 到 資 源 中, 盡 管 仍 然 無 法 在Visual C++     的 位 圖 編 輯 器 中 瀏 覽, 并 且 還 要 求 必 須 選 擇Win32 Release     作 為 編 譯 方 式 生 成 可 執 行 的 應 用 程 序。 另 外 一 個 限 制     條 件 是 作 為 資 源 的256 色 以 上 的 位 圖 不 能 由 應 用 程 序 內     核 自 動 打 開 和 關 閉。 比 如 說, 在 上 述 那 篇 名 為《Visual C++     4.0 編 程 經 驗 談》 的 文 章 中 曾 經 提 到 過 一 種 為 對 話 框 加     入 位 圖 式 按 鈕 的 方 法, 即 由 程 序 開 發 者 為 每 個 按 鈕 創     建 四 幅 位 圖, 分 別 用 于 表 示 按 鈕 的 彈 起 狀 態(UP)、 按 下     狀 態(DOWN)、 輸 入 焦 點 狀 態(FOCUS) 和 禁 止 狀 態(DISABLE), 并 且     必 須 以 該 按 鈕 的 標 題 名 與 上 述 四 種 狀 態 之 一 的 組 合     作 為 位 圖 的 標 識, 以 便 應 用 程 序 在 繪 制 位 圖 按 鈕 時,     可 以 自 動 地 找 到 相 應 的 資 源( 即 位 圖)。 然 而 這 一 自 動     映 射 只 限 制 于Visual C++ 位 圖 編 輯 器 能 夠 打 開 的 位 圖。 因     此 如 果 選 擇256 色 以 上 的 位 圖 作 為 位 圖 按 鈕 的 資 源, 并     也 希 望 達 到 上 述 四 狀 態 的 相 互 切 換 的 話, 就 必 須 用 到     下 述 的 函 數 和 程 序 設 計 參 考 模 型。 <ul type="square">      <li>設 置 四 個 常 量,BUTTON_UP,BUTTON_DOWN,BUTTON_FOCUS,BUTTON_DISABLE, 分         別 用 于 標 識 各 按 鈕 的 當 前 狀 態。 <br>      </li>      <li>在 應 用 程 序 的 相 應 對 話 框 類 中 為 每 個 位 圖 按 鈕( 為 下         面 敘 述 方 便, 不 妨 假 設 為 兩 個) 設 置 一 個CRect 類 的 對         象,m_rect1 和m_rect2, 來 記 載 各 按 鈕 在 對 話 框 中 所 占 據 的         坐 標 矩 形。 再 在 該 對 話 框 類 中 為 每 個 按 鈕 設 置 一 個 整         型 變 量,Buton1_Status,Button2_Status, 記 錄 各 按 鈕 的 當 前 狀 態。         然 后 在 對 話 框 的 構 造 函 數 中 初 始 化 這 些CRect 類 的 對 象         和 整 型 變 量。 <br>      </li>      <li>在 該 對 話 框 類 中 創 建 分 別 響 應 鼠 標 各 種 狀 態 的 消 息         處 理 函 數, 如OnMouseMove(),OnLButtonUp(),OnLButtonDown() 等。 <br>      </li>      <li>同 時 按 下Ctrl 和W 鍵 或 直 接 單 擊 工 具 條 上 的ClassWizard 按         鈕, 打 開ClassWizard 對 話 框。 在 類 名(Class name) 列 表 框 中 選 擇         對 話 框 類, 在Object IDs 列 表 框 中 選 擇 該 類 的 類 名 后, 在         消 息(Messages) 列 表 框 中 選 擇WM_PAINT 消 息 并 雙 擊 它, 這 時ClassWizard         就 會 在 該 對 話 框 類 中 加 入 一 個OnPaint() 函 數。 該 函 數 將         在 我 們 的 程 序 中 起 重 要 作 用。 之 后, 再 在Object IDs 列 表         框 中 選 擇 新 加 入 的 工 具 條 按 鈕 的 標 識 名, 雙 擊 消 息 列         表 框 中 的COMMAND 消 息,ClassWizard 又 會 在 對 話 框 類 中 加 入 相         應 的 消 息 處 理 函 數。 關 閉ClassWizard 對 話 框。 </li>    </ul>    <p><font color="#FFFFFF">----</font> 下 面 給 出 部 分 程 序 代 碼, 僅 供     參 考。 </p>    <pre>void CTESTDlg::OnPaint() {	CWnd* pWnd;	CDC* pDC;	CDC* pDisplayMemDC;	CBitmap* pBitmap;	pWnd=GetDlgItem(IDC_IMAGE1);//得到指向第一個位圖按鈕的指針	pDC=pWnd-&gt;GetDC();//獲得一個窗口設備用于畫圖	pWnd-&gt;Invalidate();//使窗口無效,從而更新它	pWnd-&gt;UpdateWindow();	pDisplayMemDC=new CDC;	pBitmap=new CBitmap;	pDisplayMemDC-&gt;CreateCompatibleDC(pDC);	if (Change1) {//說明第一個按鈕的狀態發生了變化	switch (Button1_Status){	case BUTTON_DISABLE:		pBitmap-&gt;LoadBitmap(IMAGE1_DISABLE);//裝入位圖		pDisplayMemDC-&gt;SelectObject(pBitmap);		pDC-&gt;BitBlt(0,0,140,30,pDisplayMemDC,0,0,SRCCOPY);               //把位圖拷貝到指定區域		break;	case BUTTON_UP:		pBitmap-&gt;LoadBitmap(IMAGE1_UP);		pDisplayMemDC-&gt;SelectObject(pBitmap);		pDC-&gt;BitBlt(0,0,140,30,pDisplayMemDC, 0,0,SRCCOPY);		break;	case BUTTON_FOCUS:		pBitmap-&gt;LoadBitmap(IMAGE1_FOCUS);		pDisplayMemDC-&gt;SelectObject(pBitmap);		pDC-&gt;BitBlt(0,0,140,30,pDisplayMemDC,0,0,SRCCOPY);		break;	case BUTTON_DOWN:		pBitmap-&gt;LoadBitmap(IMAGE1_DOWN);		pDisplayMemDC-&gt;SelectObject(pBitmap);		pDC-&gt;BitBlt(0,0,140,30,pDisplayMemDC,0,0,SRCCOPY);		break;	}		}	delete pDisplayMemDC;	delete pBitmap;	pWnd=GetDlgItem(IDC_IMAGE2);	pDC=pWnd-&gt;GetDC();	pWnd-&gt;Invalidate();	pWnd-&gt;UpdateWindow();	pDisplayMemDC=new CDC;	pBitmap=new CBitmap;	pDisplayMemDC-&gt;CreateCompatibleDC(pDC);	if (Change2) {//說明第二個按鈕的狀態發生了變化	switch (Button2_Status){	case BUTTON_DISABLE:		pBitmap-&gt;LoadBitmap(IMAGE2_DISABLE);		pDisplayMemDC-&gt;SelectObject(pBitmap);		pDC-&gt;BitBlt(0,0,140,30,pDisplayMemDC,0,0,SRCCOPY);		break;	case BUTTON_UP:		pBitmap-&gt;LoadBitmap(IMAGE2_UP);		pDisplayMemDC-&gt;SelectObject(pBitmap);		pDC-&gt;BitBlt(0,0,140,30,pDisplayMemDC,0,0,SRCCOPY);		break;	case BUTTON_FOCUS:		pBitmap-&gt;LoadBitmap(IMAGE2_FOCUS);		pDisplayMemDC-&gt;SelectObject(pBitmap);		pDC-&gt;BitBlt(0,0,140,30,pDisplayMemDC,0,0,SRCCOPY);		break;	case BUTTON_DOWN:		pBitmap-&gt;LoadBitmap(IMAGE2_DOWN);		pDisplayMemDC-&gt;SelectObject(pBitmap);		pDC-&gt;BitBlt(0,0,140,30,pDisplayMemDC,0,0,SRCCOPY);		break;	}		}	delete pDisplayMemDC;	delete pBitmap;	CDialog::OnPaint();}void CTESTDlg::OnMouseMove(UINT nFlags, CPoint point) {	CRect rect=CRect(0,0,1,1);	CRgn rgn1,rgn2;//記錄各位圖按鈕所占據的矩形區域	rgn1.CreateRectRgnIndirect(m_rect1);           //rgn1記錄第一個位圖按鈕所占據的矩形區域	if (rgn1.PtInRegion(point))        {//鼠標當前是否已落入第一個位圖按鈕所占據的矩形區域		if ( (Button1_Status!=BUTTON_FOCUS)            &amp;&amp; (Button1_Status!=BUTTON_DISABLE) ) {//如果位圖按鈕的當前狀態不是輸入焦點狀態并且也不是禁止狀態	Button1_Status= BUTTON_FOCUS;			Change1=true;			InvalidateRect(rect,FALSE);		}		if ( (Button2_Status!=BUTTON_UP) &amp;&amp;             (Button2_Status!=BUTTON_DISABLE) ) {			Button2_Status= BUTTON_UP;			Change2=true;			InvalidateRect(rect,FALSE);		}	}	else{	rgn2.CreateRectRgnIndirect(m_rect2);	if (rgn2.PtInRegion(point)){		if ( (Button2_Status!=BUTTON_FOCUS)            &amp;&amp; (Button2_Status!=BUTTON_DISABLE) ) {			Button2_Status= BUTTON_FOCUS;			Change2=true;			InvalidateRect(rect,FALSE);		}		if ( (Button1_Status!=BUTTON_UP)           &amp;&amp; (Button1_Status!=BUTTON_DISABLE) ) {			Button1_Status= BUTTON_UP;			Change1=true;			InvalidateRect(rect,FALSE);		}	}	}	CDialog::OnMouseMove(nFlags, point);}void CTESTDlg::OnLButtonUp(UINT nFlags, CPoint point) {	CRect rect=CRect(0,0,1,1);	CRgn rgn1,rgn2;	rgn1.CreateRectRgnIndirect(m_rect1);	if (rgn1.PtInRegion(point)){		if ( (Button1_Status!=BUTTON_UP)            &amp;&amp; (Button1_Status!=BUTTON_DISABLE) ) {			Button1_Status=BUTTON_UP;			Change1=true;			InvalidateRect(rect,FALSE);		}	}	else{	rgn2.CreateRectRgnIndirect(m_rect2);	if (rgn2.PtInRegion(point)){		if ( (Button2_Status!=BUTTON_UP)            &amp;&amp; (Button2_Status!=BUTTON_DISABLE) ) {			Button2_Status=BUTTON_UP;			Change2=true;			InvalidateRect(rect,FALSE);		}	}	}	CDialog::OnLButtonUp(nFlags, point);}void CTESTDlg::OnLButtonDown(UINT nFlags, CPoint point) {	CRect rect=CRect(0,0,1,1);	CRgn rgn1,rgn2;	rgn1.CreateRectRgnIndirect(m_rect1);	if (rgn1.PtInRegion(point)){		if ( (Button1_Status!=BUTTON_DOWN)             &amp;&amp; (Button1_Status!=BUTTON_DISABLE) ) {			Button1_Status=BUTTON_DOWN;			Change1=true;			InvalidateRect(rect,FALSE);		}		if ( (Button2_Status!=BUTTON_UP)            &amp;&amp; (Button2_Status!=BUTTON_DISABLE) ) {			Button2_Status=BUTTON_UP;			Change2=true;			InvalidateRect(rect,FALSE);		}	}	else{	rgn2.CreateRectRgnIndirect(m_rect2);	if (rgn2.PtInRegion(point)){		if ( (Button2_Status!=BUTTON_DOWN)             &amp;&amp; (Button2_Status!=BUTTON_DISABLE) ) {			Button2_Status=BUTTON_DOWN;			Change2=true;			InvalidateRect(rect,FALSE);		}		if ( (Button1_Status!=BUTTON_UP)            &amp;&amp; (Button1_Status!=BUTTON_DISABLE) ) {			Button1_Status=BUTTON_UP;			Change1=true;			InvalidateRect(rect,FALSE);		}	}	}	CDialog::OnLButtonDown(nFlags, point);}</pre>    <h3><font color="#A30004">如 何 在 應 用 程 序 中 不 加 載 菜 單、 工 具     條 和 狀 態 條</font></h3>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本福利一区二区| 国产精品美女久久久久aⅴ| 国产人久久人人人人爽| 一区二区三区色| 国产成人精品综合在线观看 | 精品久久国产字幕高潮| 中文字幕亚洲在| 国产在线乱码一区二区三区| 在线观看网站黄不卡| 国产亚洲精品中文字幕| 日韩影视精彩在线| 色综合久久久网| 国产精品情趣视频| 国产在线视频一区二区三区| 欧美精品自拍偷拍动漫精品| 国产精品久久久久久久岛一牛影视| 奇米精品一区二区三区在线观看 | 亚洲一区二区三区四区在线| 成人app软件下载大全免费| 久久综合色播五月| 另类小说综合欧美亚洲| 欧美色图激情小说| 亚洲自拍欧美精品| 色婷婷综合中文久久一本| 国产精品国产三级国产aⅴ入口| 狠狠色2019综合网| 精品人在线二区三区| 久久精品国产网站| 精品人伦一区二区色婷婷| 美女国产一区二区| 精品伦理精品一区| 国产一区二区看久久| 亚洲精品一线二线三线| 国产一区二区免费看| 国产午夜精品一区二区| 福利一区二区在线| 欧美国产亚洲另类动漫| 成人网在线免费视频| 国产精品不卡视频| 91性感美女视频| 一区二区三区在线观看视频| 欧美色中文字幕| 天天色图综合网| 精品久久久久香蕉网| 国产成人av一区二区三区在线 | 国产精品全国免费观看高清| 成人av免费在线播放| 亚洲欧美日韩一区二区三区在线观看| 一本大道久久a久久综合婷婷| 一区二区三区四区在线播放| 欧美熟乱第一页| 蜜臀av在线播放一区二区三区| 精品国产自在久精品国产| 国产91在线|亚洲| 亚洲免费毛片网站| 91精品久久久久久蜜臀| 国产福利91精品一区二区三区| 国产精品久久久久影院亚瑟| 在线看日本不卡| 久久 天天综合| 中文字幕一区二区在线播放| 欧美色综合网站| 精品一区二区在线视频| 亚洲欧美中日韩| 91精品国产乱| 99久久久久久| 奇米影视在线99精品| 国产精品久久久久久妇女6080 | 欧美日韩激情一区| 韩国在线一区二区| 一区二区视频在线| 久久亚洲春色中文字幕久久久| 99精品在线观看视频| 日本不卡视频一二三区| 国产精品入口麻豆原神| 7878成人国产在线观看| 成人av免费观看| 狠狠v欧美v日韩v亚洲ⅴ| 一区二区三区四区激情| 久久伊人蜜桃av一区二区| 欧美日韩精品综合在线| 不卡一区二区在线| 精品在线观看免费| 亚洲一区二区三区三| 中文字幕免费不卡在线| 日韩一区二区三区电影| 日本道免费精品一区二区三区| 国产福利一区二区| 男人的天堂亚洲一区| 亚洲午夜精品在线| 国产精品午夜电影| 久久久电影一区二区三区| 91精品蜜臀在线一区尤物| 在线观看一区二区精品视频| 风间由美一区二区三区在线观看| 青青草成人在线观看| 亚洲v精品v日韩v欧美v专区| 亚洲女人****多毛耸耸8| 国产欧美精品国产国产专区| 日韩欧美一级二级三级久久久| 欧美午夜精品一区| 91社区在线播放| av午夜一区麻豆| 成人妖精视频yjsp地址| 国产91对白在线观看九色| 国产一区二区三区黄视频| 久久精品国产一区二区| 青青青爽久久午夜综合久久午夜| 亚洲va欧美va天堂v国产综合| 亚洲欧美乱综合| 中文字幕在线一区| 亚洲欧美另类久久久精品2019| 18涩涩午夜精品.www| 亚洲天堂a在线| 亚洲欧美aⅴ...| 亚洲在线成人精品| 亚洲成人av资源| 视频在线观看91| 日本成人超碰在线观看| 麻豆中文一区二区| 国内精品在线播放| 成人伦理片在线| 色综合天天做天天爱| 在线观看视频一区二区| 欧美人与禽zozo性伦| 日韩女优电影在线观看| www成人在线观看| 国产欧美一区二区三区网站| 国产精品嫩草99a| 亚洲三级在线播放| 亚洲电影一级片| 老司机精品视频一区二区三区| 黄色日韩网站视频| 99精品视频在线免费观看| 在线观看视频91| 欧美成人一区二区| 国产精品毛片久久久久久 | 国产日韩三级在线| 亚洲人成亚洲人成在线观看图片| 亚洲最大成人综合| 蜜臀av在线播放一区二区三区| 国产一区二区在线视频| 91丨国产丨九色丨pron| 在线亚洲高清视频| 精品福利在线导航| 亚洲精品网站在线观看| 蜜臀久久99精品久久久久久9| 国产高清久久久| 欧美性猛片aaaaaaa做受| 2023国产精华国产精品| 亚洲欧美国产三级| 久久精品国产亚洲a| av男人天堂一区| 日韩视频免费直播| 国产精品电影一区二区| 日本免费在线视频不卡一不卡二| 国产精品亚洲专一区二区三区 | 亚洲在线视频免费观看| 蜜桃视频一区二区| 色综合久久中文综合久久牛| 日韩网站在线看片你懂的| 国产精品二三区| 久国产精品韩国三级视频| 色综合久久中文综合久久97| 26uuu成人网一区二区三区| 夜夜嗨av一区二区三区网页| 九色|91porny| 欧美剧情电影在线观看完整版免费励志电影| 日韩免费观看高清完整版| 夜夜嗨av一区二区三区四季av| 国产一区视频导航| 欧美日韩国产不卡| 亚洲天堂中文字幕| 国产91综合一区在线观看| 日韩免费观看2025年上映的电影| 亚洲精品少妇30p| 高清不卡在线观看av| 337p粉嫩大胆噜噜噜噜噜91av| 婷婷夜色潮精品综合在线| 色婷婷精品久久二区二区蜜臀av| 久久精品一区二区三区不卡牛牛| 午夜精品一区二区三区免费视频| 成人国产免费视频| 久久久久综合网| 狠狠狠色丁香婷婷综合激情| 91精品欧美福利在线观看| 亚洲国产美女搞黄色| 色狠狠av一区二区三区| 中文字幕精品综合| 国产成人免费视| 久久精品一级爱片| 韩国精品在线观看| 26uuu国产在线精品一区二区| 蜜臀av性久久久久蜜臀av麻豆| 欧美日韩一区在线| 午夜精品影院在线观看| 欧美男同性恋视频网站| 三级在线观看一区二区| 欧美伦理影视网| 日韩激情中文字幕|