在没有标题栏的MFC C ++中移动窗口?

穆罕默德·拉扎(Muhammad Raza)

我正在使用此代码移动窗口。但是此代码无法正常工作。当我单击Windows上的任何位置时,它将移动,但我只想移动Windows窗体。当我单击特定的思考。例如图片。我正在使用MFC C ++ HtmlDialog。有人知道该怎么做吗?

DHTML_EVENT_ONCLICK(_T(“ image”),PreTranslateMessage)

BOOL CHtmlDlgTestDlg::PreTranslateMessage(MSG* pMsg)
{
if (pMsg->message == WM_MOUSEMOVE && (pMsg->wParam & MK_LBUTTON))
{
    CPoint p;
    GetCursorPos(&p);
    CRect r;
    GetWindowRect(&r);
    if (r.PtInRect(p))
    {
        ReleaseCapture();
        SendMessage(WM_NCLBUTTONDOWN, HTCAPTION, 0);
        SendMessage(WM_NCLBUTTONUP, HTCAPTION, 0);
        return 1;
    }
}

return CDialog::PreTranslateMessage(pMsg);    
}
巴马克·谢米拉尼(Barmak Shemirani)

WM_NCLBUTTONDOWN是一条通知消息,Windows发送此消息,程序对此做出响应。该程序不应将此消息发送到Windows。在这种情况下,它可以工作,但不建议这样做。

我不知道这段代码是如何工作的:DHTML_EVENT_ONCLICK(_T("image"), PreTranslateMessage)它可能会被忽略,您可以将其删除。PreTranslateMessage仍然被称为。您可以将其限制为Window内的任何矩形,例如CRect(50,50,200,200)

BOOL CHtmlDlgTestDlg::PreTranslateMessage(MSG* pMsg)
{
   if (pMsg->message == WM_MOUSEMOVE && (pMsg->wParam & MK_LBUTTON))
   {
       CPoint p = pMsg->pt;
       ScreenToClient(&p);
       CRect r(50,50,200,200);
       if (r.PtInRect(p))
       {
           ReleaseCapture();
           SendMessage(WM_NCLBUTTONDOWN, HTCAPTION, 0);
           SendMessage(WM_NCLBUTTONUP, HTCAPTION, 0);
           return 1;
       }
   }
   return CDialog::PreTranslateMessage(pMsg);
}

如果要在窗口内移动元素,可以使用javascript:

可移动/可拖动<div>

Ps,通常您应该使用WM_NCHITTEST,如前所述。这种情况非常罕见,因为它是HTML对话框。您应该重新考虑放置用户可以理解的普通标题栏,或者可以在对话框中放置html控件,然后可以使用标准WinApi控制对​​话框的其余部分。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在无标题栏的MFC C ++中移动窗口?

来自分类Dev

没有标题栏的移动表单

来自分类Dev

没有标题栏的移动表单

来自分类Dev

Eclipse对话框没有标题栏并且无法在Gnome 3中移动

来自分类Dev

如何在MFC中移动窗口?

来自分类Dev

没有标题栏按钮关闭窗口Ubuntu 18.04

来自分类Dev

没有标题栏按钮关闭窗口Ubuntu 18.04

来自分类Dev

如何在MATE中移动窗口标题栏图标以最大化,最小化和靠近左侧?

来自分类Dev

如何创建没有标题栏/关闭按钮的可移动SWT Shell?

来自分类Dev

Tkinter:没有标题栏但可调整大小的窗口

来自分类Dev

没有菜单/网址/标题栏/滚动条/任何内容的javascript打开弹出窗口

来自分类Dev

X工具箱“ -title”参数以“ lock”结尾时,没有窗口标题栏

来自分类Dev

在C中移动蛇

来自分类Dev

在C中移动实现

来自分类Dev

Ubuntu菜单重叠标题栏时如何移动窗口

来自分类Dev

Ubuntu菜单重叠标题栏时如何移动窗口

来自分类Dev

是否可以使用带有边框但没有标题栏的swing在Java中创建窗口?

来自分类Dev

如何在 C# 类库中移动鼠标(没有 WPF 没有 WinForms)?

来自分类Dev

在 ncurses 中移动窗口

来自分类Dev

在c中移动数组的元素

来自分类Dev

在C中移动char数组

来自分类Dev

在C中移动数字序列?

来自分类Dev

在OpenCV C ++中移动遮罩

来自分类Dev

在c中移动数组元素以在AES中移动行

来自分类Dev

使用Tkinter移动自定义标题栏窗口,而无需从左上角移动

来自分类Dev

具有集成标题栏和工具栏的macOS窗口?

来自分类Dev

带有标题栏和Windows任务栏的Tkinter窗口

来自分类Dev

带有标题栏和Windows任务栏的Tkinter窗口

来自分类Dev

无边界窗口,但保留标题栏

Related 相关文章

热门标签

归档