鱼C论坛

 找回密码
 立即注册
查看: 2894|回复: 7

C++ 求鼠标按下时的坐标

[复制链接]
发表于 2011-12-8 06:18:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
WM_LBUTTONDOWN 和 WM_LUBTTONUP 时的鼠标坐标用哪个API函数啊??  找了N个了,C++编程,非MFC~知道的师兄师姐们麻烦指导一下下>_<~~
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-12-8 08:38:07 | 显示全部楼层
本帖最后由 By、小雨(zy) 于 2011-12-8 08:40 编辑

用重载afx_msg void OnLButtonDown( UINT nFlags, CPoint point );

去取,响应这个系统消息的时候就可以得到,而CPoint类的参数point就能得到你想要的信息
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-12-8 10:33:54 | 显示全部楼层
在响应WM_LBUTTONDOWN或WM_LBUTTONUP函数中
坐标就在lParam参数中。
X = LOWORD(lParam)
Y = HIWORD(lParam)
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2011-12-8 20:25:32 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2011-12-8 20:35:02 | 显示全部楼层
By、小雨(zy) 发表于 2011-12-8 08:38
用重载afx_msg void OnLButtonDown( UINT nFlags, CPoint point );

去取,响应这个系统消息的时候就可以 ...

#include <afxwin.h>
CPoint p;
LRESULT CALLBACK DrawProc(  HWND hwnd,      // handle to window
  UINT uMsg,      // message identifier
  WPARAM wParam,  // first message parameter
  LPARAM lParam   // second message parameter
  );

int WINAPI WinMain(
  HINSTANCE hInstance,      // handle to current instance
  HINSTANCE hPrevInstance,  // handle to previous instance
  LPSTR lpCmdLine,          // command line
  int nCmdShow              // show state
)
{
        WNDCLASS m;
        m.cbClsExtra=0;
        m.cbWndExtra=0;
        m.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
        m.hCursor=LoadCursor(NULL,IDC_ARROW);
        m.hIcon=LoadIcon(NULL,IDI_APPLICATION);
        m.hInstance=hInstance;
        m.lpfnWndProc=DrawProc;
        m.lpszClassName="小爬爬";
        m.style=CS_HREDRAW | CS_VREDRAW ;
        m.lpszMenuName=NULL;

        RegisterClass(&m);
       
        HWND MyDraw;
        MyDraw=CreateWindow("小爬爬","小爬爬制作",WS_OVERLAPPEDWINDOW,
                CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,
                NULL,NULL,hInstance,NULL);
        ShowWindow(MyDraw,SW_SHOWNORMAL);
        MSG msg;
        while(GetMessage(&msg,NULL,0,0))
        {
                TranslateMessage(&msg);
                DispatchMessage(&msg);
        }
        return 0;
}

LRESULT CALLBACK DrawProc(  HWND hwnd,      // handle to window
  UINT uMsg,      // message identifier
  WPARAM wParam,  // first message parameter
  LPARAM lParam   // second message parameter
  )
{
        HDC hdc;
        hdc=::GetDC(hwnd);
        switch(uMsg)
        {
        case WM_LBUTTONDOWN:{
                //怎么写>_<...
                ;break;}
        case WM_LBUTTONUP:{::MoveToEx(hdc,p.x,p.y,NULL);
                                           //怎么写>_<...
                                           ::LineTo(hdc,p.x,p.y);
                                           ::ReleaseDC(hwnd,hdc);
                                           break;
                                          }
        default:
                DefWindowProc(hwnd,uMsg,wParam,lParam);
        }
        return 0;
}
  一个鼠标坐标卡死我两天 >_<......
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-12-8 22:18:20 | 显示全部楼层
switch(uMsg)
        {
        case WM_LBUTTONDOWN:{
                //这么写>_<...
                p.x = LOWORD(lParam);
                p.y = HIWORD(lParam);
                break;}
        case WM_LBUTTONUP:{::MoveToEx(hdc,p.x,p.y,NULL);
                                           //这么写>_<...
                                           p.x = LOWORD(lParam);
                                           p.y = HIWORD(lParam);

                                           :ineTo(hdc,p.x,p.y);
                                           ::ReleaseDC(hwnd,hdc);
                                           break;
                                          }
        default:
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2011-12-8 23:05:57 | 显示全部楼层
Mr.C 发表于 2011-12-8 22:18
switch(uMsg)
        {
        case WM_LBUTTONDOWN:{

果然,这东西会了就是如此的简单>_<...谢谢师兄~~
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-12-8 23:11:17 | 显示全部楼层
不客气。
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-9 20:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表