Windows API SetWindowSize()似乎没有效果
Windows API SetWindowSize() seems to have no effect
我有一个应该是非常简单的目标,但它似乎很难。我必须得到一些精确尺寸的屏幕像素的文档,所以我认为这将是有意义的,添加一个控件来调整我的应用程序的窗口的大小,以确切的尺寸我想。
我正在使用VS2010。
下面是我的向导生成对话框中的相关代码:
DlgSetWindowSize::DlgSetWindowSize(CWnd* pParent /*=NULL*/)
: CDialogEx(DlgSetWindowSize::IDD, pParent)
{
m_width = 0;
m_height = 0;
m_parent = pParent;
}
void DlgSetWindowSize::OnBnClickedOk()
{
CDialogEx::OnOK();
SetWindowPos(m_parent, 0, 0, m_width, m_height, SWP_NOMOVE|SWP_NOZORDER|SWP_NOOWNERZORDER);
}
,下面是对它的调用:
void CMyAppView::OnWindowSize()
{
DlgSetWindowSize d(this);
if (IDOK == d.DoModal())
{
Invalidate();
}
}
SetWindowPos
返回一个非零值,根据文档(点击这里)表示成功。当然,当运行对话框时,我输入我想要的宽度和高度的像素值。调试器验证期望的值被传递给SetWindowPos
,并且SetWindowPos
给出非零返回。最后一个参数SetWindowPos
中的位开关被设置为忽略位置参数,只表示该调用中的size
参数,因此窗口应该按我想要的大小调整,而不改变位置。
一切似乎都井然有序,但窗口大小没有改变。我已经将这个逻辑应用到我的应用程序的文档窗口,当它不起作用时,我也将它应用到应用程序的MainFrame窗口。零行动。
我在这里错过了什么,或者我应该使用一些完全不同的方法?
根据您对cdialgex的使用和命名约定,我猜您使用的是MFC,对吗?
你对SetWindowPos()的调用作用于对话框窗口本身,因为这是一个类方法。
如果你想调用parent的SetWindowPos(),你可以这样做:
m_parent->SetWindowPos(0, 0, 0, m_width, m_height,
SWP_NOMOVE|SWP_NOZORDER|SWP_NOOWNERZORDER);
还请注意,在MFC文档-视图架构中,文档没有窗口。
或者,你可以使用Win API调用:::SetWindowPos(m_parent->GetSafeHwnd(), 0, 0, 0, m_width, m_height,
SWP_NOMOVE|SWP_NOZORDER|SWP_NOOWNERZORDER);
相关文章:
- 有没有任务栏API可以立即应用注册表更改
- unique_ptr:在分配之前调用 reset 有什么效果
- 对于堆上的页面对齐内存分配是否有任何优化或不同的 API?
- API 返回智能指针的 std::optional 以明确指定指针可能为 null 是否有意义?
- 是否有可以在iOS上运行的API来更改现有视频的每秒帧数?
- 是否有一个Windows驱动程序函数可以执行Windows文件api SeFileAttributes的等效功能
- 如何在C#或C++中获取文件或文件夹的有效权限?有什么 API 吗?
- 是否有任何 C 函数或 API 来获取当前登录用户下运行的进程列表
- c ++ 是否有任何用于列出 Windows 驱动程序管理器控制台中显示的设备驱动程序的 Windows API?
- 在Xcode(mac api)上,是否有任何带有Sleep()函数/命令的文件?
- 如何通过键和值以及在C 中的结果映射中比较两个地图?我们有任何STL API吗?
- 有什么方法可以用本机C 代码替换Windows API计时器(settimer)
- UWP 是否有同步文件读/写 API
- 有什么方法可以改变同步Windows API SendARP的行为吗?
- 是否有Windows API以原子方式设置16字节数组
- 有libXrandr API文档吗?
- 是否有任何api允许你在c/c++中调用部分Android SDK ?
- 是否有win32 API将字符串转换为字符数组?
- 有任何API可以阻止Windows 8进入连接待机模式
- 是否有任何Api在android为ms office word(.doc/.docx)到(图像/html/xml/pdf