winapi c ++窗口不小于

时间:2013-04-03 06:19:08

标签: c++ winapi window size

我用c ++为我的程序创建了一个主窗口,我使用了mingw

hwnd = CreateWindowExW(
        WS_EX_CLIENTEDGE,
        (LPCWSTR)szClassName,
        title,
        WS_OVERLAPPEDWINDOW,
        CW_USEDEFAULT,
        CW_USEDEFAULT,
        1250,       // width
        700,        // height
        HWND_DESKTOP,
        NULL,
        hInstance,
        NULL
    );

这个窗口很大,没关系。但是我怎样才能制作一个具有最小高度和最小高度的窗口。所以我的意思是窗口不小于,例如:500 * 500。

2 个答案:

答案 0 :(得分:3)

处理WM_GETMINMAXINFO,示例代码:

LRESULT HandledWidget::onGetMinMaxInfo( WPARAM wParam, LPARAM lParam, bool &bHandled )
{
    MINMAXINFO* mmi = (MINMAXINFO*)lParam;
    bHandled = false;
    if (m_minWidth != -1) {
        bHandled = true;
        mmi->ptMinTrackSize.x = m_minWidth;
    }
    if (m_minHeight != -1) {
        bHandled = true;
        mmi->ptMinTrackSize.y = m_minHeight;
    }
    return 0;
}

答案 1 :(得分:2)

处理WM_GETMINMAXINFO消息:http://msdn.microsoft.com/en-us/library/windows/desktop/ms632626%28v=vs.85%29.aspx

在邮件处理程序中,lParam指向MINMAXINFO结构,其中包含POINT ptMinTrackSize成员。填充所需的尺寸。