WIN32 SDK 子窗口随父窗口移动 150
约束条件:1.win322.父窗口是以处理WM_NCHITTEST消息,返回HTCAPTION(蒙蔽操作系统鼠标点击了标题栏)来进行移动的,此时,如何让子窗口也跟着父窗口...
约束条件:
1.win32
2.父窗口是以处理WM_NCHITTEST消息, 返回HTCAPTION
(蒙蔽操作系统鼠标点击了标题栏)来进行移动的,
此时,如何让子窗口也跟着父窗口移动呢? 展开
1.win32
2.父窗口是以处理WM_NCHITTEST消息, 返回HTCAPTION
(蒙蔽操作系统鼠标点击了标题栏)来进行移动的,
此时,如何让子窗口也跟着父窗口移动呢? 展开
展开全部
此等问题超出我的能力,前排围观。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
//用这个方法,可以不点击标题栏,也可以移动主窗口:
如果创建子窗口的函数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;
}
}
}
如果创建子窗口的函数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;
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询