常用MFC和API函数

合集下载

mfc invalidate函数

mfc invalidate函数

mfc invalidate函数MFC中的invalidate函数是一种用于更新窗口或视图区域的函数,它可以告诉操作系统强制重绘指定的矩形区域。

invalidate函数是MFC和Windows API中最常用的函数之一,它可以实现许多不同的功能,包括绘制图形、更新文本、改变控件状态等。

invalidate函数的使用非常灵活,可以根据需要选择不同的参数。

最常用的参数是invalidateRect函数,它需要传递一个CRect类型的参数来指定需要更新的矩形区域。

该矩形区域由左上角和右下角坐标指定,可以是整个窗口或视图区域,也可以是一个特定的控件或文本框。

在使用invalidate函数之前,应该先了解Windows系统的绘图机制。

在Windows中,绘图分为两个部分:用户接口和设备接口。

用户接口是指应用程序和屏幕之间的接口,设备接口是指操作系统和显示设备之间的接口。

invalidate函数是通过用户接口向操作系统发送指令,告诉它需要进行重绘操作。

在MFC中,invalidate函数的调用方式也非常简单。

只需要在需要更新的地方调用invalidateRect函数,并传递一个CRect类型的参数即可。

此时,操作系统会收到重绘指令,并在需要的时候重新绘制该区域。

MFC还提供了其他一些invalidate函数,包括invalidateRgn函数、invalidateRect函数的重载等。

这些函数可以根据需要选择不同的参数来实现不同的功能。

另外,需要注意的是,invalidate函数只是发出了重绘指令,并不直接进行绘图操作。

实际的重绘操作由操作系统和显示设备完成,因此需要合理地使用invalidate函数,以避免出现绘图错误或效率低下等问题。

同时,invalidate函数的调用也需要考虑到程序的运行状态和需要更新的区域,以避免出现过多无效的重绘操作和闪烁等问题。

综上所述,MFC中的invalidate函数是一种非常有用的函数,它可以实现窗口或视图区域的更新操作,同时也需要注意合理使用,以避免出现不必要的问题。

MFC绘图函数(全)

MFC绘图函数(全)

画点像素点的绘制不过是改变单个像素点的颜色。

SetPixel( ) 试图用指定的颜色画一个像素,返回绘制时使用的实际颜色SetPixelV( ) 与上面的基本相同,但不用返回绘制时使用的实际颜色,因而速度更快画线画线即改变屏幕上一系列像素点的颜色。

M o v e To( ) 开始画线、弧和多边形时,把光标移动到一个初始位置L i n e To( ) 画一条从初始位置到另一个点的直线Arc( ) 画一段弧A r c To( ) 画一段弧,并更新初始位置AngleArc( ) 画一条线,然后画一段弧,并更新初始位置PolyDraw( ) 画一系列线段和B e z i e r样条PolyLine( ) 画一系列线段PolyPolyLine( ) 画多个系列线条画形状这里的形状是一系列封闭线条。

Rectangle( ) 画一个矩形Pie( ) 画一个饼状楔形RoundRect( ) 画一个圆角矩形Draw3dRect( ) 画一个三维矩形Polygon( ) 画一个多边形DrawEdge( ) 画一个矩形的边缘PolyPolygon( ) 创建一个或多个多边形DrawFrameControl( ) 画一个框架控件Ellipse( ) 画一个椭圆形状填充和翻转填充和翻转改变一个形状内的所有像素点颜色。

FillRect( ) 填充一个矩形FillSolidRect( ) 用一单色填充一个矩形InvertRect( ) 反转一个矩形的颜色ExtFloodFill( ) 用当前画刷填充一个区域,提供比FloodFill( )成员函数更多的灵活性FrameRect( ) 画一个矩形的边框下面三个函数包括一个区域对象,它实际上是一个线条列表,形成一个由设备环境维护的形状。

有关区域的详细讨论参见4 . 4 . 8节“剪裁属性”。

FillRgn( ) 填充一个区域InvertRgn( ) 反转一个区域的颜色FrameRgn( ) 画一个特定区域的边框滚动通过滚动,可移动屏幕周围像素颜色。

mfc基本程序

mfc基本程序

mfc基本程序
MFC(Microsoft Foundation Class)是微软基础类库,是微软公司实现的一个c++类库,主要封装了大部分Windows API函数。

下面是MFC基本程序的步骤:
1. 添加相应的头文件和库文件:在使用API时,需要添加相应的头文件和库文件,例如PlaySound需要头文件mmsystem.h和库文件WINMM.LIB的支持。

2. 设计窗口类:定义一个从CWnd 类继承而来的派生类,负责处理用户交互和绘图等操作。

3. 注册窗口类:使用AfxRegisterClass 函数将窗口类注册到 Windows 系统中。

4. 创建窗口对象:使用CreateWindow 函数创建一个窗口对象,并将其显示在屏幕上。

5. 循环取消息:通过消息循环从Windows 系统接收消息,并将其发送给窗口对象进行处理。

6. 处理消息:在窗口对象的处理函数中,根据接收到的消息类型进行相应的处理。

请注意,上述步骤仅为MFC基本程序的一般性指导,具体的程序编写可能因项目需求和个人喜好而有所不同。

如果你需要更详细的信息或有特定的问题,请提供更多细节以便获得更准确的回复。

mfc函数详解

mfc函数详解

mfc函数详解MFC(Microsoft Foundation Class)是一种面向对象的Windows应用程序框架,它是微软公司在Windows操作系统下的视窗类库,是Visual C++的一些类和函数的集合。

MFC的作用是提供一种高级的、面向对象的编程结构,让程序员更加容易地开发Windows应用程序。

下面是一些常用的MFC函数及其详解:1. AfxMessageBox函数原型:int AfxMessageBox(LPCTSTR lpszText, UINT nType = MB_OK, UINT nIDHelp = 0);函数作用:显示一个消息框,包含文本、标题和按钮。

参数解释:lpszText:要显示的消息文本。

nType:消息框类型,包括按钮以及图标等样式。

nIDHelp:帮助ID,用于消息框的帮助文件。

返回值:用户选择的按钮行为,如“取消”、“确定”等。

2. AfxGetMainWnd函数原型:CWnd* AfxGetMainWnd( );函数作用:获取当前线程的主窗口对象指针。

参数解释:无。

返回值:当前线程的主窗口对象指针。

3. CString.Format函数原型:int Format(LPCTSTR lpszFormat, ...);函数作用:根据格式控制符格式化字符串。

参数解释:lpszFormat:格式化字符串,格式控制符用“%”标识。

...:格式控制符中各个参数的值。

返回值:格式化后的字符串长度。

4. CListBox.SetCurSel函数原型:int SetCurSel(int nIndex);函数作用:设置列表框中当前选定项的索引。

参数解释:nIndex:要选定项的索引,从0开始。

返回值:如果设置成功,则返回新选定项的索引;否则,返回LB_ERR。

5. CEdit.SetWindowText函数原型:void SetWindowText(LPCTSTR lpszString); 函数作用:设置编辑框的文本内容。

MFC消息处理函数总结解读

MFC消息处理函数总结解读

MFC消息处理函数总结解读MFC(Microsoft Foundation Classes)是Windows编程中常用的框架之一,它提供了一组面向对象的类库,帮助开发人员更轻松地构建Windows应用程序。

在MFC中,消息处理函数是非常重要的一部分,它们用于处理窗口消息,包括按键事件、鼠标事件等,可以响应用户的操作。

消息处理函数的基本格式如下:```afx_msg LRESULT OnMessage(WPARAM wParam, LPARAM lParam);```其中afx_msg是一个宏定义,用于指示该函数为一个MFC消息处理函数。

LRESULT是一个32位整数,用于返回消息处理结果。

OnMessage是函数名,可以根据实际需求进行命名。

wParam和lParam是消息的参数,根据不同的消息类型可以传递不同的值。

下面是对常见的消息处理函数的解读。

1. OnCreateOnCreate消息处理函数在窗口创建时被调用,可以进行一些初始化操作。

例如创建子窗口、加载资源等。

可以通过返回-1来取消窗口的创建。

2. OnDestroyOnDestroy消息处理函数在窗口销毁时被调用,可以进行一些资源的释放操作。

例如关闭文件、释放内存等。

3. OnPaintOnPaint消息处理函数在窗口需要重绘时被调用,可以进行绘图操作。

通常会使用GDI(图形设备接口)函数进行绘图,例如绘制文本、绘制图形等。

4. OnSizeOnSize消息处理函数在窗口大小改变时被调用,可以根据新的窗口大小进行调整。

例如重新设置子窗口的位置和大小。

5. OnKeyDownOnKeyDown消息处理函数在键盘按键被按下时被调用,可以响应用户的按键操作。

可以根据不同的按键进行不同的处理,例如响应回车键、删除键等。

6. OnMouseMoveOnMouseMove消息处理函数在鼠标移动时被调用,可以获取鼠标的当前位置。

可以根据鼠标位置进行一些操作,例如绘制跟随鼠标的图形、显示鼠标所在位置的坐标等。

Windows API函数大全

Windows API函数大全

Windows API函数我们知道VB可以做很多事,但是有些事情,特别是涉及对Windows操作系统的访问,还需要借助Win32 API函数(Microsoft Win32 Application Programming Interface的缩写)。

API 函数是一组用C语言编写的函数,总共约有一千来个。

原本是为C语言编程人员而编写的,但也可以在VB应用程序中调用。

按功能划分,Win32 API函数大致涉及以下几个方面:窗口管理、图形设备接口、系统管理和多媒体技术。

Win32 API函数以动态链接库DLL提供给用户,可以在任何语言中调用。

DLL在程序运行时装入,随时响应程序的调用,不必在设计时就将文件存放在工程中,这就是动态链接的意思。

正因为如此,一个DLL程序可以同时为多个程序所调用。

在VB中引用API函数,需要事先通过Declare函数,声明要引用的DLL文件名称以及相应函数的参量。

然后便可像使用VB函数一样使用API函数。

我们看以下类似的声明语句:Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As LongGetComputerName是API函数名,kernel32是库名。

括号中的ByVal lpBuffer As String, nSize As Long就是函数的参量。

最后面的Long表示函数返回值的数据类型。

本节通过例子说明Win32 API函数的应用。

Windows在创建每个窗体时,都会赋给它一个与众不同的编号,这就是窗体的句柄。

在Windows中,窗体与控件都被看成是窗体(窗口)。

窗体的句柄保存在自己的hwnd属性中。

一.GetComputerName二、GetCursorPos三、GetWindowsDirectoryWindows API函数四、ClipCursor五、GetProfileInt六、GetProfileString七、PolygonWindows API函数八、SendMessagePublic Enum VBWin_MsgWM_NULL = &H0WM_CREATE = &H1WM_DESTROY = &H2WM_MOVE = &H3WM_SIZE = &H5WM_ACTIVATE = &H6WM_SETFOCUS = &H7WM_KILLFOCUS = &H8WM_ENABLE = &HAWM_SETREDRAW = &HBWM_SETTEXT = &HCWM_GETTEXTLENGTH = &HEWM_PAINT = &HFWM_CLOSE = &H10WM_QUERYENDSESSION = &H11WM_QUIT = &H12WM_QUERYOPEN = &H13WM_ERASEBKGND = &H14WM_SYSCOLORCHANGE = &H15WM_ENDSESSION = &H16WM_SHOWWINDOW = &H18WM_WININICHANGE = &H1AWM_DEVMODECHANGE = &H1BWM_ACTIVATEAPP = &H1CWM_FONTCHANGE = &H1DWM_TIMECHANGE = &H1EWM_CANCELMODE = &H1FWM_SETCURSOR = &H20WM_MOUSEACTIVATE = &H21WM_CHILDACTIVATE = &H22WM_QUEUESYNC = &H23WM_GETMINMAXINFO = &H24'begin_r_winuserWM_PAINTICON = &H26WM_ICONERASEBKGND = &H27WM_NEXTDLGCTL = &H28WM_SPOOLERSTATUS = &H2AWM_DRAWITEM = &H2BWM_MEASUREITEM = &H2CWM_DELETEITEM = &H2DWM_VKEYTOITEM = &H2EWM_CHARTOITEM = &H2FWM_SETFONT = &H30WM_GETFONT = &H31WM_SETHOTKEY = &H32WM_GETHOTKEY = &H33WM_QUERYDRAGICON = &H37WM_COMPAREITEM = &H39WM_COMPACTING = &H41WM_COMMNOTIFY = &H44 '/* no longer suported */WM_WINDOWPOSCHANGING = &H46WM_WINDOWPOSCHANGED = &H47WM_POWER = &H48WM_CANCELJOURNAL = &H4B'end_r_winuser'lParam of WM_COPYDATA message points to...'begin_r_winuser' '#if(WINVER > = 0x0400)WM_NOTIFY = &H4EWM_INPUTLANGCHANGEREQUEST = &H50WM_INPUTLANGCHANGE = &H51WM_TCARD = &H52WM_HELP = &H53WM_USERCHANGED = &H54WM_NOTIFYFORMAT = &H55WM_CONTEXTMENU = &H7BWM_STYLECHANGING = &H7CWM_STYLECHANGED = &H7DWM_DISPLAYCHANGE = &H7EWM_GETICON = &H7FWM_SETICON = &H80' '#endif /* WINVER > = 0x0400 */WM_NCCREATE = &H81WM_NCDESTROY = &H82WM_NCCALCSIZE = &H83WM_NCHITTEST = &H84WM_NCPAINT = &H85WM_NCACTIVATE = &H86WM_GETDLGCODE = &H87WM_SYNCPAINT = &H88WM_NCMOUSEMOVE = &HA0WM_NCLBUTTONDOWN = &HA1WM_NCLBUTTONUP = &HA2WM_NCLBUTTONDBLCLK = &HA3WM_NCRBUTTONDOWN = &HA4WM_NCRBUTTONUP = &HA5WM_NCRBUTTONDBLCLK = &HA6WM_NCMBUTTONDOWN = &HA7WM_NCMBUTTONUP = &HA8WM_NCMBUTTONDBLCLK = &HA9WM_KEYFIRST = &H100WM_KEYDOWN = &H100WM_KEYUP = &H101WM_CHAR = &H102WM_SYSKEYDOWN = &H104WM_SYSKEYUP = &H105WM_SYSCHAR = &H106WM_SYSDEADCHAR = &H107WM_KEYLAST = &H108' '#if(WINVER > = 0x0400)WM_IME_STARTCOMPOSITION = &H10DWM_IME_ENDCOMPOSITION = &H10EWM_IME_COMPOSITION = &H10FWM_IME_KEYLAST = &H10F' '#endif /* WINVER > = 0x0400 */WM_INITDIALOG = &H110WM_COMMAND = &H111WM_SYSCOMMAND = &H112WM_TIMER = &H113WM_HSCROLL = &H114WM_VSCROLL = &H115WM_INITMENU = &H116WM_INITMENUPOPUP = &H117WM_MENUSELECT = &H11FWM_MENUCHAR = &H120WM_ENTERIDLE = &H121'#if(WINVER > = 0x0500)WM_MENURBUTTONUP = &H122WM_MENUDRAG = &H123WM_MENUGETOBJECT = &H124WM_UNINITMENUPOPUP = &H125WM_MENUCOMMAND = &H126'#endif /* WINVER > = 0x0500 */WM_CTLCOLORMSGBOX = &H132WM_CTLCOLOREDIT = &H133WM_CTLCOLORLISTBOX = &H134WM_CTLCOLORBTN = &H135WM_CTLCOLORDLG = &H136WM_CTLCOLORSCROLLBAR = &H137WM_CTLCOLORSTATIC = &H138WM_MOUSEFIRST = &H200WM_LBUTTONDOWN = &H201WM_LBUTTONUP = &H202WM_LBUTTONDBLCLK = &H203WM_RBUTTONDOWN = &H204WM_RBUTTONUP = &H205WM_RBUTTONDBLCLK = &H206WM_MBUTTONDOWN = &H207WM_MBUTTONUP = &H208WM_MBUTTONDBLCLK = &H209'#if (_WIN32_WINNT > = 0x0400) || (_WIN32_WINDOWS > 0x0400) WM_MOUSEWHEEL = &H20AWM_MOUSELAST = &H20A'#Else' WM_MOUSELAST = &H209'#endif /* if (_WIN32_WINNT < 0x0400) */'#if(_WIN32_WINNT > = 0x0400)'#define WHEEL_DELTA 120 /* Value for rolling one detent */'#endif /* _WIN32_WINNT > = 0x0400 */'#if(_WIN32_WINNT > = 0x0400)'#define WHEEL_PAGESCROLL (UINT_MAX) /* Scroll on e page */'#endif /* _WIN32_WINNT > = 0x0400 */WM_PARENTNOTIFY = &H210WM_ENTERMENULOOP = &H211WM_EXITMENULOOP = &H212'#if(WINVER > = 0x0400)WM_NEXTMENU = &H213'// end_r_winuserWM_DEVICECHANGE = &H219'#endif /* WINVER > = 0x0400 */WM_MDICREATE = &H220WM_MDIDESTROY = &H221WM_MDIACTIVATE = &H222WM_MDIRESTORE = &H223WM_MDINEXT = &H224WM_MDIMAXIMIZE = &H225WM_MDITILE = &H226WM_MDICASCADE = &H227WM_MDIICONARRANGE = &H228WM_MDIGETACTIVE = &H229WM_MDISETMENU = &H230WM_ENTERSIZEMOVE = &H231WM_EXITSIZEMOVE = &H232WM_DROPFILES = &H233WM_MDIREFRESHMENU = &H234'#if(WINVER > = 0x0400)WM_IME_SETCONTEXT = &H281WM_IME_NOTIFY = &H282WM_IME_CONTROL = &H283WM_IME_COMPOSITIONFULL = &H284WM_IME_SELECT = &H285WM_IME_CHAR = &H286'#endif /* WINVER > = 0x0400 */'#if(WINVER > = 0x0500)WM_IME_REQUEST = &H288'#endif /* WINVER > = 0x0500 */'#if(WINVER > = 0x0400)WM_IME_KEYDOWN = &H290WM_IME_KEYUP = &H291'#endif /* WINVER > = 0x0400 */'#if(_WIN32_WINNT > = 0x0400)WM_MOUSEHOVER = &H2A1WM_MOUSELEAVE = &H2A3'#endif /* _WIN32_WINNT > = 0x0400 */WM_CUT = &H300WM_COPY = &H301WM_PASTE = &H302WM_CLEAR = &H303WM_UNDO = &H304WM_RENDERFORMAT = &H305WM_RENDERALLFORMATS = &H306WM_DESTROYCLIPBOARD = &H307WM_DRAWCLIPBOARD = &H308WM_PAINTCLIPBOARD = &H309WM_VSCROLLCLIPBOARD = &H30AWM_SIZECLIPBOARD = &H30BWM_ASKCBFORMATNAME = &H30CWM_CHANGECBCHAIN = &H30DWM_HSCROLLCLIPBOARD = &H30EWM_QUERYNEWPALETTE = &H30FWM_PALETTEISCHANGING = &H310WM_PALETTECHANGED = &H311WM_HOTKEY = &H312'#if(WINVER > = 0x0400)WM_PRINT = &H317WM_PRINTCLIENT = &H318WM_HANDHELDFIRST = &H358WM_HANDHELDLAST = &H35FWM_AFXFIRST = &H360WM_AFXLAST = &H37F'#endif /* WINVER > = 0x0400 */WM_PENWINFIRST = &H380WM_PENWINLAST = &H38FWM_USER = &H400Public Enum eWM_MsgWM_NULL = &H0WM_CREATE = &H1WM_DESTROY = &H2WM_MOVE = &H3WM_SIZE = &H5WM_ACTIVATE = &H6WM_SETFOCUS = &H7WM_KILLFOCUS = &H8WM_USER = &H400End Enum九、GlobalMemoryStatus十、GetSystemMenu十一、GetMenuItemInfo十二、SetMenuItemInfo十三、SetCursorPos十四、SetWindowPos十五、GetUserName。

MFC函数

MFC函数

MFC常用函数(为整理完全,待续)华东理工大学张耀2012年8月1.消息结构体typedef struct tagMSG {HWND hwnd;UINT message;WPARAM wParam;LPARAM lParam;DWORD time;POINT pt;} MSG;2. int WINAPI WinMain(HINSTANCE hInstance, // handle to current instanceHINSTANCE hPrevInstance, // handle to previous instanceLPSTR lpCmdLine, // pointer to command lineint nCmdShow // show state of window)3. typedef struct _WNDCLASS {UINT style; 窗口样式 CS_HREDRAW等CS_WNDPROC lpfnWndProc;int cbClsExtra;int cbWndExtra;HANDLE hInstance;HICON hIcon;HCURSOR hCursor;HBRUSH hbrBackground;LPCTSTR lpszMenuName;LPCTSTR lpszClassName;} WNDCLASS;要是想要改变窗口样式可以自己定义一个窗口类并且注册;在PreCreateWindow()中将cs结构中的lpszClass改为自定义的窗口类名字.4. HICON LoadIcon(HINSTANCE hInstance, // handle to application instanceLPCTSTR lpIconName // icon-name string or icon resource// identifier);加载系统图标时第一个参数为NULL,如果加载自定义图标则要调用全局函数AfxGetInstanceHandle()来获取当前应用程序实例;或者定义外部声明theApp.m_hInstance的当前应用程序实例;还有通过AfxGetApp()先获取theApp 指针.5. HCURSOR LoadCursor(HINSTANCE hInstance, // handle to application instanceLPCTSTR lpCursorName // name string or cursor resource identifier );使用方法与LoadIcon是相同的.6.CWnd::ShowWindowBOOL ShowWindow(int nCmdShow);相关参数SW_NORMAL ; SW_HIDE7. LRESULT CALLBACK WindowProc(HWND hwnd, // handle to windowUINT uMsg, // message identifierWPARAM wParam, // first message parameterLPARAM lParam // second message parameter);可以通过SetWindowLong();修改当前的窗口过程实现对窗口性质的修改.8.CButton::CreateBOOL Create( LPCTSTR lpszCaption, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );通过该函数可以创建一个按钮.创建后需要调用成员函数ShowWindow();或者在第二个参数或上SW_VISIBLE.9.CWnd::MessageBoxint MessageBox( LPCTSTR lpszText, LPCTSTR lpszCaption = NULL, UINT nType = MB_OK );int AfxMessageBox( LPCTSTR lpszText, UINT nType = MB_OK, UINT nIDHelp =0 );第二个为全局API函数.10. HDC GetDC(HWND hWnd // handle to a window);获取当前窗口的DC.调用是要加上::,使用完后要调用::ReleaseDC()释放DC.11.BOOL MoveToEx(HDC hdc, // handle to device contextint X, // x-coordinate of new current positionint Y, // y-coordinate of new current positionLPPOINT lpPoint // pointer to old current position);)把坐标原点移动到当前点.实际绘图比较少用.12. BOOL LineTo(HDC hdc, // device context handleint nXEnd, // x-coordinate of line's ending pointint nYEnd // y-coordinate of line's ending point );从原点做线条到当前坐标.13.CDC::MoveToCPoint MoveTo( int x, int y );CPoint MoveTo( POINT point );把坐标原点移动到当前点.实际绘图比较少用.14.CDC::LineToBOOL LineTo( int x, int y );BOOL LineTo( POINT point );从原点做线条到当前坐标.注:该对象使用完成后也要调用CWnd::ReleaseDC();lientDC由CDC继承而来,区别在于不要调用GetDC();和ReleaseDC(CDC*),但是实例化对象时需要提供窗口指针.可以使用this,GetParent()或者是GetDesktopWindow();16CPen::CPenCPen( );CPen( int nPenStyle, int nWidth, COLORREF crColor );CPen( int nPenStyle, int nWidth, const LOGBRUSH* pLogBrush, int nStyleCount = 0, const DWORD* lpStyle = NULL );//不常用笔迹样式有PS_SOLID,PS_等.17.COLORREF RGB(0~255,0~255,0~255);18.CRect::CRectCRect( );CRect( int l, int t, int r, int b );CRect( const RECT& srcRect );CRect( LPCRECT lpSrcRect );CRect( POINT point, SIZE size );CRect( POINT topLeft, POINT bottomRight );定义一个矩形区域.19.CDC::FillRectvoid FillRect( LPCRECT lpRect, CBrush* pBrush );确定一个由画刷填充的矩形区域.20.CBrush::CBrushCBrush( );CBrush( COLORREF crColor );CBrush( int nIndex, COLORREF crColor );CBrush( CBitmap* pBitmap );创建各种形式的画刷.21.CBitmap::LoadBitmapBOOL LoadBitmap( LPCTSTR lpszResourceName );BOOL LoadBitmap( UINT nIDResource );创建和加载位图资源.22.HGDIOBJ GetStockObject(int fnObject // type of stock object);GetStockObject函数检索的一个句柄,一个预定义的股票笔、刷子、字体、或调色板。

mfc getdlgitemtext的用法 -回复

mfc getdlgitemtext的用法 -回复

mfc getdlgitemtext的用法-回复mfc GetDlgItemText函数是Microsoft Foundation Classes(MFC)库中的一个API函数,用于获取对话框中指定控件的文本内容。

在本文中,我们将详细介绍mfc GetDlgItemText函数的用法,并提供一些示例来帮助读者更好地理解和应用该函数。

首先,让我们来了解一下mfc GetDlgItemText函数的基本语法和参数:BOOL GetDlgItemText(int nID, 控件IDCString& str 接收文本的CString对象);mfc GetDlgItemText函数接受两个参数:控件ID和一个CString对象的引用。

控件ID用于指定要获取文本的控件,而CString对象则用于存储获取到的文本内容。

接下来,我们可以按照以下步骤使用mfc GetDlgItemText函数:第一步:包含头文件在使用mfc GetDlgItemText函数之前,必须包含相应的头文件。

通常,我们需要包含"afxwin.h"或者"stdafx.h"头文件。

cpp#include <afxwin.h>第二步:获取对话框变量指针要使用mfc GetDlgItemText函数,首先需要获取指向对话框的指针。

您可以使用GetDlgItem函数来获取指定ID的控件的句柄,并使用FromHandlePermanent函数将其转换为对应的指针。

cppCDialog* pDialog = (CDialog*)FromHandlePermanent(hwnd);第三步:调用mfc GetDlgItemText函数现在,我们可以在获取到对话框指针的情况下调用mfc GetDlgItemText 函数来获取控件的文本内容。

我们需要传递控件ID和一个CString对象引用作为参数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

常用MFC和API函数索引CArchive类:用于二进制保存档案CBitmap类:封装Windows的图形设备接口(GDI)位图CBrush类:封装图形设备接口(GDI)中的画刷CButton类:提供Windows按钮控件的功能CByteArray类:该类支持动态的字节数组CCmdUI类:该类仅用于ON_UPDATE_COMMAND_UI处理函数中CColorDialog类:封装标准颜色对话框CDC类:定义设备环境对象类CDialog类:所有对话框(模态或非模态)的基类CDocument类:提供用户定义的文档类的基本功能CEdit类:是一个用于编辑控件的类CFile类:该类是基本文件类的基类CFileDialog类:封装了打开和保存文件的标准对话框CFindReplaceDialog类:封装了标准查找/替换对话框CFont类:封装了Windows图形设备接口(GDI)中的字体对象CFontDialog类:封装了字体选择对话框CGdiObject类:GDI绘图工具的基类CIPAddressCtrl类:提供了IP地址控件的功能CImageList类:管理大小相同的图标或位图集CMenu类:封装应用程序菜单栏和弹出式菜单CPen类:封装了Windows图形设备接口(GDI)中的画笔对象CPoint类:操作CPoint和POINT结构CRect类:封装了一个矩形区域及相关操作CRgn类:封装用于操作窗口中的椭圆、多边形或者不规则区域的GDI区域CSize类:用于表示相对坐标或位置CSpinButtonCtrl类:旋转控件Spin的控制类CStatusBar类:状态栏窗口的基类CString类:处理字符串CStringList类:支持CString对象的列表CWinApp类:派生的程序对象的基类CWnd类:提供所有窗口类的基本函数API函数CArchive类:用于二进制保存档案CArchive::CArchive 建立一个CArchive对象CArchive(CFile* pFile,UINT nMode,int nBufSize=4096,void* lpBuf=NULL); 参数:pFile 指向CFile对象的指针,这个CFile对象是数据的最终源或目的;nMode是标志,取值为CArchive::load时,从文档中加载数据(要求CFile读许可),取值为CArchive::store时,将数据存入文档(要求CFile写许可);nBufSize 指定内部文件缓冲区的大小(按字节计);lpBuf 指向大小为nBufSize的缓冲区,若未指定,则从局部堆中分配一缓冲区,并在该对象被删除时释放该缓冲区,但不释放用户提供的缓冲区。

CArchive::Close 关闭档案,清除缓冲区中剩余数据,断开文件与档案的连接void Close();操作符:<< 存储指定的对象到档案(写),一行可以使用多个析取操作符>> 从档案中加载指定的对象(读),一行可以有多个插入操作符CBitmap类:封装Windows的图形设备接口(GDI)位图CBitmap::LoadBitmap 加载位图资源BOOL LoadBitmap(UINT nIDResource);BOOL LoadBitmap(LPCTSTR lpszResourceName);参数:nIDResource 位图资源ID号;lpszResourceName 位图资源名返回值:若成功,返回非0;否则返回0CBrush类:封装图形设备接口(GDI)中的画刷CBrush::CreateSolidBrush 用指定颜色初始化一个单色画刷BOOL CreateSolidBrush(COLORREF crColor);参数:crColor 画刷颜色返回值:若成功,返回非0;否则返回0CButton类:提供Windows按钮控件的功能CButton::Create 创建一个CButton对象BOOL Create( LPCTSTR lpszCaption, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );lpszCaption是按钮上显示的文本;dwStyle指定按钮风格,可以是按钮风格与窗口风格的组合,取值有:窗口风格:WS_CHILD 子窗口,必须有WS_VISIBLE 窗口可见,一般都有WS_DISABLED 禁用窗口,创建初始状态为灰色不可用的按钮时使用WS_TABSTOP 可用Tab键选择WS_GROUP 成组,用于成组的单选按钮中的第一个按钮按钮风格:BS_PUSHBUTTON 下压式按钮,也即普通按钮BS_AUTORADIOBUTTON 含自动选中状态的单选按钮BS_RADIOBUTTON 单选按钮,不常用BS_AUTOCHECKBOX 含自动选中状态的复选按钮BS_CHECKBOX 复选按钮,不常用BS_AUTO3STATE 含自动选中状态的三态复选按钮BS_3STATE 三态复选按钮,不常用以上风格指定了创建的按钮类型,不能同时使用,但必须有其一。

BS_BITMAP 按钮上将显示位图BS_DEFPUSHBUTTON 设置为默认按钮,只用于下压式按钮,一个对话框中只能指定一个默认按钮rect指定按钮的大小和位置;pParentWnd指示拥有按钮的父窗口,不能为NULL;nID指定与按钮关联的ID号,用上一步创建的ID号。

返回值:若成功,返回非0;否则返回0CButton::DrawItem 重载该函数绘制一个CButton对象,由框架调用该函数virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);参数:lpDrawItemStruct指向包含绘制项信息和要求类型的LPDRAWITEMSTRUCT 结构的长指针CButton::SetCheck 设置或复位单选按钮和复选按钮的选择状态void SetCheck(int nCheck);参数:nCheck 指定设置的状态,0为未选择,1为选中,2为不确定CByteArray类:该类支持动态的字节数组CByteArray::GetAt 获取指定下标处的数值,可以用运算符[]代替BYTE GetAt(int nIndex)const;参数:nIndex 数组下标,必须为有效值返回值:指定下标处的数组元素CByteArray::GetData 访问数组元素BYTE *GetData();返回值:指向数组元素的指针CByteArray::GetSize 获取数组中元素个数int GetSize()const;返回值:数组的大小,比最大下标大1CByteArray::RemoveAll 删除数组中所有元素void RemoveAll();CByteArray::SetAt 设置指定下标处的数值,不扩充数组void SetAt(int nIndex,BYTE newElement);参数:nIndex 数组下标,必须为有效值;newElement 存入数组的新元素值CByteArray::SetAtGrow 设置指定下标处的数值,需要时可自动扩充数组void SetAtGrow(int nIndex,BYTE newElement);参数:nIndex 数组下标,大于等于0;newElement 存入数组的新元素值CByteArray::SetSize 设置数组的大小,并基于需要分配内存;若新值小于原数组,则截断旧数组,释放所有未用内存。

void SetSize(int nNewSize,int nGrowBy=-1);参数:nNewSize 新数组的大小,必须大于等于0;nGrowBy 扩大数组时至少要分配的元素数CCmdUI类:该类仅用于ON_UPDATE_COMMAND_UI处理函数中CCmdUI::Enable 使命令的用户界面元素有效或无效virtual void Enable(BOOL bOn=TRUE);参数:bOn 使用户界面元素有效时为TRUE,无效时为FALSECCmdUI::SetCheck 设置命令的用户界面元素为恰当的选择状态virtual void SetCheck(int nCheck=1);参数:nCheck 为0,设置为不选择,为1,设置为选择,为2,设置为不确定CColorDialog类:封装标准颜色对话框CColorDialog::CColorDialog 构造一个CColorDialog对象CColorDialog(COLORREF clrInit=0,DWORD dwFlags=0,CWnd* pParentWnd=NULL); 参数:clrInit为缺省颜色选项,若未指定值,则为黑色;dwFlags是标志,定制对话框的功能和外观,为0时只显示基本颜色,为CC_FULLOPEN时,显示完整颜色对话框;pParentWnd 指向拥有对话框的父窗口CColorDialog::GetColor 获取用户选择的颜色COLORREF GetColor()const;返回值:选中颜色的RGB值CDC类:定义设备环境对象类CDC::BitBlt 从源设备环境拷贝一个位图到当前设备环境中BOOL BitBlt(int x,int y,int nWidth,int nHeight,CDC* pSrcDC,int xSrc,int ySrc,DWORD dwRop);参数:x,y为目的矩形的左上角坐标;nWidth,nHeight为目的矩形的宽度和高度;pSrcDC是指向源设备环境的指针;xSrc,ySrc源位图左上角的坐标;dwRop 为光栅操作码。

CDC::CreateCompatibleDC 创建一个与pDC指定的设备相兼容的内存设备环境virtual BOOL CreateCompatibleDC(CDC* pDC);参数:pDC 设备环境指针返回值:若成功,返回非0;否则返回0CDC::Detach 将设备环境从CDC对象中分离开来HDC Detach()返回值:分离的设备环境CDC::DrawEdge 绘制矩形边框或边框的一部分BOOL DrawEdge(LPRECT lpRect,UINT nEdge,UINT nFlags);参数lpRect指向矩形的RECT结构的指针;nEdge指定矩形内外边界的风格,必须是一个内边界标志和外边界标志的组合,取值为:BDR_RAISEDINNER:内边界凸出;BDR_SUNKENINNER:内边界凹下;BDR_RAISEDOUTER:外边界凸出;BDR_SUNKENOUTER:外边界凹下;nFlags指定边界的类型,取值为:BF_RECT:矩形的所有四边;BF_LEFT:矩形的左边;BF_BOTTOM:矩形的底边;BF_RIGHT:矩形的右边;BF_TOP:矩形的上边;BF_TOPLEFT:矩形的上边和左边;BF_TOPRIGHT:矩形的上边和右边;BF_BOTTOMLEFT:矩形的下边和左边;BF_BOTTOMRIGHT:矩形的下边和右边。

相关文档
最新文档