MFC常用函数整理

来源:互联网 发布:小站雅思mac版下载 编辑:程序博客网 时间:2024/06/03 08:41

CButton::Create

BOOL Create( LPCTSTR lpszCaption, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );

动态创建一个按纽

LPCTSTR lpszCaption  按纽文字

DWORD dwStyle 按纽样式,常选用BS_DEFPUSHBUTTON表示下压式按纽,

控件本身也是窗口,因此还具有窗口类型,如让控件创建后即可见,可给控件WS_VISIBLE,

通常还具有WS_CHILD属性

const RECT& rect    矩形区域,可以是CRect类型,也可是Rect结构体。可直接由CRect构造,如CRect (0,0,10,10).。

CWnd* pParentWnd 为父窗口指针,若消息响应在父类中,可直接用this指针。UINT nID 可随便给(只能为数字?)。

注意用此函数时需判断该控件是否已与该控件窗口已关联,因为若关联两次会出现错误,动态创建控件好象只能创建一个控件。

 

CWnd::GetDlgItem 

CWnd* GetDlgItem( int nID ) const;

用此函数可通过控件ID获得指定控件的指针,一般此函数用于一个对话框类中。

 

 CWnd::GetWindowText

int GetWindowText( LPTSTR lpszStringBuf, int nMaxCount ) const;

void GetWindowText( CString& rString ) const;

此函数可获得指定控件上的文本信息并把它保存在一个CString对象或char型数组中。

第一个重载函数中nMaxCount指能够复制到BUFFER中的最大字符数

 

CWnd::SetWindowText

void SetWindowText( LPCTSTR lpszString );

该函数用于设置窗体尤其是控件文本。(该函数是否可向窗口输出字符串?)

 

atoi

int atoi( const char *string );

该函数可将字符串转换为整形值并返回。

类似的函数如下:

long atol( const char *string );

double atof( const char *string );

如果字符不能转化为相应的类型则返回0

itoa

char *_itoa( int value, char *string, int radix );

第一个参数是要转换的整形值,第二个参数是目标字符串的指针,第三个参数代表进制。

(回值干什么用的?)

 

CWnd::GetDlgItemText 

int GetDlgItemText( int nID, LPTSTR lpStr, int nMaxCount ) const;

int GetDlgItemText( int nID, CString& rString ) const;

该函数可通过控件ID来获取控件文本并把它保存在CString 的一个对象中或char型数组中,因为数组会有最大字符数,因此第一个重载函数还有nMaxCount参数。

 

CWnd::SetDlgItemText

void SetDlgItemText( int nID, LPCTSTR lpszString );

将字符串中字符放回nID所指定的控件中

 

CWnd::GetDlgItemInt 

UINT GetDlgItemInt( int nID, BOOL* lpTrans = NULL, BOOL bSigned = TRUE ) const;

该函数作用是接收指定控件文本并作为整形数返回

nID为控件ID,第二个参数若为NULL则若字符无法转换为数字时会接受一个零而不会报错,第三个参数若为TRUE则检查文本开始处的有无符号,即数据做有符号数处理,若为FALSE则作无符号数处理。

 

CWnd::SetDlgItemInt

void SetDlgItemInt( int nID, UINT nValue, BOOL bSigned = TRUE );

该函数是将整形值直接传入ID标识的控件作为控件文本。

nID为控件ID,第二个参数为要传入的整形值,第三个参数为真则为有符号值,反之则为无符号值

 

CWnd::ShowWindow

BOOL ShowWindow( int nCmdShow );

常用nCmdShow的参数值

  • SW_HIDE   隐藏窗口或控件
  • SW_SHOW   正常显示窗口或控件

一般由窗口类或窗口类的派生类产生一个窗口后都需要调用该函数将窗口显示出来,不过有时不需要显式调用而有时必须显示调用

 

CWnd::PostMessage

BOOL PostMessage( UINT message, WPARAM wParam = 0, LPARAM lParam = 0 );

CWnd::SendMessage

LRESULT SendMessage( UINT message, WPARAM wParam = 0, LPARAM lParam = 0 );

可用于各窗体或控件之间的消息通信。

如常用的获取窗体或控件的文本消息WM_GETTEXT,用WM_GETTEXT时参数:

WPARAM为要copy的最大字符数,LPARAM为存储的buffer区,若为char型数组则需要强制类型转换

设置窗体文本的消息WM_SETTEXT,参数含义:

wParam 未被使用,设为0 ,lParam 为要设置的文本的存储单元地址; 

设置编辑框文本复选的消息为EM_SETSEL

EM_SETSEL

wParam = (WPARAM) (INT) nStart;    // starting position

lParam = (LPARAM) (INT) nEnd;      // ending position

wParam为复选起始位置,lParam为复选结束位置。注意,若最后鼠标焦点不在编辑框上则无法显示文本复选,因此一般最后会加上一个SetFocus函数。

获取编辑框文本复选的消息为 EM_GETSEL  
wParam = (WPARAM) (LPDWORD) lpdwStart; // receives starting position  
lParam = (LPARAM) (LPDWORD) lpdwEnd;   // receives ending position  

wParam为一个DWORD类型数的指针,用于保存起始位置,lParam也为一个DWORD类型数的指针,用于保存结束位置。

 

CWnd::SendDlgItemMessage

LRESULT SendDlgItemMessage( int nID, UINT message, WPARAM wParam = 0, LPARAM lParam = 0 );

本函数用于对话框各控件的消息通信,获取指定ID的消息,该函数不是被类的对象调用的。

 

CDC::TextOut

virtual BOOL TextOut( int x, int y, LPCTSTR lpszString, int nCount );

BOOL TextOut( int x, int y, const CString& str );

该函数可用于向指定窗口输出一串文字,输出成功则返回非0;

输出文本颜色不是由画笔控制的,而是由CD中的成员函数

CDC::SetTextColor

virtual COLORREF SetTextColor( COLORREF crColor );

指定。背景颜色由

CDC::SetBkColor 

virtual COLORREF SetBkColor( COLORREF crColor );

指定。

 

SDK下该函数为:

BOOL TextOut( 
  HDC hdc,           // handle to device context 
  int nXStart,       // x-coordinate of starting position 
  int nYStart,       // y-coordinate of starting position 
  LPCTSTR lpString// pointer to string 
 int cbString       // number of characters in string 
); 
  

CWnd::SetFocus

CWnd* SetFocus( );

该函数为设置鼠标焦点的函数,返回的是原先具有焦点的窗体指针。

 

CWnd::GetWindowRect

void GetWindowRect( LPRECT lpRect ) const;

该函数获得窗口矩形区域信息并将信息保存在CRect或Rect结构体中

 

CWnd::SetWindowPos

BOOL SetWindowPos( const CWnd* pWndInsertAfter, int x, int y, int cx, int cy, UINT nFlags );

该函数可用于设置窗口的大小以及窗口的层叠次序。

第二,三个参数为窗口的左上角的x与y值,第四个参数为窗口的宽度,第五个参数为窗口的高度,最后一个参数为设置显示属性,如若要窗口显示位置不改变,nFlags可设置为 SWP_NOMOVE   ,此时将忽略x与y值,

 

SetWindowLong

LONG SetWindowLong(

  HWND hWnd,       // handle of window

  int nIndex,      // offset of value to set

  LONG dwNewLong   // new value

);

 

API函数,可用于改变指定窗口的一个属性,当nIndex取GWL_WNDPROC,

可用于替换一个窗口过程。

 

GetNextWindow

HWND GetNextWindow( 
  HWND hWnd// handle to current window 
  UINT wCmd   // direction flag 
); 
SDK函数,可获取当前控件的下一个控件的句柄,其中第一个参数为当前控件的句柄,第二个参数可取GW_HWNDNEXT或GW_HWNDPREV,若取GW_HWNDNEXT则获取下一个控件句柄,若取GW_HWNDPREV则获取当前句柄的前一个控件句柄 
  
GetWindow 
HWND GetWindow( 
  HWND hWnd// handle to original window 
  UINT uCmd   // relationship flag 
); 
该函数功能与GetNextWindow相似,但功能比GetNextWindow更强大,其中的nCmd选项可选GW_HWNDNEXT与GW_HWNDPREV外还可选择: 

GW_CHILD表示获取当前控件子控件句柄,GW_HWNDFIRST与 GW_HWNDLASTfenbie分别表示获取第一个与最后一个控件句柄。

 

GetNextDlgTabItem

HWND GetNextDlgTabItem( 
  HWND hDlg,       // handle of dialog box 
  HWND hCtl,       // handle of known control 
  BOOL bPrevious   // direction flag 
); 
  

CWnd::GetNextWindow 

CWnd* GetNextWindow( UINT nFlag = GW_HWNDNEXT ) const;

此函数返回指向当前控件的下一个控件的指针。

 

CWnd::ModifyStyle

BOOL ModifyStyle(DWORD dwRemove,DWORD dwAdd, UINT nFlags = 0 );

此函数用于替换指定窗口的样式,第一个参数DWORD dwRemove,为要去掉的窗口样式,第二个参数DWORD dwAdd为将要添加的窗口样式,第三个参数为0则窗口不重绘,非0则窗口重绘。

 

LPTSTR MAKEINTRESOURCE( 
  WORD wInteger  // integer to convert 
); 

该函数可以将一个整形值转换为一个资源类型的值,一般用于将一个资源的ID标示转换为资源的名字的字符串

 

封装所有字符串操作的类CString类,常用方法:

CString::Format:格式化输出一个字符串用法与c语言中Printf()相类似

CString::operator +=:可以连接一个字符串

  
DWORD GetCurrentDirectory( 
  DWORD nBufferLength// size, in characters, of directory buffer 
  LPTSTR lpBuffer       // pointer to buffer for current directory 
); 

该函数为SDK平台下的函数,作用是获取当前目录下所有文件名,并将当前目录下所有文件的文件名放入lpBuffer指向的字符数组中。

原创粉丝点击