?? untitled-27.txt
字號:
Create(strwndClass,T(”N。use Capture Demo(Capture Enabled)”》;
這樣,每當(dāng)鼠標(biāo)指針在CMainwindow的客戶區(qū)里出現(xiàn)時(shí),Windows都將顯示一個(gè)十字光標(biāo)。
設(shè)定光標(biāo)的第二種方法是調(diào)用 API函數(shù):: SetCursor來響應(yīng) WM.SETCURSOR消息。當(dāng)
光標(biāo)在 CMainwindow的客戶區(qū)上時(shí),下列 onsetCursor函數(shù)將顯示其句柄在 CMalnwindow::
rn-h(huán)Cursor中保存的光標(biāo):
人 In CMalnwlndow’ s message map
ON.WMAs SETCURSOR()
B00LCMainwindow::onsetCursor(CWnd。 pwnd,UINTnHitTest,
uuur message)
g
。f(nH。iTest== HTCLIENT)
:: SetCursor(。hCursor);
return TRUE;
g
return CFramewnd.. onsetCursor(pwnd, nHltTest, message);
Z
在調(diào)用:: SetCursor之后返回 TRUE,以通知 Windows光標(biāo)已被設(shè)置。在窗口的客戶區(qū)以外產(chǎn)
生的WM.SETCURSOR消息被傳遞給基類以便顯示默認(rèn)光標(biāo)。因?yàn)閛nsetCursor從不給Win.
d。WS顯示類光標(biāo)的機(jī)會(huì),所以類光標(biāo)被忽略了。
為什么想要使用onsetCursor而不采用把。hCursor注冊為類光標(biāo)的方法呢?假定當(dāng)光
標(biāo)在窗口的上半部分時(shí)想要顯示一個(gè)箭頭光標(biāo),而在下半部分時(shí)顯示一個(gè)互形光標(biāo)。用類
光標(biāo)處理不了這種情況,但是onsetCursor可以漂亮地完成任務(wù)。當(dāng)光標(biāo)在CMainwindow的
客戶區(qū)時(shí),下列OnsetCursor處理程序即可以將光標(biāo)設(shè)置為。hCursorArrow,也可以為
ill~-h(huán)CursorIBeam:
BOOLCMainwi。dow::onsetCursor(CWnd。 pwnd,UINTnHitTest,
UINT。essage)
(
。f(nH。iTes。== HTCLIENT) {
DWORD dwPOs=:: GetMeSSagePos();
CPo。nt point(LOWORD(dwPos), HIWORD(dwPos》;
ScreenToCI。ent(&point);
CRect rect;
GetCleentRect(&reCt);
.-SetCursor((po。nt.y< rect.He。ght()/ 2)?
。hCursorArrow:。hCursorIBearn);
工etllffl TRUE;
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -