大家好,现在做个一个程序,在对话框初始化时在InitDialog函数在对话框指定位置动态创建几个CStatic控件,现在问题出来了,
在 InitDialog内使用 PostMessage(WM_SYSCOMMAND,SC_MAXIMIZE)使其最大化后,然后创建CStatic控件,但没有创建成功;
原因是获取要创建的位置为负值,例:top -858993050 left -858993430 right -858994260 bottom -85898986,很明显是在对话框正在最大化时创建控件报错.现在需要在检测最大化操作完毕后,在指定位置动态创建CStatic控件.
如何检测对话框最大化事件操作完毕?
请教高手,谢谢。
在 InitDialog内使用 PostMessage(WM_SYSCOMMAND,SC_MAXIMIZE)使其最大化后,然后创建CStatic控件,但没有创建成功;
原因是获取要创建的位置为负值,例:top -858993050 left -858993430 right -858994260 bottom -85898986,很明显是在对话框正在最大化时创建控件报错.现在需要在检测最大化操作完毕后,在指定位置动态创建CStatic控件.
如何检测对话框最大化事件操作完毕?
请教高手,谢谢。
解决方案 »
- vc++编写音乐播放器时的疑问
- 自绘窗体双击标题最大化遮盖任务栏
- CV TreeCtrl控件 关于checkBoxes
- 如何判断一个文件是否是只读,存盘,系统,隐藏文件?
- CEdit 怎样隐藏失效的 垂直滚动条 ?
- 请教一个dll的问题
- 请教大家:在VB中的ascw函数如何在VC中实现?
- MFC tab control 控件,怎么改变标签的形状和大小??跪求高手指点
- 什么方法可以得CPU或硬盘的序列号?????帮帮忙!!!
- winmain()在mfc框架中到底是怎样的一个来龙去脉
- [求助]用CFrameWnd实现的模态(Modal)窗口,在DestroyWindow()时报错
- 关于修改目录树风格
{
// TODO: Add your specialized code here and/or call the base class
switch(message)
{
case WM_SYSCOMMAND: //如果是系统消息
if(wParam==SC_MAXIZE){ //最大化消息
//写自己的代码
return 0;
}
break;
default:
break;
}
return CFrameWnd::WindowProc(message, wParam, lParam);
} 你自己spy++一下就会知道更多
====》》》
SendMessage(WM_SYSCOMMAND,SC_MAXIMIZE)试试这个
用ShowWindow(SW_MAXIMIZE);不行么?
另外为什么要在最大化之后创建而不是之前?
你这个需求在OnInitDialog里实现没有任何问题啊
我经常在里面动态创建控件
不过我是最后ShowWindow(SW_MAXIMIZE);
另外GetClientRect(m_rect)rect是0
这不可能
你在哪个函数里调用的GetClientRect(m_rect)