📄 untitled-05.txt
字号:
出的位标志,可以从此参数中得到特殊按钮或键被释放还是按下的状态。
表3-3 "Flags参数
掩码涵义
MK.LBUrt0N鼠标左键被按下
MXIMBUTYON鼠标中间键被按下
MK.RBUNON鼠标右键被接下
MK-CONTROL Ctrl键被接下
MK-SHIry Shift键被接下
当且仅当鼠标左键被接下时,表达式
"Flags&MKLBUTTON
才是非零值,而此时只有Ctrl键处于按下状态
"Flags&MK.CONTROL
才是非零值。如果Shift或Ctrl键被接下,一些程序会对鼠标事件进行不同的响应。例如,
通过检查在"Flags参数中的MK.CONTROL位以及WM.MOUSEMOVE消息,一个绘图程序
可能会限制用户在按着Ctri键移动鼠标时只可以绘制水平或垂直线。又如,在拖放操作完
成时,Windows内部命令将MK-CONTROL位解释为被拖放的对象应该被拷贝而不是被
移动。
3.1.2 TicTac应用程序
让我们来看一个从鼠标获取输人的示例应用程序,它说明了处理鼠标消息是很容易的。
TicTac是一个井字游戏程序,其输出结果如图3-l所示,它响应3种类型的客户区鼠标事件,
单击左键,单击右键,以及双击左键。在空格上单击鼠标左键会在其中放置一个X。而单击
右键会把0放在空格中。(程序保证X和0轮流出现来防止作弊。)用鼠标左键双击分隔用
的黑粗线可以清除棋盘并重新开始游戏。在每个X或0放置好以后,程序将检查谁是获胜
者或者是否是和局。和局就是当9个方格都被填充以后,没有哪个选手在水平、垂直或对角
线上把棋子摆成了一排。
除了提供对鼠标消息处理的实际演示之外,TieTac还介绍了一些便于使用的新MFC函
数,如 CWnd:: MessageBox,它显示一个消息框,以及 CRect:: PtlnRect,用来迅速告诉您是否一
个点落人了由CRect对象代表的矩形内。TicTac的源程序代码在图3-2中给出。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -