这篇文章主要介绍windows api开发,下介绍比较常用的API
bool AdjustWindowRectEx(LPRECT lpRect,DWORD dwStyle,bool bMenu,DWORD dwExStyle);
该函数依据所需客户矩形大小,计算需要的窗口矩形大小。计算出的窗口矩形随后可以传送给CreateWindowEx函数,用于创建一个客户区所需大小的窗口。
例如:(if (!::AdjustWindowRectEx(&rc,GetWindowStyle(m_hWnd),(!(GetWindowStyle(m_hWnd)&WS_CHILD)&&(::GetMenu(m_hWnd)!=NULL)),GetWindowExStyle(m_hWnd)) return;)
::SetWindowPos(m_hWnd,NULL,0,0,rc.right-rc.left,rc.bottom-rc.top,SWP_NOZORDER|SWP_NOMOVE|SWP_NOACTIVATE);
LRESULT CallWindowProc(WNDPROC lpPrevWndFunc,HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam);
该函数将消息信息传送给指定的窗口过程。lpPrevWndFunc指向前一个窗口过程的指针。如果该值是通过GetWindowLong函数(并将该函数的nIndex参数设置为GWL_WNDPROC或GWL_DLGPROC而得来的,那么它实际上要么是窗口或对话框地址,要么就是代表该地址的句柄。
SetWindowLong函数通过改变与特定窗口相关的窗口过程,使系统调用新的窗口过程来创建子类,新的窗口过程替换了以前的窗口过程。应用程序必须通过调用CallWindowsProc来将新窗口过程没有处理的任何消息传送到以前的窗口过程中,这样就允许应用程序创建一系列窗口过程。
CheckDlgButton(HWND hDlg,int nIDButton,UINT uCheck);
该函数改变按钮控制的选中状态。uCheck给定该按钮的选中状态。BST_CHECKED:设置按钮状态为以选中。BST_INDETERMINATE设置按钮状态变灰。BST_UNCHECKED:设置按钮未选中。