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

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

?? vc常用技巧.txt

?? 使用vc的108個小技巧.非常實用.讓你輕松自如的獲取其他窗口的指針、句柄.自由駕御進程之間的通信!
?? TXT
?? 第 1 頁 / 共 5 頁
字號:
vc常用技巧總結 
(1) 如何通過代碼獲得應用程序主窗口的 指針?
主窗口的 指針保存在CWinThread::m_pMainWnd中,調用AfxGetMainWnd實現。
AfxGetMainWnd() ->ShowWindow(SW_SHOWMAXMIZED)
//使程序最大化.


(2) 確定應用程序的路徑
Use GetModuleFileName 獲得應用程序的路徑,然后去掉可執行文件名。
Example:
TCHAR
exeFullPath[MAX_PATH] // MAX_PATH在API中定義了吧,好象是
128
GetModuleFileName(NULL,exeFullPath,MAX_PATH)




(3) 如何在程序中獲得其他程序的 圖標?
兩種方法:
(1) SDK函數 SHGetFileInfo 或使用 ExtractIcon獲得圖標資源的 handle,
(2) SDK函數 SHGetFileInfo 獲得有關文件的很多信息,如大小圖標,屬性, 類型等.
Example(1):
在程序窗口左上角顯示 NotePad圖標.
void CSampleView:
OnDraw(CDC * pDC)
{
if( :: SHGetFileInfo(_T("c:\\pwin95\\notepad.exe"),0,
&stFileInfo,sizeof(stFileInfo),SHGFI_ICON))
{
pDC ->DrawIcon(10,10,stFileInfo.hIcon)
}
}
Example(2):同樣功能,Use ExtractIcon Function
void CSampleView:: OnDraw(CDC *pDC)
{
HICON hIcon=:: ExtractIcon(AfxGetInstanceHandle(),_T
("NotePad.exe"),0)
if (hIcon &&hIcon!=(HICON)-1)
pDC->DrawIcon(10,10,hIcon)
}
說明: 獲得notepad.exe的路徑正規上來說用GetWindowsDirectory函數得到, 如果是調用 win95下的畫筆,應該用訪問注冊表的方法獲得其路徑,要作成一個比較考究的程序,考慮應該全面點.


(4) 獲得各種目錄信息
Windows目錄: Use "GetWindowsDirectory"
Windows下的system目錄: Use "GetSystemDirectory"
temp目錄: Use "GetTempPath"
當前目錄: Use "GetCurrentDirectory"

請注意前兩個函數的第一個參數為目錄變量名,后一個為緩沖區后兩個相反.



(5) 如何自定義消息
1) 手工定義消息,可以這么寫
#define WM_MY_MESSAGE(WM_USER+100),
MS 推薦的至少是 WM_USER+100

(2)寫消息處理函數,用
WPARAM,LPARAM返回LRESULT.
LRESULT CMainFrame::OnMyMessage(WPARAM wparam,LPARAM lParam)

{
temp目錄: Use "GetTempPath"
//加入你的處理函數 irectory"
}

(6) 如何改變窗口的圖標?
向窗口發送 WM_SECTION消息。
Example:
HICON hIcon=AfxGetApp() ->LoadIcon(IDI_ICON)
ASSERT(hIcon)
AfxGetMainWnd() ->SendMessage(WM_SECTION,TRUE,(LPARAM)hIcon)


(7) 如何改變窗口的缺省風格?
重載 CWnd:: PreCreateWindow 并修改CREATESTRUCT結構來指定窗口風格和其他創建信息.
Example: Delete "Max" Button and Set Original
Window's Position and Size

BOOL CMainFrame:: PreCreateWindow
(CREATESTRUCT &cs)
{
cs.style &=~WS_MAXINIZEMOX

cs.x=cs.y=0
cs.cx=GetSystemMetrics(SM_CXSCREEN/2)
cs.cy=GetSystemMetrics(SM_CYSCREEN/2)

return CMDIFramewnd ::PreCreateWindow(cs)
}

(8) 如何將窗口居中顯示?
Call Function CWnd::
Center Windows

Example(1):
Center Window( ) //Relative to it's parent
// Relative
to Screen
Example(2):
Center Window(CWnd:: GetDesktopWindow( ))
//Relative to
Application's MainWindow
AfxGetMainWnd( ) ->
Center Window( )


(9) 如何讓窗口和 MDI窗口一啟動就最大化和最小化?
先說窗口。
在 InitStance 函數中設定 m_nCmdShow的取值.
m_nCmdShow=SW_SHOWMAXMIZED //最大化
m_nCmdShow=SW_SHOWMINMIZED //最小化
m_nCmdShow=SW_SHOWNORMAL //正常方式

MDI窗口:
如果是創建新的應用程序,可以用MFC AppWizard 的Advanced 按鈕并在MDI子窗口風格組中檢測最大化或最小化還可以重載 MDI Window 的PreCreateWindow函數,設置WS_MAXMIZE or WS_MINMIZE

如果從 CMDIChildWnd派生,調用 OnInitialUpdate函數中的 CWnd::Show Window來指定 MDI Child Window的風格。

(10) 如何限制窗口的大小?
也就是 FixedDialog形式。 Windows發送 WM_GETMAXMININFO消息來跟蹤, 響應它,在 OnGetMAXMININFO 中寫代碼:
(11) 如何使窗口不可見?
很簡單,用SW_HIDE 隱藏窗口,可以結合 FindWindow,ShowWindow控制.

(12) 如何創建一個字回繞的CEditView
重載CWnd : : PreCreateWindow和修改CREATESTRUCT結構,關閉CEditView對象的ES_AUTOHSCROLL和WS_HSCROLL風格位, 由于CEditView : : PreCreateWindow顯示設置cs. style,調用基類函數后要修改cs . style。

BOOL CSampleEDitView : : PreCreateWindow (CREATESTRUCT&cs)
{
//First call basse class function .
BOOL bResutl =CEditView : : PreCreateWindow (cs)

// Now specify the new window style .
cs.style &= ~ (ES_AUTOHSCROLL |WS_HSCROLL)
return bResult
}


(13) 如何使程序保持極小狀態?
這么辦: 在恢復程序窗體大小時,Windows會發送WM_QUERY-OPEN消息,用 ClassWizard設置成員函數
OnQueryOpen() ,add following code:

Bool CMainFrame:: OnQueryOpen( )
{
Return false
}

(14) 移動窗口
調用CWnd : : SetWindowPos并指定SWP_NOSIZE標志。目的位置與父窗口有關(頂層窗口與屏幕有關)。調用CWnd : : MoveWindow時必須要指定窗口的大小。
//Move window to positoin 100 , 100 of its parent window .
SetWindowPos (NULL, 100 , 100 , 0 , 0 , SWP_NOSIZE |SWP_NOAORDER)

(15) 通用控件的顯示窗口
MFC提供了幾個CView派生的視窗類, 封裝了通用控件的功能,但仍然使用工作框文檔顯示窗口體系結構:CEditView封裝了編輯控件,CTreeView保持了樹列表控件,CListView封裝了列表顯示窗口控件,CRichEditView可以處理多種編輯控件。

(16) 重置窗口的大小
調用CWnd: : SetWindowPos并指定SWP_NOMOVE標志, 也可調用CWnd : : MoveWindow 但必須指定窗口的位置。
// Get the size of the window .
Crect reWindow
GetWindowRect (reWindow )

//Make the window twice as wide and twice as tall .
SetWindowPos (NULL , 0 , 0 , reWindow . Width ( ) *2,

reWindow . Height () * 2,
SWP_NOMOVE |SWP_NOZORDER )

(17) 如何單擊除了窗口標題欄以外的區域使窗口移動
當窗口需要確定鼠標位置時Windows向窗口發送WM_NCHITTEST信息,可以處理該信息使Windows認為鼠標在窗口標題上。對于對話框和基于對話的應用程序,可以使用ClassWizard處理該信息并調用基類函數, 如果函數返回HTCLIENT 則表明鼠標在客房區域,返回HTCAPTION表明鼠標在Windows的標題欄中。
UINT CSampleDialog : : OnNcHitTest (Cpoint point )
{
UINT nHitTest =Cdialog: : OnNcHitTest (point )
return (nHitTest = =HTCLIENT)? HTCAPTION : nHitTest
}

上述技術有兩點不利之處,
其一是在窗口的客戶區域雙擊時,窗口將極大;
其二, 它不適合包含幾個視窗的主框窗口。
還有一種方法,當用戶按下鼠標左鍵使主框窗口認為鼠標在其窗口標題上,使用ClassWizard在視窗中處理WM_LBUTTODOWN信息并向主框窗口發送一個WM_NCLBUTTONDOWN信息和一個單擊測試HTCAPTION。
void CSampleView : : OnLButtonDown (UINT nFlags , Cpoint point
)
{
CView : : OnLButtonDow (nFlags , pont )

//Fool frame window into thinking somene clicked
on
its caption bar .
GetParentFrame ( ) —> PostMessage (
WM_NCLBUTTONDOWN ,
HTCAPTION , MAKELPARAM (poitn .x , point .y) )

}
該技術也適用于對話框和基于對的應用程序,只是不必調用
CWnd: :GetParentFrame 。
void CSampleDialog : : OnLbuttonDown (UINT nFlags, Cpoint point )
{
Cdialog : : OnLButtonDow (nFlags, goint )
//Fool dialog into thinking simeone clicked on its
caption bar .
PostMessage (WM_NCLBUTTONDOWN , HTCAPTION , MAKELPARM (point.x
, point. y
) )
}

(18) 如何改變視窗的背景顏色
Windows向窗口發送一個WM_ERASEBKGND消息通知該窗口擦除背景,可以使用ClassWizard重載該消息的缺省處理程序來擦除背景(實際是畫),并返回TRUE以防止Windows擦除窗口。
//Paint area that needs to be erased.
BOOL CSampleView : : OnEraseBkgnd (CDC* pDC)
{
// Create a pruple brush.
CBrush Brush (RGB (128 , 0 , 128) )

// Select the brush into the device context .
CBrush* pOldBrush = pDC—>SelcetObject (&brush)

// Get the area that needs to be erased .
CRect reClip
pDC—>GetCilpBox (&rcClip)
//Paint the area.
pDC—> PatBlt (rcClip.left , rcClip.top , rcClip.Width ( ) , rcClip.Height( ) , PATCOPY )

//Unselect brush out of device context .
pDC—>SelectObject (pOldBrush )

// Return nonzero to half fruther processing .
return TRUE
}

(19) 如何改變窗口標題
調用CWnd : : SetWindowText可以改變任何窗口(包括控件)的標題。
//Set title for application's main frame window .
AfxGetMainWnd ( ) —> SetWindowText (_T("Application title") )

//Set title for View's MDI child frame window .
GetParentFrame ( ) —> SetWindowText ("_T ("MDI Child Frame new title")
)

//Set title for dialog's push button control.
GetDigitem (IDC_BUTTON) —> SetWindowText (_T ("Button new title ") )
如果需要經常修改窗口的標題(注:控件也是窗口),應該考慮使用半文檔化的函數AfxSetWindowText。該函數在AFXPRIV.H中說明,在WINUTIL.CPP中實現,在聯機幫助中找不到它,它在AFXPRIV.H中半文檔化, 在以后發行的MFC中將文檔化。
AfxSetWindowText的實現如下:
voik AFXAPI AfxSetWindowText (HWND hWndCtrl , LPCTSTR IpszNew )
{
itn nNewLen= Istrlen (Ipaznew)
TCHAR szOld [256]
//fast check to see if text really changes (reduces
flash in the
controls )
if (nNewLen >_contof (szOld)
|| : : GetWindowText (hWndCrtl, szOld , _countof (szOld) !=nNewLen
|| Istrcmp (szOld , IpszNew)! = 0
{
//change it
: : SetWindowText(hWndCtrl , IpszNew )
}
}

(20) 如何防止主框窗口在其說明中顯示活動的文檔名
創建主框窗口和MDI子窗口進通常具有FWS_ADDTOTITLE風格位,如果不希望在說明中自動添加文檔名, 必須禁止該風格位, 可以使用ClassWizard重置
CWnd: : PreCreateWindow并關閉FWS_ADDTOTITLE風格。
BOOL CMainFrame : : PreCreateWindow (CREATESTRUCT&cs)
{
//Turn off FWS_ADDTOTITLE in main frame .
cs.styel & = ~FWS_ADDTOTITLE  
return CMDIFrameWnd : : PreCreateWindow (cs )
}
關閉MDI子窗口的FWS _ADDTOTITLE風格將創建一個具有空標題的窗口,可以調用CWnd: : SetWindowText來設置標題。記住自己設置標題時要遵循接口風格指南

(21) 如何獲取有關窗口正在處理的當前消息的信息
調用CWnd: : GetCurrentMessage可以獲取一個MSG指針。例如,可以使用ClassWizard將幾個菜單項處理程序映射到一個函數中,然后調用GetCurrentMessage來確定所選中的菜單項。
viod CMainFrame : : OnCommmonMenuHandler ( )
{
//Display selected menu item in debug window .
TRACE ("Menu item %u was selected . \n" ,

(22) 如何在代碼中獲取工具條和狀態條的指針
缺省時, 工作框創建狀態條和工具條時將它們作為主框窗口的子窗口,狀態條有一個AFX_IDW_STATUS_BAR標識符,工具條有一個AFX_IDW_TOOLBAR標識符,下例說明了如何通過一起調用CWnd: : GetDescendantWindow和AfxGetMainWnd來獲取這些子窗口的指針:
//Get pointer to status bar .
CStatusBar * pStatusBar = (CStatusBar *) AfxGetMainWnd ( )
—> GetDescendantWindow(AFX_IDW_STUTUS_BAR)

//Get pointer to toolbar .
CToolBar * pToolBar = (CToolBar * ) AfxGetMainWnd ( )
—> GetDescendantWindow(AFX_IDW_TOOLBAR)

(23) 如何使能和禁止工具條的工具提示
如果設置了CBRS_TOOLTIPS風格位,工具條將顯示工具提示,要使能或者禁止工具提示,需要設置或者清除該風格位。下例通過調用CControlBar : : GetBarStyle和CControlBar : : SetBarStyle建立一個完成此功能的成員函數:
void CMainFrame : : EnableToolTips ( BOOL bDisplayTips )
{
ASSERT_VALID (m_wndToolBar)

DWORD dwStyle = m _wndToolBar.GetBarStyle ( )

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
蜜桃av一区二区| 久久精品欧美日韩| 一本大道久久a久久综合| 国产乱码精品一区二区三区忘忧草| 亚洲福利视频一区二区| 亚洲欧洲制服丝袜| 亚洲综合一区二区精品导航| 一区二区在线观看不卡| 亚洲一区二区三区视频在线| 亚洲第一成人在线| 日本中文字幕一区二区有限公司| 首页国产欧美日韩丝袜| 蜜桃视频一区二区| 国产乱子伦视频一区二区三区| 国产精品亚洲第一| 国产.欧美.日韩| 色诱亚洲精品久久久久久| 色婷婷久久久亚洲一区二区三区| 91豆麻精品91久久久久久| 欧美日韩高清在线| 久久网站热最新地址| 国产三级久久久| 亚洲精品视频免费看| 香蕉久久一区二区不卡无毒影院| 婷婷久久综合九色综合伊人色| 日本vs亚洲vs韩国一区三区 | 国产成人亚洲综合色影视| 色噜噜狠狠一区二区三区果冻| 91欧美一区二区| 91麻豆精品国产自产在线观看一区| 日韩三级中文字幕| 国产精品久久久久久久久免费相片| 亚洲美女偷拍久久| 免费在线看一区| av欧美精品.com| 欧美一区二区在线视频| 中文字幕一区三区| 日本女优在线视频一区二区| 成人精品小蝌蚪| 欧美一区二区三区婷婷月色| 国产精品狼人久久影院观看方式| 丝袜美腿亚洲综合| 成人性生交大片免费| 欧美日韩1区2区| 国产精品麻豆视频| 九九视频精品免费| 在线观看日韩电影| 欧美激情中文不卡| 久久精品国内一区二区三区| 91网上在线视频| 国产午夜精品一区二区三区四区| 亚洲成a人v欧美综合天堂下载| 成人黄色免费短视频| 日韩欧美成人一区二区| 亚洲午夜三级在线| 成人免费av网站| 26uuu精品一区二区| 日韩国产欧美一区二区三区| 色悠久久久久综合欧美99| 久久久亚洲午夜电影| 日韩精品欧美精品| 欧美日韩极品在线观看一区| 中文字幕日韩av资源站| 国产电影一区二区三区| 日韩一区二区影院| 日韩电影免费在线看| 欧美在线看片a免费观看| 亚洲欧美一区二区三区久本道91| 国产东北露脸精品视频| 国产香蕉久久精品综合网| 国产综合色精品一区二区三区| 日韩一级片网站| 日本aⅴ精品一区二区三区| 欧美人与z0zoxxxx视频| 亚洲一区二区美女| 欧美亚洲国产bt| 亚洲国产精品久久人人爱蜜臀| 色呦呦日韩精品| 亚洲免费观看视频| 欧洲视频一区二区| 亚洲电影一级片| 这里是久久伊人| 麻豆国产一区二区| 久久综合久久综合久久综合| 国产一区二区调教| 国产校园另类小说区| 成人手机在线视频| 亚洲欧美精品午睡沙发| 91猫先生在线| 午夜电影网亚洲视频| 日韩一区二区在线看片| 国产资源在线一区| 最新欧美精品一区二区三区| 色综合色综合色综合| 亚洲一二三区不卡| 精品国产一区二区亚洲人成毛片| 国产一区二区美女诱惑| 国产精品的网站| 精品视频全国免费看| 蜜芽一区二区三区| 国产三级精品视频| 色婷婷国产精品| 日本伊人色综合网| 中文字幕不卡在线播放| 在线观看视频91| 精品一区二区三区免费视频| 国产清纯在线一区二区www| 一本大道久久a久久精二百| 日韩精品视频网| 国产精品免费久久| 欧美精品99久久久**| 国产不卡视频一区| 香蕉久久夜色精品国产使用方法| 精品国产露脸精彩对白| 色8久久人人97超碰香蕉987| 久久99精品一区二区三区三区| 国产精品人成在线观看免费| 欧美日韩成人综合天天影院| 东方aⅴ免费观看久久av| 亚洲高清一区二区三区| 欧美国产综合色视频| 欧美一区二区私人影院日本| 99国产精品久| 国产一区二区免费看| 亚洲超碰97人人做人人爱| 国产精品素人视频| 日韩三级av在线播放| 欧美午夜影院一区| av电影在线不卡| 国内成人自拍视频| 天堂久久一区二区三区| 亚洲三级电影网站| 国产调教视频一区| 精品少妇一区二区| 欧美精品v国产精品v日韩精品| 99精品视频中文字幕| 国产精品99久久久久久似苏梦涵| 日韩电影免费在线| 亚洲国产日韩综合久久精品| 国产精品三级av| 中文字幕高清一区| 久久精品欧美一区二区三区麻豆| 日韩一区二区在线播放| 欧美精品乱码久久久久久按摩| 在线免费不卡电影| 91视频xxxx| 99精品国产热久久91蜜凸| 懂色中文一区二区在线播放| 国产精品一二三四五| 国产乱子轮精品视频| 国产乱人伦偷精品视频免下载| 另类小说图片综合网| 日韩电影网1区2区| 免费高清视频精品| 免费在线成人网| 另类专区欧美蜜桃臀第一页| 美国毛片一区二区| 韩国v欧美v亚洲v日本v| 精品一区在线看| 国产一区91精品张津瑜| 国产一区二区三区精品欧美日韩一区二区三区 | 精品福利在线导航| 久久综合精品国产一区二区三区| 日韩一级片网站| 精品电影一区二区三区 | 成人18视频日本| 成人高清av在线| 一本色道久久综合精品竹菊| 久久久久久日产精品| 久久精品人人做| 亚洲欧美日韩中文播放 | 天天色图综合网| 久久精品理论片| 国产大陆亚洲精品国产| 成人av集中营| 欧美人牲a欧美精品| 精品国产91乱码一区二区三区 | 国产91精品精华液一区二区三区| 成人h版在线观看| 在线免费精品视频| 欧美mv日韩mv国产网站app| 国产性天天综合网| 亚洲一卡二卡三卡四卡五卡| 日韩精品色哟哟| 国产成人精品亚洲777人妖 | 欧美日韩精品电影| 久久久久久影视| 亚洲一二三四区不卡| 精品一区二区三区久久久| 懂色av噜噜一区二区三区av| 欧美日韩一区不卡| 国产日韩欧美不卡在线| 亚洲国产日韩综合久久精品| 极品少妇xxxx偷拍精品少妇| 99久久国产综合精品麻豆| 日韩欧美综合在线| 一区二区三区日韩精品视频| 九色综合狠狠综合久久| 欧美在线免费观看视频| 国产亚洲精久久久久久|