c++的mfc中 1,用哪个函数获取一个窗口的顶点以及宽度,高度 2,用一个Cbutton类创建一

c++的mfc中1,用哪个函数获取一个窗口的顶点以及宽度,高度2,用一个Cbutton类创建一个按钮后,怎样为其添加消息响应函数(比如被点击时)... c++的mfc中
1,用哪个函数获取一个窗口的顶点以及宽度,高度
2,用一个Cbutton类创建一个按钮后,怎样为其添加消息响应函数(比如被点击时)
展开
 我来答
文正153
推荐于2016-07-30 · TA获得超过2.1万个赞
知道大有可为答主
回答量:2221
采纳率:63%
帮助的人:629万
展开全部
  1. 用CWnd成员函数: GetWindowRect/GetClientRect, 后者是获取客户区的大小, 前者是整个窗口的大小. 如:

CRect rect;

GetWindowRect(&rect);

CRect成员函数:Width()和Height()返回窗口高度, 宽度.

2. 动态建立的控制, 用其父窗口的一个虚函数:PreTranslateMessage

它的参数是一个消息结构体.

比如:在View类OnCreat里加入代码:

static CButton btn;

CRect rect(10, 20, 20, 40);

btn.Creat(_T("abc"), WS_VISIBLE | BS_PUSHBUTTON, rect, 1234);

然后在View类里建立一个虚函数PreTranslateMessage

在它里面加入代码:

if (pMsg->message == WM_LBUTTONDOWN && pMsg->hwnd==btn.m_hwnd)

{

    ......

}

追问
c++的mfc中用哪个函数来改变窗口位置及大小
追答
SetWindowPos(CWnd*, int x, int y, int cx, int cy, UINT);
第一个可以取值:&wndTop, &wndTopMost, &wndBotton, 好像还有一个, 忘了.
然后x, y不用说.
cx和cy是宽度, 自己能理解.
最后一个是UINT还是DWORD我也忘了, 反正都一个意思.
取值和Flag一样, 是标识.
一堆, 我记得的是
SWP_NOZORDER SetWindowPos_No Z Order 不移动Z次序(就是窗口的前后关系), 忽略第一个参数, 第一个参数就可以设置为NULL

SWP_NOREDRAW 同上_No Redraw 不重画, 就是说不发出WM_PAINT消息
SWP_NOMOVE 同上_No Move 不改变窗口位置, 就是忽略x和y, 他俩可以取0.
SWP_NOSIZE 同上_No Size 不改变窗口大小, 就是忽略cx和cy, 他俩可以取0.

具体内容查MSDN或百度百科.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式