亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
亚洲色图另类专区| 精品无人码麻豆乱码1区2区| 日本高清免费不卡视频| 亚洲成人自拍网| 欧美一区在线视频| 国产高清不卡一区二区| 亚洲欧洲中文日韩久久av乱码| 91麻豆免费看| 国产一区二区免费视频| 亚洲精品国产成人久久av盗摄| 在线免费观看日本欧美| 精品一区二区综合| 亚洲成人免费av| 国产欧美日韩久久| 在线不卡中文字幕播放| av一二三不卡影片| 精品一区二区三区免费| 亚洲精品日日夜夜| 国产亚洲精品免费| 精品国产凹凸成av人导航| 欧美伊人久久久久久午夜久久久久| 久久国产精品一区二区| 亚洲mv在线观看| 亚洲午夜羞羞片| 尤物av一区二区| 自拍偷拍欧美激情| 国产欧美日韩三级| 亚洲一卡二卡三卡四卡五卡| 久久亚洲二区三区| 欧美午夜精品免费| 欧美日韩一级二级| 欧美精品色综合| av电影一区二区| 成人ar影院免费观看视频| 国产成人福利片| 成人h动漫精品| 91啦中文在线观看| 一本高清dvd不卡在线观看| 成人国产电影网| 91久久精品国产91性色tv | 日韩欧美久久一区| 欧美精品久久久久久久多人混战| 欧美日韩一二区| 欧美成人一区二区三区片免费| 欧美不卡一区二区三区| 国产欧美一区二区精品性色| 国产精品无码永久免费888| 中日韩免费视频中文字幕| 亚洲欧美在线视频| 日韩1区2区日韩1区2区| 韩日av一区二区| 色丁香久综合在线久综合在线观看| 欧美日韩一区二区三区视频| 日韩一区二区三区四区| 中文字幕一区二区5566日韩| 婷婷综合久久一区二区三区| 国产成人在线视频网站| 91极品视觉盛宴| 依依成人精品视频| 亚洲精品视频在线看| 国产毛片精品视频| 欧美日韩成人一区二区| 亚洲美女视频在线观看| 国产精品系列在线观看| 91精品蜜臀在线一区尤物| 亚洲欧美日韩在线不卡| 国产专区综合网| 欧美精品一区二区高清在线观看| 国产精品超碰97尤物18| 免费观看在线综合| 欧美一级国产精品| 午夜日韩在线电影| 欧美日韩亚洲综合| 亚洲综合精品自拍| 51精品国自产在线| 奇米精品一区二区三区四区| 欧美酷刑日本凌虐凌虐| 丝袜亚洲另类丝袜在线| 欧美日韩黄色一区二区| 午夜欧美电影在线观看| 欧美精品自拍偷拍动漫精品| 亚洲一级电影视频| 精品美女在线播放| 成人综合在线网站| 亚洲欧美aⅴ...| 欧美一二区视频| 成人教育av在线| 亚洲一区二区三区影院| 亚洲精品视频免费观看| 91久久精品一区二区三| 美女被吸乳得到大胸91| 国产精品久久久久久久久久免费看| 粉嫩av亚洲一区二区图片| 一区二区三区中文在线观看| 欧美日韩成人高清| 99精品欧美一区二区三区小说| 亚洲成人激情av| 国产精品系列在线| 欧美日韩国产美女| 色综合天天狠狠| 国模一区二区三区白浆| 一区二区三区精品视频| 精品国产乱码久久久久久久| 91理论电影在线观看| 成人黄页在线观看| 一区二区三区欧美久久| 欧美一区二区在线免费播放| 99久久精品99国产精品| 国产成人免费视频网站高清观看视频 | www国产成人免费观看视频 深夜成人网| 国产剧情一区二区三区| 国精产品一区一区三区mba视频| 夜夜操天天操亚洲| 亚洲精品国产视频| 亚洲欧洲综合另类| 亚洲自拍偷拍九九九| 亚洲人被黑人高潮完整版| 亚洲色图视频网站| 亚洲日本中文字幕区| 欧美综合在线视频| 欧美性大战久久久久久久蜜臀| 国产一区二区成人久久免费影院| 婷婷成人综合网| 精品一区免费av| 成人av电影在线| 欧美视频在线观看一区二区| 欧美色精品天天在线观看视频| 一本色道综合亚洲| 日韩欧美精品三级| 国产三级精品三级| 亚洲精品视频一区| 国内成人免费视频| 国产iv一区二区三区| 欧美日韩黄视频| 欧美激情资源网| 亚洲成人免费av| 国产成人免费网站| 欧美一二区视频| 欧美激情一区二区三区不卡 | 国产农村妇女精品| 日本在线不卡视频一二三区| 国产91精品在线观看| 欧美精品久久99| 国产精品丝袜久久久久久app| 中文字幕亚洲区| 国产一区不卡精品| 6080国产精品一区二区| 亚洲综合视频在线| av电影在线观看完整版一区二区| 日韩欧美国产一二三区| 午夜欧美一区二区三区在线播放| 国产91露脸合集magnet| 国产日韩欧美高清在线| 蜜臀久久久99精品久久久久久| 色美美综合视频| 亚洲人成人一区二区在线观看| 成人午夜激情片| 自拍偷拍国产亚洲| 色综合天天综合色综合av| 欧美久久一二区| 亚洲国产日韩av| 日韩美女视频一区二区在线观看| 亚洲一区电影777| 欧美性色综合网| 人妖欧美一区二区| 欧美日韩激情在线| 日韩av成人高清| 久久久噜噜噜久久中文字幕色伊伊 | 国产精品三级视频| 成人动漫一区二区在线| 久久久综合视频| 国产成人在线视频网址| 国产精品国产三级国产普通话三级 | 日韩成人午夜电影| 亚洲精品一线二线三线无人区| 风间由美一区二区三区在线观看 | 色综合天天综合色综合av| 精品久久久久久久久久久久久久久 | 色婷婷久久久亚洲一区二区三区| 亚洲黄网站在线观看| 欧美三电影在线| 精品一区二区免费| 国产精品视频免费看| 欧美男人的天堂一二区| 久久丁香综合五月国产三级网站| 精品久久久久久久久久久院品网| 色哟哟国产精品免费观看| 免费高清不卡av| 亚洲激情第一区| 欧美精品第一页| av电影在线观看完整版一区二区| 亚洲高清免费视频| 国产亲近乱来精品视频| 日韩一区二区精品葵司在线| 91在线高清观看| 国产成人在线网站| 国产一区二区在线观看视频| 亚洲国产欧美日韩另类综合 | 国产亚洲一区二区三区在线观看 | 久久精品免费观看|