界面库技术概述与应用
在做“HOOK文件打开/保存对话框”的过程中,我首先研究了界面库的相关知识。界 面库一般都是由C/C++这种中低级语言编码,这是因为在Windows下的界面库实现技术大都以直接操作控制Windows的消息和调用Windows 的API为主,这就是这种中低级语言的优势了。无论何种界面库,最为根本的原理就是获得或者截获窗口的某些消息,按照自己的需要处理这些消息,画出自己需 要的界面。
在做“HOOK文件打开/保存对话框”的过程中,我首先研究了界面库的相关知识。界 面库一般都是由C/C++这种中低级语言编码,这是因为在Windows下的界面库实现技术大都以直接操作控制Windows的消息和调用Windows 的API为主,这就是这种中低级语言的优势了。无论何种界面库,最为根本的原理就是获得或者截获窗口的某些消息,按照自己的需要处理这些消息,画出自己需 要的界面。
MFC 对话框最大化时控件也随比例最大化或者还原 1. 在oninitdlg中 计算出当前对话框的大小与最大化后大小,注意要用float值,不然误差很大. CRect rect; ::GetWindowRect(m_hWnd,rect); ScreenToClient(rect); m_nDlgWidth = rect.right - rect.left; m_nDlgHeight = rect.bottom - rect.top; //计算分辨率 m_nWidth = GetSystemMetrics(SM_CXSCREEN); m_nHeight = GetSystemMetrics(SM_CYSCREEN); //计算放大倍数 m_Multiple_width = float(m_nWidth)/float(m_nDlgWidth); m_Mutiple_heith = float(m_nHeight)/float(m_nDlgHeight); change_flag=TRUE;//这个是成员变量bool形,用来判断onsize执行时oninitdlg是否已经执行了