【问题标题】:winapi c++ window not less thanwinapi c++窗口不小于
【发布时间】:2013-04-03 06:19:07
【问题描述】:

我在 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。

【问题讨论】:

    标签: c++ winapi window size


    【解决方案1】:

    处理 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;
    }
    

    【讨论】:

    • 你能帮帮我吗?我上传了一个非常简单的代码到 pastebin:pastebin.com/qPPA9X3a 但是我必须写到 WM_GETMINMAXINFO 什么?我想将 minHeight minWidht 设置为 HWND hwnd 窗口。
    【解决方案2】:

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

    在消息处理程序中,lParam 指向MINMAXINFO 结构,其中包含POINT ptMinTrackSize 成员。用所需的大小填充它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-07
      • 2017-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多