MFC 改变光标形状
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC 改变光标形状相关的知识,希望对你有一定的参考价值。
点击一个位图按钮 然后光标变成该位图的形状
该如何实现
BYTE ANDmaskCursor[] =
0xFF, 0xFC, 0x3F, 0xFF, // line 1
0xFF, 0xC0, 0x1F, 0xFF, // line 2
。。。。。。。。。。。。。
0xFF, 0xC3, 0xFF, 0xFF, // line 31
0xFF, 0xFF, 0xFF, 0xFF // line 32
;
BYTE XORmaskCursor[] =
0x00, 0x00, 0x00, 0x00, // line 1
0x00, 0x03, 0xC0, 0x00, // line 2
0x00, 0x3F, 0x00, 0x00, // line 3
。。。。
0x00, 0x00, 0x00, 0x00, // line 31
0x00, 0x00, 0x00, 0x00 // line 32
;这些代码不清楚什么意思
当这个事件发生时,
HCURSOR hCurs3;
hCurs3 = CreateCursor(AfxGetInstanceHandle(), // app.instance #include <afxwin.h>
19, // horizontal position of hot spot
2, // vertical position of hot spot
32, // cursor width
32, // cursor height
ANDmaskCursor, // AND mask
XORmaskCursor ); // XOR mask
(void) SetCursorPos( 200, 200);
(void) ShowCursor( TRUE);
其中的 两个数组,用你自己的位图值:
BYTE ANDmaskCursor[] =
0xFF, 0xFC, 0x3F, 0xFF, // line 1
0xFF, 0xC0, 0x1F, 0xFF, // line 2
。。。。。。。。。。。。。
0xFF, 0xC3, 0xFF, 0xFF, // line 31
0xFF, 0xFF, 0xFF, 0xFF // line 32
;
BYTE XORmaskCursor[] =
0x00, 0x00, 0x00, 0x00, // line 1
0x00, 0x03, 0xC0, 0x00, // line 2
0x00, 0x3F, 0x00, 0x00, // line 3
。。。。
0x00, 0x00, 0x00, 0x00, // line 31
0x00, 0x00, 0x00, 0x00 // line 32
;
#include <Winuser.h>
链接库由你的编译器定 User32.lib (或者Iconcurs.lib Mcursor.lib Cursor.lib)本回答被提问者和网友采纳
MFC编程的时候,改变鼠标光标样式
在rect范围内,鼠标变成移动的样式。
在rect四角和边界上,鼠标变成拖动(以改变rect大小)的双箭头模式。
怎么实现,求大神指导
对这步我做到了。现在需要比方说东西双向箭头的时候,如何移动那条边来改变rect大小呢?
追答首先这个MFC没有封装现成的控件,因此只能手动写代码实现
建议你查一下CRectTracker,看看是否符合你的需要,我不太确定
如果不行的话只能是自己写了,总之是比较麻烦的
我觉得自己写的话 主要方法就是重载鼠标点击、拖动和抬起三个函数
Down、move和Up
在Down里获取当前鼠标位置、矩形大小位置等等信息
重点在Move里:不停获取鼠标位置,重新获取当前rect位置大小
up:利用当前的rect位置大小重绘
基本思路应该是这样,但是具体实现楼主得自己琢磨了
以上是关于MFC 改变光标形状的主要内容,如果未能解决你的问题,请参考以下文章