VC++中怎么实现禁止用户改变窗口的大小啊?

来源:百度知道 编辑:UC知道 时间:2024/06/20 04:16:28
我需要载入一个图片做背景,但是改变窗口大小的话背景闪动很厉害,所以我想禁止用户改变大小,如何操作呢?谢谢了。

如果有好的方法可以防止背景闪动也可以!
我是希望禁止用户改变单文档模式的窗口的大小。

在CMainFrame类中添加以下代码
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs

cs.style&=~WS_MAXIMIZEBOX; //禁用最大化按钮
cs.style&=~WS_THICKFRAME; //禁止调整窗口大小
cs.cx=800; //固定窗口宽度
cs.cy=600; //固定窗口高度(包括菜单栏等)

return TRUE;
}

好的方法防止背景闪动就是双缓存,就是有两张dc(不包括hdc)比如命名为mdc.sendc就把每张小图图扫到sendc上,贴在mdc上,最后mdc整个贴在hdc上,保证不闪
防止大小变化就是在窗口create的时候
hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW & ~WS_MAXIMIZEBOX,//加这个东西就完了
100, 100, SCREEN_WIDTH, SCREEN_HEIGHT, NULL, NULL, hInstance, NULL);

如果你要改变窗口大小, 那么窗口重绘时最好不要 以拉伸的 方式 显示图片。
如果不改变窗口大小, 可以通过将对话框属性的边框属性 设置为 调整大小 。