编辑:我已经使用下面的代码来绘制一个button在我的窗口的非客户区(标题栏)。 所以我的问题是:是否有可能从这个button来处理鼠标点击事件?
bool MainWindow::winEvent(MSG *pMessage,long *result) { UINT m = pMessage->message; if(m == WM_NCPAINT || m == WM_ACTIVATE) { HWND id = winId(); HDC hDeviceContext = GetwindowDC(id); RECT rc = {10,10,65,25}; DrawFrameControl(hDeviceContext,&rc,DFC_BUTTON,DFCS_BUTTONPUSH); ReleaseDC(id,hDeviceContext); return true; } return QWidget::winEvent(pMessage,result); }
如何在Windows中redirectstd :: cout和printf
由于SecurityException而无法读取事件日志
从Ubuntu迁移到Windows – 获得Vim + Python工作stream
在资源目录上执行操作`create`时出错
asyncio循环的add_signal_handler()在Windows中
是的,这很容易做到。 Windows提供了几个专门用于非客户端区域的消息。 例如,你有WM_NCMOUSEMOVE,它可以像WM_MOUSEMOVE一样处理,但是专门用于非客户区域。 大部分的消息像客户区域的消息一样工作,并且通常具有相同的数据结构。 下面是非客户区域消息的列表。
WM_NCCREATE WM_NCDESTROY WM_NCCALCSIZE WM_NCHITTEST WM_NCPAINT WM_NCACTIVATE WM_NCMOUSEMOVE WM_NCLBUTTONDOWN WM_NCLBUTTONUP WM_NCLBUTTONDBLCLK WM_NCRBUTTONDOWN WM_NCRBUTTONUP WM_NCRBUTTONDBLCLK WM_NCMBUTTONDOWN WM_NCMBUTTONUP WM_NCMBUTTONDBLCLK WM_NCXBUTTONDOWN WM_NCXBUTTONUP WM_NCXBUTTONDBLCLK WM_NCMOUSEHOVER WM_NCMOUSELEAVE
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。