c++的mfc中 1,用哪个函数获取一个窗口的顶点以及宽度,高度 2,用一个Cbutton类创建一
c++的mfc中1,用哪个函数获取一个窗口的顶点以及宽度,高度2,用一个Cbutton类创建一个按钮后,怎样为其添加消息响应函数(比如被点击时)...
c++的mfc中
1,用哪个函数获取一个窗口的顶点以及宽度,高度
2,用一个Cbutton类创建一个按钮后,怎样为其添加消息响应函数(比如被点击时) 展开
1,用哪个函数获取一个窗口的顶点以及宽度,高度
2,用一个Cbutton类创建一个按钮后,怎样为其添加消息响应函数(比如被点击时) 展开
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或百度百科.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询