WIN32 SDK 子窗口随父窗口移动 150

约束条件:1.win322.父窗口是以处理WM_NCHITTEST消息,返回HTCAPTION(蒙蔽操作系统鼠标点击了标题栏)来进行移动的,此时,如何让子窗口也跟着父窗口... 约束条件:
1.win32
2.父窗口是以处理WM_NCHITTEST消息, 返回HTCAPTION
(蒙蔽操作系统鼠标点击了标题栏)来进行移动的,
此时,如何让子窗口也跟着父窗口移动呢?
展开
 我来答
曹朔世易容
2019-03-27 · TA获得超过1202个赞
知道小有建树答主
回答量:1674
采纳率:100%
帮助的人:7.7万
展开全部
爱应用问仁间为您解答:
首先你要建立一个主窗口以及对应的窗口处理函数mainwndproc()
接下来你要在主窗口的消息处理函数中创建一个子窗口
调用createwindow来创建这个子窗口(这一步可以在主窗口响应wm_create时调用)
这时的创建窗口函数有一个重要的参数,就是父窗口句柄
另外就是子窗口的消息处理函数childwndproc()
望采纳。有问题请追问。
天下2号
2012-10-28 · TA获得超过1236个赞
知道小有建树答主
回答量:1405
采纳率:0%
帮助的人:740万
展开全部
此等问题超出我的能力,前排围观。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
入梦10
2013-08-05
知道答主
回答量:38
采纳率:0%
帮助的人:13.2万
展开全部
//用这个方法,可以不点击标题栏,也可以移动主窗口:
如果创建子窗口的函数CreateWindow();倒数第四个参数设对了的话,应该可以随主窗口移动的。
void OnLbuttonDown(HWND hwnd,LPARAM lParam)/*在消息回调函数外面定义一个移动窗口的函数*/
{
SendMessage(hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0);
}

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_COMMAND://子窗口的消息放到这里来处理
switch(LOWORD(wParam))
{
case 1000:
PostQuitMessage(0);
break;
}
return 0;
case WM_LBUTTONDOWN:
//WM_LBUTTONDOWN表示鼠标按下,如果是鼠标左键在主窗口上按下了,那么就调用移动的函数。
//如果在子窗口上按下了鼠标左键,那么略过,因为子窗口消息由前面的WM_COMMAND来处理。
switch(LOWORD(wParam))
{
case 1000://这是子窗口ID,在子窗口上按下了鼠标左键,那么略过不做操作,如果不略过,
//像编辑框那样的控件,可能要双击才能输入字符。
return 0;
default://除了子窗口以外肯定就是主窗口了。
OnLbuttonDown(hWnd,lParam);//移动主窗口
break;
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
嘉X年华
2012-10-20
知道答主
回答量:33
采纳率:0%
帮助的人:5.1万
展开全部
不知道
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式