WTL 设置主窗口最小/最大尺寸

基于WTL程序中,想要控制你的主窗口的最大最小尺寸,需要在头文件MainFrm.h的CMainFrame消息映射表中增加下面的消息处理过程。当然,这些操作可以通过VS查看CMainFrame的类视图,然后在属性中添加对应的WM_GETMINMAXINFO的事件来完成。这里主要想说的是:lParam传递MINMAXINFO结构的指针。

MESSAGE_HANDLER(WM_GETMINMAXINFO, OnGetMinMaxInfo)

完全实现功能,还需要在cpp文件中增加处理函数:

LRESULT CMainFrame::OnGetMinMaxInfo(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOOL& /*bHandled*/)
{
	// lParam传递MINMAXINFO结构的指针
	LPMINMAXINFO lpMMI = (LPMINMAXINFO)lParam;

	// 改变size结构中的相应的值为我们想要的窗口大小值
	lpMMI->ptMinTrackSize.x = 800; // 最小宽度
	lpMMI->ptMinTrackSize.y = 640; // 最小高度
	//lpMMI->ptMaxTrackSize.x = 1024; // 最大宽度
	//lpMMI->ptMaxTrackSize.y = 768; // 最大高度

	return 0;
}


你可能感兴趣的:(Windows,程序设计)