| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 501 人关注过本帖
标题:求帮助:如何在窗口的层次上操作鼠标光标
只看楼主 加入收藏
yzh9868
Rank: 1
来 自:福建
等 级:新手上路
帖 子:16
专家分:0
注 册:2009-2-18
结帖率:75%
收藏
已结贴  问题点数:10 回复次数:2 
求帮助:如何在窗口的层次上操作鼠标光标
就是创建两个窗口,使两个窗口内的鼠标光标设置不同,必须在鼠标从一个窗口上移动到另一个窗口时,跟踪和变换光标
#define WIN32_LEAN_AND_MEAN //just say no to MFC
#include <windows.h>
#include <windowsx.h>
#include <stdio.h>
#include<math.h>
#include "resource.h"

#define WINDOW_CLASS_NAME "WINCLASS1"


LRESULT CALLBACK WindowProc(HWND hwnd,
                            UINT msg,
                            WPARAM wparam,
                            LPARAM lparam)
{
    PAINTSTRUCT ps;
    HDC hdc;
    static int count=0;
  switch(msg)
    {
    case WM_CREATE:
        {
            count++;
            return(0);
        }break;
    case WM_PAINT:
        {
            hdc=BeginPaint(hwnd,&ps);
            EndPaint(hwnd,&ps);
            return(0);
        }break;
    case WM_DESTROY:
        {
            count--;
            if(count==0)
            PostQuitMessage(0);
            return (0);
        }break;
    default :break;
    }
  return(DefWindowProc(hwnd,msg,wparam,lparam));
}
int WINAPI WinMain(HINSTANCE hinstance,
                   HINSTANCE hprevinstance,
                   LPSTR lpcmdline,
                   int ncmdshow)
{
    WNDCLASSEX winclass,winclass2;
    HWND hwnd ,hwnd2;
    MSG msg;
   //窗口类的一些信息
    winclass.cbSize=sizeof(WNDCLASSEX);
    winclass.style =CS_DBLCLKS|CS_HREDRAW|CS_OWNDC|CS_VREDRAW;
    winclass.lpfnWndProc=WindowProc;
    winclass.cbClsExtra=0;
    winclass.cbWndExtra=0;
    winclass.hInstance =hinstance;
    winclass.hIcon=LoadIcon(NULL,MAKEINTRESOURCE(IDI_ICON1));
    winclass.hCursor =LoadCursor(NULL,MAKEINTRESOURCE(IDC_CURSOR1));
    winclass.hbrBackground =(HBRUSH)GetStockObject(BLACK_BRUSH);
    winclass.hIconSm=LoadIcon(NULL,MAKEINTRESOURCE(IDI_ICON1));
    winclass.lpszMenuName=NULL;
    winclass.lpszClassName="WINCLASS1";
    winclass.hIconSm =LoadIcon(NULL,IDI_APPLICATION);
    if(!RegisterClassEx(&winclass))
        return(0);
    if(!(hwnd=CreateWindowEx(NULL,  //创建窗口1
        WINDOW_CLASS_NAME,
        "MY_BASIC_WINDOW",
        WS_OVERLAPPEDWINDOW | WS_VISIBLE,
        0,0,
        400,400,
        NULL,
        NULL,
        hinstance,
        NULL)))
        return(0);
        if(!(hwnd2=CreateWindowEx(NULL,  //创建窗口2
        WINDOW_CLASS_NAME,
        "MY_BASIC_WINDOW2",
        WS_OVERLAPPEDWINDOW | WS_VISIBLE,
        0,0,
        400,400,
        NULL,
        NULL,
        hinstance,
        NULL)))
        return(0);
      while(TRUE)
    {
     if(PeekMessage(&msg,NULL,0,0,PM_REMOVE))
     {
         if(msg.message ==WM_QUIT)
             break;
         TranslateMessage(&msg);
         DispatchMessage(&msg);
     }
    }
    return(msg.wParam);

}
/////////////////////////////////////////
////////////////////////////////////////
已经定义了另个光标IDC_CURSOR2
  HCURSOR hcrosshair=LoadCursor(hinstance,MAKEINTRESOURCE(IDC_CURSOR2));
  SetCursor(hcrosshair);


搜索更多相关主题的帖子: 鼠标 移动 include 如何 
2012-02-04 22:18
mayuebo
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:257
专家分:1282
注 册:2005-9-8
收藏
得分:5 
在winmain内定义一个全局变量,然后捕获窗口的WM_MOUSEMOVE消息,交换

成功贵在坚持
2012-02-07 18:14
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9008
专家分:53957
注 册:2011-1-18
收藏
得分:5 
google了一下 WM_MOUSELEAVE
http://blog.
2012-02-08 08:11
快速回复:求帮助:如何在窗口的层次上操作鼠标光标
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014966 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved