龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VC开发 >

VC中对鼠标的确定及简单控制

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
前几天看一网友关于 按键精灵 的讨论。 其实质是控制鼠标进行模仿动作。现给出主要实现代码及工作结构。但仅适合Win32编程初学者,高手就不用进了。 LRESULT APIENTRY WndProc(HWND, UINT,

  前几天看一网友关于 按键精灵 的讨论。 其实质是控制鼠标进行模仿动作。现给出主要实现代码及工作结构。但仅适合Win32编程初学者,高手就不用进了。

LRESULT APIENTRY WndProc(HWND, UINT, WPARAM, LPARAM); //窗口函数

BOOL ckzc(HINSTANCE); //注册窗口类函数
BOOL ckcj(HINSTANCE, int); //创建窗口函数

HINSTANCE hInst; //当前句柄
HWND hWndMain; //窗口句柄

  上面首先是window窗口函数声明。然后依照惯例注册窗口类函数和创建窗口函数。通过关键字HINSTANCE、HWND分别获得当前句柄、窗口句柄。

BOOL ckzc(HINSTANCE hInstance)
{
 WNDCLASSEX wcexMouse;

 wcexMouse.cbSize = sizeof(WNDCLASSEX);
 wcexMouse.style = CS_DBLCLKS; //支持鼠标双击
 wcexMouse.lpfnWndProc = (WNDPROC)MainWndProc;
 wcexMouse.cbClsExtra = 0;
 wcexMouse.cbWndExtra = 0;
 wcexMouse.hInstance = hInstance;
 wcexMouse.hIcon = LoadIcon(NULL,IDI_WINLOGO);
 wcexMouse.hCursor = LoadCursor(NULL,IDC_ARROW);
 wcexMouse.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH);
 wcexMouse.lpszMenuName = NULL;
 wcexMouse.lpszClassName = "MouseWClass";
 wcexMouse.hIconSm = LoadIcon(NULL,IDI_WINLOGO);

 //为了保证程序WIN98/NT的兼容性和可移植性,用以下对窗口进行注册
 if (!RegisterClassEx (&wcexMouse))
 {
  if (!RegisterClass((LPWNDCLASS)&wcexMouse.style))
   MessageBox (NULL, TEXT ("注册窗口类失败!"), "wcexMouse", MB_ICONERROR);
   return (FALSE);
 }
 return (TRUE);
}

  进行window类注册。

BOOL ckcj(HINSTANCE hInstance,int nCmdShow)
{
 hInst = hInstance;

 hWndMain = CreateWindow("MouseWClass",
  "我的鼠标---cnscom",
  WS_OVERLAPPEDWINDOW,
  CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,
  NULL,NULL,hInstance,NULL);

 if(!hWndMain)
  return (FALSE);

 ShowWindow(hWndMain,nCmdShow); //显示窗口
 UpdateWindow(hWndMain); //刷新窗口
 return (TRUE);
}

精彩图集

赞助商链接