解决方案 »
- Windows7为什么无法使用mscomm32串口控件,求解决方案?
- 内存映射文件处理和读文件到内存处理的区别
- WSARecv函数有接受数据,但是返回的数据长度是0
- 摄像头的问题,很简单的
- 关于启动画面
- 自定义上下文菜单,快捷键失效
- 在线等,关于CListCtrl的Print函数
- 请问#define IsNum(x) (x>='0' && x<='9')的含义是什么,有兴趣者请进来看看体具的程序代码
- VC++中要生成一个EXE文件麻烦吗?
- 【MSSQL】无符号型数据的在MSSQL中存储的错误
- mapx
- GetCollect()取空字段值时,这句就直接报错,还怎么用val.vt!=NULL来判断呢?
HHOOK g_Mouse = NULL;
bool bNCLButtonDown = false; // 按下的标志位
LRESULT CALLBACK MouseProc(int code,WPARAM wParam,LPARAM lParam)
{
if (bNCLButtonDown && wParam==WM_LBUTTONUP)
{
// 处理鼠标在非客户区弹起
return 1;
}
return CallNextHookEx(g_Mouse,code,wParam,lParam);
}//安装钩子
g_Mouse = SetWindowsHookEx(WH_MOUSE,MouseProc,NULL,GetCurrentThreadId());void CtestDlg::OnNcLButtonDown(UINT nHitTest, CPoint point)
{
// 置标志位
bNCLButtonDown = true;
CDialog::OnNcLButtonDown(nHitTest, point);
}
{
// TODO: Add your message handler code here and/or call default
CDialog::OnSysCommand(nID, lParam);
TRACE(_T("%04x\n"), nID);
if( (nID & 0xFFF0) == SC_SIZE )
{
PostMessage(WM_NCLBUTTONUP, HTBOTTOMRIGHT, lParam);
}
}void CAboutDlg::OnNcLButtonUp(UINT nHitTest, CPoint point)
{
// TODO: Add your message handler code here and/or call default
MessageBox(_T("lbup"));
CDialog::OnNcLButtonUp(nHitTest, point);
}低版本VC中对话框中添加OnSysCommand方法:
在CLASSWIZARD中的CLASS INFO页中修改:MESSAGE FILTER的信息,即将DIALOG改为WINDOW即可,然后在MESSAGE MAPS页中就有WM_SYSCOMMAND消息,添加完毕后,在将WINDOW改为DIALOG,恢复到原来状况。当对话框双击不能最大化时,双击标题栏也会触发OnNcLButtonUp
解决:
nID限制为为0xf000-0xf0008即可,代表通过键盘调整对话框大小、鼠标调整对话框大小的八种方式