VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

有编程疑问吗?还请到提问专区发帖提问!
搜索
查看: 296|回复: 1

VC++基础班-[14]再论“逃跑”按钮的实现

[复制链接]
51_avatar_middle
online_admins Syc 发表于 2018-1-24 23:17:14 | 显示全部楼层 |阅读模式
------------------------------------------ Begin ----------------------------------------

①、CWnd::GetWindowRect 与 CWnd::GetClientRect 的区别:(获取当前窗口)
GetWindowRect 函数:屏幕坐标系,同时包括窗口的标题栏与边框的大小;
GetClientRect 函数:本身窗口坐标系,左上角坐标始终为(0, 0),不包括窗口标题与边框的大小;

全局的 SDK API 函数:(获取指定窗口)
BOOL GetWindowRect(HWND hWnd, LPRECT lpRect); 与 CWnd::GetWindowRect 同
BOOL GetClientRect(HWND hWnd, LPRECT lpRect); 与 CWnd::GetClientRect 同

备注:在对话框的初始化函数 OnInitDialog() 中调用 GetWindowRect 函数时,得到的窗口左上角坐标也是(0, 0),
是因为系统在创建窗口的时候,先在屏幕的左上角的位置进行创建,之后再移动到屏幕的指定位置。

②、屏幕坐标与窗口坐标的转换:
CWnd::ClientToScreen

void ClientToScreen(
   LPPOINT lpPoint
) const;
void ClientToScreen(
   LPRECT lpRect
) const;

CWnd::ScreenToClient

void ScreenToClient(
   LPPOINT lpPoint
) const;
void ScreenToClient(
   LPRECT lpRect
) const;
lpPoint
Points to a CPoint object or POINT structure that contains the screen coordinates to be converted.

lpRect
Points to a CRect object or RECT structure that contains the screen coordinates to be converted.



全局的 SDK API 函数:
BOOL ScreenToClient(
  HWND hWnd,        // handle to window
  LPPOINT lpPoint   // screen coordinates
);

BOOL ClientToScreen(
  HWND hWnd,       // handle to window
  LPPOINT lpPoint  // screen coordinates
);

MoveWindow 改变窗口的大小和位置;
SetWindowPos 函数也同样有 MoveWindow 函数的功能,但更灵活,多用于只修改窗口的位置而大小不变或只修改窗口的大小而位置不变的情况

③、“逃跑”按钮的实现

④、要取得 [a, b) 之间的随机整数,使用 (rand()%(b-a))+a (结果值将含a不含b)
在 a=0 的情况下,简写为 rand()%b

------------------------------------- End -------------------------------------------


相关课程演示细节还请观看视频教程!
本套教程由VC驿站原创,提供视频教程+售后答疑服务!
教程介绍及详情请见:http://www.cctry.com/thread-17282-1-1.html
VC驿站Vip会员详情请见:http://www.cctry.com/static/vip/index.html




上一篇:VC++基础班-[13]控件自定义消息的响应
下一篇:VC++基础班-[15]通用对话框讲解

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /1 下一条

QQ
QQ在线咨询
联系电话
13591366679
手机扫一扫 关注本站精彩内容
wxqrcode

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2018-10-20 13:41

Powered by Discuz! X3.4

© 2009-2018 cctry.com

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