我做了个MFC DLL 这个DLL主要功能是用来做虚拟桌面的! 就像LINUX那种 点下可以切换一个桌面但是问题是 我点击后 一刷新 程序不在了 恢复桌面的代码都在退出后才恢复 这样就郁闷了 一切换桌面我现在啥都不能做了
这就是问题所在 我想问下大家都是怎么解决的?刷新后调用ShowWindow 可以不? 还有 我看代码中 调试的时候 每次切换窗口都会进入void CDummyDeskTopDlg::OnWindowPosChanging( WINDOWPOS* lpwndpos )
{
RECT rcScrn;
SystemParametersInfo (SPI_GETWORKAREA, 0, &rcScrn, 0); // Snap X axis
if (abs(lpwndpos->x - rcScrn.left) <= m_nEdgeSnapGap)
lpwndpos->x = rcScrn.left;
else if (abs(lpwndpos->x + lpwndpos->cx - rcScrn.right) <= m_nEdgeSnapGap)
lpwndpos->x = rcScrn.right - lpwndpos->cx; // Snap Y axis
if (abs(lpwndpos->y - rcScrn.top) <= m_nEdgeSnapGap)
lpwndpos->y = rcScrn.top;
else if (abs(lpwndpos->y + lpwndpos->cy - rcScrn.bottom) <= m_nEdgeSnapGap)
lpwndpos->y = rcScrn.bottom - lpwndpos->cy;
}这段代码是不是保持窗口一直存在得到代码? abs 是啥函数关键是 OnWindowPosChanging 这个消息又是什么呢?
这就是问题所在 我想问下大家都是怎么解决的?刷新后调用ShowWindow 可以不? 还有 我看代码中 调试的时候 每次切换窗口都会进入void CDummyDeskTopDlg::OnWindowPosChanging( WINDOWPOS* lpwndpos )
{
RECT rcScrn;
SystemParametersInfo (SPI_GETWORKAREA, 0, &rcScrn, 0); // Snap X axis
if (abs(lpwndpos->x - rcScrn.left) <= m_nEdgeSnapGap)
lpwndpos->x = rcScrn.left;
else if (abs(lpwndpos->x + lpwndpos->cx - rcScrn.right) <= m_nEdgeSnapGap)
lpwndpos->x = rcScrn.right - lpwndpos->cx; // Snap Y axis
if (abs(lpwndpos->y - rcScrn.top) <= m_nEdgeSnapGap)
lpwndpos->y = rcScrn.top;
else if (abs(lpwndpos->y + lpwndpos->cy - rcScrn.bottom) <= m_nEdgeSnapGap)
lpwndpos->y = rcScrn.bottom - lpwndpos->cy;
}这段代码是不是保持窗口一直存在得到代码? abs 是啥函数关键是 OnWindowPosChanging 这个消息又是什么呢?
解决方案 »
- [MFC使用SQL Server 2008数据库,多界面操作问题]
- 使用unicode 编译工程 繁体系统下面还是出现乱码
- Win 7下拖拽文件问题
- 按一定时间间隔显示某一目录下的图片,是用SetTimer么
- 旧话重提,RegSetValue/RegSetValueEx函数的使用问题
- 怎样接收系统声音的大小改变的消息?
- 求助:我以前安装的中文版的vc,现在我把他卸载掉了,想装个英文版的,可是怎么装都装不上,提示我什么检测到旧版本的vss,不知道是怎么
- 视/文档结构中如何不让状态条显示菜单或工具栏上的提示信息?
- 客户是上帝还是贱人?
- 0xC0000005: 读取位置 0xC9C885FE 时发生访问冲突。
- opengl中三维点如何转化为屏幕坐标?
- 关于高斯模糊
WM_WINDOWPOSCHANGING消息
The framework calls this member function when the size, position, or Z-order is about to change as a result of a call to the SetWindowPos member function or another window-management function. lz都不看MSDN吗?
* the absolute values of several numbers.
*/#include <stdio.h>
#include <math.h>
#include <stdlib.h>void main( void )
{
int ix = -4, iy;
long lx = -41567L, ly;
double dx = -3.141593, dy; iy = abs( ix );
printf( "The absolute value of %d is %d\n", ix, iy); ly = labs( lx );
printf( "The absolute value of %ld is %ld\n", lx, ly); dy = fabs( dx );
printf( "The absolute value of %f is %f\n", dx, dy );
}
Output
The absolute value of -4 is 4
The absolute value of -41567 is 41567
The absolute value of -3.141593 is 3.141593