最近要用到MFC编程,windows的API感觉很多,总记不住,就把它们写下来:
CWnd::GetDlgCtrlID() 获取控件ID
AfxMessageBox 弹出消息对话框
MessageBox
LoadImage 加载bitmap、icon、cursor,返回各自的handle
GetObject 由HBITMAP来获取BITMAP数据结构,如:
HBITMAP hbmp = LoadImage( … );
BITMAP bmp;
GetObject(hbmp, sizeof(BITMAP), &bmp);
这样就能得到bmp。
DeleteObject、DestroyCursor、DestroyIcon当LoadImage用完后,删除各自的handle
CDialog::DoModal 弹出对话框,调用CDialog::OnOK();时退出对话框
CFileDialog::GetPathName 获取文件名的绝对路径
SendMessage 发送消息给指定对话框,如:
::SendMessage(::GetParent(this->m_hWnd), WM_RBUTTONUP, GetDlgCtrlID(), 0);发送消息WM_RBUTTONUP给它的拥用者,参数1为自己的ID。
想知道窗口有哪些消息,使用MFC ClassWizard,就可看到列出的对话框或者控件的消息。
CWnd:: Invalidate() 让对话框或者控件区域无效,当数据更新后需要更新UI的时候调用。
StretchDIBits 将一设备无关的bitmap数据copy到一个HDC里
CClientDC::CClientDC 引用MSDN里的话:The CClientDC class is derived from CDC and takes care of calling the Windows functions GetDC at construction time and ReleaseDC at destruction time. This means that the device context associated with a CClientDC object is the client area of a window.也就是说调用下面的语句:
CClientDC pDC(this);
就能为当前的CWnd对象生成对应的DC,再调用:
StretchDIBits(pDC,0,0,bmpWidth,bmpHeight,0,0,bmpWidth,bmpHeight,
lpSrcBits,lpBitmapInfo,DIB_RGB_COLORS,SRCCOPY);
就能将bitmap图片画到这个DC上(其中lpSrcBits和lpBitmapInfo是bitmap图片的数据)。
CDC::GetPixel
CDialog::OnPaint()
CDialog::OnInitDialog()
CWnd::UpdateData
HWND current = ::GetFocus();
::GetWindowText(current, str, 100);
BITMAPFILEHEADER以及BITMAPINFOHEADER
CreateDIBSection
CreateCompatibleDC NULL为参数
BitBlt
DeleteDC
DeleteObject
SelectObject
GridCtrl API
ON_NOTIFY
DDX_GridControl
SetCapture( HWND hWnd ): 让hWnd获取鼠标对屏幕操作的消息,即使鼠标已经离开hWnd
ReleaseCapture(void): 与SetCapture相关
本文总结了MFC编程中常用的API,包括获取控件ID、弹出消息对话框、加载位图等实用技巧,并详细介绍了如何使用这些API进行实际开发。
837

被折叠的 条评论
为什么被折叠?



