国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
窗口鼠標(biāo)點檢測

UI控件都是圖片渲染而成的。。

我采用ID3DXSperite的Draw()方法來渲染2D圖片,在進行控件的鼠標(biāo)檢測時遇到問題。。。。有些區(qū)域檢測不到,后來查了一下覺著是創(chuàng)建窗口的問題。

比如: 

#define WINDOW_WIDTH 800
#define WINDOW_HEIGHT 600

#define DWSTYLE (WS_OVERLAPPEDWINDOW | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX)

若CreateWindowEx是之間把上邊的寬個高傳進去,那么創(chuàng)建的窗口的大小確實是800*600,但是這是整個窗口的尺寸,實際上我們程序中用到的是客戶區(qū),就是整個窗口刨去菜單等邊框的大小。所以客戶區(qū)的大小要小于800*600。

用下面的代碼實現(xiàn):

 1     //
2 RECT windowRect = { 0, 0, WINDOW_WIDTH, WINDOW_HEIGHT };
3 AdjustWindowRectEx( &windowRect, DWSTYLE, NULL, CW_USEDEFAULT);
4
5 HWND hWnd = CreateWindowEx(WS_EX_CONTROLPARENT,
6 TEXT("D3D"), TEXT("D3D"),
7 DWSTYLE,
8 CW_USEDEFAULT,
9 0,
10 (windowRect.right - windowRect.left),
11 (windowRect.bottom - windowRect.top),
12 GetDesktopWindow(),
13 NULL,
14 wc.hInstance,
15 NULL);
16 //

此時我認為應(yīng)該解決了這個問題,但是還是不行。。。

如:我渲染的圖片的大小為200*200,那么圖片的右下角還是檢測不到。。。只有左上部分可以檢測的到。后來點擊圖片的右下角得到鼠標(biāo)點的實際位置為(255, 255),此時才明白原來是圖片尺寸的原因。。。 D3DXSprite渲染的2D圖片要求是2的冪次方,像200這樣的,就自動轉(zhuǎn)換成256*256的大小了。。。也就是給你放大了。。。所以檢測不到。 ps:檢測代碼如下:

 1     D3DXVECTOR2 absolutePos;
2 absolutePos.x = 0;
3 absolutePos.y = 0;
4
5 GetAbsolutePosition(&absolutePos);
6
7 if ((x >= absolutePos.x) && (x <= absolutePos.x + GetWidth()) &&
8 (y >= absolutePos.y) && (y <= absolutePos.y + GetHeight()) )
9 {
10 return true;
11 }
12 else
13 {
14 return false;
15 }

。

另外:

鼠標(biāo)點擊時的屏幕坐標(biāo)與窗口坐標(biāo)之間的關(guān)系:

1. 將屏幕坐標(biāo)轉(zhuǎn)換到窗口坐標(biāo)

            POINT pt1;
GetCursorPos(&pt1);
ScreenToClient(m_hWnd, &pt1);

2. 

bool PostMessage(UINT msg, WPARAM wParam, LPARAM lParam, void* pData)
{
switch (msg)
{
case WM_LBUTTONDOWN:
{

POINT pt;
pt.x = LOWORD(lParam);
pt.y = HIWORD(lParam);

。。。

}

pt中得到的就是窗口坐標(biāo)不是屏幕坐標(biāo)。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
WIN32無邊框窗體的縮放、移動與WM
調(diào)用CView的Create()后,竟發(fā)現(xiàn)其m
如何去掉CMainframe系統(tǒng)標(biāo)題欄
自定義VB系統(tǒng)控件
delphi做的dll消息循環(huán)方便其它腳本工具調(diào)用|::::廣海游戲::::
C#后臺點擊使用PostMessage
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服